Arduino Starter Kit : progetto 05.

Ciao a tutti,
ho riscontrato un problemino con questo progetto.
Riassumendolo, si comanda un servomotore tramite un potenziometro. Il problema è che, quando si porta il servomotore a 179 gradi, controllabili tramite il monitor seriale, si continua a sentire una vibrazione.
Infatti con il monitor noto che i valori non rimangono fissi su 179 gradi, ma oscillano anche se di poco.
Tuttavia, in qualsiasi altra posizione, i valori rimangono stabili (e il servo smette di lavorare).
Ho sostituito il potenziometro con uno non presente nel kit, ma la cosa non cambia.
Ho anche notato che, simulando il tutto senza servomotore connesso alla breadboard, i valori sono costanti anche a 179.
lo sketch usato è quello riportato nel libro ed ho provato anche con quello negli esempi dell’ IDE, ma senza risolvere il problema.
Servomotore difettoso?

Ciao Daniele, dato che NON tutti hanno il libro dello starter-kit …
… sarebbe bene che tu mettessi anche il codice (… mi raccomando, chiuso tra i tag CODE che il bottone fatto così: </> inserisce) così possiamo vedere di cosa stai parlando :slight_smile:

Guglielmo

P.S.: Magari, sempre per lo stesso motivo, anche uno schemino dei collegamenti :wink:

Hai messo i condensatori? Ciao Uwe

Scusate l’imprecisione riporto foto e sketch.
I condensatori usati sono da 100 uf.

#include <Servo.h>

Servo myServo;  

int const potPin = A0; 
int potVal; 
int angle;   

void setup() {
  myServo.attach(9); 
  Serial.begin(9600); 
}

void loop() {
  potVal = analogRead(potPin);
  
  Serial.print("potVal: ");
  Serial.print(potVal);
  
  angle = map(potVal, 0, 1023, 0, 179);

  Serial.print(", angle: ");
  Serial.println(angle);
 
 myServo.write(angle);

  delay(15);
}

Daniele03: ... Infatti con il monitor noto che i valori non rimangono fissi su 179 gradi, ma oscillano anche se di poco.

Intendi dire che, se porti il potenziometro tutto dal lato del 179 ... il valore che leggi sul serial monitor NON rimane stabile a 179 ?

E se metti TU nel codice il valore fisso 179 funziona e sta fermo ?

Guglielmo

gpb01: Intendi dire che, se porti il potenziometro tutto dal lato del 179 ... il valore che leggi sul serial monitor NON rimane stabile a 179 ?

E se metti TU nel codice il valore fisso 179 funziona e sta fermo ?

Guglielmo

Alla prima domanda rispondo si, il valore non rimane stabile oscilla tra 179 e 176, a volte anche 160, ed infatti si sente vibrare il servo.

La seconda domanda non mi è chiara, io 179 lo metto nello sketch, la prova che ho fatto è stata togliere materialmente il servo dal circuito ed agire solo sul potenziometro,in questo caso posso osservare con il monitor seriale il comportamento e posso dire che il valore rimane stabile a 179

Daniele03: La seconda domanda non mi è chiara, io 179 lo metto nello sketch, la prova che ho fatto è stata togliere materialmente il servo dal circuito ed agire solo sul potenziometro,in questo caso posso osservare con il monitor seriale il comportamento e posso dire che il valore rimane stabile a 179

Intendevo dire che, se invece di leggere il potenziometro, nel codice metti il valore fisso 179 (come se il potenziometro fosse sempre a tale valore), hai ancora problemi ?

Mi viene il dubbio che c'entri l'assorbimento del motore, un calo di tensione (specie se alimenti con una pila) e quindi un differente valore tornato dalla analogRead() ... ::)

Guglielmo

Non ho provato a metterlo direttamente nel codice,basta sostituire questo

angle = map(potVal, 0, 1023, 0, 179);

con questo

angle = 179;

Una volta inserito 179 tolgo il potenziometro?

Alimento il tutto tramite porta USB

... si, prova a mettere fisso il valore di angle e vedi cosa succede. Il potenziometro puoi anche lasciarlo, tanto ignori il valore che ti restituisce ;)

Guglielmo

gpb01: ... si, prova a mettere fisso il valore di angle e vedi cosa succede. Il potenziometro puoi anche lasciarlo, tanto ignori il valore che ti restituisce ;)

Guglielmo

Provato, non cambia nulla. Si stabilizza intorno ai 160° ed ho ottenuto gli stessi risultati anche con un alimentatore esterno.

… mmm … probabilmente è proprio il servo che, arrivato al suo limite, si comporta in quel modo. Del resto credo sia un piccolo servo per fare degli esercizi :wink:

Non ne ho uno, altrimenti proverei a verificare la cosa … mi spiace.

Guglielmo

Credosia colpa del tuo servo... io ho lo starter kit ho appena provato ed il progetto funziona

Ok,era come sospettavo, pazienza grazie per l aiuto