Salve a tutti,
quando ho iniziato con arduino comprai due servo per il mio robot ma questi giravano solo in una direzione, provai di tutto ma niente.Riuscivo solo a spegnerli e accenderli e continuavano a girare sempre nello stesso verso.Così per far veloce ho smontato il circuito ed ho collegato due relè, uno per cambiare verso e uno per spegnere ed accendere il servo(anche se ormai non si può più chiamarlo servo ).
Da poco ho pensato di continuare e per il mio progetto servono altri due servo,così ho comprato quelli dello stesso modello crendendo di riuscire a farli funzionare.
Però dopo aver provato gli esempi di arduino (Servo sweep e Knob) e quello che proponeva internet il risultato è identico : i servo continuano a girare nello stesso verso!
Scusate se la domanda può risultare stupida, nel caso i servo possono solo girare in un verso .... (e allora a cosa serve il potenziometro interno mi son risposto da solo , vero? )
da quello che so i servo possono compiere di solito circa mezzo giro(180°). se da ad esempio vuoi muoverti da 0 a 180 il servo gira in un verso se invece vai da 180 verso lo 0 girerà in un altro verso
// Sweep
// by BARRAGAN <http://barraganstudio.com>
// This example code is in the public domain.
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
con l'esempio sweep nel primo ciclo for fai girare il servo in un senso nel secondo ciclo for il servo gira in senso opposto e torna alla posizione iniziale!
CIao, non ho mai provato però ricordati che facendo questa modifica il servo diventerà un semplice motorino con motoriduttore e quindi, quando darai valori più alti di 90 il motore andrà in un senso, invece se darai valori più bassi questo andrà più lento. Correggettemi se sbaglio, comunque questi link potrebbero esserti utili:
Gioblu.com is for sale | HugeDomains
Riguardo al tuo problema attuale non so cosa potrebbe essere, più di fare i collegamenti giusti e caricare lo sketch d'esempio non saprei proprio.
Edit da noob: ma non si potrebbe attaccare direttamente un uscita di arduino(nel caso non ce la facesse usando un transistori) al servo, quello che intendo dire è, che senso ha passare per l'elettronica del servo se poi lo si deve usare? Sono interessato anch'io perchè sto costruendo un piccolo robottino cingolato e non sarebbe male darli un "braccio" XD
Bhe i collegamenti sono veramente pochi : batterie esterne (+ al + del servo e - al - del servo)
l'ultimo cavo, quello giallo lo ho collegato ad un pin pwm di arduino (in questo caso pin 9)
Come sketch uso sweep, knob e uno creato da me con il duty cicle : (metto solo la parte importante e tralascio void loop e setup,definizioni e variabili)
void loop ()
{
digitalWrite(servopin,HIGH);
delay(2.5); // poi ho provato a inserire anche 1.5 e 5
digitalWrite(servopin,LOW);
delay(17.5); //poi rispettivamente 18.5 e 15
}
Scusa, non sono la persona più indicata e onestamente da quello che mi dici dovrebbe andare, se dici di essere veramente sicuro della cablatura(guardato il datasheet specifico?) non saprei proprio cosa dirti. Lascio spazio a qualcuno più esperto.
Ciao.
Non capisco per bene la tua domanda...
I servi una volta modificata devi pilotarli esternamente...
Ti prendi unbel ponte H (L293) e lo comandi con quello... controlli direzzione e velocità di due servi con un unico integrato di questo tipo....
ratto93:
Non capisco per bene la tua domanda...
I servi una volta modificata devi pilotarli esternamente...
Ti prendi unbel ponte H (L293) e lo comandi con quello... controlli direzzione e velocità di due servi con un unico integrato di questo tipo....
Ciao ratto93
Non puoi polarizzare un servo inversamente; Rompi l' elettronica che contiene.
Con un ponte H puoi pilotare solo motori corrente continua a spazzole, neanche Ventole Dc.
smasho:
non so se risolve il problema ma credo che al meno delle batterie devi collegare anche il ground di arduino...xò forse dico c*****e
No, Non dici c****
Perche un segnale possa funzionare deve esserci anche un collegamento di massa per dare un potenziale definito al segnale PWM del Arduino.