buona sera , sono un nuovo utente , mi chiamo Mario e da poco ho iniziato ad usare arduino ,lo sto programmando per la commutazione canali di un radio cb , dove esso piloterà un pll che in base a quali punti sono alimentati darà una frequenza ovvero un canale specifico. il mio problema è il seguente . io sono riuscito a programmarlo ma solo in fase crescente a me servirebbe la fase decrescente , ovvero se mi torvo nella variante 5 e vorrei tornare nella variante 4 --3 --2 e poi dopo andare avanti
ecco un esempio di come lo creato e un video della sua funzione
( ps spero di non aver violato il regolamento)
int su;
int punto=0;
int retro;
//prova commutatore 40 ch alan 48 old
void setup (){
pinMode(13,OUTPUT);
pinMode(2,INPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(3,INPUT);
}
void loop(){
su=digitalRead(2); // COMMUTAZIONE CANALI 1
if ((su==HIGH)and (punto==0)){
digitalWrite(13,HIGH);
punto=1;
delay (1000);
}
else if ((su==HIGH) and (punto==1)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 2
digitalWrite(12,HIGH);
punto=3;
delay(1000);
}
else if ((su==HIGH) and (punto==3)){
digitalWrite(13,HIGH);// COMMUTAZIONE CANALE 3 IL PINN 12 RIMANE ACCESO
punto=4;
delay(1000);
}
else if ((su==HIGH) and (punto==4)){
digitalWrite(12,LOW);//COMMUTAZIONE CANELE4
digitalWrite(11,HIGH);
digitalWrite(13,LOW);
punto=5;
delay(1000);
}
else if ((su==HIGH) and (punto==5)){
digitalWrite(13,HIGH);//commutazione canale 5
digitalWrite(11,HIGH);
punto=6;
delay(1000);
}
else if ((su==HIGH) and (punto==6)){
digitalWrite(13,LOW); //commutazione canale 6
digitalWrite(12,HIGH);
punto=7;
delay(1000);
}
else if ((su==HIGH) and (punto==7)){
digitalWrite(13,HIGH); //commutazione canale 7
punto=8;
delay(1000);
}
else if ((su==HIGH) and (punto==8)){
digitalWrite(13,LOW); //commutazione canale 8
digitalWrite (12,LOW);
digitalWrite( 11,LOW);
digitalWrite (10,HIGH);
punto=9;
delay(1000);
}
else if ((su==HIGH) and (punto==9)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 9
punto=10;
delay(1000);
}
else if ((su==HIGH) and (punto==10)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 10
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
punto=11;
delay(1000);
}
else if ((su==HIGH) and (punto==11)){
digitalWrite(13,HIGH);// commutatore canale 11
punto=12;
delay(1000);
}
else if ((su==HIGH) and (punto==12)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 12
digitalWrite(12,HIGH);
punto=13;
delay(1000);
}
else if((su==HIGH) and (punto==13)){
digitalWrite(13,HIGH);// COMMUTAZIONE CANALE 13
punto=14;
delay(1000);
}
else if ((su==HIGH) and (punto==14)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 14
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
punto=15;
delay(1000);
}
else if ((su==HIGH) and (punto==15)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 15
punto=16;
delay(1000);
}
else if ((su==HIGH) and (punto==16)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 16
digitalWrite(12,HIGH);
punto=17;
delay(1000);
}
else if ((su==HIGH) and (punto==17)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 17
punto=18;
delay(1000);
}
else if ((su==HIGH) and (punto==18)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 18
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
punto=19;
delay(1000);
}
else if ((su==HIGH) and (punto==19)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 19
punto=20;
delay(1000);
}
else if ((su==HIGH) and (punto==20)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 20
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
digitalWrite(10,LOW);
punto=21;
delay(1000);
}
else if ((su==HIGH) and (punto==21)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 21
punto=22;
delay(1000);
}
else if ((su==HIGH) and (punto==22)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 22
digitalWrite(12,HIGH);
punto=23;
delay(1000);
}
else if ((su==HIGH) and (punto==23)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 23
digitalWrite(12,HIGH);
punto=24;
delay(1000);
}
else if ((su==HIGH) and (punto==24)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 24
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
punto=25;
delay(1000);
}
else if ((su==HIGH) and (punto==25)){
digitalWrite(13,HIGH); //COMMUTAZIONE CANALE 25
punto=26;
delay(1000);
}
else if ((su==HIGH) and (punto==26)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 26
digitalWrite(12,HIGH);
punto=27;
delay(1000);
}
else if ((su==HIGH) and (punto==27)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 27
punto=28;
delay(1000);
}
else if ((su==HIGH) and (punto==28)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 28
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
punto=29;
delay(1000);
}
else if ((su==HIGH) and (punto==29)){
digitalWrite(11,LOW);//COMMUTAZIONE CANALE 29
digitalWrite(12,LOW);
digitalWrite(13,HIGH);
punto=30;
delay(1000);
}
else if ((su==HIGH) and (punto==30)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 30
digitalWrite(10,LOW);
digitalWrite(9,HIGH);
punto=31;
delay(1000);
}
else if ((su==HIGH) and (punto==31)){
digitalWrite(13,HIGH);// COMMUTAZIONE CANALE 31
punto=32;
delay(1000);
}
else if ((su==HIGH) and (punto==32)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 32
digitalWrite(12,HIGH);
punto=33;
delay(1000);
}
else if ((su==HIGH) and (punto==33)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 33
punto=34;
delay(1000);
}
else if ((su==HIGH) and (punto==34)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 34
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
punto=35;
delay(1000);
}
else if ((su==HIGH) and (punto==35)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 35
punto=36;
delay(1000);
}
else if ((su==HIGH) and (punto==36)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 36
digitalWrite(12,HIGH);
punto=37;
delay(1000);
}
else if ((su==HIGH) and (punto==37)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 37
punto=38;
delay(1000);
}
else if ((su==HIGH) and (punto==38)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 38
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
punto=39;
delay(1000);
}
else if ((su==HIGH) and (punto==39)){
digitalWrite(13,HIGH);//COMMUTAZIONE CANALE 39
punto=40;
delay(1000);
}
else if ((su==HIGH) and (punto==40)){
digitalWrite(13,LOW);//COMMUTAZIONE CANALE 40
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(9,LOW);
digitalWrite(8,LOW);
punto=0;
delay(1000);
}
}
saluti Mario