INHALT
Die Steuerung eines Lichts oder eines anderen Haushaltsgeräts kann mit einem Arduino-Board und einem 220-Volt-Relaismodul vorgenommen werden. Verschiedene Sensoren und Fühler können verwendet werden, um das Relais ein- und auszuschalten und das Licht automatisch einzuschalten. Sehen wir uns ein Beispiel für eine Beleuchtungssteuerung (Leuchte oder 12-V-LED-Leiste) mit HC-SR04-Ultraschallsensoren Arduino an.
Bestandteile:
- Arduino Uno / Arduino Nano / Arduino Mega
- 2 HC-SR04 Ultraschallsensoren
- Halbleiterrelais
- 220V Leuchte
- Dupont-Kabel
- Bibliothek Ultrasonic.h
Die Ultraschallsensoren in diesem Projekt werden als Gestensensor für den Arduino verwendet und die Beleuchtung (oder andere Haushaltsgeräte) werden durch Wischen gesteuert. Anstelle einer 220-Volt-Lampe kann auch eine 12-Volt-LED-Leiste verwendet werden. Die Empfindlichkeit der HC-SR04-Sensoren und die Geschwindigkeit der Hinderniserkennung werden in der Software über Variablen eingestellt.
Arduino Lichtsteuerung mit Ultraschallsensor HC-SR04
In der Software wird jeder HC-SR04-Ultraschallsensor Arduino mehrmals abgefragt, um Fehlauslösungen zu vermeiden. Je nach Richtung der Armbewegung schließt oder öffnet das Halbleiterrelais den Kontakt mit der Last. Bei Verwendung eines 12-Volt-LED-Streifens in einem Projekt kann anstelle eines Halbleiter- oder elektromagnetischen Relais ein Mosfet Transistor Arduino mit entsprechender Leistung verwendet werden.
Programm für Beleuchtungssteuerung vom Sensor HC-SR04
#include "Ultrasonic.h" Ultrasonic u1(11, 12); // Trig et Echo des ersten Sensors Ultrasonic u2(6, 7); // Trig et Echo des zweiten Sensor #define RELE 2 // Pin des Relais int dist = 50; // Abstand in Zentimetern int x = 3; // Anzahl der Messungen int cm1, cm2; int w = 0; void setup() { Serial.begin(9600); pinMode(RELE, OUTPUT); } // Ergebnis der Messung des ersten Sensors void sensor1() { for (byte i = 0; i <= x; i++) { cm1 = u1.Ranging(CM); cm1 = cm1 + cm1; delay(10); } cm1 = cm1 / x; Serial.print("1 sensor - "); Serial.println(cm1); } // Ergebnis der Messung des zweiten Sensors void sensor2() { for (byte i = 0; i <= x; i++) { cm2 = u2.Ranging(CM); cm2 = cm2 + cm2; delay(10); } cm2 = cm2 / x; Serial.print("2 sensor - "); Serial.println(cm2); } void loop() { sensor1(); delay(50); sensor2(); delay(50); // wenn der erste Sensor ausgelöst wird, in Zyklus 1 eintreten if (cm1 < dist) { w = 1; } // wenn der zweite Sensor ausgelöst wird, in Zyklus 2 eintreten if (cm2 < dist) { w = 2; } while (w == 1) { sensor2(); delay(50); if (cm2 < dist) { digitalWrite(RELE, HIGH); w = 0; } } while (w == 2) { sensor1(); delay(50); if (cm1 < dist) { digitalWrite(RELE, LOW); w = 0; } } }
- Die Empfindlichkeit der HC-SR04 Sensoren wird mithilfe der Variablen dist eingestellt – je niedriger der Wert, desto näher müssen Sie Ihre Hand an die Sensoren halten;
- Standardmäßig nimmt jeder Sensor 3 Messungen in 10-ms-Intervallen vor – int Variable x = 3; die Anzahl der Messungen kann erhöht werden, was jedoch die Verarbeitungszeit erhöht.
Schlussfolgerung. Das Ein- und Ausschalten des Lichts mit Hilfe von Handgesten kann nicht nur mit Ultraschallsensoren, sondern auch auf der Grundlage des APDS 9960 Gestensensors oder mit Infrarot-Hindernissensensoren realisiert werden. Mit Arduino-Mikrocontrollern lässt sich jede interessante Idee verwirklichen, ohne dass man viel Programmiererfahrung oder Kenntnisse über Schaltungen braucht.
Schreibe einen Kommentar