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
  ATtiny85 Digispark georg01 4 150 25.03.2017 20:58
Letzter Beitrag: Tommy56
  Digispark PWM hr3 1 169 11.02.2017 16:28
Letzter Beitrag: hotsystems
  TimerOne und I²C und Arduino Nano Mathias 1 220 07.12.2016 18:17
Letzter Beitrag: Mathias
  Zahl von SD-Card Modul einlesen und Var. zuweisen Nafetz 13 664 28.10.2016 10:12
Letzter Beitrag: hotsystems
  Empfange nur "Geister"zeichen vom BT-Modul dabbamonkeyyy 2 216 23.10.2016 11:34
Letzter Beitrag: Harry Hirsch
  HC 05 BT Modul Lolliball 1 272 16.10.2016 09:43
Letzter Beitrag: Lolliball
  Ethernet Modul Enc28j60 Pin13 LED Schalten BennIY 16 1.249 27.09.2016 20:30
Letzter Beitrag: BennIY
  Arduino Nano --> ATtiny 84A Mathias 25 1.320 15.07.2016 16:26
Letzter Beitrag: hotsystems
Sad Suche simplen Scetch für ESP8266-Modul torsten_156 14 1.466 19.04.2016 07:54
Letzter Beitrag: amithlon
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.508 17.04.2016 21:12
Letzter Beitrag: hotsystems

Gehe zu:


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