Introduction: Geluidsgevoelige LED Reeks
Aangezien er in sommige ruimtes veel geluidsoverlast is hebben wij bedacht hoe we dit op een subtiele manier kunnen aanpakken. Simpelweg door een LED reeks op te hangen die aangeeft hoeveel decibel er geproduceerd wordt in de desbetreffende ruimte.
Benodigdheden :
- Geluidsmeter
- 8 LED lampjes
- 2x Rood
- 2x Oranje
- 2x Geel
- 2x Groen
- Arduino met minimaal 8 Digital en 1 Analog pins
- 1x 10k Ohm weerstand
- 8x 220 Ohm weerstand
In ons geval hebben we geen Geluidsmeter gebruikt maar een lichtsensor. In theorie werkt het hetzelfde, maar de waardes zullen misschien net iets aangepast moeten worden.
Step 1: Setting Up the System
Om ervoor te zorgen dat alle LED lampjes en je sensor werken moet je ze eerst aansluiten op je arduino en het bijbehorende script toe te voegen. Hier een voorbeeld van hoe wij het hebben gedaan :
int ssAnalogPin = 0; // Sound Sensor
int LEDpinG1 = 13; // Het eerste groene LED lampje
int LEDpinG2 = 12; // Het tweede groene LED lampje
int LEDpinY1 = 11; // Het eerste gele LED lampje
int LEDpinY2 = 10; // Het tweede gele LED lampje
int LEDpinO1 = 8; // Het eerste Oranje LED lampje
int LEDpinO2 = 7; // Het tweede Oranje LED lampje
int LEDpinR1 = 4; // Het eerste Rode LED lampje
int LEDpinR2 = 2; // Het tweede Rode LED lampje
int ssReading; // De uitgelezen waarde uit de sensor
void setup(void) {
Serial.begin(9600); // We sturen de uitgelezen informatie via de Serial Monitor
pinMode(LEDpinG1, OUTPUT);
pinMode(LEDpinG2, OUTPUT);
pinMode(LEDpinY1, OUTPUT);
pinMode(LEDpinY2, OUTPUT);
pinMode(LEDpinO1, OUTPUT);
pinMode(LEDpinO2, OUTPUT);
pinMode(LEDpinR1, OUTPUT);
pinMode(LEDpinR2, OUTPUT);
}
Step 2: Testing the Sensor
Sluit de sensor aan op een analoog poort en plaats er een 10k Ohm weerstand tussen.
Om de sensor te testen kan je de volgende code gebruiken :
// Lees de signaalsterkte van je sensor uit.
// En maak hem zichtbaar in je Serial Monitor.
ssReading = analogRead(ssAnalogPin);
Serial.print("Analog reading = ");
Serial.println(ssReading);
Step 3: Setting Up the First LED
Plaats het eerste groene LED lampje op de juiste positie in de reeks en plaats er een 220 Ohm weerstand tussen. Verbind hem zoals op de foto te zien is naar de juiste pin die je hebt ingesteld bij stap 1.
Om het Lampje te testen bij een bepaalde hoeveelheid decibel kan je de volgende code gebruiken :
if (ssReading > 200) { // Vanaf een bepaalde waarde
digitalWrite(LEDpinG1, HIGH); // Zet het lampje aan
} else { // Als het niet boven die bepaalde waarde is
digitalWrite(LEDpinG1, LOW); // Zet het lampje uit
}
De voor jou juiste aantal decibel moet je zelf instellen door de gewenste hoeveelheid af te spelen en te testen met je geluidssensor.
Step 4: Adding All LEDs
Nu we 1 lampje werkend hebben kunnen we alle LED lampjes aansluiten. Herhaal stap 3 voor het aantal lampjes dat je wilt gebruiken. Verander de gewenste waarde zodat niet alle LED lampjes op het zelfde moment aan gaan.
In onze installatie hebben we het volgende gebruikt :
if (ssReading > 200) {
digitalWrite(LEDpinG1, HIGH);
} else {
digitalWrite(LEDpinG1, LOW);
}
if (ssReading > 300) {
digitalWrite(LEDpinG2, HIGH);
} else {
digitalWrite(LEDpinG2, LOW);
}
if (ssReading > 400) {
digitalWrite(LEDpinY1, HIGH);
} else {
digitalWrite(LEDpinY1, LOW);
}
if (ssReading > 500) {
digitalWrite(LEDpinY2, HIGH);
} else {
digitalWrite(LEDpinY2, LOW);
}
if (ssReading > 600) {
digitalWrite(LEDpinO1, HIGH);
} else {
digitalWrite(LEDpinO1, LOW);
}
if (ssReading > 700) {
digitalWrite(LEDpinO2, HIGH);
} else {
digitalWrite(LEDpinO2, LOW);
}
if (ssReading > 800) {
digitalWrite(LEDpinR1, HIGH);
} else {
digitalWrite(LEDpinR1, LOW);
}
if (ssReading > 900) {
digitalWrite(LEDpinR2, HIGH);
} else {
digitalWrite(LEDpinR2, LOW);
}
delay(100); // Een vertraging tussen elke check om overbelasting te voorkomen.