Как сделать переключаемый модуль инфракрасного обнаружения движения?
Я только что получил Arduino и инфракрасный модуль обнаружения движения. Я пытался сделать так, чтобы, если модуль обнаруживал движение, светодиод включался, а если он снова обнаруживал движение, он выключался. Поэтому я написал этот код и попытался найти решения в Интернете, но не смог его найти. Я действительно не знаю, что изменить в своем коде, чтобы он работал. Есть ли у кого-нибудь решения для этого?
(Значение датчика может быть 0 или 1, 0 означает, что ничего не обнаружено, 1 означает, что что-то обнаружено. После обнаружения значение автоматически возвращается к 0 через несколько секунд)
int Sensor = 4;
int led = 13;
bool bool1 = false;
void setup() {
pinMode(Sensor, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
int SensorValue = digitalRead(Sensor);
if(SensorValue == 1){
bool1 = !bool1;
}
if(bool1 == true){
digitalWrite(led, HIGH);
}
if(bool1 == false){
digitalWrite(led, LOW);
}
}
@henk jooost, 👍1
Обсуждение1 ответ
Рассмотрите возможность использования конечного автомата с 4 состояниями. В настоящее время у вас есть только 2 состояния. Один, где «bool1» имеет значение TRUE, а другой, когда «bool1» имеет значение FALSE. Необходимы 4 состояния:
- Когда светодиод ВЫКЛ. PIR НЕ АКТИВЕН.
- Когда светодиод ВЫКЛ. PIR АКТИВЕН.
- Когда светодиод горит и PIR АКТИВЕН.
- Когда светодиод горит, а PIR НЕАКТИВЕН.
Когда вы путешествуете между этими 4 состояниями, вы обнаружите, что вам нужно включать светодиод только при путешествии между состояниями 2 и amp; 3. И вам нужно будет выключать светодиод только при перемещении между состояниями 4 и amp; 1.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
что изменить в моем коде, чтобы он работал
.... что не так с тем, как код ведет себя сейчас?, @jsotola