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 1 visitas.| 3408423 Visitas (desde Dic. 2011), hoy: 280 Visitas 698 Pag. Vistas , ultimos 36 dias: 10109 Visitas. 43984 Pag. Vistas. Tu IP: 3.134.104.173
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