Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino-Schallsensor mit LED-Anzeige & LCD: Echtzeit-Pegelmesser

Komponenten und Zubehör

Arduino UNO 1
Steckplatine (Full Size) 1
9V-Batterie + Hohlstecker-Adapter (optional) 1
Jumper-Kabel (M/M, M/F) je 1 Satz
LCD 16×2 mit I2C-Backpack (Adresse 0x27) 1
Schallsensor-Modul KY-038 1
5 mm LEDs: Gelb 2
5 mm LEDs: Grün 4
5 mm LEDs: Rot 2
5 mm LEDs: Weiß 4
5 mm LEDs: Blau 4
Widerstände 100 Ω (für Weiß/Blau) 8
Widerstände 220 Ω (für Rot/Gelb) 4
Widerstände 330 Ω (für Grün) 4

Apps und Online-Dienste

Über dieses Projekt

Dieses Projekt visualisiert den Schalldruckpegel in Echtzeit: Ein KY-038-Mikrofonsensor liefert Analogwerte, die in acht Stufen auf einer LED-Leiste (2× Gelb = leise, 4× Grün = mittel, 2× Rot = laut) sowie auf einem I2C-LCD dargestellt werden. Die Schwellenwerte wurden empirisch durch Aufzeichnen der Seriellen Ausgabe, Sortieren in einer Tabelle und Auswählen häufiger Werte ermittelt.

Ein bekanntes Problem: Beim Überschreiben des LCD-Werts blieben Reste der vorherigen Ziffer stehen (z. B. „6194“ statt „619“). Lösung: Ein Leerzeichen nach dem Wert ausgeben (lcd.print(" ")), um Überreste zu löschen.

Der Code kombiniert Snippets aus verschiedenen Quellen und eigenen Vorprojekten.

Arduino-Code (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;

// LED-Pins (Breadboard-Position → Arduino-Pin)
int LED1 = 3;  int LED2 = 4;  int LED3 = 5;  int LED4 = 6;
int LED5 = 7;  int LED6 = 8;  int LED7 = 9;  int LED8 = 10;

const int soundSensorDO = 2;  // Digitalausgang KY-038 (DO)
const int soundSensorAO = A0; // Analogausgang 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) {
    if (!LEDStatus) {
      LEDStatus = true;
      Serial.println(sensorValue);

      LCDi2C.setCursor(0,0);
      LCDi2C.print("SoundLevel Data:");
      LCDi2C.setCursor(0,1);
      LCDi2C.print(sensorValue);
      LCDi2C.print(" "); // verhindert Ziffern-Reste
    }

    // Schwellenwerte (empirisch ermittelt, anpassbar)
    if (sensorValue >= 750) digitalWrite(LED8, HIGH); else { LEDStatus=false; digitalWrite(LED8, LOW); }
    if (sensorValue >= 735) digitalWrite(LED7, HIGH); else { LEDStatus=false; digitalWrite(LED7, LOW); }
    if (sensorValue >= 725) digitalWrite(LED6, HIGH); else { LEDStatus=false; digitalWrite(LED6, LOW); }
    if (sensorValue >= 720) digitalWrite(LED5, HIGH); else { LEDStatus=false; digitalWrite(LED5, LOW); }
    if (sensorValue >= 715) digitalWrite(LED4, HIGH); else { LEDStatus=false; digitalWrite(LED4, LOW); }
    if (sensorValue >= 700) digitalWrite(LED3, HIGH); else { LEDStatus=false; digitalWrite(LED3, LOW); }
    if (sensorValue >= 675) digitalWrite(LED2, HIGH); else { LEDStatus=false; digitalWrite(LED2, LOW); }
    if (sensorValue >= 650) digitalWrite(LED1, HIGH); else { LEDStatus=false; digitalWrite(LED1, LOW); }
  }
  else {
    LEDStatus = false;
    digitalWrite(LED1, LOW); digitalWrite(LED2, LOW);
    digitalWrite(LED3, LOW); digitalWrite(LED4, LOW);
    digitalWrite(LED5, LOW); digitalWrite(LED6, LOW);
    digitalWrite(LED7, LOW); digitalWrite(LED8, LOW);
  }
}

Schaltplan

Verdrahtung gemäß Bild: KY-038 AO → A0, DO → D2; LEDs an D3–D10 mit passenden Vorwiderständen; LCD an I2C (A4/A5).

Arduino-Schallsensor mit LED-Anzeige & LCD: Echtzeit-Pegelmesser

Hinweise & Links

Herstellungsprozess

  1. Würth Elektronik stellt WSEN-ITDS vor: Kompakten, niedrigenergetischen 3-Achsen MEMS-Beschleunigungssensor für Industrial IoT
  2. Sensordaten in Raspberry Pi integrieren: GPS & MPU-9150 Hands-On Guide
  3. Line-Tracking-Sensor mit Raspberry Pi – Einfacher KY-033 Tür/Line Detektor
  4. Robuste Temperatur- & Sensor-API auf Raspberry Pi mit GY-91 Modul bauen
  5. Die Kraft visueller Daten im IoT-Ökosystem entfesseln
  6. Sechs Schlüsselprinzipien für High-Impact Sensor-getriebene IoT-Applikationen
  7. Arch Systems und Flex transformieren Fertigungsdaten mit Advanced Analytics
  8. Robotergreifer mit hautähnlichem weichem Tastsensor für präzises Handling
  9. Präzises WiFi-RSSI-Tracking für ISS-Sensoren
  10. Revolutionäre Materialien treiben LED-Datenkommunikation der nächsten Generation an