salve ragazzi, sto programmando il mio arduino mega 2560 per pilotare il movimento di un micro servo 9g. il prggetto prevede che attraverso l'uso di due pulsanti il servo si possa muovere o verso destra (pulsante 1) o verso sinistra (pulsante 2) con la memorizzazione del punto in cui ho lasciato il pulsante... provo a buttare giù un programmino e mi blocco ad un punto, il servo compie il movimento verso destra e verso sinistra con i due pulsanti ma non riesco a far fermare il servo quando lascio il pulsante, si muove solo da 0° a 180° e da 180° a 0°...ecco lo sketch:
#include <Servo.h>
Servo servo1;
int destra = 50;
int sinistra = 52;
int i=0;
void setup()
{
Serial.begin(9600);
servo1.attach(10);
}
void loop()
{
if(digitalRead(destra) == HIGH) {
for(int i=500; i<2200; i+=2200) {
Serial.println(i);
servo1.writeMicroseconds(i);}}
else{
i=0;}
if(digitalRead(sinistra) == HIGH) {
for(int a=2200; a>500; a-=2200) {
Serial.println(a);
servo1.writeMicroseconds(a);}}
else{
i=0;}}
edit by mod: per favore includi il codice usando gli appositi tag
come metodo ho scelto quello di incrementare e decrementare la posizione, ho usato un incremento e decremento di 2200 microsecondi perché nel progetto che voglio realizzare in movimento del servo deve essere fluido e non a scatti, non sono un programmatore esperto sono alle prime armi, spero di essere stato chiaro nella spiegazione del problema e vi ringrazio per l'aiuto ![]()