Pic 16F876A control Servo

Aqui les dejo un programa que hice yo, no se programar realmente, pero pues estuve leyendo y aprendiendo en estos foros y en un ebook de microcontroladores..

El programa es una forma de controlar un servo para que gire a -90, 0 y 90 grados por medio de 3 botones, inicialmente inicia en -90. aqui les dejo el codigo:

PHP:
'****************************************************************
'*  Name    : Movimiento Servos.BAS                             *
'*  Author  : [Fernando Nava]                    				*
'*  Notice  : Sientanse libres de meter mano ;)					*
'*          : ^^ Grax a neoteo y forosdeelectronica				*
'*  Date    : 09/05/2010                                        *
'*  Version : 1.0                                               *
'*  Notes   : Este programa tiene 3 botones para controlar un   *
'*          : servomotor, tiene -90, 0 y 90 grados con p16f876A *
'*          : y esta programado en basic, con PicBasicPlus 2.0  *
'****************************************************************
device 16f876a							'Modelo Pic
xtal = 4	  							'Cristal
TRISB.1 = 1 							'Defino RB1 como ENTRADA
TRISB.2 = 1								'Defino RB2 como ENTRADA
TRISB.3 = 1								'Defino RB3 como ENTRADA
TRISB.4 = 0 							'Defino RB4 como SALIDA
Symbol boton1	= PORTB.1				'Renombrando RB1 como boton1
Symbol boton2	= PORTB.2				'Renombrando RB2 como boton2
Symbol boton3	= PORTB.3				'Renombrando RB3 como boton3
Symbol serv 	= PORTB.4				'Renombrando PA2 como serv
dim pulso1 as word						'Variable Pulso 1
dim pulso2 as word						'Variable Pulso 2
dim pulso3 as word						'Variable Pulso 3
all_digital = on						'Enciende las salidas como digitales
pulso1=38	  	  						'0
pulso2=100								'90
pulso3=10					   			'-90
	serv = pulso2						'La salida inicia con 90
main:	   								'Etiqueta main
	pulsout serv, serv					'La salida se activa con el valor dado
	if boton1 = 1 then movimiento1		'Si boton 1, movimiento 1
	if boton2 = 1 then movimiento2		'Si boton 2, movimiento 2
	if boton3 = 1 then movimiento3		'Si boton 3, movimiento 3
	goto main 	   						'Regresa a main
movimiento1:							'Etiqueta movimiento1
	pulsout serv, pulso1				'Pulso salida = pulso1
	delayms 20	  						'Retardo de 20ms
	goto main							'Regresa a main
movimiento2: 							'Etiqueta movimiento2
	pulsout serv, pulso2				'Pulso salida = pulso2
	delayms 20	  						'Retardo de 20ms
	goto main							'Regresa a main
movimiento3: 							'Etiqueta movimiento3
	pulsout serv, pulso3				'Pulso salida = pulso3
	delayms 20	  						'Retardo de 20ms
	goto main							'Regresa a main
end			 							'Fin Programa

Aca abajo les dejo el circuito, obviamente le falta la alimentacion al pic, asi como el cristal, pero bueno, eso ya se entiende que lo deben conectar, busquen en el datashit XD
 

Adjuntos

  • Circuito Servo.png
    Circuito Servo.png
    40.5 KB · Visitas: 92
Atrás
Arriba