Arduino Polska Forum
Dwukrotny digitalread - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: Dwukrotny digitalread (/watek-dwukrotny-digitalread)



Dwukrotny digitalread - Dominik156 - 08-12-2020

Witam, chce zrobić w domu swiatlo włączane na czujnik ruchu, problem jest taki ze czujnik jest bardzo czuły i łapie ruch z duzej odległości, chcialbym zrobic program arduino który by sprawdzal dwukrotnie odczyt czujnika ruchu np za 3 sekundy i dopiero włączał światlo

Sprawdzanie ruchu
czekanie 3 sekund
znowu sprawdzenie ruchu
włączenie swiatla
wyłączenie po braku ruchu

Mam nadzieje ze ktos zrozumiał o co mi chodzi


  1. int
    ledPin = 13;                // choose the pin for the LED

  2. int inputPin = 2;              // choose the input pin (for PIR sensor)

  3. int pirState = LOW;            // we start, assuming no motion detected

  4. int val = 0;                    // variable for reading the pin status


  5. void setup() {

  6.   pinMode(ledPin, OUTPUT);      // declare LED as output

  7.   pinMode(inputPin, INPUT);    // declare sensor as input


  8.   Serial.begin(9600);

  9. }


  10. void loop(){

  11.   val = digitalRead(inputPin);  // read input value

  12.   if (val == HIGH) {            // check if the input is HIGH

  13.     digitalWrite(ledPin, HIGH);  // turn LED ON

  14.     if (pirState == LOW) {

  15.       // we have just turned on

  16.       Serial.println("Motion detected!");

  17.       // We only want to print on the output change, not state

  18.       pirState = HIGH;

  19.     }

  20.   } else {

  21.     digitalWrite(ledPin, LOW); // turn LED OFF

  22.     if (pirState == HIGH){

  23.       // we have just turned of

  24.       Serial.println("Motion ended!");

  25.       // We only want to print on the output change, not state

  26.       pirState = LOW;

  27.     }

  28.   }
    Mam tu taki program, który może byc pomocny



RE: Dwukrotny digitalread - Jarewa0606 - 08-12-2020

To co chcesz wykonać to tylko na przerywaniu.... Bo skąd program w przypadku blokady będzie wiedział czy to było chwilowe włączenie czy stałe?? wiec musisz na przerwaniu by program widział czy te 3s to stan ciągły wysoki...