подсчёт количества препятствий
- Войдите на сайт для отправки комментариев
Втр, 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 (х = х)
Что является критерием "ухода препятсвия от датчик"а?