Real Time Data Acquisition With Arduino Analog Input

5 visualizaciones (últimos 30 días)
Darryl
Darryl el 4 de Jul. de 2013
Editada: Mehmet Bulun el 2 de Nov. de 2017
I'm in the process of trying to visualise my basic analog light sensor using the plotting function within MatLab.
This is my code so far:
a = arduino('/dev/tty.usbmodem411');
i = 1;
axis = 1;
while (i == 1)
b = a.analogRead(0);
axis = axis +1;
plot(axis, b);
pause(1);
drawnow;
end
I figured I'd keep it simple by using a sample rate of 1Hz.
My Y axis is moving up and down dependant on the light sensor value and the x axis is incrementing by 1 every time the loop increments, but I can't actually see the graph actually drawing anything.

Respuestas (2)

David Sanchez
David Sanchez el 4 de Jul. de 2013
Assuming the code on the Arduino side is sending something ( check it out, please ), and that the arduino object points to the right port, try this changes:
a = arduino('/dev/tty.usbmodem411');
i = 1;
axis = 1;
while (i == 1)
b = a.analogRead(0);
axis = axis +1;
plot(axis, b,axis, b,'r*');
drawnow;
pause(1);
end
  1 comentario
Darryl
Darryl el 4 de Jul. de 2013
Editada: Darryl el 4 de Jul. de 2013
Thanks for the reply. Yes 100% its on the correct port and the sensor is working using the values 0 - 1023.
I've just tried your code but all I get is a static red star right in the middle of the graph whilst the x and y axis are moving. Has "hold on" got to be activated?

Iniciar sesión para comentar.


Mehmet Bulun
Mehmet Bulun el 2 de Nov. de 2017
Editada: Mehmet Bulun el 2 de Nov. de 2017
Try below code.
a = arduino('/dev/tty.usbmodem411');
interval = 1000;
passo = 1;
t=1;
x=0;
while (t<interval)
b = a.analogRead(0);
x=[x,b];
plot(x);
axis([,interval,500,500]);%500 and 500 are axis limits
t=t+passo;
drawnow;
end

Categorías

Más información sobre Data Acquisition Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by