|
|
Zeile 1: |
Zeile 1: |
| Das Projekt wurde auch bisher schon im Unterricht umgesetzt, allerdings ohne Mikrocontroller, sondern mit analogen Bauteilen.
| | {{webmo staff |
| | | |username=Lea Schmitz (Lehrer-Online) |
| 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.
| | |vorname=Redaktion |
| Hier ist eine sehr [https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/overview gute Anleitung] zu PIR-Sensoren verfügbar.
| | |nachname=Lehrer-Online |
| | | |wiki db id=95 |
| Mit diesem Projekt wird eine Lampe auf einem Parkplat simuliert.Die Lampe wird angeschaltet, wenn es dunkel ist und gleichzeitig Bewegung registriert wird.
| | }} |
| Die Lampe leuchtet 5 Sekunden nach, wenn keine Bewegung mehr registriert wird.
| |
| | |
| Das ist unsere Schaltung. Die Parkplatzlampe wird durch eine LED simuliert.
| |
| | |
| [[Datei:Arduino-Parkplatzleuchte.JPG|400px|Arduino-Parkplatzleuchte]]
| |
| | |
| Hier ist die aufgebaute sSchaltung noch besser dargestellt:
| |
| | |
| [[Datei:Schaltplan Parkleuchte.png|400px|Schaltplan Parkplatzleuchte]]
| |
| | |
| | |
| Das ist der Sketch für unsere Schaltung.
| |
| | |
| <source lang="c">
| |
| | |
| /*
| |
| Mit diesem Programm wird eine Lampe auf einem Parkplat simuliert.
| |
| Die Lampe wird angeschaltet, wenn es dunkel ist und gleichzeitig Bewegung registriert wird.
| |
| Die Lampe leuchtet 5 Sekunden nach, wenn keine Bewegung mehr registriert wird.
| |
| */
| |
| | |
| //Variablen deklarieren
| |
| int LedPin = 13; //Anschluss für die Lampe festlegen
| |
| int BewegungsPin = 2; //Anschluss für den Steuerungsausgang des Bewegungsmelders festlegen
| |
| int Bewegung = 0; //Variable, die den Zustand des Bewegungsmelders speichert (0=keine Bewegung, 1=Bewegung)
| |
| int HelligkeitsPin = A0; //Anschluss für den Abgriff des Spannungsteilers aus Vorwiderstand Rv und Fotowiderstand LDR
| |
| int Helligkeitswert = 0; //Variable, die einen der Helligkeit entsprechenden Digitalwert speichert
| |
| unsigned long StartTime = 0; //Variable, die für die Berechnung der Leuchtdauer der Lampe verwendet wird
| |
| | |
| //Prozedur zur Initialisierung des µControllers (wird einmalig beim Start durchlaufen)
| |
| void setup() {
| |
| pinMode(LedPin, OUTPUT); //Anschluss der LED wird als Ausgang gesetzt
| |
| pinMode(BewegungsPin, INPUT); //Anschluss der Steuerleitung des Bewegungsmelders wird als Eingang gesetzt
| |
| pinMode(HelligkeitsPin, INPUT); //Anschluss des Spannungsteiler-Abgriffes wird als Eingang gesetzt
| |
| }
| |
| | |
| //Schleifenprozedur, die immer wieder neu durchlaufen wird
| |
| void loop() {
| |
| Helligkeitswert=analogRead(HelligkeitsPin); //analogen Helligkeitswert einlesen (wird im µController in Digitalwert umgewandelt
| |
| Bewegung=digitalRead(BewegungsPin); //Zustand des Bewegungsmelders auslesen
| |
| if (Bewegung== HIGH&&Helligkeitswert>150) { //Wenn Bewegung vorliegt und der Helligkeitswert 150 überschreitet,...
| |
| digitalWrite(LedPin,HIGH); //wird die Lampe eingeschaltet...
| |
| StartTime=millis(); //und die aktuelle Zeit (Zeit ab Programmstart in Millisekunden) wird abgespeichert
| |
| }
| |
| else if (millis()-StartTime>5000){ //ansonsten, wenn 5000 Millisekunden Differenz überschritten sind,...
| |
| digitalWrite(LedPin,LOW); //wird die Lampe ausgeschaltet
| |
| }
| |
| }
| |
| | |
| </source>
| |
| {{SORTIERUNG:{{SUBPAGENAME}}}}
| |
| | |
| | |
| {{Arduino-Projekt}}
| |