Citazione:
Originalmente inviato da sim176 Buona serata a tutti, ho realizzato un circuitino con un PIC 16F84 che, in base allo stato logico in un ingresso, mi muove un servocomando di 90°. Non sono un grande esperto, ma ho buttato giù 2 righe in picbasic, comando pulsout = 100 oppure pulsout = 200 in base allo stato logico. Fin quà tutto bene. Per rallentare il movimento del servo incremento il comando pulsout di una unità alla volta. Ottimo, funziona tutto! Il servo però si muove a piccoli scattini e si nota troppo. Penso di risolvere velocemente cambiando il quarzo da 4mhz a 8mhz, raddoppio tutti tempi e suddivido i 90° in 200 passi anzichè 100. Invece no, non funziona, il servo si posiziona in punti che non riesco a capire.
Qualcuno mi sa dire perchè?
ecco il codice che ho realizzato:
@ DEVICE XT_OSC ' sets programmer to external oscillator - low power, HS would be for faster xtals.
DEFINE OSC 4 ' for 4 mhz osc
TRISA=%11111111
TRISB=%00000000
ingresso var porta.0
uscita var portb.0
segnale var byte
segnale = 100
inizio:
if ingresso = 1 then
segnale = segnale + 1
else
segnale = segnale - 1
endif
if segnale > 200 then segnale = 200
if segnale < 100 then segnale = 100
pulsout uscita,segnale
pause 18
goto inizio
end
Grazie a tutti quelli che mi aiutano e anche quelli che non mi aiutano ma può essere utile |
Sicuro che non dipenda dal servo ? quelli particolarmente economici sono così penosi che fanno 40/50 step massimo... (ne ho trovati anche da 30 ovvero 3° per step)