servomotore

ciao a tutti ,
il servo deve fare una rotazione di 180 gradi e si deve fermare in attesa di un altra istruzione che sarebbe ritorna alla posizone di partenza , arriva a 180 gradi non si ferma e ritorna velocemente alla posizione di partenza , se qualcuno mi essere di aiuto allego il software

#include <Servo.h>
int valore;
Servo servomotore;

void setup() {
servomotore.attach(9);

}

void loop() {
for (valore = 0; valore < 180; valore++){
servomotore.write(valore);

delay (50);}

si o capito che sono la base di arduino , ma la risposta quale è ? pensavo il forum servisse anche a questo

wirefree:
si o capito che sono la base di arduino , ma la risposta quale è ? pensavo il forum servisse anche a questo

Il forum serve ad aiutare, a spiegare ed a far capire all'utente dove sbaglia, NON a fornirgli la "pappa fatta" ...
... Nid ti ha spiegato che la funzione loop(), dentro la quale tu metti il codice, viene richiamata di continuo, quindi inizia, viene eseguito il codice e .... ricomincia dall'inizio.

Se tu metti un ciclo for ... una volta completato, semplicemente viene eseguito di nuovo, quindi dovrai strutturare il codice in modo diverso tenendo appunto conto che sei un un ciclo perenne.

Puoi, ad esempio, usare una "flag" che ti indichi che un qualche cosa è già stato eseguito o un altro meccanismo a tua scelta ... sei tu che sai cosa il tuo programma deve fare :wink:

Ti ricordo che invece, se quel for è necessario SOLO una volta in fase di inizializzazione ...
... beh, il posto più giusto dove metterlo è allora la setup() che viene eseguita una sola volta all'inizio del programma.

Guglielmo

conosco il ciclo loop , ma ho inserito il for nel setup e il servo ritorna indietro ugualmente.

si puo rispondere anche che esiste un istruzione detach(): “scollega” l’oggetto Servo dal il pin a cui era legato;

qui nessuno vuole la pappa fatta si chiede per risolvere le problematiche o errori , se qualcuno vuole

rispondere con pazienza lo ringrazio anticipatamente

bene , la domanda è questa come fare a fermare un servomotore? lo so che il loop si ripete e quindi ritorna indietro.
sto facento delle prove con switch inserito nel loop che con un telecomando mi entra nel case , gli faccio

fare il ciclo for nel case alla fine del ciclo for inserisco l'istruzione detach()

ora cosa succede che quando il servo gira da 0 a 180 tutto ok ,mentre quando ritorna da 179 a 0 e il

servomotore si ferma mi fa rumore il servo senza sto sbagliando qualcosa

spero di essermi spiegato

di nuovo,,
si lo so che nel loop si spenge detach() enon funziona
ma con lo swicth all inzio del case si inserisce l'istruzione attach(9) alla fine l'istruzione detach ()
cosi funziona almeno questo .

poi si puo programmare in più modi e questo non discuto, appunto e sono qui per migliorare

se qualcuno vuole con pazieza aiutarmi lo rigrazio anticipatamente