Как вы считаете объекты (используя ультразвуковой датчик HCSR04) равными 1 после того, как они покидают путь триггера/эха?

Я нашел простой код в Интернете, который соответствует моей цели почти на 100%, однако, когда я кладу руку перед ним, число продолжает считать. Я пытаюсь считать только "1", когда твердый объект переместился из начального вида датчика в конечный.

#define trigPin 13
#define echoPin 12
int counter = 0;
int currentState = 0;
int previousState = 0;

void setup() {
 Serial.begin (9600);
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
 long duration, distance;
 digitalWrite(trigPin, LOW); 
 delayMicroseconds(2); 
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10); 
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 distance = (duration/2) / 29.1;
 if (distance <= 10){ 
 currentState = 1;
 }
 else {

, 👍1

Обсуждение

В вашем коде в конце отсутствует какая-то часть. Может быть, это просто ошибка при копировании. Пожалуйста, предоставьте полный код, @chrisl

это то же самое, что подсчитать, сколько раз включался свет ....вы не считаете 1 каждый раз, когда включается свет, когда вы смотрите на него ... есть еще кое-что, что вы должны увидеть, прежде чем сможете сказать, что свет только что был включен, @jsotola