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.
3 Comments
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/99305-how-to-implement-serial-communication-between-simulink-r2012b-and-an-arduino#comment_376831
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/99305-how-to-implement-serial-communication-between-simulink-r2012b-and-an-arduino#comment_376831
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/99305-how-to-implement-serial-communication-between-simulink-r2012b-and-an-arduino#comment_398746
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/99305-how-to-implement-serial-communication-between-simulink-r2012b-and-an-arduino#comment_398746
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/99305-how-to-implement-serial-communication-between-simulink-r2012b-and-an-arduino#comment_398802
Direct link to this comment
https://www.mathworks.com/matlabcentral/answers/99305-how-to-implement-serial-communication-between-simulink-r2012b-and-an-arduino#comment_398802
Sign in to comment.