joystick che comanda relè

Buonasera a tutti, volevo comandare due relè con il joystick. Praticamente se muovo la levetta a destra si attiva un relè se la muovo a sinistra si attiva l’altro.

E’ possibile farlo??

Ho provato con questo sketch ma non funziona.

int x_key = A1;                                               
int x_pos;
int rele1 = 2;
int rele2 = 3;

void setup()
{

pinMode (x_key, INPUT) ;                      
pinMode (rele1, OUTPUT);
pinMode (rele2, OUTPUT);

}

void loop()
{
x_pos = analogRead (x_key) ;  
                    
if (x_pos > 700){ // si attiva relè 1
   digitalWrite (rele1, HIGH);
}
else {  
   digitalWrite(rele1, LOW); 
 }  
if (x_pos < 300){ // si attiva relè 2
   digitalWrite (rele2, HIGH);
}
   else {  
   digitalWrite(rele2, LOW); 
 } 
}

>armandinok: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

Lo sketch mi sembra corretto e dovrebbe fare quel che vuoi. Ti limiti a dire "non funziona" ma questo non vuol dire niente per chi legge. Cosa succede esattamente? Si accende uno ma non l'altro? Nessuno dei due? Entrambi? Non restano accesi? Esplode tutto? Il gatto fa i bisogni fuori dalla lettiera? :roll_eyes:

Come hai collegato il joystick? Prova a stampare su seriale il risultato della analogRead() e vedi se è quello che ti aspetti.

Nel codice hai indicato A1 come entrata analogica, non è che hai collegato il joy ad A0?

altra considerazione.... non è che i tuoi relè sono del tipo che si attiva quando il pin di controllo va a LOW?

Scusate, volevo intendere che non si attivano i relè.
I collegamenti sono giusti.
Ho provato a stampare il seriale è sempre 0.
Ho provato a invertire HIGH e LOW ma niente, i relè non si attivano.

Facci vedere uno schema dei collegamenti che hai fatto.

in allegato lo schema

i tuoi relè non funzionano perchè l'alimentazione che ricevono dalla scheda arduino non fornisce corrente a sufficenza per alimentare la bobina dei relè devi provvedere con una alimentazione separata togliendo anche il jumper che collega jd e vcc in basso a sinistra

Ho provato anche quello ma niente!!!!

Se legge sempre 0 c'è un problema a monte, il pilotaggio del relé viene dopo. Comunque, come qualcuno ha già suggerito, nello sketch usi A1 ma nello schema hai collegato il joystick ad A0. Verifica che usi il pin corretto.

armandinok:
Ho provato a stampare il seriale è sempre 0.

non avevo letto bene :slight_smile:

domanda stupida... anzichè destra e sinistra, hai provato a muovere alto e basso :slight_smile:
(con il circuito così com'è intendo)