Component: API (Arduino Mega) (API Slave Devices)

From Flowcode Help
Jump to navigationJump to search
Author Matrix TSL
Version 2.0
Category API Slave Devices


API (Arduino Mega) component

Connects to an Arduino Mega 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 / UART / PWM See Flowcode Help Wiki for firmware.

Component Pack

FREE

Detailed description

The App Developer (Arduino Mega) component allows an Arduino Mega board to be controlled from within the Flowcode simulation runtime.

To allow Flowcode to communicate and control the Arduino Mega hardware the board must first be pre-programmed with dedicated firmware.

The firmware hex file and Flowcode source project can be downloaded from here.

ZIP Icon.png Arduino Mega 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 SCADA_Ard_Mega component 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 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
Device Port Pin E0 E1 E2 E5 G5 E3 H3 H4 H6 H6 B4 B5 B6 B7 J1 J0 H1 H0 D3 D2 D1 D0 A0 A1 A2 A3 A4 A5 A6 A7 C7 C6 C5 C4 C3 C2 C1 C0 D7 G2 G1 G0 L7 L6 L5 L4 L3 L2 L1 L0
Arduino Style Pin 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49


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 6 7 8 9 10 11 12 13 14 15
Device Port Pin F0 F1 F2 F3 F4 F5 F6 F7 K0 K1 K2 K3 K4 K5 K6 K7
Arduino Style Pin A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15


Here is a table showing how the App Developer Slave peripheral pins are mapped on the device.

App Developer Slave Peripheral Pin I2C 0 SDA I2C 0 SCL SPI 0 MOSI SPI 0 MISO SPI 0 SCK UART 0 RX UART 0 TX UART 1 RX UART 1 TX UART 2 RX UART 2 TX PWM 0 PWM 1 PWM 2 PWM 3 PWM 4 PWM 5 PWM 6 PWM 7 PWM 8 PWM 9 PWM 10 PWM 11 PWM 12 PWM 13 PWM 14 PWM 15
Device Port Pin D1 D0 B3 B4 B5 D2 D3 H0 H1 J0 J1 B7 G5 B5 B6 B7 B4 H6 E3 E4 E5 H3 H4 H5 L3 L4 L5
Arduino Style Pin D20 D21 D50 D10 D11 D19 D18 D17 D16 D15 D14 D13 D4 D11 D12 D13 D10 D9 D5 D2 D3 D6 D7 D8 D46 D45 D44

Downloadable macro reference

Fc9-comp-macro.png I2CInitialise
Initialsie the I2C module ready for communications 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
Fc9-u8-icon.png - BYTE Baud
0=100KHz, 1=400KHz, 2=1MHz 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png 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 
Fc9-u8-icon.png - BYTE ADCChannel
Range: 0-5 
Fc9-u8-icon.png - BYTE SampleCount
Range: 1- 32 
Fc9-u16-icon.png - UINT SampleDelay
Delay in us between each sample 
Fc9-u8-icon.png - BYTE Samples
8-bit samples returned from the function 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png SPITransferTrans
Transfer an array of bytes using the SPI bus 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
Fc9-u16-icon.png - UINT Count
Number of bytes to send and receive 
Fc9-u8-icon.png - BYTE DataOut
Outgoing data 
Fc9-u8-icon.png - BYTE DataIn
Incoming data 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png IOGetInputPin
Sets the selected digital pin to an input and reads the input state. 
Fc9-u8-icon.png - BYTE Pin
Range: 0-53 
Fc9-bool-icon.png - BOOL Return


Fc9-comp-macro.png UARTBaud
Control the communications rate of the UART module 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - UART Bus Count - 1 
Fc9-u8-icon.png - BYTE Rate
0=1200, 1=2400, 2=4800, 3=9600, 4=19200, 5=38400, 6=57600, 7=115200 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ADCSample8
Reads the voltage present on an Analog pin as an 8-bit value range 0-255 
Fc9-u8-icon.png - BYTE ADCChannel
Range: 0-15 
Fc9-u8-icon.png - BYTE Return


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


Fc9-comp-macro.png UARTCheckRX
Check to see if the UART module has received any data 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - UART Bus Count - 1 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png UARTInitialise
Initialise the UART module ready for communications 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - UART Bus Count - 1 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png RegisterWrite
Writes to one of the registers on-board the device 
Fc9-u16-icon.png - UINT RegisterAddress
The address of the register 
Fc9-u8-icon.png - BYTE Data
The data value to assign to the register 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png 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. 
Fc9-u8-icon.png - BYTE ChargeTime
Default 10 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png RegisterRead
Read one of the registers on-board the device 
Fc9-u16-icon.png - UINT RegisterAddress
The address of the register 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png I2CRestart
Put the I2C Module into Restart mode 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png PWMDisable
Disable a PWM output 
Fc9-u8-icon.png - BYTE Channel
Range: 0-15 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png I2CStart
Put the I2C Module into Start mode 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png SPITransfer
Transfer a byte using the SPI bus 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
Fc9-u8-icon.png - BYTE DataOut
 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png I2CReceive
Receive a byte using the I2C bus 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
Fc9-bool-icon.png - BOOL Last
Last byte to receive: Range 0-1 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png I2CStop
Put the I2C Module into Stop mode 
Fc9-u8-icon.png - BYTE Channel
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ADCSetReferenceVoltage
Specified the reference setting for ADC reads. 
Fc9-u8-icon.png - BYTE RefType
0=AREF, 1=VCC, 3=Internal 1.1V 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png SPIPrescaler
Modify the speed of the SPI bus 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
Fc9-u8-icon.png - BYTE Prescaler
Range: 0-2 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png PWMSetDuty
Sets the duty for the PWM output 
Fc9-u8-icon.png - BYTE Channel
Range: 0-15 
Fc9-u8-icon.png - BYTE Duty
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ADCSample10
Reads the voltage present on an Analog pin as an 10-bit value range 0-1023 
Fc9-u8-icon.png - BYTE ADCChannel
Range: 0-15 
Fc9-u16-icon.png - UINT Return


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


Fc9-comp-macro.png IOSetOutputPin
Sets the selected digital pin to an output and assigns the output state. 
Fc9-u8-icon.png - BYTE Pin
Range: 0-53 
Fc9-bool-icon.png - BOOL State
Range: 0-1 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png UARTReceive
Receives a data byte from the UART. Recommend calling the UARTCheckRx function first to ensure data is available. 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - UART Bus Count - 1 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png 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 
Fc9-u8-icon.png - BYTE ADCChannel
Range: 0-5 
Fc9-u8-icon.png - BYTE SampleCount
Range: 1- 100 
Fc9-u8-icon.png - BYTE SampleDelay
Delay in us between each sample 
Fc9-u16-icon.png - UINT Return


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


Fc9-comp-macro.png SPIInitialise
Initialsie the SPI module ready for communications 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - SPI Bus Count - 1 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png I2CSend
Transmit a byte using the I2C bus 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - I2C Bus Count - 1 
Fc9-u8-icon.png - BYTE DataOut
 
Fc9-bool-icon.png - BOOL Return


Fc9-comp-macro.png UARTSend
Send a byte via the UART module 
Fc9-u8-icon.png - BYTE Channel
Channel Index: Range 0 - UART Bus Count - 1 
Fc9-u8-icon.png - BYTE Data
Data Byte to send. Range: 0-255 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png PWMSetPrescaler
Sets the prescaler for the PWM output 
Fc9-u8-icon.png - BYTE Channel
Range: 0-15 
Fc9-u8-icon.png - BYTE Prescaler
 
Fc9-u8-icon.png - BYTE Period
Default 255 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png PWMEnable
Enable a PWM output 
Fc9-u8-icon.png - BYTE Channel
Range: 0-15 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png 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 
Fc9-u8-icon.png - BYTE ADCChannel
Range: 0-5 
Fc9-u8-icon.png - BYTE SampleCount
Range: 1- 32 
Fc9-u16-icon.png - UINT SampleDelay
Delay in us between each sample 
Fc9-u16-icon.png - UINT Samples
10-bit samples returned from the function 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png 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 
Fc9-u8-icon.png - BYTE ADCChannel
Range: 0-5 
Fc9-u8-icon.png - BYTE SampleCount
Range: 1- 100 
Fc9-u8-icon.png - BYTE SampleDelay
Delay in us between each sample 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png Initialise
Initialise the comms to the Arduino board ready for commands to be sent. 
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-conn-icon.png Connection
Fc9-type-16-icon.png COM Port
Lists all the current available COM port hardware on your PC. 
Fc9-type-7-icon.png Refresh Ports
 
Fc9-conn-icon.png API Peripherals
Fc9-type-21-icon.png Digital IO
 
Fc9-type-21-icon.png Analog Input
 
Fc9-type-21-icon.png Analog Output
 
Fc9-type-21-icon.png PWM Output
 
Fc9-type-21-icon.png I2C Bus
 
Fc9-type-21-icon.png SPI Bus
 
Fc9-type-21-icon.png UART
 
Fc9-type-21-icon.png Servo
 
Fc9-conn-icon.png Console
Fc9-type-7-icon.png Console Log
Create an automatic console log of the commands sent to the Arduino 
Fc9-type-16-icon.png 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