Jump to content

Component: API (Arduino Uno) (API Slave Devices): Difference between revisions

From Flowcode Help
m Text replacement - "class="wikitable" style="width:60%; background-color:#FFFFFF;"" to "class="mtx-class-macrotable wikitable""
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(4 intermediate revisions by the same user not shown)
Line 261: Line 261:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSample10'''
| 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 280: Line 280:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSample8'''
| 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 299: Line 299:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSampleArray10'''
| 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 333: Line 333:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSampleArray8'''
| 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 367: Line 367:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSampleAverage10'''
| 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 396: Line 396:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSampleAverage8'''
| 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 425: Line 425:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSetPrechargeTime'''
| 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 444: Line 444:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ADCSetReferenceVoltage'''
| 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 463: Line 463:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CInitialise'''
| 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 487: Line 487:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CReceive'''
| 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 511: Line 511:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CRestart'''
| 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 530: Line 530:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CSend'''
| 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 554: Line 554:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CStart'''
| 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 573: Line 573:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CStop'''
| 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 592: Line 592:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CTransInit'''
| 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 621: Line 621:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CTransReceive'''
| 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 650: Line 650:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''I2CTransSend'''
| 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 679: Line 679:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IOGetInputPin'''
| 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 698: Line 698:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''IOSetOutputPin'''
| 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 722: Line 722:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
| 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 736: Line 736:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireBusReset'''
| 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 755: Line 755:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireGetDeviceCount'''
| 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 774: Line 774:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireGetIDByte'''
| 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 803: Line 803:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireInitialise'''
| 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 822: Line 822:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireMatchROM'''
| 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 851: Line 851:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireReceiveByte'''
| 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 870: Line 870:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireScanBus'''
| 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 889: Line 889:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireSkipROM'''
| 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 908: Line 908:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''OneWireTransmitByte'''
| 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 932: Line 932:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PWMDisable'''
| width="90%" class="mtx-class-macrohead" | '''PWMDisable'''
|-
|-
| colspan="2" | Disable a PWM output 
| colspan="2" | Disable a PWM output 
Line 951: Line 951:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PWMEnable'''
| width="90%" class="mtx-class-macrohead" | '''PWMEnable'''
|-
|-
| colspan="2" | Enable a PWM output 
| colspan="2" | Enable a PWM output 
Line 970: Line 970:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PWMSetDuty'''
| 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 994: Line 994:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PWMSetPrescaler'''
| 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,023: Line 1,023:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RegisterRead'''
| 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,042: Line 1,042:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RegisterWrite'''
| 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,066: Line 1,066:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SPIInitialise'''
| 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,085: Line 1,085:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SPIPrescaler'''
| 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,109: Line 1,109:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SPITransfer'''
| 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,133: Line 1,133:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SPITransferTrans'''
| 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,167: Line 1,167:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ServoDisable'''
| 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,186: Line 1,186:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ServoEnable'''
| 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,205: Line 1,205:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ServoSetPosition8'''
| 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,230: Line 1,230:
{| class="mtx-class-macrotable wikitable"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
| width="90%" class="mtx-class-macrohead" | '''Properties'''  
|-
|-
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connection
| width="90%" class="mtx-class-propfolder" | Connection
|-
|-
|-
|-
Line 1,248: Line 1,248:
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | API Peripherals
| width="90%" class="mtx-class-propfolder" | API Peripherals
|-
|-
|-
|-
Line 1,297: Line 1,297:
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Console
| 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.

Simple Arduino Uno Demo




Macro reference

ADCSample10

ADCSample10
Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 
- BYTE ADCChannel
Range: 0-5 
- UINT Return


ADCSample8

ADCSample8
Reads the voltage present on an Analog pin as an 8-bit value range 0-255 
- BYTE ADCChannel
Range: 0-5 
- BYTE Return


ADCSampleArray10

ADCSampleArray10
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 
- BYTE ADCChannel
Range: 0-5 
- BYTE SampleCount
Range: 1- 32 
- UINT SampleDelay
Delay in us between each sample 
- UINT Samples
10-bit samples returned from the function 
- VOID Return


ADCSampleArray8

ADCSampleArray8
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 
- BYTE ADCChannel
Range: 0-5 
- BYTE SampleCount
Range: 1- 32 
- UINT SampleDelay
Delay in us between each sample 
- BYTE Samples
8-bit samples returned from the function 
- VOID Return


ADCSampleAverage10

ADCSampleAverage10
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 
- BYTE ADCChannel
Range: 0-5 
- BYTE SampleCount
Range: 1- 100 
- BYTE SampleDelay
Delay in us between each sample 
- UINT Return


ADCSampleAverage8

ADCSampleAverage8
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 
- BYTE ADCChannel
Range: 0-5 
- BYTE SampleCount
Range: 1- 100 
- BYTE SampleDelay
Delay in us between each sample 
- BYTE Return


ADCSetPrechargeTime

ADCSetPrechargeTime
Specifies the precharge time for the ADC input readings in microseconds. The longer the time the more immune to noise the reading will be. 
- BYTE ChargeTime
Default 10 
- VOID Return


ADCSetReferenceVoltage

ADCSetReferenceVoltage
Specified the reference setting for ADC reads. 
- BYTE RefType
0=AREF, 1=VCC, 3=Internal 1.1V 
- VOID Return


I2CInitialise

I2CInitialise
Initialsie the I2C module ready for communications 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Baud
0=100KHz, 1=400KHz, 2=1MHz 
- VOID Return


I2CReceive

I2CReceive
Receive a byte using the I2C bus 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BOOL Last
Last byte to receive: Range 0-1 
- BYTE Return


I2CRestart

I2CRestart
Put the I2C Module into Restart mode 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- VOID Return


I2CSend

I2CSend
Transmit a byte using the I2C bus 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE DataOut
 
- BOOL Return


I2CStart

I2CStart
Put the I2C Module into Start mode 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- VOID Return


I2CStop

I2CStop
Put the I2C Module into Stop mode 
- BYTE Channel
 
- VOID Return


I2CTransInit

I2CTransInit
Initialises the I2C Transaction mode with the 7-bit device address 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE DeviceAddress
7-bit Device Address 
- BYTE Baud
0=100KHz, 1=400KHz, 2=1MHz 
- VOID Return


I2CTransReceive

I2CTransReceive
Receives an I2C Transaction on the selected I2C channel. Returns the number of bytes received. 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Data
Data variable to receive into 
- UINT Count
Number of bytes to receive 
- UINT Return


I2CTransSend

I2CTransSend
Sends an I2C Transaction on the selected I2C channel. Returns the number of bytes sent. 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Data
Data to send 
- UINT Count
Number of bytes to send out, MS bit 0x8000 signifies no Stop if set 
- UINT Return


IOGetInputPin

IOGetInputPin
Sets the selected digital pin to an input and reads the input state. 
- BYTE Pin
Range: 0-19 
- BOOL Return


IOSetOutputPin

IOSetOutputPin
Sets the selected digital pin to an output and assigns the output state. 
- BYTE Pin
Range: 0-19 
- BOOL State
Range: 0-1 
- VOID Return


Initialise

Initialise
Initialise the comms to the Arduino board ready for commands to be sent. 
- VOID Return


OneWireBusReset

OneWireBusReset
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 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BOOL Return


OneWireGetDeviceCount

OneWireGetDeviceCount
Returns the number of devices found by the last ScanBus operation. 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Return


OneWireGetIDByte

OneWireGetIDByte
Returns a single byte of the 64-Bit lasered ROM code, 255 on error 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Device
Device ID - Range: 0 - NumDevices - 1 
- BYTE ByteIndex
Index of the data byte. 0=FamilyCode, 1-6=Serial, 7=CRC 
- BYTE Return


OneWireInitialise

OneWireInitialise
Initialise the OneWire module ready for communications 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- VOID Return


OneWireMatchROM

OneWireMatchROM
Performs a reset followed by the MatchROM code and then the 8-bit ROM code. 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE FamilyCode
 
- BYTE SerialNumber
 
- VOID Return


OneWireReceiveByte

OneWireReceiveByte
Receives a byte from the one wire bus a bit at a time 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Return


OneWireScanBus

OneWireScanBus
Scans the one wire bus to detect all connected devices. Returns the number of one wire devices found. 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Return


OneWireSkipROM

OneWireSkipROM
Performs a bus reset and the sends the SkipROM command byte 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- VOID Return


OneWireTransmitByte

OneWireTransmitByte
Transmit a byte to the one wire bus a bit at a time 
- BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
- BYTE Data
 
- VOID Return


PWMDisable

PWMDisable
Disable a PWM output 
- BYTE Channel
Range: 0-5 
- VOID Return


PWMEnable

PWMEnable
Enable a PWM output 
- BYTE Channel
Range: 0-5 
- VOID Return


PWMSetDuty

PWMSetDuty
Sets the duty for the PWM output 
- BYTE Channel
Range: 0-5 
- BYTE Duty
 
- VOID Return


PWMSetPrescaler

PWMSetPrescaler
Sets the prescaler for the PWM output 
- BYTE Channel
Range: 0-5 
- BYTE Prescaler
 
- BYTE Period
Default 255 
- VOID Return


RegisterRead

RegisterRead
Read one of the registers on-board the device 
- UINT RegisterAddress
The address of the register 
- BYTE Return


RegisterWrite

RegisterWrite
Writes to one of the registers on-board the device 
- UINT RegisterAddress
The address of the register 
- BYTE Data
The data value to assign to the register 
- VOID Return


SPIInitialise

SPIInitialise
Initialsie the SPI module ready for communications 
- BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
- VOID Return


SPIPrescaler

SPIPrescaler
Modify the speed of the SPI bus 
- BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
- BYTE Prescaler
Range: 0-2 
- VOID Return


SPITransfer

SPITransfer
Transfer a byte using the SPI bus 
- BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
- BYTE DataOut
 
- BYTE Return


SPITransferTrans

SPITransferTrans
Transfer an array of bytes using the SPI bus 
- BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
- UINT Count
Number of bytes to send and receive 
- BYTE DataOut
Outgoing data 
- BYTE DataIn
Incoming data 
- VOID Return


ServoDisable

ServoDisable
Disable a Servo output Ch0 to 7 = Pins 2 to 9 
- BYTE Channel
Range: 0-7 
- VOID Return


ServoEnable

ServoEnable
Enable a Servo output Ch0 to 7 = Pins 2 to 9 
- BYTE Channel
Range: 0-7 
- VOID Return


ServoSetPosition8

ServoSetPosition8
Sets the position as an 8-bit value Ch0 to 7 = Pins 2 to 9 
- BYTE Channel
Range: 0-7 
- BYTE Position
Range: 0-255 
- VOID Return


Property reference

Properties
Connection
COM Port
Lists all the current available COM port hardware on your PC. 
Refresh Ports
 
API Peripherals
Digital IO
 
Analog Input
 
Analog Output
 
PWM Output
 
I2C Bus
 
SPI Bus
 
UART
 
OneWire
 
SERVO
 
Console
Console Log
Create an automatic console log of the commands sent to the Arduino 
Log Mode
Controls how the console data is formatted. Fixed statistics gives an easy to read overview of the IO, Analog and PWM functionality Command Log gives a more in depth analysis of the outgoing commands and incoming returns