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); } } }
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