The Simulink Support Package for Arduino Hardware enables you to create and run Simulink models on an Arduino Mega 2560 board. The target includes a library of Simulink blocks for configuring and accessing Arduino sensors, actuators, and communication interfaces. Additionally, the target enables you to monitor and tune algorithms running on Arduino Mega 2560 board from the same Simulink models from which you developed the algorithms.
In this example, you will learn how to create and run a simple Simulink model on an Arduino Mega 2560 board. See other examples for Arduino Mega 2560 board to learn how to use External mode and implement more complex algorithms.
If you are new to Simulink, we recommend completing the Interactive Simulink Tutorial, reading the Getting Started section of the Simulink documentation, and running the Simulink Getting Started example.
To run this example, you will need the following hardware:
- Arduino Mega 2560 board
- USB cable
- 220 Ohm resistor
- Breadboard wires
- Small breadboard (recommended)
In this task, you will connect an LED to an Arduino output pin so you can see changes in the logical state of the pin.
1. Attach one end of the 220 Ohm resistor to output pin 9 on the Arduino Mega 2560 board. Use the recommended breadboard and the breadboard wires.
2. Attach the long leg (positive) of the LED to the resistor. Attach the short leg (negative) to the ground pin on the Arduino Mega 2560 board.
The Simulink Support Package for Arduino Hardware provides an easy way to create algorithms that use Arduino sensors and actuators by using blocks that can be added to your Simulink model. The blocks are used to configure the associated sensors and actuators, as well as to read and write data to them.
1. Enter simulink at the MATLAB prompt. This opens the Simulink Library Browser.
2. In the Simulink Library Browser, navigate to Simulink Support Package for Arduino Hardware.
3. Double-click the Digital Output block. Review the block mask, which contains a description of the block and parameters for configuring the associated Arduino digital output pin.
In this task, you will create a simple Simulink model that changes the state of the Arduino digital output pin.
1. In MATLAB, select HOME > New > Simulink Model.
2. Drag the Pulse Generator block from the Simulink Sources library to your model.
3. Double-click the Pulse Generator block. Set the Pulse type parameter to Sample based and set the Sample time parameter to 0.1 second.
4. Drag the Digital Output block to the model. Use the default block settings.
5. Connect the Pulse Generator block to the Digital Output block.
In this task, you will configure your model to run on the Arduino Mega 2560 board.
1. In your model, select Tools > Run on Target Hardware > Prepare to Run….
2. Review the parameters in the resulting dialog box. Unless already set, set the Target hardware parameter to Arduino Mega 2560. Do not change any other settings.
3. Click OK.
4. Save your model.
In this task, you will run your model on the Arduino Mega 2560 board.
1. Connect the Arduino Mega 2560 board to your computer with a USB cable.
2. In your Simulink model, select Tools > Run on Target Hardware > Run.
3. Look at the LED attached to pin 9. The LED should blink one time every second.
Experiment with other blocks in the Arduino block library. For example:
- Create and run a model that turns the LED on if a signal is applied to a digital input pin.
- Create and run a model that repeatedly brightens and dims an LED. Hint: Use the PWM block.
This example introduced the workflow for creating an algorithm from a Simulink model and then running it on Arduino Mega 2560 board. In this example, you learned that:
- The Simulink Support Package for Arduino Hardware provides blocks for configuring, reading from, and writing to Arduino sensors and actuators.
- You can use the options under Tools > Run on Target Hardware to prepare, configure, and run the model on an Arduino Mega 2560 board.