Component: API (Arduino Uno) (API Slave Devices): Difference between revisions
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 259: | Line 259: | ||
===ADCSample10=== | ===ADCSample10=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSample10''' | ||
|- | |- | ||
| colspan="2" | Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 | | colspan="2" | Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 | ||
| Line 278: | Line 278: | ||
===ADCSample8=== | ===ADCSample8=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSample8''' | ||
|- | |- | ||
| colspan="2" | Reads the voltage present on an Analog pin as an 8-bit value range 0-255 | | colspan="2" | Reads the voltage present on an Analog pin as an 8-bit value range 0-255 | ||
| Line 297: | Line 297: | ||
===ADCSampleArray10=== | ===ADCSampleArray10=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSampleArray10''' | ||
|- | |- | ||
| colspan="2" | Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 Performs the selected number of samples with the selected time in microseconds in between samples and returns each sample in a single packet | | colspan="2" | Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 Performs the selected number of samples with the selected time in microseconds in between samples and returns each sample in a single packet | ||
| Line 331: | Line 331: | ||
===ADCSampleArray8=== | ===ADCSampleArray8=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSampleArray8''' | ||
|- | |- | ||
| colspan="2" | Reads the voltage present on an Analog pin as an 8-bit value range 0-255 Performs the selected number of samples with the selected time in microseconds in between samples and returns each sample in a single packet | | colspan="2" | Reads the voltage present on an Analog pin as an 8-bit value range 0-255 Performs the selected number of samples with the selected time in microseconds in between samples and returns each sample in a single packet | ||
| Line 365: | Line 365: | ||
===ADCSampleAverage10=== | ===ADCSampleAverage10=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSampleAverage10''' | ||
|- | |- | ||
| colspan="2" | Reads the voltage present on an Analog pin as an 10-bit value range 0-1023. Performs the selected number of samples with the selected time in microseconds in between samples | | colspan="2" | Reads the voltage present on an Analog pin as an 10-bit value range 0-1023. Performs the selected number of samples with the selected time in microseconds in between samples | ||
| Line 394: | Line 394: | ||
===ADCSampleAverage8=== | ===ADCSampleAverage8=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSampleAverage8''' | ||
|- | |- | ||
| colspan="2" | Reads the voltage present on an Analog pin as an 8-bit value range 0-255 Performs the selected number of samples with the selected time in microseconds in between samples | | colspan="2" | Reads the voltage present on an Analog pin as an 8-bit value range 0-255 Performs the selected number of samples with the selected time in microseconds in between samples | ||
| Line 423: | Line 423: | ||
===ADCSetPrechargeTime=== | ===ADCSetPrechargeTime=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSetPrechargeTime''' | ||
|- | |- | ||
| colspan="2" | Specifies the precharge time for the ADC input readings in microseconds. The longer the time the more immune to noise the reading will be. | | colspan="2" | Specifies the precharge time for the ADC input readings in microseconds. The longer the time the more immune to noise the reading will be. | ||
| Line 442: | Line 442: | ||
===ADCSetReferenceVoltage=== | ===ADCSetReferenceVoltage=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSetReferenceVoltage''' | ||
|- | |- | ||
| colspan="2" | Specified the reference setting for ADC reads. | | colspan="2" | Specified the reference setting for ADC reads. | ||
| Line 461: | Line 461: | ||
===I2CInitialise=== | ===I2CInitialise=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CInitialise''' | ||
|- | |- | ||
| colspan="2" | Initialsie the I2C module ready for communications | | colspan="2" | Initialsie the I2C module ready for communications | ||
| Line 485: | Line 485: | ||
===I2CReceive=== | ===I2CReceive=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CReceive''' | ||
|- | |- | ||
| colspan="2" | Receive a byte using the I2C bus | | colspan="2" | Receive a byte using the I2C bus | ||
| Line 509: | Line 509: | ||
===I2CRestart=== | ===I2CRestart=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CRestart''' | ||
|- | |- | ||
| colspan="2" | Put the I2C Module into Restart mode | | colspan="2" | Put the I2C Module into Restart mode | ||
| Line 528: | Line 528: | ||
===I2CSend=== | ===I2CSend=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CSend''' | ||
|- | |- | ||
| colspan="2" | Transmit a byte using the I2C bus | | colspan="2" | Transmit a byte using the I2C bus | ||
| Line 552: | Line 552: | ||
===I2CStart=== | ===I2CStart=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CStart''' | ||
|- | |- | ||
| colspan="2" | Put the I2C Module into Start mode | | colspan="2" | Put the I2C Module into Start mode | ||
| Line 571: | Line 571: | ||
===I2CStop=== | ===I2CStop=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CStop''' | ||
|- | |- | ||
| colspan="2" | Put the I2C Module into Stop mode | | colspan="2" | Put the I2C Module into Stop mode | ||
| Line 590: | Line 590: | ||
===I2CTransInit=== | ===I2CTransInit=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CTransInit''' | ||
|- | |- | ||
| colspan="2" | Initialises the I2C Transaction mode with the 7-bit device address | | colspan="2" | Initialises the I2C Transaction mode with the 7-bit device address | ||
| Line 619: | Line 619: | ||
===I2CTransReceive=== | ===I2CTransReceive=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CTransReceive''' | ||
|- | |- | ||
| colspan="2" | Receives an I2C Transaction on the selected I2C channel. Returns the number of bytes received. | | colspan="2" | Receives an I2C Transaction on the selected I2C channel. Returns the number of bytes received. | ||
| Line 648: | Line 648: | ||
===I2CTransSend=== | ===I2CTransSend=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CTransSend''' | ||
|- | |- | ||
| colspan="2" | Sends an I2C Transaction on the selected I2C channel. Returns the number of bytes sent. | | colspan="2" | Sends an I2C Transaction on the selected I2C channel. Returns the number of bytes sent. | ||
| Line 677: | Line 677: | ||
===IOGetInputPin=== | ===IOGetInputPin=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''IOGetInputPin''' | ||
|- | |- | ||
| colspan="2" | Sets the selected digital pin to an input and reads the input state. | | colspan="2" | Sets the selected digital pin to an input and reads the input state. | ||
| Line 696: | Line 696: | ||
===IOSetOutputPin=== | ===IOSetOutputPin=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''IOSetOutputPin''' | ||
|- | |- | ||
| colspan="2" | Sets the selected digital pin to an output and assigns the output state. | | colspan="2" | Sets the selected digital pin to an output and assigns the output state. | ||
| Line 720: | Line 720: | ||
===Initialise=== | ===Initialise=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | Initialise the comms to the Arduino board ready for commands to be sent. | | colspan="2" | Initialise the comms to the Arduino board ready for commands to be sent. | ||
| Line 734: | Line 734: | ||
===OneWireBusReset=== | ===OneWireBusReset=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireBusReset''' | ||
|- | |- | ||
| colspan="2" | Issue a 'ping' on the bus. If there is at least one sensor on the bus then it will generate a presence pulse. Returns 0 if a presense pulse was detected Returns 1 no device was detected | | colspan="2" | Issue a 'ping' on the bus. If there is at least one sensor on the bus then it will generate a presence pulse. Returns 0 if a presense pulse was detected Returns 1 no device was detected | ||
| Line 753: | Line 753: | ||
===OneWireGetDeviceCount=== | ===OneWireGetDeviceCount=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireGetDeviceCount''' | ||
|- | |- | ||
| colspan="2" | Returns the number of devices found by the last ScanBus operation. | | colspan="2" | Returns the number of devices found by the last ScanBus operation. | ||
| Line 772: | Line 772: | ||
===OneWireGetIDByte=== | ===OneWireGetIDByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireGetIDByte''' | ||
|- | |- | ||
| colspan="2" | Returns a single byte of the 64-Bit lasered ROM code, 255 on error | | colspan="2" | Returns a single byte of the 64-Bit lasered ROM code, 255 on error | ||
| Line 801: | Line 801: | ||
===OneWireInitialise=== | ===OneWireInitialise=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireInitialise''' | ||
|- | |- | ||
| colspan="2" | Initialise the OneWire module ready for communications | | colspan="2" | Initialise the OneWire module ready for communications | ||
| Line 820: | Line 820: | ||
===OneWireMatchROM=== | ===OneWireMatchROM=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireMatchROM''' | ||
|- | |- | ||
| colspan="2" | Performs a reset followed by the MatchROM code and then the 8-bit ROM code. | | colspan="2" | Performs a reset followed by the MatchROM code and then the 8-bit ROM code. | ||
| Line 849: | Line 849: | ||
===OneWireReceiveByte=== | ===OneWireReceiveByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireReceiveByte''' | ||
|- | |- | ||
| colspan="2" | Receives a byte from the one wire bus a bit at a time | | colspan="2" | Receives a byte from the one wire bus a bit at a time | ||
| Line 868: | Line 868: | ||
===OneWireScanBus=== | ===OneWireScanBus=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireScanBus''' | ||
|- | |- | ||
| colspan="2" | Scans the one wire bus to detect all connected devices. Returns the number of one wire devices found. | | colspan="2" | Scans the one wire bus to detect all connected devices. Returns the number of one wire devices found. | ||
| Line 887: | Line 887: | ||
===OneWireSkipROM=== | ===OneWireSkipROM=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireSkipROM''' | ||
|- | |- | ||
| colspan="2" | Performs a bus reset and the sends the SkipROM command byte | | colspan="2" | Performs a bus reset and the sends the SkipROM command byte | ||
| Line 906: | Line 906: | ||
===OneWireTransmitByte=== | ===OneWireTransmitByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''OneWireTransmitByte''' | ||
|- | |- | ||
| colspan="2" | Transmit a byte to the one wire bus a bit at a time | | colspan="2" | Transmit a byte to the one wire bus a bit at a time | ||
| Line 930: | Line 930: | ||
===PWMDisable=== | ===PWMDisable=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMDisable''' | ||
|- | |- | ||
| colspan="2" | Disable a PWM output | | colspan="2" | Disable a PWM output | ||
| Line 949: | Line 949: | ||
===PWMEnable=== | ===PWMEnable=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMEnable''' | ||
|- | |- | ||
| colspan="2" | Enable a PWM output | | colspan="2" | Enable a PWM output | ||
| Line 968: | Line 968: | ||
===PWMSetDuty=== | ===PWMSetDuty=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMSetDuty''' | ||
|- | |- | ||
| colspan="2" | Sets the duty for the PWM output | | colspan="2" | Sets the duty for the PWM output | ||
| Line 992: | Line 992: | ||
===PWMSetPrescaler=== | ===PWMSetPrescaler=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMSetPrescaler''' | ||
|- | |- | ||
| colspan="2" | Sets the prescaler for the PWM output | | colspan="2" | Sets the prescaler for the PWM output | ||
| Line 1,021: | Line 1,021: | ||
===RegisterRead=== | ===RegisterRead=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RegisterRead''' | ||
|- | |- | ||
| colspan="2" | Read one of the registers on-board the device | | colspan="2" | Read one of the registers on-board the device | ||
| Line 1,040: | Line 1,040: | ||
===RegisterWrite=== | ===RegisterWrite=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RegisterWrite''' | ||
|- | |- | ||
| colspan="2" | Writes to one of the registers on-board the device | | colspan="2" | Writes to one of the registers on-board the device | ||
| Line 1,064: | Line 1,064: | ||
===SPIInitialise=== | ===SPIInitialise=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPIInitialise''' | ||
|- | |- | ||
| colspan="2" | Initialsie the SPI module ready for communications | | colspan="2" | Initialsie the SPI module ready for communications | ||
| Line 1,083: | Line 1,083: | ||
===SPIPrescaler=== | ===SPIPrescaler=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPIPrescaler''' | ||
|- | |- | ||
| colspan="2" | Modify the speed of the SPI bus | | colspan="2" | Modify the speed of the SPI bus | ||
| Line 1,107: | Line 1,107: | ||
===SPITransfer=== | ===SPITransfer=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPITransfer''' | ||
|- | |- | ||
| colspan="2" | Transfer a byte using the SPI bus | | colspan="2" | Transfer a byte using the SPI bus | ||
| Line 1,131: | Line 1,131: | ||
===SPITransferTrans=== | ===SPITransferTrans=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPITransferTrans''' | ||
|- | |- | ||
| colspan="2" | Transfer an array of bytes using the SPI bus | | colspan="2" | Transfer an array of bytes using the SPI bus | ||
| Line 1,165: | Line 1,165: | ||
===ServoDisable=== | ===ServoDisable=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ServoDisable''' | ||
|- | |- | ||
| colspan="2" | Disable a Servo output Ch0 to 7 = Pins 2 to 9 | | colspan="2" | Disable a Servo output Ch0 to 7 = Pins 2 to 9 | ||
| Line 1,184: | Line 1,184: | ||
===ServoEnable=== | ===ServoEnable=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ServoEnable''' | ||
|- | |- | ||
| colspan="2" | Enable a Servo output Ch0 to 7 = Pins 2 to 9 | | colspan="2" | Enable a Servo output Ch0 to 7 = Pins 2 to 9 | ||
| Line 1,203: | Line 1,203: | ||
===ServoSetPosition8=== | ===ServoSetPosition8=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ServoSetPosition8''' | ||
|- | |- | ||
| colspan="2" | Sets the position as an 8-bit value Ch0 to 7 = Pins 2 to 9 | | colspan="2" | Sets the position as an 8-bit value Ch0 to 7 = Pins 2 to 9 | ||
| Line 1,228: | Line 1,228: | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Connection | ||
|- | |- | ||
|- | |- | ||
| Line 1,248: | Line 1,248: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | API Peripherals | ||
|- | |- | ||
|- | |- | ||
| Line 1,297: | Line 1,297: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Console | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix TSL |
| Version | 2.0 |
| Category | API Slave Devices |
API (Arduino Uno) component
Connects to an Arduino Uno running the API Firmware allowing the board to become a slave to the Flowcode Embedded simulation or Flowcode App Developer. Supports: Digital IO / ADC / I2C / SPI / PWM See Flowcode Help Wiki for firmware.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Arduino_Uno_API_Comp.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_Arduino_Uno_API_Comp.fcfx
Detailed description
The App Developer (Arduino Uno) component allows an Arduino Uno board to be controlled from within the Flowcode simulation runtime.
To allow Flowcode to communicate and control the Arduino Uno hardware the board must first be pre-programmed with dedicated firmware.
The firmware hex file and Flowcode source project can be downloaded from here.
Arduino Uno App Developer Firmware
More information about the workings of the firmware project can be found on the FiniteStateMachine page.
The COM port to the Arduino hardware is selected via the App Developer_Ard_Uno componennt COM port property.
When building the component into a App Developer project remember to expose the COM port property to allow the end user to select the correct port for the hardware.
The console window can display data in two modes which is set via a component property.
- fixed statistics showing IO / ADC inputs / PWM
- scrolling log showing all commands and returns
Examples
Pin Mapping
Here is a table showing how the App Developer Slave digital pins are mapped on the device.
| App Developer Slave Digital Pin | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| Device Port Pin | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | B0 | B1 | B2 | B3 | B4 | B5 | C0 | C1 | C2 | C3 | C4 | C5 |
| Arduino Style Pin | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | A0 | A1 | A2 | A3 | A4 | A5 |
Here is a table showing how the App Developer Slave analogue pins are mapped on the device.
| App Developer Slave Analogue Pin | 0 | 1 | 2 | 3 | 4 | 5 |
| Device Port Pin | C0 | C1 | C2 | C3 | C4 | C5 |
| Arduino Style Pin | A0 | A1 | A2 | A3 | A4 | A5 |
Here is a table showing how the App Developer Slave peripheral pins are mapped on the device.
| App Developer Slave Peripheral Pin | I2C SDA | I2C SCL | SPI MOSI | SPI MISO | SPI SCK | PWM 0 | PWM 1 | PWM 2 | PWM 3 | PWM 4 | PWM 5 | OneWire | Servo 0 | Servo 1 | Servo 2 | Servo 3 | Servo 4 | Servo 5 | Servo 6 | Servo 7 |
| Device Port Pin | C4 | C5 | B3 | B4 | B5 | D6 | D5 | B1 | B2 | B3 | D3 | D2 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 |
| Arduino Style Pin | A4 | A5 | 11 | 12 | 13 | 6 | 5 | 9 | 10 | 11 | 3 | 2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Direct Slave Access
Here is a simple demo to switch on and off digital pin 5.
Macro reference
ADCSample10
| ADCSample10 | |
| Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 | |
| ADCChannel | |
| Range: 0-5 | |
| Return | |
ADCSample8
| ADCSample8 | |
| Reads the voltage present on an Analog pin as an 8-bit value range 0-255 | |
| ADCChannel | |
| Range: 0-5 | |
| Return | |
ADCSampleArray10
ADCSampleArray8
ADCSampleAverage10
ADCSampleAverage8
ADCSetPrechargeTime
ADCSetReferenceVoltage
| ADCSetReferenceVoltage | |
| Specified the reference setting for ADC reads. | |
| RefType | |
| 0=AREF, 1=VCC, 3=Internal 1.1V | |
| Return | |
I2CInitialise
| I2CInitialise | |
| Initialsie the I2C module ready for communications | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Baud | |
| 0=100KHz, 1=400KHz, 2=1MHz | |
| Return | |
I2CReceive
| I2CReceive | |
| Receive a byte using the I2C bus | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Last | |
| Last byte to receive: Range 0-1 | |
| Return | |
I2CRestart
| I2CRestart | |
| Put the I2C Module into Restart mode | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
I2CSend
| I2CSend | |
| Transmit a byte using the I2C bus | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| DataOut | |
| Return | |
I2CStart
| I2CStart | |
| Put the I2C Module into Start mode | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
I2CStop
| I2CStop | |
| Put the I2C Module into Stop mode | |
| Channel | |
| Return | |
I2CTransInit
I2CTransReceive
I2CTransSend
IOGetInputPin
| IOGetInputPin | |
| Sets the selected digital pin to an input and reads the input state. | |
| Pin | |
| Range: 0-19 | |
| Return | |
IOSetOutputPin
| IOSetOutputPin | |
| Sets the selected digital pin to an output and assigns the output state. | |
| Pin | |
| Range: 0-19 | |
| State | |
| Range: 0-1 | |
| Return | |
Initialise
| Initialise | |
| Initialise the comms to the Arduino board ready for commands to be sent. | |
| Return | |
OneWireBusReset
OneWireGetDeviceCount
| OneWireGetDeviceCount | |
| Returns the number of devices found by the last ScanBus operation. | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
OneWireGetIDByte
OneWireInitialise
| OneWireInitialise | |
| Initialise the OneWire module ready for communications | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
OneWireMatchROM
OneWireReceiveByte
| OneWireReceiveByte | |
| Receives a byte from the one wire bus a bit at a time | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
OneWireScanBus
| OneWireScanBus | |
| Scans the one wire bus to detect all connected devices. Returns the number of one wire devices found. | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
OneWireSkipROM
| OneWireSkipROM | |
| Performs a bus reset and the sends the SkipROM command byte | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
OneWireTransmitByte
| OneWireTransmitByte | |
| Transmit a byte to the one wire bus a bit at a time | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Data | |
| Return | |
PWMDisable
| PWMDisable | |
| Disable a PWM output | |
| Channel | |
| Range: 0-5 | |
| Return | |
PWMEnable
| PWMEnable | |
| Enable a PWM output | |
| Channel | |
| Range: 0-5 | |
| Return | |
PWMSetDuty
| PWMSetDuty | |
| Sets the duty for the PWM output | |
| Channel | |
| Range: 0-5 | |
| Duty | |
| Return | |
PWMSetPrescaler
| PWMSetPrescaler | |
| Sets the prescaler for the PWM output | |
| Channel | |
| Range: 0-5 | |
| Prescaler | |
| Period | |
| Default 255 | |
| Return | |
RegisterRead
| RegisterRead | |
| Read one of the registers on-board the device | |
| RegisterAddress | |
| The address of the register | |
| Return | |
RegisterWrite
| RegisterWrite | |
| Writes to one of the registers on-board the device | |
| RegisterAddress | |
| The address of the register | |
| Data | |
| The data value to assign to the register | |
| Return | |
SPIInitialise
| SPIInitialise | |
| Initialsie the SPI module ready for communications | |
| Channel | |
| Channel Index: Range 0 - SPI Bus Count - 1 | |
| Return | |
SPIPrescaler
| SPIPrescaler | |
| Modify the speed of the SPI bus | |
| Channel | |
| Channel Index: Range 0 - SPI Bus Count - 1 | |
| Prescaler | |
| Range: 0-2 | |
| Return | |
SPITransfer
| SPITransfer | |
| Transfer a byte using the SPI bus | |
| Channel | |
| Channel Index: Range 0 - SPI Bus Count - 1 | |
| DataOut | |
| Return | |
SPITransferTrans
ServoDisable
| ServoDisable | |
| Disable a Servo output Ch0 to 7 = Pins 2 to 9 | |
| Channel | |
| Range: 0-7 | |
| Return | |
ServoEnable
| ServoEnable | |
| Enable a Servo output Ch0 to 7 = Pins 2 to 9 | |
| Channel | |
| Range: 0-7 | |
| Return | |
ServoSetPosition8
| ServoSetPosition8 | |
| Sets the position as an 8-bit value Ch0 to 7 = Pins 2 to 9 | |
| Channel | |
| Range: 0-7 | |
| Position | |
| Range: 0-255 | |
| Return | |