Arduino/Steuerung einer Lampe, die angeht, wenn bei Dunkelheit eine Person den Parkplatz betritt: Unterschied zwischen den Versionen
K (15 Versionen importiert) |
(formatiert) Markierung: 2017-Quelltext-Bearbeitung |
||
Zeile 56: | Zeile 56: | ||
</pre> | </pre> | ||
{{SORTIERUNG:{{SUBPAGENAME}}}} | {{SORTIERUNG:{{SUBPAGENAME}}}} | ||
{{Arduino-Projekt}} |
Version vom 10. August 2019, 09:47 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.
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.
Hier ist die aufgebaute sSchaltung noch besser dargestellt:
Das ist der Sketch für unsere Schaltung.
/* 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 } }
- Lauflicht mit Schalter und Potentiometer, um die Anschaltdauer der Dioden einzustellen
- Datenvisualisierung mit Processing
- Datenvisualisierung mit einem Oszilloskop
- Ansteuerung von Pneumatikventilen mit dem Arduino
- Steuerung einer Lampe, die angeht, wenn bei Dunkelheit eine Person den Parkplatz betritt