Pagina 1 di 2

Problema pilotaggio servomotori

MessaggioInviato: 30 apr 2012, 11:48
da alle588
Ciao a tutti!!io ho un servo della HITEC...l' HS311 e vorrei farlo girare ma quando cerco di farlo girare emette solo un suonino e si muove di pochissimo!!!

Codice: Seleziona tutto
void Apri_Porta()
{   
        Servo1 = 1;
        DelayUs(900);
        Servo1 = 0;
        DelayUs(19100);
return;
}




il comando di apertura deve partire quando arriva il carattere 'a' su seriale ( QUESTO PEZZO FUNZIONA) al che metto a 1 una variabile e nel main poi dovrà aprire
Codice: Seleziona tutto

void main ( void )
{
      for ( ;; )
      {
              if ( Apri == 1 ) Apri_Porta();
      }
return;
}




la variabile Apri diventa a uno quando:
....
case 'a':
Apri = 1;
break;
....




Per favore aiutatemi che devo finirlo per fine anno scolastico!!

Re: Problema pilotaggio servomotori

MessaggioInviato: 30 apr 2012, 15:47
da simo85
Se metti a 1 la variabile Apri, cosa succede?
Codice: Seleziona tutto
        Servo1 = 1;
        DelayUs(900);
        Servo1 = 0;
        DelayUs(19100);

Non è troppo poco?

Re: Problema pilotaggio servomotori

MessaggioInviato: 30 apr 2012, 20:37
da alle588
La variabile Apri è globale quindi vista da tutto!!!quando nell'interrupt generato dalla seriale riecevo la 'a' la variabile va a uno e nel main poi dovra andare a svolgere la funzione Apri_porta()

Re: Problema pilotaggio servomotori

MessaggioInviato: 30 apr 2012, 21:32
da simo85
Questo lo avevo capito già da solo. Sbaglio o non hai capito cosa ho cercato di farti notare?

Re: Problema pilotaggio servomotori

MessaggioInviato: 30 apr 2012, 21:40
da alle588
Può essere!!! :D :D :D accetto tutte le critiche possibili!

Re: Problema pilotaggio servomotori

MessaggioInviato: 30 apr 2012, 23:31
da simo85
Quello che volevo dire io è che un ritardo 900µs mi sembra un po' poco per vedere il motorino girare..
Se ad esempio invii una sequenza di caratteri del tipo "qwertyuioasdfghjklñzxcvbnm'..

Re: Problema pilotaggio servomotori

MessaggioInviato: 1 mag 2012, 4:12
da alle588
Quindi?devo aumentare il tempo..a quanto?

Re: Problema pilotaggio servomotori

MessaggioInviato: 1 mag 2012, 10:14
da alle588
sul fatto della sequenza di cartteri tu dici che il PIC perde tempo quando si genera l'interrupt e non riesce a gestire il servo?

Re: Problema pilotaggio servomotori

MessaggioInviato: 1 mag 2012, 11:23
da Lelettrico
Calma ... quante volte mandi l'impulso al servo :?:
Deve essere una sequenza continua ininterrotta il cui duty determina la posizione, questo vale per HS311 ... altri servo hanno o possono avere altri comandi.
Quindi anche quando Apri NON e' uguale a 1 e non sono intervenuti comandi di "Chiudi" l'impulso deve restare tale e quale ...
Due variabili di stato una apre ed una chiude, loop di mandata degli impulsi perennemente in funzione magari gestito da interrupt, non il viceversa come mi sembra di capire.

Re: Problema pilotaggio servomotori

MessaggioInviato: 1 mag 2012, 11:32
da alle588
io mando il carattere 'a' al che la variabile Apri va 1 e poi nel main se Apri = 1 continua ad eseguire Apri_Porta(); cosi che continui a generare impulsi