Arduino/Steuerung einer Lampe, die angeht, wenn bei Dunkelheit eine Person den Parkplatz betritt: Unterschied zwischen den Versionen
Aus ZUM-Unterrichten
< Arduino
main>Belofb Keine Bearbeitungszusammenfassung |
main>Belofb (Der Programmcode wurde ergänzt) |
||
Zeile 15: | Zeile 15: | ||
<pre> | <pre> | ||
int ledPin = 13; | int ledPin = 13; | ||
int | int LedPin = 13; | ||
int | int BewegungsPin = 2; | ||
int | int Bewegung=0; | ||
int | int HelligkeitsPin = A0; | ||
int Helligkeitswert=0; | |||
void setup() { | unsigned long StartTime=0; | ||
void setup(){ | |||
pinMode(LedPin, OUTPUT); | |||
pinMode(BewegungsPin, INPUT); | |||
pinMode(HelligkeitsPin, INPUT); | |||
} | } | ||
void loop() { | |||
Helligkeitswert=analogRead(HelligkeitsPin); | |||
Bewegung=digitalRead(BewegungsPin); | |||
if (Bewegung== HIGH&&Helligkeitswert>200) { | |||
digitalWrite(LedPin,HIGH); | |||
StartTime=millis(); | |||
} | |||
else if (millis()-StartTime>5000){ | |||
digitalWrite(LedPin,LOW); | |||
} | |||
} | |||
</pre> | </pre> | ||
{{SORTIERUNG:{{SUBPAGENAME}}}} | {{SORTIERUNG:{{SUBPAGENAME}}}} | ||
[[Kategorie:Arduino]] | [[Kategorie:Arduino]] |
Version vom 8. Juli 2015, 10:13 Uhr
Das Projekt wurde auch bisher schon im Unterricht umgesetzt, allerdings ohne Mikrocontroller, sondern mit analogen Bauteilen.
Für die Umsetzung mit dem Arduino haben wir uns mit den benötigten Sensoren beschäftigt. Unsere Wahl fiel auf einen passiven Infrarot-Bewegungsmelder (PIR) vom Typ HC-SR 501. Hier ist eine sehr gute Anleitung zu PIR-Sensoren verfügbar.
Das ist unsere Schaltung. Die Parkplatzlampe wird durch eine LED simuliert.
Das ist der Sketch für unsere Schaltung.
int ledPin = 13; int LedPin = 13; int BewegungsPin = 2; int Bewegung=0; int HelligkeitsPin = A0; int Helligkeitswert=0; unsigned long StartTime=0; void setup(){ pinMode(LedPin, OUTPUT); pinMode(BewegungsPin, INPUT); pinMode(HelligkeitsPin, INPUT); } void loop() { Helligkeitswert=analogRead(HelligkeitsPin); Bewegung=digitalRead(BewegungsPin); if (Bewegung== HIGH&&Helligkeitswert>200) { digitalWrite(LedPin,HIGH); StartTime=millis(); } else if (millis()-StartTime>5000){ digitalWrite(LedPin,LOW); } }