Как узнать минимальные значения с датчика
- Войдите на сайт для отправки комментариев
Ср, 12/07/2017 - 23:43
Когда датчик выдает значения ниже 36 по Serial бегут строки с цыфрами как сделать так чтоб выводило не несколько значений а одно и самое минимальное значение
const int analogInPin = A0;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
sensorValue = analogRead(analogInPin);
if(sensorValue < 36){
Serial.println(sensorValue);
}
delay(4);
}

Что такое "самое минимальное значение"? Вот, например, на вашей картинке минимальное значение 31. Выводить его? Или подождать? Вдруг дальше будет еще ниже?
Это я к тому, что вы задачу четче сформулируйте...
Например, этот скетч будет выводить значения, только если они меньше предыдущего минимума:
const int analogInPin = A0; int sensorValue = 100; int oldvalue =36; void setup() { Serial.begin(9600); } void loop() { sensorValue = analogRead(analogInPin); if(sensorValue < oldvalue){ Serial.print("New minimal value = "); Serial.println(sensorValue); oldvalue = sensorValue; } delay(200); }ЗЫ задержку в lopp ставьте побольше, читать сигнал так часто не нужно.
Если увеличиваю задержку программа не успевает распознать, нужно именно минимальное значение например: в моммент когда значение падает ниже 36 значения которые полученны надо записать и среди них найти нимимум а когда сигнал снова увеличится выше 36 вывести максимальное значение по Serial
Пожалуйста кто нибудь помогите мне сделать это.. я уже всю голову над этим сломал.. в общем я хочу сделать систему распознания монет.. стоит фотодиод и фототранзистор когда между ними пролетает монетка сигнал меняется если монетка больше то значения с датчика ниже все монеты определяются но мне нужно узнать какой минимальный сигнал получен с датчика в момент когда монета пролетает
в моммент когда значение падает ниже 36 значения которые полученны надо записать и среди них найти нимимум а когда сигнал снова увеличится выше 36 вывести максимальное значение по Serial
Вы сами изложили почти готовый алгоритм, вот он - в момент, когда значение падает ниже 36 - записываете значение в переменную. Каждое следующее значение сравниваете с записанным, если новое меньше - запоминаете его вместо прежнего. Когда сигнал снова увеличится выше 36 вывести запомненное значение по Serial. Код попробуйте сами поправить, это не должно быть сложно.