How to end loop if value does not change for 10 consecutive seconds

조회 수: 1 (최근 30일)
Gianluca Finotti
Gianluca Finotti 2018년 2월 13일
댓글: Gianluca Finotti 2018년 2월 20일
Hi, I am collecting data from a potentiometer connected to an Arduino. In the script, I tell matlab to keep collecting data for 2 minutes. But I need to tell it that if the user does not move the potentiometer for 10 consecutive seconds, then it should stop the loop and move to the next session (write the data to an excel file). Does anybody have ideas on how to achieve this?
Thank you in advance.

답변 (1개)

Madhu Govindarajan
Madhu Govindarajan 2018년 2월 13일
편집: Madhu Govindarajan 2018년 2월 13일
Here is a potential loop that you can use (with some changes here and there) -
a = arduino;
flag = true;
prevVal = 0;
count = 0;
while flag
val = readVoltage(a,'your pin number here');
if abs(val - prevVal) < eps % You can change the eps value to something reasonable based on what you see.
count = count + 1;
else
count = 0;
end
if count == 10
flag = false;
end
prevVal = val;
end
  댓글 수: 1
Gianluca Finotti
Gianluca Finotti 2018년 2월 20일
Hi, I ended up using a similar approach, but this looks like it could work all the same =)
Thank you very much, I really appreciate.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB 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