Pages: [1] 2   Go Down
Author Topic: Problema con servo  (Read 1331 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buongiorno a tutti!
In questi giorni ho provato a comandare un servo con arduino, però non riesco a muoverlo come desidero io..
Il servo è un Graupner Servo C 577  http://www.graupner.de/en/products/4101.LOSE/product.aspx
Vorrei capire se sono io che sbaglio con il codice oppure è il mio servo che è diverso da quelli standard..
Innanzitutto ho usato il codice standard che ci offre il programma di arduino:

Code:

#include <Servo.h>
 
Servo myservo; 
               
int pos = 0;
 
void setup()
{
  myservo.attach(9); 
}
 
 
void loop()
{
  for(pos = 0; pos < 180; pos += 1) 
  {                                 
    myservo.write(pos);             
    delay(15);                       
  }
  for(pos = 180; pos>=1; pos-=1)     
  {                               
    myservo.write(pos);             
    delay(15);                       
  }
}
 


E fin qua tutto ok, il mio servo gira di 180° e poi torna a 0° senza nessun problema..
Il problema nasce quando io voglio posizionarlo a mio piacimento, non riesco..
se ad esempio scrivo: myservo.write(90) lui fa tutti i 180°
o sennò, se con le debite sostituzioni, sostituisco sul ciclo for i valori 0 e 180 con 60 e 120, mi dovrei aspettare che compia una rotazione meno ampia..e invece niente, gira comunque di 180°!!
Mi potreste aiutare?
Grazie mille per l'ascolto
Logged

Monselice PD Italy
Online Online
Faraday Member
**
Karma: 26
Posts: 5496
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Molto strano, non dovrebbe darti alcun problema...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So che è strano, ma mi serve per far girare le ruote di una macchinina, e per me è essenziale poterlo muovere a piacere, da tastiera ad esempio..
Ma quando ruota, lo fa solo di 180°, oppure sforza verso la direzione opposta dove non può andare
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Interessante.
Hai alla mano documentazione specifica del servo?
Uno volta mi sono imbattuto in un servo che aveva un range di utilizzo diverso dagli altri e sostituendolo nella scheda questo si comportava diversamente.

Carta alla mano dovresti vedere i valori di minimum pulse width e maximum pulse width.
Una volta recuperati usa il costruttore servo.attach(pinnumber,min,max).

Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Interessante.
Hai alla mano documentazione specifica del servo?
Uno volta mi sono imbattuto in un servo che aveva un range di utilizzo diverso dagli altri e sostituendolo nella scheda questo si comportava diversamente.

Carta alla mano dovresti vedere i valori di minimum pulse width e maximum pulse width.
Una volta recuperati usa il costruttore servo.attach(pinnumber,min,max).



Purtroppo non ho documentazioni su questo servo e per ora su internet non ne ho trovate..
Su che valori possono variare solitamente min e max? cosi se non trovo un valore su qualche sito, almeno provo ad indovinarlo smiley
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nel mio caso era da circa 700 (min) a 1800(max) ma non ricordo ne marca ne modello.
Il default della libreria arduino è da 544 a 2400 se non sbaglio.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nel mio caso era da circa 700 (min) a 1800(max) ma non ricordo ne marca ne modello.
Il default della libreria arduino è da 544 a 2400 se non sbaglio.


Ok! Più tardi provo e stasera mi farò risentire, grazie intanto!
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nel mio caso era da circa 700 (min) a 1800(max) ma non ricordo ne marca ne modello.
Il default della libreria arduino è da 544 a 2400 se non sbaglio.


Ho provato, ma niente, sempre il solito problema.. scrivo ( myservo.write(90) ) e si muove comunque di 180 °, però piu lentamente..
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma se provi a fare qualcosa tipo myservo.write(10) di quanto si sposta?

Su che pin l'hai collegato?
un pwm spero!
Se il codice che hai allegato è lo stesso lo hai collegato al 9, prova a fare la stessa cosa su un altro pin pwm, non il 10 però.
Prova sul 3 e sul 5 e facci sapere.
Se risolvi allora hai lo stesso problema che ho avuto io tempo fà con i pwm collegati al tmr1.
Problema software per fortuna che poi ho risolto.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma se provi a fare qualcosa tipo myservo.write(10) di quanto si sposta?

Su che pin l'hai collegato?
un pwm spero!
Se il codice che hai allegato è lo stesso lo hai collegato al 9, prova a fare la stessa cosa su un altro pin pwm, non il 10 però.
Prova sul 3 e sul 5 e facci sapere.
Se risolvi allora hai lo stesso problema che ho avuto io tempo fà con i pwm collegati al tmr1.
Problema software per fortuna che poi ho risolto.


Grazie per la risposta! ma niente da fare..ho scritto questo codice:
Code:
#include <Servo.h>
 
Servo myservo;
 
void setup()
{
  myservo.attach(5);
}
void loop()
{
  myservo.write(90);
  delay(1000);
  myservo.write(120);
  delay(1000);
}

ma la rotazione è comunque di 180°, qualsiasi cosa io scrivo su write(), sia sul pin 3 che sul pin 5..
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma hai provato uno psostamento minimo come ti avevo detto io?
tipo

myservo.write(10);
delay(2000);
myservo.write(15);
delay(2000);

che risultato hai ottenuto?

Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Udine
Offline Offline
Jr. Member
**
Karma: 0
Posts: 69
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

saluti a tutti,
leggevo questo post e dato che anche io armeggio con i servi ti posso dare solo questa dritta per quello che vale.
Probabilmente codice a parte, tutti i servi che io sappia sono limitati per un arco di 180 gradi, sicuramente quelli destinati al modellismo.
Infatti per alcune applicazioni particolari esistono dei servi appositi.
Non è un grosso problema, in rete c'è un video che ho visto circa un anno fa che ti insegna come togliere il dentino di blocco nel servo.
Spero di esserti stato utile.
ciao
Logged

Mestre(VE)
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come alimenti il servo? ricorda che tutto deve essere messo a massa comune per avere un riferimento di potenziale!
Logged

MC
Offline Offline
God Member
*****
Karma: 14
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come alimenti il servo? ricorda che tutto deve essere messo a massa comune per avere un riferimento di potenziale!

Quoto di brutto!!!
Questo è alla base!!!
Spero tu abbia seguito gli esempi di collegamento del playground...
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Offline Offline
Jr. Member
**
Karma: 0
Posts: 53
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per il collegamenti ho seguito quest'immagine che ho trovato su una guida (però io ho un arduino mega):





Domani provo a fargli fare lo spostamento minino e vi dirò l'esito..
Vi ringrazio ancora per la disponibilità
Logged

Pages: [1] 2   Go Up
Jump to: