TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Lager. en 07 de Diciembre de 2004, 21:50:00
-
Que onda panas, aqui les pongo un ejemplo muy sencillo del uso de servos con proton:
---------------------------------------------------------------------------------------------------------
DEVICE 16F628A
xtal 20
DIM Posicion as WORD " variable para posicion
SYMBOL Pin = PORTA.3 " pin que maneja servo
CMCON = 7 " deshabilitamos comparadores
Posicion = 1500 " posicion inicial(centrado)
TRISA = %00000111 " porta.0-2 entradas,porta.3 entrada
PORTA = 0 " limpiamos porta
---------------------------------------------------------------------------------------------------------
inicio:
IF PORTA.0 = 0 Then IF Posicion < 3000 Then Posicion = Posicion + 1 "incremento --->
IF PORTA.1 = 0 Then Posicion = 1500 " lo regresa al centro
IF PORTA.2 = 0 Then IF Posicion > 0 Then Posicion = Posicion - 1 " incremento <---
SERVO Pin , Posicion
DELAYMS 5 " esperamos(depende del motor..DS)
GOTO inicio
---------------------------------------------------------------------------------------------------------
El ancho del pulso determina la posicion del servo, claro que esto depende del modelo a trabajar , aunque la mayoria de ellos con un pulso de 1.5ms se centra(Revizar DS del modelo a trabajar).
el comando SERVO de proton, genera un pulso de 1us en el puerto y pin determinados. Este comando es independiente del oscilador usado por el micro, lo cual asegura que siempre produsca el pulso cada 1us.
Espero sea de ayuda para proyecto complejos
Salu2 panas
-
aya muy bien señor pana siga poniendo esos ejemplos que me dan ganas de comprar unos cuantos servitos



-
Que onda electronando,
Es solo un ejemplo base para montar un proyecto con verdadero uso. El comando es muy efectivo y demuestra la facilidad de manejo y de adaptacion a un programa complejo.
Salu2 pana
-
bueno, para no iniciar otro post, pongo mis dudas aca
hice un controlador de 4 servos con un 16f628a y un cristal de 20 Mhz esta seteado el timer2 para 50hz (20 ms) cada vez que se cumple este tiempo pongo las cuatro salidas en alto x 1 ms y el otro ms varia de acuerdo a la posición deseada, con esto consigo controlar 45 grados de angulo, que es con lo q trabajo, todo muy lindo, todo muy hermoso hasta que trato de controlar con la misma placa un motor 12V DC, lo que me resulta en ruidos q descontrolan los servos, lo extraño de todo esto es que tengo todas las patas del pic como salidas, aterradas y sigue en la misma. los 5vdc de alimentacion del pic entran limpitos, tengo que aislar las salidas de los servos con un optoisolador? el cristal esta aterrado. y ya tome todas las medidas que encontre en el foro con respecto a ruidos, alguien tuvo alguna experiencia de este tipo?
-
agrego x si a alguien le interesa
el motor dc es un motor de 12V con caja reductora, de 15 rotaciones por minuto. Si al motor lo hago trabajar con 5V o 6V anda todo maravilloso, inclusive con la misma fuente con q alimento al pic y a los servos.