Arduino/Steuerung einer Lampe, die angeht, wenn bei Dunkelheit eine Person den Parkplatz betritt und Benutzer:Lea Schmitz (Lehrer-Online): Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
< Arduino(Unterschied zwischen Seiten)
Keine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
 
Keine Bearbeitungszusammenfassung
 
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}}

Version vom 11. Oktober 2019, 06:36 Uhr


Über mich

{{#cargo_store: _table=webmo_staff |wiki_db_id=95 |username=Lea Schmitz (Lehrer-Online) |vorname=Redaktion |nachname=Lehrer-Online |name=Redaktion Lehrer-Online |ueber_mich= }}