- Messaggi: 1010
- Ringraziamenti ricevuti 107
Pilotare un servomotore con un potenziometro
Marcello
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Autore della discussione
- Moderator
Non mi ricordo se l'hai scritto nel tuo articolo, ma i pwm non andrebbero bene?
La leva è da 10k?
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
- Messaggi: 1222
- Ringraziamenti ricevuti 104
Pinna ha scritto: i servi si spostavano ma poi bastava la mia mano per farli girare dove volevo. In parole povere, il servo in posizione non significa che si è spostato per esempio di 45° a destra... significa che se provi a muoverlo con una mano non si deve spostare, deve restare inchiodato anche se ci metti tutta la tua forza.
Marcello
in effetti se il joystick è fermo in posizione centrale il servo deve stare al centro senza muoversi e perchè questo avvenga il segnale deve essere sempre presente.
Bisogna anche considerare alle tolleranze del joystick a riposo non è detto che avremo un segnale di 1.5ms ma questo secondo me si puo' ovviare mettendo in serie un trimmer di basso valore.
Massimo
Si prega Accedi o Crea un account a partecipare alla conversazione.
- mpeino
- Elite Member
- Messaggi: 174
- Ringraziamenti ricevuti 2
Se faccio alla maniera del timer0 non mi tornano.
E poi c'è questo..
// Imposto il PreScaler Timer1 1:4
T1CONbits.T1CKPS0 = 0;
T1CONbits.T1CKPS0 = 1;
Ho qualche ricordo, mi sa che ti avevo già torro le scatole su questa cosa...
Non riesco a trovare dove hai abilitato l'interrupt del timer1 e la sua priorità, non si deve settare?
Poi usi queste due funzioni..
void WriteTimer0 ( unsigned int timer0); // Prototipo di funzione estrapolato dal timers.h (MCC18\h)
void WriteTimer1 ( unsigned int timer1); // Prototipo di funzione estrapolato dal timers.h (MCC18\h)
ma non includi il file timers.h come mai funziona ugualmente?
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
- Messaggi: 1222
- Ringraziamenti ricevuti 104
T1CONbits.T1CKPS0 = 0;
T1CONbits.T1CKPS0 = 1; vedi che per errore ho scritto due volte T1CONbits.T1CKPS0? Prima l'ho impostato a 0 e poi a 1!!! Mentre T1CONbits.T1CKPS1 è già impostato a 0 di default
Per correttezza e per una migliore comprensione del firmware avrei dovuto scrivere:
// Imposto il PreScaler Timer1 1:2
T1CONbits.T1CKPS0 = 1
T1CONbits.T1CKPS1 = 0; che sono le istruzioni corrette
Grazie ancora per avermelo fatto notare nuovamente
Per quanto riguarda l'altra funzione, se guardi il file timers.h vedrai che all'interno della stessa non c'è nulla... una semplice dichiarazione di funzione.
Allego nuovamente il progetto, con la dovuta correzione...
Marcello
Chi vola vale, chi vale vola, chi non vola è un vile
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Autore della discussione
- Moderator
- Messaggi: 1010
- Ringraziamenti ricevuti 107
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.