Desde 1994 en la Red. La pagina de los aficionados a la electronica, informatica y otras curiosidades de la vida. No dudes en visitarnos.
Ahora 3 visitas.| 3484487 Visitas (desde Dic. 2011), hoy: 327 Visitas 1000 Pag. Vistas , ultimos 36 dias: 11188 Visitas. 38212 Pag. Vistas. Tu IP: 3.136.22.184
Que ando curioseando:
AutosuficienciaCosas de casaElectronicaEn InternetInformáticaMundo MisticoSin categoríaSociedadTe lo recomiendo

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

Escribe un comentario

Tu comentario