Filter löschen
Filter löschen

Real Time Data Acquisition With Arduino Analog Input

4 Ansichten (letzte 30 Tage)
Darryl
Darryl am 4 Jul. 2013
Bearbeitet: Mehmet Bulun am 2 Nov. 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.

Antworten (2)

David Sanchez
David Sanchez am 4 Jul. 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 Kommentar
Darryl
Darryl am 4 Jul. 2013
Bearbeitet: Darryl am 4 Jul. 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?

Melden Sie sich an, um zu kommentieren.


Mehmet Bulun
Mehmet Bulun am 2 Nov. 2017
Bearbeitet: Mehmet Bulun am 2 Nov. 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

Kategorien

Mehr zu MATLAB Support Package for Arduino Hardware finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by