如何使超声波传感器触发 LED 保持亮起直到重置?



所以,我知道这可能非常简单,但我是arduino的新手,我只是画一个空白。我正在制作带有HC-SRO4超声波传感器的运动探测器。现在我已经设置了它,每当它感应到 60 厘米内的物体时,它就会打开 LED 灯,但是当物体消失时,LED 就会关闭。我想发生的是它会一直亮着,直到我按下按钮重置它。任何帮助都非常感谢,我提前感谢您。

void setup() {
#define LED 8
#define trigPin 12
#define echoPin 13
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LED, OUTPUT);
}

void loop() {
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1

;if (distance >= 60 || distance <= 0){
Serial.println("no object detected");
digitalWrite(LED, LOW);}
else {
Serial.println("object detected");
digitalWrite(LED, HIGH);
}}

为此,您在按下时制作低按钮引脚。一旦 OOBJECT 靠近标志,标志将设置一次,它将移动到 while 循环并运行直到按下按钮

#define LED 8
#define trigPin 12
#define echoPin 13
#define push_button 5
int flag=0;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LED, OUTPUT);
pinMode(push_button,INPUT);
}

void loop() {
int duration, distance;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if(digitalRead()==0)
{
flag=0;
}

if (distance >= 60 || distance <= 0){
Serial.println("no object detected");
digitalWrite(LED, LOW);}
else {
Serial.println("object detected");
flag=1;
while(flag=1)
{
digitalWrite(LED, HIGH);}
}}

相关内容

  • 没有找到相关文章

最新更新