簡體   English   中英

如何讓超聲波傳感器觸發 LED 保持亮起直到重置?

[英]How do i make an ultrasonic sensor trigger an LED to stay on until reset?

所以,我知道這可能非常簡單,但我是 arduino 的新手,我只是在畫一個空白。 我正在制作一個帶有 HC-SRO4 超聲波傳感器的運動檢測器。 現在我已經設置好了,所以每當它在 60 厘米內感應到 object 時,它就會打開 LED 燈,但是當 object 消失時,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);
}}

為此,您在按下時制作了低按鈕銷。一旦對象靠近標志將設置,一旦設置它將移動到 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);}
}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM