fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

programar el 16F84A...
 
Avisos
Vaciar todo

programar el 16F84A para mover servos

5 Respuestas
3 Usuarios
0 Reactions
5,910 Visitas
oko123456
Respuestas: 17
Topic starter
(@oko123456)
Active Member
Registrado: hace 16 años

Hola a todo el mundo

Sigo con mi trabajo y esta vez necesito, programar el PIC 16F84A, en basic, ya que es el único lenguaje con el que me manejo un poco, para que mueva 4 servos

En conclusión la pregunta es:

Que ordenes se usan para eso?

gracias a todos

Responder
4 respuestas
fj_sanchez
Respuestas: 1083
(@fj_sanchez)
Ardero
Registrado: hace 18 años

A ver, yo de BASIC no se, pero de cualquier modo no existen unas órdenes para mover servos y otras órdenes para encender y apagar leds. No se si haces esto porque te obligan en alguna asignatura o porque quieres aprender (me parece que es más lo primero) pero en cualquier caso te recomiendo que antes sepas qué es lo que estás manejando.

Mi recomendación, busca información sobre servos y aprende cómo funcionan. Después, piensa cómo funcionan las patas de los PICs. Después busca información sobre timers.

Será entonces cuando estés en condiciones de preguntar, ya que al menos, sabrás qué es lo que tienes que preguntar.

Un saludo.

Responder
oko123456
Respuestas: 17
Topic starter
(@oko123456)
Active Member
Registrado: hace 16 años

no me obligan estoy aquí por un trabajo que elegí yo y quiero aprender, el que no me he explicado bien
quiero decir que por ejemplo si esta conectado al ordenador para controlarlo se usa la orden

pulsout

pues algo parecido para programar un PIC con ella y entonces cuando pulse un botón esta se encienda

o simplemente uso

high (el puerto) i el tiempo que quiero que envié después pongo la pausa para que llegue a los 20 ms i vuelta a empezar?

Responder
sphinx
Respuestas: 651
(@sphinx)
Ardero
Registrado: hace 17 años

Hola oko123456,

la orden pulsout es para hacer que el valor de un pin(previamente definido como salida) conmute durante el tiempo que tu le digas. Es decir, si tienes el pin 1 del puerto B a 0 (nivel bajo) y le dices pulsout PORTB.1, 200 , le estas diciendo que lo ponga a 1 (nivel alto) durante 200. y dirás ¿ 200 qué ? Pues el valor 200 es relativo a la frecuencia de reloj que le suministres al PIC. El caso más sencillo es si tienes el PIC funcionando a 4 MHz. Si es así la resolución de pulsos será de 10 microsegundos. En ese caso ese 200 significa que el pulso durará 200 x 10 microsegundos = 2000 microsegundos.

Para controlar un servo, basta con que le suministres un pulso de entre 1000 a 2000 microsegundos cada 18 miliseg.

Con estas pistas ya lo tienes 'chupao'.

Unas preguntas:
¿ piensas controlarlos desde un PC ? Si es así, ¿ has decidido cómo ? Me refiero también al programa del PC...

Para controlarlos desde un PC, tendrás que utilizar en el PIC las ordenes de BASIC: SEROUT y SERIN. Para el envío y recepción serie respectivamente.

Si vas a programar en PIC BASIC, échale un vistazo al manual:
http://www.melabs.com/resources/pbpmanual/

Responder
oko123456
Respuestas: 17
Topic starter
(@oko123456)
Active Member
Registrado: hace 16 años

Lo controlare con un mando que he echo yo mismo con 8 finales de carrera, cada uno conectado a un pin distinto, y quando lo pulsas envia señal al pin sino no.

por eso buscava un equivalente al pulsout

gracias

Responder
Compartir: