Ecco un esempio di sketch per un vu meter con 10 led utilizzando Arduino:
const int analogInPin = A0; // Pin analogico in cui è collegato il microfono
const int ledCount = 10; // Numero di LED sul vu meter
const int ledPins[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; // Elenco dei pin dei LED sul vu meter
void setup() {
// Configura i pin dei LED come uscite
for (int i = 0; i < ledCount; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
// Leggi il valore del segnale audio dal pin analogico
int audioValue = analogRead(analogInPin);
// Mappa il valore letto dal pin analogico al valore di luminosità del LED
int brightness = map(audioValue, 0, 1023, 0, ledCount);
// Accendi i LED corrispondenti alla luminosità
for (int i = 0; i < ledCount; i++) {
if (i < brightness) {
digitalWrite(ledPins[i], HIGH);
} else {
digitalWrite(ledPins[i], LOW);
}
}
// Aggiorna ogni 20 millisecondi
delay(20);
}
Questo codice legge il valore del segnale audio dal pin analogico ‘A0
‘, lo mappa al valore di luminosità del LED e accende i LED corrispondenti alla luminosità. Il vu meter si aggiornerà ogni 20 millisecondi.