Pages: [1]   Go Down
Author Topic: Domanda su libreria servo.h  (Read 1016 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 2
Posts: 213
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve, domanda penso stupida x tutti voi... è possibile utilizzando la libreria servo.h ad impostare una velocità di raggiungimento della posizione desiderata? Cioè... riesco a far muovere i servi nella posizione desiderata chiaramente tramite la funzione myservo.write(posizione)... ma è possibile far cambiare la velocità di movimento? Ho visto la funzione writeMicroseconds().... può essere utile? Grazie a tutti!!
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 257
Posts: 21460
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no. devi fare punti intermedi per rallentare il movimento del Servo.
con http://arduino.cc/en/Reference/ServoWriteMicroseconds dai la lunghezza del impulso del segnale PPM. é un altro modo per definire la posizione dle Servo.
http://arduino.cc/en/Reference/ServoWriteMicroseconds
Ciao Uwe
« Last Edit: October 03, 2012, 05:43:01 pm by uwefed » Logged

Torino
Offline Offline
God Member
*****
Karma: 3
Posts: 766
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
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
In questo modo puoi......Nel ciclo for ci sono rappresentati i gradi di rotazione del servo da 0 a 180,quindi il ciclo parte da 0 ed incrementa di 1 la variabile pos,subito dopo con myservo.write(pos) invii al servo i valori assunti dalla variabile all'interno del ciclo for. E' il delay(15) che in questo caso rallenta il movimento del servo ovvero se tu scrivessi delay(200) il tuo servo si sposterebbe di un grado ogni 200ms. Va detto però che ,all'aumentare eccessivo di tale valore, il movimento del servo risulterà a scatti.
Quote
Ho visto la funzione writeMicroseconds()
Con questa funzione sposti il tuo servo, scrivendo all'interno delle parentesi,non l'angolo ma direttamente il tempo che il segnale PWM è a livello logico alto corrispondente all'angolo di posizionamento che desideri.....Ti allego un link che spiega i principi di funzionamento dei servo che ti aiuterà a capire bene....http://www.settorezero.com/wordpress/come-funziona-un-servocomando/
Comunque non esistono domande stupide  smiley ciao.
« Last Edit: October 04, 2012, 12:23:21 am by tonid » Logged

Pages: [1]   Go Up
Jump to: