Ультразвуковой дальномер для грузовиков в очереди, Нужна помощь
- Войдите на сайт для отправки комментариев
Доброго времени суток, товарищи.
Описание устройства которое хочу сделать:
допустим стоишь в очереди на КАМАЗе( а стоять приходится много) впереди стоящий авто продвигается дальше, а я в этот момент сплю.
Подскажите, пожалуйста, какой оператор использовать, если расстояние больше 70см в течении 60сек, тогда уже включить реле, а то HC-SR04 глючный и реле будет срабатывать не всегда в нужный момент.
int Relay = 5;
int Relay2 = 6;
long duration, cm;
void setup() {
pinMode(3, OUTPUT);
pinMode(4, INPUT);
pinMode(Relay, OUTPUT);
pinMode(Relay2, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(3, LOW);
delayMicroseconds(2);
digitalWrite(3, HIGH);
delayMicroseconds(10);
digitalWrite(3, LOW);
duration = pulseIn (4, HIGH);
cm = duration/29/2;
if (cm<70)
{
}
else
{
digitalWrite(Relay, LOW); // реле включено
delay(5000);
digitalWrite(Relay, HIGH); // реле выключено
delay(2000);
}
Serial.print(cm);
Serial.print("cm");
Serial.println ();
delay(500); // задержка цикла
}
>какой оператор использовать, если расстояние больше 70см в течении 60сек,
ответ: нет такого оператора.
1) допустим loop() выполняется раз в 10 секунд
2) допустим раз в 60 секунд вы находите среднее между результатами измерений расстояния, т.е. по 6 выборкам
3) если это среднее больше уставки - пищим.
в данном случае оператор if.