Lichtsteuerung durch einen Ultraschallsensor HC-SR04

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

Arduino Lichtsteuerung mit Ultraschallsensor

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; }
  }
}
  1. 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;
  2. 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.

5/5 - (1 vote)


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert