INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Nano / Digispark + HC-SR501 PIR Modul + GoPro
17.04.2015, 23:00 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2015 19:52 von Elektro-Eichel.)
Beitrag #1
Arduino Nano / Digispark + HC-SR501 PIR Modul + GoPro
Hallöchen zusammen,

es geht um Folgendes:

Ich habe einen Digispark und dieser wird mit einem HC-SR501 angesteuert bei Bewegung.

Der HC-SR501 gibt bei Bewegungserkennung ein HIGH mit 3,4 V aus.
Das wird soweit auch vom Digispark erkannt und die LED am Digispark Leuchtet für diese Zeit auf (3 Sekunden HIGH nach Erkennung).

Nun soll aber der Taster der Funkfernbedienung der GoPro mit einem Optokoppler "gebrückt" werden, so dass die GoPro ein Video macht.

Sobald keine Bewegung mehr erkannt wird, soll Digispark den Optokoppler auf LOW, und nach einem 500ms Delay auf HIGH und wieder auf LOW schalten.

Es soll praktisch nur ein kurzer "Klick" auf den Taster simuliert werden, und danach nochmal, um die Aufnahme wieder anzuhalten, sobald sich nichts mehr bewegt.

Wie schaffe ich es, dass bei einer Bewegung aus dem dauer HIGH vom Bewegungsmelder nur ein kurzer Puls vom Digispark ausgegeben wird?

Es soll gleichzeitig auch erkannt werde, wenn das HIGH des Bewegungsmelders wieder auf LOW fällt, dann soll der Taster per Optokoppler nochmals kurz "gedrückt werden"

Hier noch ein Video zur Verdeutlichung:

https://www.youtube.com/watch?v=9CHb2R8H8dY

Die LED soll 1 x Blinken wenn die Bewegung erkannt wird.
Sobald die Bewegung aufhört noch 1 x

Nun müsste ich diese kurzen "Pulse" in meinen Code einfügen.
Mein Code ist der folgende:

Code:
#include <SoftSerial.h>
#include <TinyPinChange.h>

const byte ledPin =  1;    // LED pin
const byte motionPin = 0;   // motion detector input pin
byte senseMotion = 2;       // variable to hold current state of motion detector

void setup() {
  // set the digital pin directions
  pinMode(ledPin, OUTPUT);      
  pinMode(motionPin, INPUT);
}

void loop()
{
    // Now watch for burglers
    senseMotion = digitalRead(motionPin);
    if (senseMotion == HIGH) {    // burgler found!
      digitalWrite(ledPin, HIGH);
        
      }

else
{                      // no burgler, yet...
digitalWrite(ledPin, LOW);

delay(100);

}




while (digitalRead(motionPin) == HIGH) {
  delay(200);
digitalWrite(ledPin, LOW);



if (senseMotion == LOW) {
  digitalWrite(ledPin, HIGH);
  delay(200);
    digitalWrite(ledPin, LOW);
      delay(200);

}
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.04.2015, 18:55
Beitrag #2
RE: Arduino Nano / Digispark + HC-SR501 PIR Modul + GoPro
Wenn ich es richtig verstehe willst du also die Flanken zum Triggern nehmen, nicht einen bestimmten Zustand?!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.04.2015, 20:19 (Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2015 20:30 von Elektro-Eichel.)
Beitrag #3
RE: Arduino Nano / Digispark + HC-SR501 PIR Modul + GoPro
(20.04.2015 18:55)MaHa1976 schrieb:  Wenn ich es richtig verstehe willst du also die Flanken zum Triggern nehmen, nicht einen bestimmten Zustand?!


Hallöchen,

und danke für deine Antwort.

Ja genau das.

Das dauerhafte HIGH vom Bewegungsmelder soll wie ein kurzer "Druck" auf einen Taster sein.

Und sobald das HIGH vom Bewegungsmelder auf LOW geht soll nochmals ein kurzer "Druck" auf den Taster erfolgen.

Eigentlich sehr simpel, aber ich komme nicht drauf.

Der Sketch kann so ja gar nicht funktionieren, so wird die LED ja bei jedem loop erneut auf HIGH gesetzt, oder?

Der Sketch passt nun gar nimmer, ich weiß ab da nimmer weiter, der andere war unlogisch.

Code:
void loop()
{
    // Now watch for burglers
    senseMotion = digitalRead(motionPin);
    if (senseMotion == HIGH) {    // burgler found!
      digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  
  
  }
  
  else {                      // no burgler, yet...
      digitalWrite(ledPin, LOW);

}

while (senseMotion == HIGH);


}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Zahl von SD-Card Modul einlesen und Var. zuweisen Nafetz 13 290 28.10.2016 10:12
Letzter Beitrag: hotsystems
  Empfange nur "Geister"zeichen vom BT-Modul dabbamonkeyyy 2 128 23.10.2016 11:34
Letzter Beitrag: Harry Hirsch
  HC 05 BT Modul Lolliball 1 134 16.10.2016 09:43
Letzter Beitrag: Lolliball
  Ethernet Modul Enc28j60 Pin13 LED Schalten BennIY 16 489 27.09.2016 20:30
Letzter Beitrag: BennIY
  Arduino Nano --> ATtiny 84A Mathias 25 879 15.07.2016 16:26
Letzter Beitrag: hotsystems
Sad Suche simplen Scetch für ESP8266-Modul torsten_156 14 1.105 19.04.2016 07:54
Letzter Beitrag: amithlon
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.165 17.04.2016 21:12
Letzter Beitrag: hotsystems
  I²C vom NANO zum PI Probleme mit High/Low Bit Tobias1984 4 328 29.02.2016 00:00
Letzter Beitrag: hotsystems
  Brauche Hilfe HC-SR501 als Bewegungsmelder für Heimautomatisierung renmet 6 535 25.02.2016 10:22
Letzter Beitrag: hotsystems
  HC-05 Modul auf Funktion prüfen. arduinofan 2 360 03.02.2016 19:18
Letzter Beitrag: arduinofan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste