< Segue da Arduino N° 42 |
Il seguente programma, ridotto all'essenziale, può essere utilizzato come "VU meter" o come comando per "Luci psichedeliche" ad 8 canali.
Da schema, eliminare il filo blu dopo il collaudo e collegare l'ingresso marrone alla BF con una capacità di accoppiamento (v. simulazione) o con un piccolo trasformatore di accoppiamento, del tipo dei trasformatori di ingresso o di uscita per stadi a transistori, magari recuperati da una radiolina a transistori o da un vecchio modem.
/* -------------------------------- Inizio Programma -------------------------------------------------
VU-meter con Barra LED. V4.0 del 12-01-2020
prof. Achille De Santis.
Collegare 8 led dal pin 2 al 9 con resistenza da 220 Ω, catodo comune.
Inserire un potenziometro da 10 KΩ sull'ingresso segnale A0.
*/
// ----------------------------------------------------
#define BF A0 // ingresso analogico di BF
// ----------------------------------------------------
const int tempo=50;
const int soglia=30;
int valore=0;
// int led[]= {2,3,4,5,6,7,8,9}; // sequenza diretta
int led[]= {9,8,7,6,5,4,3,2}; // sequenza invertita
void setup()
{
Serial.begin(9600);
intestazione();
pinMode (BF, INPUT);
for (int i=0; i<=7; i++) { pinMode (led[i], OUTPUT); }
provaLed(); // si può escludere
}
void intestazione()
{ Serial.println(" -------------------------------------------------------- ");
Serial.println(" - Autore: Tecnatron - ing. Achille De Santis - ");
Serial.println(" - Sketch: VU meter - 8 canali - ");
Serial.println(" - Versione: V4.1 12-01-2020 - ");
Serial.println(" - Comandi: Ingresso analogico su canale A0 - ");
Serial.println(" - - ");
Serial.println(" -------------------------------------------------------- ");
}
void provaLed() { for (int i=0; i<=7; i++) { digitalWrite(led[i],1); delay(tempo); digitalWrite(led[i],0);}; }
void spegni() { for (int i=0; i<=7; i++) digitalWrite(led[i],0); }
void accendi(int p) { digitalWrite(led[p], 1); }
void loop()
{
spegni();
valore = analogRead(BF);
for(int i=1; i<=8; i++) { if (valore>soglia*i) accendi(i-1); }
}
// --------------------------- Fine programma -------------------------------------------------
Simulazione:
VU meter V4.0Argomenti correlati:
Arduino N° 50 - Modulo di prova per 6 uscite digitali
Nessun commento:
Posta un commento