Servos y Micros

Hola a todos los miembros del grupo, a los curiosos y por supuesto a mi perico CURRI que es mi asesor.

Reactivo de nuevo el hilo por varios motivos:

1º………………una vez que decidí, que la puerta de TRABUQUITO(para que suelte el cebo)será accionada por servo.

2º……………el control de servos los realice con NIPLE y ahora programo con PROTON

3º…………..espero que sirva de ayuda a quien programe

4º………… La mas importante de todas …..POR QUE ME DA LA GANA…………. :wink: :wink: :wink:
 
Como quedo demostrado en los post anteriores los servos no tienen secretos para dominarlos con NIPLE ( es el primer lenguaje que aprendí) y ahora que programo en proton desarrollare un programa para manejarlo ya veréis que es sumamente fácil.

En los primeros post ya quedo explicado cómo funciona un servo y ahora veremos cómo dominarlos.


Proton tiene una sentencia llamada “ SERVO” la cual como su nombre indica es para controlar dicho dispositivo.

La sintaxis es la siguiente : SERVO , PIN , Valor de rotación



SERVO ………………… nombre de la sentencia para manejo de un servo

PIN……………………….. nombre del pin donde obtendremos la señal para el servo

Valor de rotación……..el tiempo que permanece en alto el pulso , dado en microsegundos
 
Pasemos a la práctica.

Quien tenga la SUPER PLACA del agueloooo lo puede realizar.

Como no me gusta que os FATIGEIS pondré de nuevo los datos que nos hacen falta aunque están puesto en el primer post del hilo.

1 ms………………………..0º
1.5 ms……………………..90º
2 ms…………………………180º

El micro que utilizare será el 16F84A.

1ª PRACTICA…………………poner el servo en el centro (90º)

Código:
'****************************************************************
'*  Name    : PRACTICAS CON SERVOS                                      *
'*  Author  : CARPTROYA                     *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 12/05/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************




  Device=16F84A     
      Xtal 4
      
      

  
  
   TRISA =%00000000       ' ponemos el puerto a como salida
   
   
   
    inicio :
    
    Servo ,PORTA.0,1500    ' podeis ver que hay que poner el tiempo em microsegundos 
    
    GoTo inicio



ya tenemos el servo en el centro.


Solo tendríamos que cambiar el valor de rotación y pondríamos el servo en el ángulo que deseemos.
 
Esto es muy fácil, ahora vamos con la 2ª práctica.

Quiero que trabuquito a través de un servo abra una puerta cuando yo se lo indique y luego la cierre. Pero (siempre con el dichoso pero), NO con la velocidad que el fabricante del servo quiera, debe de abrirla muy suavemente, cuando esté totalmente abierta espere 30 segundos y que la cierre de nuevo, esta vez sí a la velocidad que viene estipulado en el servo según fabricante y además como la puerta está en la parte inferior del casco y no podre verla que me indique a través de un LCD los grados en que está abriendo la puerta.

Parece complicado verdad ¿???

Pues os digo , que es una tontería de programa……………… :oops: :oops: :oops:
 
codigo
Código:
*************************************************************
'*  Name    : abriendo puerta de trabuquito con servo                                      *
'*  Author  : CARPTROYA                     *
'*  Notice  : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 12/05/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************




  Device=16F84A     
      Xtal 4
      
      
      '
      '
      ' Le decimos al compilador en que pin colocaremos el lcd 
      '
      
      LCD_Type = 0                ' LCD alfanumerica tipica
        
     LCD_DTPin = PORTB.4         ' datos PORTB.4,5,6,7
    
     LCD_RSPin = PORTB.1        ' LCD RS pin
     LCD_ENPin = PORTB.3        ' LCD EN pin
     LCD_Interface = 4           '  4-bit LCD 
     LCD_Lines = 2               '  2-Line LCD 
   '
   '
   ' configuramos los puertos 
   '
   '
  
   TRISA =%00000001       ' ponemos el puerto a como salida menos el pin RA0 como entrada
   
   TRISB=%00000000         'ponemos el puerto b como salida
  '
  '
  '
  ' declaramos las variable que utilizaremos
  '
  '
     Dim x As Word

     Dim y As Word
     
     Dim z As Word
     
     Dim t As Byte
   '
   '
   ' pongo el servo en el centro con X= 1500
   '
   ' la variable " y " la pongo a cero esta la utilizare para saber 
   '  los grados en que se encuentra la puerta
   '
   '
    x= 1500
    y=0  
    
    '
    '
    ' Comienza el programa
    '
    '
    '
    
    inicio:
    
    Servo PORTA.1,x   ' ponemos el servo en el centro
    
    If PORTA.0=0 Then 'cuando el pin RA0 se pone a cero ejecuta las dos lineas siguientes
                      ' con ello conseguimos que aumente poco a poco el valor de x
                      ' y se consigue que el servo se desplace muy lentamente
    x=x+10
    y=Y+10
    EndIf
    
    If x<2000 Then ' nos aseguramos que X nunca supere el valor maximo  
                        ' que admite el servo
   
    x=2000
   
    For t=0 To 29    ' creo un bucle que repite 30 veces un retardo de 1 segundo                  
    DelayMS   1000 
    Next                   
   
   
    Servo PORTA.1,1500 ' ponemos de nuevo el servo en el centro 
   
      x=1500
      y=0
      EndIf
      
      z=y*90/500  ' algoritmo para pasar a grados la posicion del servo
      
      Print At 2,1,"grados  ",Dec3 z ' saca los grados por LCD
      
      
    GoTo inicio

Si todo esto os suena a “CHINO”, es porque no habéis estudiado , el día que empecéis veréis que no es nada complicado.

Saludos a todos.

PD no pongo simulación ni video, pero lo veréis cuando este implementado en TRABUQUITO.
 
Atrás
Arriba