Ciao ragazzi! sono nuovo nel forum e chiedo il vostro aiuto..
ho un servo a rotazione continua che muove un asta su cui ho montato un potenziometro per rilevarne la posizione. il mio progetto è di sapere dove si trova l' asta in base al valore del potenziometro..se è in una posizione diversa da dove voglio io ( posizione centrale) il motore deve tornare alla posizione iniziale girando a destra o a sinistra..ho provato a fare uno sketch però il servo gira a scatti..non so il motivo! =( =(
#include <Servo.h>
Servo myservo;
int base;
void setup()
{
myservo.attach(3);
Serial.begin(9600);
}
void loop()
{
base = analogRead(A0);
Serial.println(base);
analogRead(base);
if (base < 580)
myservo.write(150); // rotazione oraria
if (base=580)
myservo.write(90); //fermo
if (base> 580)
myservo.write(30); //rotazione antioraria
}
ciao dagi_95 e benvenuto.
per prima cosa dai un'occhiata al REGOLAMENTO e al tred dove ci si PRESENTA.
poi guardando il tuo sketch questa cosa:
analogRead(base);
non ha senso (e non serve).
poi quando dici
però il servo gira a scatti..
non è chiaro il problema; sicuramente il servo continuerà ad andare avanti e indietro quando il potenziometro è vicino a 580 perchè le letture analogiche normalmente oscillano anche di 1 o 2 punto quindi la condizione
if (base=580)
myservo.write(90); //fermo
fermerà il servo solo per un attimo.
Ti conviene dare lo stop in un range di valori esempio:
if (base>580 && base<590)
myservo.write(90); //fermo
ciao
pippo72
p.s. non so se i valori che dai al myservo.write sono corretti
p.p.s anche così potrebbe oscillare se il valore del pot è vicino a 580 o 590. devi aggiungere un'isteresi software
Grazie del vostro aiuto !! Adesso ho risolto mettendo un isteresi. però ho un nuovo problema, ho collegato agli input analogici 4 potenziometri lineari da 10k alimentati dal pin 5v di arduino. il mio problema è che quando giro un solo potenziometro variano anche gli alti valori degli altri potenziometri... Avete qualche soluzione da propormi?