Hola Amig@s:
Aqui les dejo un proyecto sencillo pero creo que algo útil, se trata para probar tres servos, cada uno de ellos se mueve independientemente y es controlado por un potenciómetro cada uno, se puede mover a la izquiera y a la derecha, y se visualiza en el LCD "el valor del potenciómetro" una ves que fue leido su valor por el ADC, este mismo valor es el que se usa para posicionar el servo, un codigo bastante sencillo como se puede ver a continuación:
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4
Define ADC_BITS 8
Define ADC_CLOCK 3
Define ADC_SAMPLEUS 50
adval var byte
b0 var byte
b1 var byte
b2 var byte
b6 var byte
b7 var word
mover var word
TRISA = %11111111
ADCON1 = %00000010
pause 250
lcdout $FE,1,"SRV1 SRV2 SRV3"
start:
lcdout $FE,$C0,dec3 b0," ",dec3 b1," ",dec3 b2
PORTC = 0
pulsout PORTC.0, b0
pulsout PORTC.1, b1
pulsout PORTC.2, b2
b7 = b0 + b1 + b2
b6 = b7/100
b7 = 15 - b6
pause b7
Adcin 0, b0
Adcin 1, b1
Adcin 2, b2
goto start
end
Creo que puede ser algo útil si se quiere posicionar el servo en un valor específico al momento de que se ejecute el programa del pic mirando el valor en el LCD, y si se está probando algun bot y probar la mecánica del mismo, a ver si le encuentran mas aplicaciones algunos
, luego lo depuraré a ver si li hago para un par mas de servos y para conectarlo al PC para aquellos que no dispongan en ese momento de un LCD, a ver tambien si salen mas ideas
Y a continuación les dejo el circuito para que lo puedan armar y probar.