Salve, sono nuovo all'uso di Arduino e avrei bisogno di qualche consiglio: ho bisogno di realizzare un sistema di controllo per suddividere l'impianto audio per annunci in un mercatino in quattro zone. Il sistema dovrebbe funzionare in due modalità: 1) Annuncio: tutte le quattro zone sono attive, il segnale audio proviene da un amplificatore dedicato agli annunci; 2) Musica di sottofondo: ogni zona indipendentemente può essere attivata, il segnale audio proviene da un amplificatore dedicato alla musica. Per commutare fra una modalità e l'altra ho pensato di mettere un interruttore vicino al microfono per gli annunci e, allo stesso modo, ho pensato di comandare l'attivazione delle singole zone in modalità musicale attraverso altrettanti interruttori. Per la commutazione del segnale (a tensione costante 100V) ho pensato di utilizzare, per facilità, dei relé con stadio pilota (vedi scheda).
Dato, come già ho detto, che sono digiuno di programmazione, ho buttato giù questo programma, ma desidererei quanti più consigli possibile per rendere il sistema migliore (e funzionante):
int releV1 = 0; //rele voce-musica +
int releV2 = 1; //rele voce-musica -
int releZ1 = 2; //rele musica zona 1
int releZ2 = 3; //rele musica zona 2
int releZ3 = 4; //rele musica zona 3
int releZ4 = 5; //rele musica zona 4
int ampliV = 6; //contatto standby ampli voce
int ampliM = 7; //contatto standby ampli musica
int VM = 8; //interruttore voce-musica
int Z1 = 9; //selettore musica zona 1
int Z2 = 10; //selettore musica zona 2
int Z3 = 11; //selettore musica zona 3
int Z4 = 12; //selettore musica zona 4void setup()
{
pinMode(releV1, OUTPUT);
pinMode(releV2, OUTPUT);
pinMode(releZ1, OUTPUT);
pinMode(releZ2, OUTPUT);
pinMode(releZ3, OUTPUT);
pinMode(releZ4, OUTPUT);
pinMode(ampliV, OUTPUT);
pinMode(ampliM, OUTPUT);
pinMode(VM, INPUT);
pinMode(Z1, INPUT);
pinMode(Z2, INPUT);
pinMode(Z3, INPUT);
pinMode(Z4, INPUT);
}void loop()
{
if (digitalRead(VM) == HIGH)
{
digitalWrite(releV1, HIGH); //se l'interruttore voce-musica è chiuso tutti i relé vengono eccitati -> linea voce
digitalWrite(releV2, HIGH);
digitalWrite(releZ1, HIGH);
digitalWrite(releZ2, HIGH);
digitalWrite(releZ3, HIGH);
digitalWrite(releZ4, HIGH);digitalWrite(ampliV, HIGH); //l'amplificatore della voce esce dallo standby
digitalWrite(ampliM, LOW); //l'amplificatore della musica entra in standby}
else
{
digitalWrite(releV1, LOW); //se l'interruttore voce-musica è aperto i relé V1 e V2 non vengono eccitati -> linea musica
digitalWrite(releV2, LOW);digitalWrite(ampliV, LOW); //l'amplificatore della voce entra in standby
digitalWrite(ampliM, HIGH); //l'amplificatore della musica esce dallo standbyif (digitalRead(Z1) == HIGH){ //se l'interruttore della zona è chiuso il relé relativo viene eccitato
digitalWrite(releZ1, HIGH);
}if (digitalRead(Z2) == HIGH){
digitalWrite(releZ2, HIGH);
}if (digitalRead(Z3) == HIGH){
digitalWrite(releZ3, HIGH);
}if (digitalRead(Z4) == HIGH){
digitalWrite(releZ4, HIGH);
}}
}
Nel codice si parla anche di amplificatori in standby perché gli amplificatori RCF che utilizzo hanno la possibilità, aprendo un circuito di comando, di entrare in modalità standby per ridurre i consumi.
Vi ringrazio da subito