Salve, scusate se disturbo ancora ma questo problema non riesco a risolverlo, in pratica faccio girare il motorino in senso orario capita guardando nel monitor seriale che l'encoder rileva una rotazione in senso antiorario, nello sketch ho impostato l' "EncoderDistance" come incremento quindi lui incrementando mi dice la distanza in cui si trova, mentre il comando stateEncoder mi dice la direzione con 1 e -1, 1 come rotazione oraria e -1 come antioraria.
void setup() {
pinMode ( OutA, INPUT ) ;
pinMode ( OutB, INPUT ) ;
digitalWrite ( OutA, HIGH ) ;
digitalWrite ( OutB, HIGH ) ;
Serial.begin ( 250000 ) ;
Serial.println ( "Start!!" ) ;
Serial.println ( "Start!!" ) ;
Serial.println ( "Start!!" ) ;
attachInterrupt (0, Encoder, FALLING );
}
void loop() {
Serial.print ( " Encoder :" ) ;
Serial.print ( " Stato logico - ( " ) ;
Serial.print ( StateEncoder ) ;
Serial.print ( " ) Distanza - ( " ) ;
Serial.print ( EncoderDistance ) ;
Serial.println ( " ) " ) ;
}
void Encoder() {
if (digitalRead(OutA) == digitalRead(OutB))
{
StateEncoder = 1 ;
EncoderDistance++ ;
}
else
{
StateEncoder = -1 ;
EncoderDistance-- ;
}
}
Non penso che derivi da un problema dello sketch perchè ne ho provati molti sul web, sembrerebbe piuttosto l'encoder, volevo chiedere consiglio a voi in tal caso per capire il problema e se c'è qualche possibilità per risolverlo.
Grazie.


