Здравствуйте. Вновь возник вопрос по поводу коддинга ардуинки. Есть задача: "Проиграть мелодию, когда значение с датчика ниже, чем 20". Написал код, в принципе работает, но хочется избавиться от delay. Посмотрел много видео про миллис, но не смог интегрировать его в мой код. Подскажите, пожалуйста, как убрать из этого кода delay? Поскольку датчик очень много раз в секунду выдает значения, то если убрать задержку, мелодия не проиграется(при срабатывании датчика удара значение становиться ниже 20 на несколько миллисекунд, затем опять возвращается к значению больше 20, и мелодия не успевает даже начать проигрываться, она длительностью 2 секунды).
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
SoftwareSerial mySerial(10, 11);
int udar = analogRead(A3);
void setup () {
Serial.begin (9600);
mySerial.begin (9600);
mp3_set_serial (mySerial);
mp3_set_volume (5);
}
void loop () {
Serial.println (udar);
if (udar < 20) {
mp3_play(1);
delay (2000);
udar = 21;
}
}
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
SoftwareSerial mySerial(10, 11);
int udar = analogRead(A3);
void setup () {
Serial.begin (9600);
mySerial.begin (9600);
mp3_set_serial (mySerial);
mp3_set_volume (5);
}
void loop () {
Serial.println (udar);
if (udar < 20) {
mp3_play(1);
delay (2000);
udar = 21;
}
}