conflitto tra pin

salve a tutti ragazzi ho creato il codice che vi riporterò qui sotto, non essendo pratico non riesco a trovare l’errore che ho commesso.

In pratica se schiaccio un pulsante mi esegue tutti e tre i codici, es:

int signal fa spegnere la tv

int signal 1 fa andare avanti con i canali

int signal 2 fa andare indietro

quindi se schiaccio il secondo bottone (andare avanti) mi spegne la tv…

potete aiutarmi per favore ??

#include <IRremote.h>   
int  BUTTON=7;
int  BUTTON1=10;
int  BUTTON2=13;
int  val = 0;
int  val1 = 0;
int  val2 = 0;
unsigned int Signal[] = {3400,3300,800,850,800,2550,800,850,800,2500,850,850,800,850,800,850,800,2500,850,800,850,2500,800,900,800,800,850,2500,800,850,850,2450,850,850,800,2550,800,2500,800,2500,850,850,800,2500,850,800,850,2450,850,2500,850};
unsigned int Signal1[] = {3400,3250,850,800,850,2500,850,800,900,2450,850,800,850,800,850,2500,850,2450,850,800,900,800,850,800,850,800,850,2450,900,800,850,2450,900,750,900,2450,850,2450,900,800,850,800,850,2450,900,2450,850,2450,850,2500,800};
unsigned int Signal2[] = {3400,3250,850,850,800,2500,850,800,850,2450,900,800,850,800,850,800,850,2450,900,800,850,800,850,850,800,850,850,2450,850,850,800,2500,850,800,850,2450,900,2450,850,2450,900,750,900,2450,850,2450,900,2450,850,2450,900 };
IRsend irsend;
 
 
void setup() {  
 pinMode(BUTTON, INPUT);
 Serial.begin(9600);  
             }  
 
void loop() {  
 val = digitalRead(BUTTON);
 val1=digitalRead(BUTTON1);
 val2=digitalRead(BUTTON2);
 
switch(val)
{
 case(HIGH):
 
 irsend.sendRaw(Signal, sizeof(Signal)/sizeof(int), 38);
 delay(400);
 
 break;
}

switch(val1)
{
 case(HIGH):
 
 irsend.sendRaw(Signal1, sizeof(Signal1)/sizeof(int), 39);
 delay(400);
 
 break;
}

switch(val2)
{
 case(HIGH):
 
 irsend.sendRaw(Signal2, sizeof(Signal2)/sizeof(int), 4);
 delay(400);
 
 break;
}
}

grazie mille in anticipo :slight_smile: :slight_smile: :slight_smile:

sicuramente non e' ottimizzato, non ha senso usare tre switch separati volendo per ora soprassedere inizia a dichiarare nel setup tutti i tasti, per ora ce ne e' solo uno, ed inoltre aggiungi una resisetnza da 10K tra ogni tasto e GND

Gianluca9779: salve a tutti

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Hai dimenticato in setup() di dichiarare la modalità del BUTTON1 e del BUTTON2.

Come sono collegati pulsanti?

Di solito è meglio mettere i pulsanti verso massa e dichiarare in setup il pinMode(BUTTON, INPUT_PULLUP); per evitare le resistenze di pullup.

In questo caso quando i pulsanti sono premuti cambiano il loro stato da HIGH a LOW.