How to implement Serial Communication between Simulink (R2012b) and an Arduino?

58 views (last 30 days)
I would like to have Simulink run a model (i.e. controller), transmit information to the Arduino, have the Arduino receive the data and implement some action based on the data.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 6 May 2013
The solution is to run a model in Simulink using the play button, and run another model on the Arduino using the "Tools->Run on Target Hardware->Run" option.
I have included two models which perform this functionality. The transmitting model is called "SerialSend" and the receiving model is called "ArduinoReceive". The SerialSend model should be run by using the play button while the ArduinoReceive model should be run by selecting "Tools->Run on Target Hardware->Run" to push code to the Arduino. The transmitting model sends a pulse with values of 2 and 3. The pulse has a period of 4 seconds with a 50% duty cycle. The receiving model just checks to see if the value sent is a 2 or 3 and sends a corresponding boolean to pin 13. On the Arduino Mega 2560 and Uno this will cause the corresponding onboard LED to blink with a period of 4 seconds.
The transmitting model should not try to push code to the target by using the "Tools->Run on Target Hardware->Run" command. Doing so will push code to the Arduino and erase the original code, as you already discovered.
The SerialSend model uses the Instrument Control Toolbox "Serial Send" block to transmit data over the serial connection (i.e. usb programming cable). You will need to check the device manager to determine which COM port corresponds to the Arduino. The ArduinoReceive model should use an "Arduino Serial Receive" block.
Romeo Marroquin Ajcac
Romeo Marroquin Ajcac on 25 Nov 2021 at 17:58
When I use this model the LED does not blink, it just stays on.Is there a particular reason for this?

Sign in to comment.

More Answers (0)


No tags entered yet.




Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!