⭐⭐⭐ Défi ⏱️ 25 minutes

Télémètre avec barre lumineuse

Tu fabriques une barre lumineuse qui montre à quelle distance se trouve un objet. Loin : aucune lampe. Plus c’est proche, plus il y a de lampes qui s’allument. D’abord vert, puis orange, et tout près rouge.

Tu te connectes d’abord. Ensuite, ton projet est tout de suite prêt.

🧰 De quoi as-tu besoin ?

1× Arduino UNO
1× Capteur de distance HC-SR04
1× Anneau LED RGB (8 LEDs)
🔌
Câble USB + Câbles jumper

🗺️ Schéma de branchement

Suis les fils de l’Arduino vers chaque pièce. Tu peux choisir toi-même les couleurs des fils.

De Vers
Arduino UNO · D9 Capteur de distance HC-SR04 · Trig
Arduino UNO · D10 Capteur de distance HC-SR04 · Echo
Arduino UNO · 5V Capteur de distance HC-SR04 · Vcc
Arduino UNO · GND Capteur de distance HC-SR04 · Gnd
Arduino UNO · D6 Anneau LED RGB (8 LEDs) · DI
Arduino UNO · 5V Anneau LED RGB (8 LEDs) · 5V
Arduino UNO · GND Anneau LED RGB (8 LEDs) · GND

🛠️ Voici comment le construire

  1. Branche le HC-SR04 : Trig vers la pin 9, Echo vers la pin 10, Vcc vers 5V et Gnd vers GND.
  2. Branche l’anneau LED : DI vers la pin 6, 5V vers 5V et GND vers GND.

💻 Le code

// Télémètre avec barre lumineuse
// Plus tu t'approches, plus il y a de lampes allumées : vert, puis orange, puis rouge.

#include <Adafruit_NeoPixel.h>

const int TRIG_PIN = 9;     // Trig du HC-SR04 sur la pin 9
const int ECHO_PIN = 10;    // Echo du HC-SR04 sur la pin 10
const int RING_PIN = 6;     // DI de l'anneau LED sur la pin 6
const int NB_LEDS = 8;
const int DISTANCE_MAX = 80; // Plus loin que ça (en cm) : toutes les lampes éteintes

Adafruit_NeoPixel anneau(NB_LEDS, RING_PIN, NEO_GRB + NEO_KHZ800);

long mesurerDistance() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long duree = pulseIn(ECHO_PIN, HIGH, 30000);
  if (duree == 0) return 999;
  return duree / 58;
}

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  anneau.begin();
  anneau.setBrightness(40);
  anneau.show();
}

void loop() {
  long distance = mesurerDistance();
  Serial.print(F("Distance: "));
  Serial.print(distance);
  Serial.println(F(" cm"));

  // Combien de lampes doivent s'allumer ? Près = 8, loin = 0
  int nombre = map(constrain(distance, 0, DISTANCE_MAX), 0, DISTANCE_MAX, NB_LEDS, 0);

  for (int i = 0; i < NB_LEDS; i++) {
    if (i < nombre) {
      if (i < 3)      anneau.setPixelColor(i, anneau.Color(0, 255, 0));    // Vert
      else if (i < 6) anneau.setPixelColor(i, anneau.Color(255, 120, 0));  // Orange
      else            anneau.setPixelColor(i, anneau.Color(255, 0, 0));    // Rouge
    } else {
      anneau.setPixelColor(i, 0);                                          // Éteint
    }
  }
  anneau.show();
  delay(100);
}

🧠 Que fait le code ?

  • mesurerDistance() mesure la distance avec le HC-SR04.
  • map() transforme la distance en nombre de lampes : 0 à 8.
  • Les 3 premières lampes sont vertes, les 3 suivantes orange et les 2 dernières rouges.

🎯 Essaie un peu…

  • Fais clignoter toutes les lampes en rouge si tu es à moins de 10 cm
  • Ajoute le buzzer qui bippe quand c’est rouge
  • Rends le mètre plus sensible : toutes les lampes allumées à 40 cm au lieu de 80 cm

🚀 Construis ce projet avec Codey : ouvre codey.online/fr/starter-kits/uno/projects/distance-light-bar et clique sur FAIS ÇA. Alors le code et le schéma de branchement sont tout de suite prêts.

Tu te connectes d’abord. Ensuite, ton projet est tout de suite prêt.
⬇️ Télécharger cette page en PDF 📚 Télécharger le tutoriel complet (PDF)

Codey Online est un produit de OTRONIC

Construisez votre projet Arduino ou ESP32 avec l'IA

Décrivez ce que vous voulez créer. Codey Online écrit le code, dessine le schéma de câblage, le compile et flashe votre carte directement depuis le navigateur.

Commencez gratuitement