Contrôle de lampe par capteur à ultrasons

Le contrôle d’une lumière ou d’un autre appareil domestique peut être réalisé avec une carte Arduino et un module de relais de puissance 220 volts ou relais statique (SSR). Divers capteurs et senseurs peuvent être utilisés pour allumer et éteindre le relais et faire en sorte que les lumières s’allument automatiquement. Voyons un exemple de contrôle d’éclairage (luminaire ou bande LED 12V) à l’aide des capteurs ultrasons HC-SR04 Arduino.


Ce dont vous aurez besoin

  • Arduino Uno / Arduino Nano / Arduino Mega
  • capteurs ultrasons HC-SR04
  • module relais 220V
  • lampe 220V ou bande LED 12V
  • fils de connexion
  • librairie Ultrasonic.h

Matériel supplémentaire sur ce sujet:

  1. Éclairage intelligent Arduino avec télécommande IR
  2. Branchement capteur de distance Arduino HC-SR04
  3. Branchement module relais statique avec Arduino

Arduino commande de lumière avec capteur ultrasons

Commande de lumière avec capteur ultrasons
Arduino commande de lumière avec capteur ultrasons HC-SR04

Les capteurs à ultrasons de ce projet seront utilisés comme un capteur de gestes et l’éclairage (ou tout autre appareil ménager) sera contrôlé en faisant glisser votre main devant les capteurs. En fonction de la direction du mouvement de la main, un relais Arduino établit ou rompt le contact avec la charge. Une bande de LED de 12 volts peut être utilisée à la place d’une lampe de 220 volts. Après avoir assemblé le circuit, chargez le programme.

Programme Arduino pour commande lumière avec HC-SR04

#include "Ultrasonic.h"
Ultrasonic u1(11, 12); // Trig et Echo du premier capteur
Ultrasonic u2(6, 7);   // Trig et Echo du deuxième capteur

#define RELE 2  // port de connexion relais
int dist = 50;  // distance en centimètres
int x = 3;      // nombre de mesures

int cm1, cm2;
int w = 0;

void setup() {
  Serial.begin(9600);
  pinMode(RELE, OUTPUT);
}

// résultat de la mesure de premier capteur
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);
}

// résultat de la mesure de deuxième capteur
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() {
  // interrogation du premier capteur
  sensor1();
  delay(50);
  // interrogation du deuxième capteur
  sensor2();
  delay(50);

  // si le premier capteur est déclenché, entrer dans cycle 1
  if (cm1 < dist) { w = 1; }
  // si le deuxième capteur est déclenché, entrer dans cycle 2
  if (cm2 < dist) { w = 2; }

  while (w == 1) {
    // interrogation du deuxième capteur
    sensor2();
    delay(50);
    // si le 2 capteur est déclenché, enclencher le relais et sortir
    if (cm2 < dist) { digitalWrite(RELE, HIGH); w = 0; }
  }

  while (w == 2) {
    // interrogation du premier capteur
    sensor1();
    delay(50);
    // si le 1 capteur est déclenché, éteignez le relais et sortir
    if (cm1 < dist) { digitalWrite(RELE, LOW); w = 0; }
  }
}

Explication du code pour commande de lumière avec HC-SR04:

  1. la sensibilité des capteurs HC-SR04 est réglée à l’aide de la variable dist – plus la valeur est faible, plus vous devez approcher votre main des capteurs;
  2. par défaut, chaque capteur prend 3 mesures à des intervalles de 10 ms – variable int x = 3; le nombre de mesures peut être augmenté, mais cela augmentera le temps de traitement.

Conclusion. L’allumage et l’extinction de la lumière par des gestes de la main peuvent être réalisés non seulement avec des capteurs à ultrasons, mais aussi sur la base du capteur de gestes APDS 9960 pour Arduino. En cas d’utilisation d’une bande de LED 12V, un mosfet de la puissance appropriée peut être utilisé à la place d’un relais. Les microcontrôleurs Arduino permettent de réaliser toute idée intéressante sans grande expérience de la programmation.





Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.