In diesem Beitrag möchte ich dir zeigen wie du bei Kontakt zwischen einer Gabellichtschranke einen Piezo Buzzer am Arduino UNO R3 auslösen kannst.

Die Gabellichtschranke KY-010 habe ich dir bereits im Beitrag Arduino Lektion 43: Lichtschranke KY-010 vorgestellt und ebenso ein kleines Beispiel gezeigt.
Benötigte Ressourcen für dieses kleine Projekt
Für den Nachbau, dieses kleinen Projektes benötigst du:
- Arduino UNO R3*,
- eine Gabellichtschranke vom Typ KY-010*,
- einen Piezo Buzzer*,
- fünf Breadboardkabel*,
- ein 400 Pin Breadboard*
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Aufbau der Schaltung am Arduino UNO R3
Die Gabellichtschranke verfügt über 3 Pins. Auf der Rückseite der Gabellichtschranke findest du lediglich die Beschriftung „S“ für den „Signal“ Pin, die anderen beiden sind (in meinem Fall) nicht beschriftet.
Die Bauteile aus dem Projekt werden wie folgt mit dem Arduino UNO R3 verbunden:
| Bauteil | Arduino UNO R3 | 
|---|---|
| Gabellichtschranke KY-010 | |
| S | digitaler Pin D8 | 
| G | GND | 
| VCC | 5V | 
| Piezo Buzzer | |
| + | digitaler Pin D2 | 
| – | GND | 
Programmieren
// Gabellichtschranke KY-010 am digitalen Pin D8 angeschlossen
#define LICHTSCHRANKE 8
// Piezo Buzzer am digitalen Pin D2 angeschlossen
#define BUZZER 2
// Anzahl der Beeps welche ausgeführt werden sollen
const int NUM_BEEPS = 4;
// Frequenz des Beeps
const int FREQ = 500;
// die Pause zwischen den einzelnen Tönen
const int PAUSE = 75;
void setup() {
  // Pin des Buzzers als Ausgang definieren
  pinMode(BUZZER, OUTPUT);
  // Pin der Gabellichtschranke als Eingang definieren
  pinMode(LICHTSCHRANKE, INPUT);
}
void loop() {
  // lesen des aktuellen Zustands der Gabellichtschranke
  boolean active = digitalRead(LICHTSCHRANKE);
  // wenn ein Kontakt besteht dann soll ein Ton augegeben werden
  if (active) {
    // Die Schleife von 0 bis NUM_BEEP durchlaufen
    for (int i = 0; i <= NUM_BEEPS; i++) {
      // erzeugen eines Tones
      tone(BUZZER, FREQ);
      // eine Pause
      delay(PAUSE);
      // Wiedergabe des Tones am BUZZER Pin stoppen
      noTone(BUZZER);
      // eine Pause
      delay(PAUSE);
    }
  }
}
Video
Letzte Aktualisierung am: 09. März 2024

 
         
                     
                     
                    
Guten Tag Herr Draeger,
Vielen, vielen Dank für dieser wunderbare Sketch und Ihre Erklärung da zu ist sehr spektakulär zum Lernen, ich hätte doch eine Frage dazu: wie mache ich es, der Piezo Buzzer solle er piepsen wenn
der Gabellichtschranke aus ist, er soll piepsen wenn zum Beispiel Fahrstuhl Kabine fährt hoch
Tritte stock Gabellichtschranke aus Motor aus Buzzer signalisiert Tritte Etage 3 mal Piepsen.
Vielen danken Herr Draeger.
Gruß
Antonio
Hallo Herr Tommasi,
man bräuchte dazu ein weiteres Signal um zu erkennen welcher Stock gerade angefahren wurde.
Für den Fall das Sie den Signalton möchten wenn die Gabellichtschranke offen ist, müssen Sie die boolsche Variable mit einem ! davor umkehren.
„if (!active) {“
Gruß,
Stefan Draeger