Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Capteur de Son Arduino avec Indicateurs LED et LCD pour Surveillance du Niveau Sonore en Temps Réel

Composants et fournitures

ComposantQuantitéNotes
Arduino UNO1
Plaque d'essai sans soudure (full size)1
Batterie 9V + connecteur Jack1Optionnel (alimentation mobile)
Fils de connexion M/M et M/F1 jeu
Écran LCD 16x2 I2C (backpack PCF8574)1Adresse 0x27
Module capteur de son KY-0381Sorties numérique (DO) et analogique (AO)
LED 5mm Jaune2Niveau sonore faible
LED 5mm Verte4Niveau sonore moyen
LED 5mm Rouge2Niveau sonore élevé
LED 5mm Blanche4
LED 5mm Bleue4
Résistance 100 Ω8Pour LED blanches et bleues
Résistance 220 Ω4Pour LED rouges et jaunes
Résistance 330 Ω4Pour LED vertes

Applications et services en ligne

À propos du projet

Ce projet surveille en temps réel le niveau sonore ambiant capté par un module microphone KY-038. Les valeurs analogiques sont analysées et visualisées :

Les seuils de déclenchement des LED ont été déterminés empiriquement : relevés des valeurs sur le moniteur série, export vers un tableur, tri par ordre croissant, puis sélection des valeurs représentatives pour chaque palier.

Problème résolu : L'affichage LCD conservait des chiffres résiduels lors du passage d'une valeur à 4 chiffres (ex: 1234) à une valeur à 3 chiffres (ex: 619 → affiché 6194). Solution : ajouter lcd.print(" ") après la valeur pour effacer le chiffre fantôme.

Code complet (SoundSensorLEDwData.ino)

#include <Arduino.h>
#include <LiquidCrystal_PCF8574.h>

#define LCD_ADDRESS 0x27
#define LCD_ROWS 2
#define LCD_COLUMNS 16
#define SCROLL_DELAY 150
#define BACKLIGHT 255

LiquidCrystal_PCF8574 LCDi2C;

// Broches LED (barregraphe 8 LED)
int LED1 = 3;   // PWM
int LED2 = 4;
int LED3 = 5;   // PWM
int LED4 = 6;   // PWM
int LED5 = 7;
int LED6 = 8;
int LED7 = 9;   // PWM
int LED8 = 10;  // PWM

const int soundSensorDO = 2;   // Sortie numérique KY-038 (DO)
const int soundSensorAO = A0;  // Sortie analogique KY-038 (AO)

bool LEDStatus = false;

void setup() {
  Serial.begin(9600);
  LCDi2C.begin(LCD_COLUMNS, LCD_ROWS, LCD_ADDRESS, BACKLIGHT);

  pinMode(soundSensorDO, INPUT);
  pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT); pinMode(LED8, OUTPUT);
}

void loop() {
  int sensorValue = analogRead(soundSensorAO);
  int sensorDigital = digitalRead(soundSensorDO);

  if (sensorDigital == HIGH) {  // Seuil numérique dépassé (potentiomètre KY-038)
    if (!LEDStatus) {
      LEDStatus = true;
      Serial.println(sensorValue);

      // Affichage LCD (ligne fixe + valeur)
      LCDi2C.setCursor(0, 0);
      LCDi2C.print("Niveau sonore:  ");
      LCDi2C.setCursor(0, 1);
      LCDi2C.print(sensorValue);
      LCDi2C.print("   ");  // Efface les chiffres résiduels
    }

    // --- BARREGRAPHE SELON SEUILS ANALOGIQUES ---
    // LED8 (bleue) - niveau le plus haut
    if (sensorValue >= 750) digitalWrite(LED8, HIGH); else { LEDStatus = false; digitalWrite(LED8, LOW); }
    // LED7 (blanche)
    if (sensorValue >= 735) digitalWrite(LED7, HIGH); else { LEDStatus = false; digitalWrite(LED7, LOW); }
    // LED6 (blanche)
    if (sensorValue >= 725) digitalWrite(LED6, HIGH); else { LEDStatus = false; digitalWrite(LED6, LOW); }
    // LED5 (verte)
    if (sensorValue >= 720) digitalWrite(LED5, HIGH); else { LEDStatus = false; digitalWrite(LED5, LOW); }
    // LED4 (verte)
    if (sensorValue >= 715) digitalWrite(LED4, HIGH); else { LEDStatus = false; digitalWrite(LED4, LOW); }
    // LED3 (verte/jaune)
    if (sensorValue >= 700) digitalWrite(LED3, HIGH); else { LEDStatus = false; digitalWrite(LED3, LOW); }
    // LED2 (jaune)
    if (sensorValue >= 675) digitalWrite(LED2, HIGH); else { LEDStatus = false; digitalWrite(LED2, LOW); }
    // LED1 (jaune) - niveau le plus bas
    if (sensorValue >= 650) digitalWrite(LED1, HIGH); else { LEDStatus = false; digitalWrite(LED1, LOW); }
  }
  else {
    // Silence : tout éteindre
    LEDStatus = false;
    for (int i = 1; i <= 8; i++) digitalWrite(i + 2, LOW);  // Broches 3 à 10
  }
}

Schéma de câblage

Suivez les connexions fil par fil :

Capteur de Son Arduino avec Indicateurs LED et LCD pour Surveillance du Niveau Sonore en Temps Réel

Personnalisation

Liens sociaux de l'auteur (HeathenHacks) : Facebook | Twitter | Instagram

Processus de fabrication

  1. Würth Elektronik dévoile le WSEN-ITDS : accéléromètre MEMS 3 axes compact, basse consommation pour IoT industriel
  2. Intégration de données de capteurs sur Raspberry Pi : Guide pratique complet
  3. Capteur de suivi de ligne KY‑033 avec Raspberry Pi : Détecteur de porte/lignes simple
  4. Créer une API robuste de température et capteurs sur Raspberry Pi avec le module GY‑91
  5. Libérer la puissance de la donnée visuelle dans l'écosystème IdO
  6. Six principes clés pour construire des applications IoT pilotées par capteurs à fort impact
  7. Pince robotique avec capteur tactile souple type peau pour manipulation de précision
  8. Suivi WiFi RSSI précis pour capteurs ISS
  9. Matériaux révolutionnaires pour communications LED nouvelle génération (Li-Fi, 6G, IoT)