Info arduino con 2 servo ed led keypad shield


buonasera tutti, mi presento tutti con questa mia prima richiesta xd, comunque piacere di conoscere tutti voi.

allora volevo chiedervi un paio di cose su uno sketch che ho scritto per muovere 2 servo  tramite tasti di un lcd keypad shield ed una scheda arduino.in particolare 2 servo devono muoversi di 2 angoli (0 - 90 gradi) tramite 2 pulsanti, inoltre ho altri 2 pulsanti che utilizzo per switchare tra 2 servo (ovviamente parlo dei tasti del lcd keypad).
vi allego lo sketch.....
code: [select]


#include<servo.h>
#include<liquidcrystal.h>

liquidcrystal lcd(8,9,4,5,6,7);
servo myservo1;
servo myservo2;
int i;
int pos1;
int pos2;
int pos3=0;
int pos4;
int pos5=1200;
int tens;
int switchmotore;
int flag;

void setup() {
lcd.begin(16,2);
lcd.print("angle1 angle2");
lcd.setcursor(0,2);
lcd.print(pos1);
lcd.print("gradi");
lcd.print(" ");
lcd.print(pos2);
lcd.print("gradi");
}

void loop() {
switchmotore=analogread(0);

if(switchmotore==818){
  flag=1;
}
if(switchmotore==767){
  flag=2;
}
if(flag==1){
  myservo1.attach(1);

tens=analogread(0);
if (tens==0){
  pos1=90;
    for(i=pos3; i<pos1; i+=1){
      myservo1.write(i);
      delay(15);
    }
    pos3=i;
    
lcd.clear();
lcd.print("angle1 angle2");
lcd.setcursor(0,2);
lcd.print(pos1);
lcd.print("gradi");
lcd.print(" ");
lcd.print(pos2);
lcd.print("gradi");
}


if(tens==681){
pos1=0;

      for(i=pos3; i>=pos1; i-=1){
        myservo1.write(i);
        delay(15);
        }
        pos3=i;
      
lcd.clear();
lcd.print("angle1 angle2");
lcd.setcursor(0,2);
lcd.print(pos1);
lcd.print("gradi");
lcd.print(" ");
lcd.print(pos2);
lcd.print("gradi");
}


}
else
if(flag==2){
  myservo2.attach(2);

tens=analogread(0);
if (tens==0){
  pos2=90;
  pos4=2010;
  for(i=pos5; i<pos4; i+=9){
    myservo2.write(i);
    delay(20);
    }
 pos5=i;

lcd.clear();
lcd.print("angle1 angle2");
lcd.setcursor(0,2);
lcd.print(pos1);
lcd.print("gradi");
lcd.print(" ");
lcd.print(pos2);
lcd.print("gradi");
}

if(tens==681){
pos2=0;
pos4=1200;
      for(i=pos5; i>=pos4; i-=9){
        myservo2.write(i);
        delay(20);
        }
        pos5=i;
lcd.clear();
 lcd.print("angle1 angle2");
lcd.setcursor(0,2);
lcd.print(pos1);
lcd.print("gradi");
lcd.print(" ");
lcd.print(pos2);
lcd.print("gradi");
}

}




 
}


spero si riesca capire il funzionamento..( nel primo caso ho impostato gli angoli nel secondo gli impulsi).

la domanda che volevo farvi è questa:

quando vado selezionare il servo da utilizzare, dopo aver spento e riacceso la scheda arduino, questo si sposta in una posizione random(credo), non per quale motivo.
si può eliminare questo difetto? cioè vorrei che quando lo seleziono non vada in una posizione casuale ma rimanga in quella attuale( per esempio 90 gradi).

ringrazio tutti per aver avuto la pazienza di leggere tutto.. spero sia abb chiara la mia domanda.

buona serata tutti

meglio se editi il post e racchiudi lo sketch negli appositi tag code... altrimenti ti bacchettano...


Arduino Forum > International > Italiano > Software (Moderator: leo72) > Info arduino con 2 servo ed led keypad shield


arduino

Comments

Popular posts from this blog

Error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode - Raspberry Pi Forums

class MPU6050 has no member named begin

missing filename after '-o'