Control sencillo de un Servo Motor con PIC16F84
Con este código podréis controlar de forma sencilla el posicionamiento de un servo. Yo solo he necesitado girar 90º (de 90º a 180º) el servo (lo he usado para abrir una pequeña puerta [tarmpilla]). Si deseáis que se posicione en otro punto del recorrido, solo deberéis modificar el ancho de pulso a enviar (2msg o 4msg).
Codigo:
program Control_Servo
‘ Control de SERVO por tren de pulsos PWM
‘ *******************************************************************************
‘ (c) Autor: ZackY – zackyzgz@yahoo.es
‘
‘-HARDWARE:
‘ MCU: PIC 16F84A
‘ Cristal: 4 Mhz
‘ Servo conectado a PORTA.2 (Salida)
‘ Pulsadores conectados a PORTB.0 y PORTB.1 (Entradas)
‘ *******************************************************************************
Dim i as byte
Main:
TRISA = 0 ‘ PORTA como Salidas
PORTA = 0
TRISB = 1 ‘ PORTB como Entradas
PORTB = 1 ‘ Inicializo PORTB – Entradas OFF
Inicio:
While true
If PORTB.0 = 0 then ‘ Posiciono servo a 90º
For i=0 to 15 ‘ Envío 16 pulsos de 2 msg
PORTA.2 = 1
Delay_ms(2)
PORTA.2 = 0
Delay_ms(20)
next i
Delay_ms(1000) ‘ Tiempo para soltar pulsador
end if
If PORTB.1 = 0 then ‘ Posiciono servo a 180º
For i=0 to 15 ‘ Envío 16 pulsos de 4 msg
PORTA.2 = 1
Delay_ms(4)
PORTA.2 = 0
Delay_ms(20)
next i
Delay_ms(1000) ‘ Tiempo para soltar pulsador
end if
Wend
End.
Fuente: http://foros.zackyfiles.com/showthread.php?t=523880
Tuitear 5.874 Veces leído 0 comentarios |
18 julio 2010 en Electronica | tags: Electronica |