Arduino I/O-Matlab Basic Tutorial




About: the simpler, the better!!

this is my very first instructables and I was referred by an old member. Follow her link here: (

Its a simple illustration on how we can connect Arduino to Matlab and actually control and get information on Arduino
using Matlab

I have seen few tutorials regarding how to control or get data from Arduino using Matlab. Matlab is a very powerful tool for student and engineers a like. That's why i want to create this tutorial as a start for those, like me want to explore the 2 powerful tools in engineering and techs.

It's a rough start for me since this is my first post in instructables.... feel free to comment so i can improve it thanks!

here's the vid for the demo:

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Step 1: Things You Need to Know

In this tutorial you need to know the following:
1. Matlab and creating M-file and GUI (there are tons of tutorials online)
2. Arduino and Arduino programming
3. Arduino Support with Matlab
        tutorials from Giampiero Campa

Step 2: Step 2: Things You Need (materials)

1. PC with Matlab installed and the ArduinoIO package from MathWorks
2. Arduino
3. USB cable for the Arduino
4. LED
5. Photodiode (Photoresistor as an alternative)
6. Resistors

Step 3: Step 3: the Dreaded Process

For the Arduino:
1. Connect the circuit.
2. Connect your Arduino to your PC.
3. From the ArduinoIO (
     upload the adiosrv.pde to your arduino. Now your arduino will be the server that will accepting commands
     comming from Matlab.
For the Matlab
3. Run your Matlab as an administrator.
4. From the command window in Matlab type "install_arduino" (make sure that the active directory is in your ArduinoIO folder)
For this tutorial my idea is to make a manual and automatic lighting of an LED
5. Create an M-File in Matlab (or download below my GUI program). Make sure you have the right COM port of your Arduino)
     (the yes.m.txt is the program source code, the yes.fig.txt is the GUI just remove the txt extension)
6. Run the program. Enjoy!

Be the First to Share


    • CNC Contest

      CNC Contest
    • Make it Move

      Make it Move
    • Teacher Contest

      Teacher Contest

    20 Discussions


    3 years ago

    I am trying download the code but I don´t can. please you can help me?


    4 years ago on Introduction

    Very good tutorial, but I've tried many times, always just an error message like this below, can you help me? please

    Error in gui_mainfcn (line 95)
    feval (varargin {:});

    Error in yes (line 16)
    gui_mainfcn (gui_State, varargin {:});

    Error in @ (hObject, eventdata) yes ('pbOn_Callback', hObject, eventdata, guidata (hObject))


    4 years ago on Introduction

    How can I connect BCILAB 1.1 output from MATLAB 2013b to arduino and then using it cntrolling servomotor? The picture depicted is dynamic graphical output of MATLAB .I want to use it control the servo motor.

    bci .jpgbci 2.jpg

    Reply 4 years ago on Introduction

    1. try to get the com port of your arduino

    2. access the communication by accessing >>a = serial('COM1') -->> this is an example

    3. then to open the communication >>fopen(a)

    to access data (receive data) from the arduino >>fscanf(a)

    4. to send data (transmit data) to the arduino >> fprintf(a,'your value here')


    4 years ago on Introduction

    Hi, sorry for may late reply. you can download the codes here. the codes are:



    just change the filename and remove the .txt extenstion

    jorge alejandrol

    4 years ago

    Can you pass me the code please? my email is


    the yes.m.txt and yes.fig.tx if the file. download it and change the filename to:



    put it on documents\matlab folder


    Reply 4 years ago

    great! can you borrow me the program code please?

    Alan Souzarmagtibay

    Reply 5 years ago on Introduction

    Thanks bro!

    in my project i've building a Matlab GUI plotting real time data from arduino. But when I try to read two or more analog ports at the same time theres a error messege about the COM port. Do you know how I fix it?

    Alan Souza

    5 years ago

    Great Job!!

    I'm making a project that i'm using the arduino and matlab.

    Can you send me the m.file and figure?