problemi softwer per servomotori

buon giorno

e da poco che sono nell mondo di arduino e quindi sono un pò inesperto.
ce un errore nel programma di arduino per controlare il servomotore

#include <Servo.h> 

#define servoPinX 10
#define servoPinY 11

Servo myservoX;
Servo myservoY;
int servoPosX = 0;
int servoPosY = 0;
int potpin = 0;  
int val;    

void setup() 
{
   myservoX.attach(9);
 myservoX.write(pos);


 myservoY.attach(6);
 myservoY.write(pos);

}

void loop() {
  for (pos = 10; pos <= 130; pos += 1) { 
    myservoX.write(pos);              
    delay(15);                       
  }
  for (pos = 130; pos >= 10; pos -= 1) 
  {
    myservoX.write(pos);              
    delay(15);                       
}
 {
  val = analogRead(potpin);            
  val = map(val, 0, 1023, 0, 180);    
  myservo.write(val);                
  delay(15);                       
}

l' errore e questo:
exit status 1
'pos' was not declared in this scope
e mi seleziona questa righa

for (pos = 130; pos >= 10; pos -= 1)

Da nessuna parte dichiari la variabile pos.

  1. la dichiari all'inizio:
int pos;
  1. quando la usi solo in un for, la dichiari nel for stesso:
for (int pos = 10; pos <= 130; pos += 1) {

buon giorno
grazie per l' agliuto
ma o trovato in altro errore

exit status 1
'myservo' was not declared in this scope
su questa strisa di codice

 myservo.write(val);

spero nel vostro agliuto

mede49:
ma o trovato in altro errore ...

... quando si scrive il codice occorre stare molto attenti e ... prestare attenzione a ciò che si scrive. Ti dico solo ... guarda come hai chiamato le due istanze di Servo e guarda invece come stai chiamando il metodo write() :wink:

Guglielmo

Non mi pare un mistero quell'errore, basta un pò di attenzione.
Ti dice "myservo" non esiste. Tu hai myservoX e myservoY ovvio che il compilatore da errore

oops... Guglielmo ci siamo accavallati ;D

Grazie per l agliutto

Anche io ho visto altri errori :slight_smile:

nuovo errore

 delay(15);}

l errore e
exit status 1
expected '}' at end of input

Parentesi non bilanciate, o meglio (come vedo dal codice) messe a caso.

Inutile che riporti UNA riga ... sicuramente l'errore è causato da qualche cosa nelle righe precedenti. Riporta SEMPRE tutto il codice, così anche noi possiamo provare a compilarlo.

Continuo a suggerirti di usare la funzione Tool -> Auto Format ... che quella graffa dopo lo statement ... nun se po' vede' (... sperando che la metta al posto giusto) :smiley: :smiley: :smiley:

Guglielmo

Consiglio indentazione, ogni graffa aperta DEVE avere la sua graffa chiusa, mettile su righe da sole e incolonnate a seconda del livello, esempio:

for (pos = 130; pos >= 10; pos -= 1) 
{
    if(x>10)
    { 
        x=0;
    }
}

Che poi è quello che fa la CTRL+T, così è semplice vedere se le graffe si "pareggiano"