How to end loop if value does not change for 10 consecutive seconds
1 view (last 30 days)
Show older comments
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.
0 Comments
Answers (1)
Madhu Govindarajan
on 13 Feb 2018
Edited: Madhu Govindarajan
on 13 Feb 2018
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
See Also
Categories
Find more on Arduino Hardware in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!