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
  Bitte um Hilfe Arduino Nano-MAX7219-PIR_Sensor Opa_Klaus 35 800 20.05.2017 21:11
Letzter Beitrag: Opa_Klaus
  Lauflicht mit Nano Pixel und Joystick strobo 3 102 20.05.2017 20:16
Letzter Beitrag: Tommy56
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 578 29.04.2017 14:29
Letzter Beitrag: hotsystems
  ATtiny85 Digispark georg01 4 195 25.03.2017 20:58
Letzter Beitrag: Tommy56
  Digispark PWM hr3 1 191 11.02.2017 16:28
Letzter Beitrag: hotsystems
  TimerOne und I²C und Arduino Nano Mathias 1 239 07.12.2016 18:17
Letzter Beitrag: Mathias
  Zahl von SD-Card Modul einlesen und Var. zuweisen Nafetz 13 742 28.10.2016 10:12
Letzter Beitrag: hotsystems
  Empfange nur "Geister"zeichen vom BT-Modul dabbamonkeyyy 2 235 23.10.2016 11:34
Letzter Beitrag: Harry Hirsch
  HC 05 BT Modul Lolliball 1 296 16.10.2016 09:43
Letzter Beitrag: Lolliball
  Ethernet Modul Enc28j60 Pin13 LED Schalten BennIY 16 1.344 27.09.2016 20:30
Letzter Beitrag: BennIY

Gehe zu:


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