Control de servo motor con PIC 16F84

 

Made in Cali - Colombia

Busca "charlytospage" en Google para encontrarnos

Portada Microcontroladores LabView Assembler Internet Links Proyectos  Foro Criticasl Correo   Comunidal Servicios profesionales  Consejos prácticos Visual Basic Manuales Nuestro Grupo C++ Tienda 

 

Código fuente en ensamblador para microprocesadores Intel

Lenguaje de programación gráfico

Algunos programas de ejemplo, junto con su código fuente

Código fuente y ejemplos en  ANSI C++.

Microcontroladores PIC y Motorola la una bendición para todos.

Cosas que solo aprendes con la experiencia.

Manuales de electrónica y programación.

Webs recomendadas.

Grupo de electrónica y programación

Contratar mis servicios como ingeniero electrónico.

Tu opinión y comentarios acerca de Charlytos’page

Un tablón donde pegar nuestras dudas y resolver las de otros.

Si quieres escribirle a Carlos F. Jimenez

Donde encontrar gente con la capacidad que necesitas.

‹m1OÃ0…÷üŠ#C7|mÙÊÕH4ATj!ƒM|àHvm9†(ÿ¾Iº2¾÷¾Ó{GwÕûA}65¼ªó šçÓñå=â±V/ˆ•ªnÉV¬ë·Rd³w’,k3‰ÜeÇòa½søc '¯/|Én$¼…áÓW0ã|¿‘ÿ°“[P”Ê2˜ÐþúÉ«{ð Jlâï}isŽ;ÄaDN] F¸± ½hƒê̾µ:¹1‡>ê^iKi91¡–‚0Îc–SáüFqïݹ

 

 

Control de servo motor con PIC 16F84 y LabView

Descripción

Este Proyecto es un primer paso hacia la Robótica , el diseño busca controlar un servomotor por medio de un PC.

El control se a logrado por medio de un microcontrolador PIC16F84 , el cual proporciona las señales necesarias para producir una  deflección en el servo de 0 a 120 grados aprox , con una resolución de 255 pasos .

El microcontrolador se comunica con el PC por medio del bus de control del puerto paralelo , el software encargado de la comunicación es nuestro viejo programa send to pic16f84 elaborado en LabView hace un par de meses.

 

Circuito

Clic sobre la imagen para ampliarla

 

Programa para el PIC

;Recepción serial de datos
;Por Carlos Fernando Jiménez
;Bucaramanga Jueves 19 de Julio del 2000



PUERTAB EQU 0x06
PUERTAA EQU 0x05
ESTADO EQU 0x03
OPT EQU 0x01
INTCO EQU 0x0B
org 0
goto INICIO
org 4
goto interr
;****** inicio configuración de la interrupción*****
INICIO bcf ESTADO,5 ;BANCO0
sbuff EQU 0x0C ;REGISTRO QUE RECIBE LOS DATOS SERIALES
contador EQU 0x0E
W1 EQU 0X1B
w2 equ 0x1c
movlw b'10110000' 
iorwf INTCO ;interrupción RB0/INT activa
movlw b'11110101' ;configuración del puerto
andwf PUERTAB,1 ;RB1 salida ('ya puedes enviar los datos' en alto)
movlw b'00000101'
iorwf PUERTAB,1 ;RB0 y RB2 entrada('voy a enviarte datos!' en bajo interrupción) y dato listo en alto
bcf ESTADO,5 ;BANCO0
bcf PUERTAB,1
bcf PUERTAB,3 ;*****fin de la configuración******
bsf ESTADO,5 ;BANCO1
movlw 0x00
movwf PUERTAA
BSF ESTADO,5 ;BANCO1
movlw b'10010010' ;DIVISION 1-8
movwf OPT
movlw 0X7F
movwf sbuff
bcf ESTADO,5 ;BANCO0
MAIN 

;temporizacion para el servo

;Tiempo para la reflexión min 1 max 2 ms
movfw sbuff ;127-255
movwf OPT ;cargamos el timer
movlw 0x1f
movwf PUERTAA ;Señal arriba
movlw 1
movwf W1
espera10 btfsc W1,0
goto espera10




;Mínimo tiempo 10 ms de descanso
movlw 0x06
movwf w2
buc
movlw 0x00
movwf OPT ;cargamos el timer
movlw 0x00
movwf PUERTAA ;CAE LA SEÑAL DE CONTROL
movlw 1
movwf W1
espera11 btfsc W1,0
goto espera11
decfsz w2
goto buc




goto MAIN

interr btfss INTCO,1 ;Identificación de la interrupción
goto timer
goto serial

serial movlw 0x00 ;***** Rutina de recepción de datos*****
movlw 0x00
movwf PUERTAA
movwf INTCO ;incapacita TODAS las interrupciones
movlw 8 ;los 8 bits a recibir
movwf contador ;registro que lleva la cuenta de los bits llegados
movlw 0x00
movwf sbuff ;pone sbuff en cero
espera1 bsf PUERTAB,3
btfss PUERTAB,2 ;espera que el bit de sincronía se ponga en 1
goto espera1 
movlw b'1'
andwf PUERTAB,0 ;mascara del datos dato queda en w
iorwf sbuff,1
rlf sbuff
bcf PUERTAB,3 ;bit adentro
bucle btfsc PUERTAB,2 ;espera que el bit de sincronía vuelva a 0
goto bucle
decfsz contador,1
goto salto
goto fin
salto goto espera1
movlw 0
MOVWF W1
fin movlw b'10110000' ;rehabilitación de TODAS LAS interrupciones
movwf INTCO


RETFIE

timer
movlw 0x00
movfw INTCO
movlw b'10110000'
movwf INTCO
movlw 0
MOVWF W1
RETFIE



END




Programa para el PC 

El la sección de LabView

 

Mucha suerte!

 

 

DAC09

Sistema USB de adquisición de datos y control, 10 Canales de PWM,  A/D 10 BITS 38759,69 Muestras por segundo.

 

USB-RS232

 

Interfaz USB – serie RS232 9600, 19200, 38400, 57600, 115200 bps Integración de tecnología USB Para sistemas con comunicación serie RS232

 

Programador de Microcontroladores PIC y EEPROMS

                   

 

Interfaz Puente H

De a sus circuitos digitales capacidad para controlar motores de CD en rangos de 9v a 30v 2.5 Amperios. solo $39.000 pesos

 

Interfaz de potencia 120v 3A

La interfaz TTL-120v3A es un modulo de 4 relevos que permite extender la capacidad de los sistemas digitales con salidas que cumplen con los niveles de voltaje TTL o de 0 a 5 voltios, para controlar sistemas que operan hasta con 120v AC 3A o 24V DC  3 A Solo $59.000 pesos

 

DAC08

sistema de adquisición de datos

 

 

 


No te vayas sin pasar por nuestra portada , para que veas lo nuevo de este sitio.


Preguntas o Comentarios

Portada Microcontroladores LabView Assembler Internet Links Proyectos  Foro Criticasl Correo   Comunidal Servicios profesionales  Consejos prácticos Visual Basic Manuales Nuestro Grupo C++ Tienda