Официальный сайт компании Arduino по адресу arduino.cc
подсчёт количества препятствий
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Втр, 11/06/2019 - 11:21
#define ECHO 5 #define TRIG 4 long duration, cm, average; int x = 0; long aver[3]; //массив для расчёта среднего арифметического byte empty_signal; // храним уровень пустого сигнала unsigned long standby_timer; void setup() { Serial.begin(9600); pinMode(TRIG, OUTPUT); pinMode(ECHO, INPUT); } void measure() { digitalWrite(TRIG, LOW); delayMicroseconds(5); digitalWrite(TRIG, HIGH); delayMicroseconds(15); digitalWrite(TRIG, LOW); pinMode(ECHO, INPUT); duration = pulseIn (ECHO, HIGH); cm = (duration / 2) / 29.1; } void loop () { for (int i = 0; i <= 2; i++) { //заполняем массив тремя измерениями measure(); //измерить расстояние, получаем dist aver[i] = cm; //присваиваем значение dist элементу массива с номером i delay(50); //рекомендуемая задержка между измерениями } cm = (aver[0] + aver[1] + aver[2]) / 3; //расчёт среднего арифметического с 3-х измерений if ( cm < 10 ) { delay(100); x = x + 1; Serial.print("y="); Serial.println(x); if (cm > 10) { x = 0; Serial.print("x="); Serial.println(x); } else { delay(10); x = x; Serial.print("z="); Serial.println(cm); } } }
вот программа, но я не могу прописать что бы подсчет вёлся после ухода препятсвия от датчик
как можно прописать этот момент??
Вам надо поработать над ЛОГИКОЙ. Код в строчках 35-39 не выполнится никогда следовательно х никогда не станет 0.
Особенно мне понравилась строчка 42 (х = х)
Что является критерием "ухода препятсвия от датчик"а?