Projekt A07 - Lichtgesteuertes Musikinstrument
Arduino Uno, LDR-Modul, Piezo-Summer, Potentiometer, LED
Bewege deine Hand über den Lichtsensor - je mehr Licht, desto höher der Ton!
const int LDR_PIN = A0;
const int POTI_PIN = A1;
const int PIEZO_PIN = 9;
void loop() {
int ldrValue = analogRead(LDR_PIN);
int potiValue = analogRead(POTI_PIN);
// Tonbereich mit Poti einstellen
int maxFreq = map(potiValue, 0, 1023,
500, 2000);
// Licht in Frequenz umwandeln
int freq = map(ldrValue, 0, 1023,
100, maxFreq);
tone(PIEZO_PIN, freq);
delay(10);
}Je nach Raumbeleuchtung variiert der LDR-Wertebereich stark. Automatische Kalibrierung findet Min/Max.
void calibrate() {
for (int i = 0; i < 100; i++) {
int ldr = analogRead(LDR_PIN);
if (ldr < ldrMin) ldrMin = ldr;
if (ldr > ldrMax) ldrMax = ldr;
delay(30);
}
}Reduziert Rauschen durch Mittelung mehrerer Messwerte
int values[5];
int index = 0;
int getSmoothed() {
values[index] = analogRead(LDR_PIN);
index = (index + 1) % 5;
long sum = 0;
for (int i = 0; i < 5; i++) {
sum += values[i];
}
return sum / 5;
}Du hast ein Licht-Theremin gebaut!
A08: Mini-Oszilloskop