フィルターのクリア

Real Time Data Acquisition With Arduino Analog Input

4 ビュー (過去 30 日間)
Darryl
Darryl 2013 年 7 月 4 日
編集済み: Mehmet Bulun 2017 年 11 月 2 日
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.

回答 (2 件)

David Sanchez
David Sanchez 2013 年 7 月 4 日
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 件のコメント
Darryl
Darryl 2013 年 7 月 4 日
編集済み: Darryl 2013 年 7 月 4 日
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?

サインインしてコメントする。


Mehmet Bulun
Mehmet Bulun 2017 年 11 月 2 日
編集済み: Mehmet Bulun 2017 年 11 月 2 日
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

カテゴリ

Help Center および File ExchangeMATLAB Support Package for Arduino Hardware についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by