martes, 16 de octubre de 2012

Control Servomotor + pic16f84a + C

Hola, les dejo rapidamente el codigo y un video donde se muestra el movimiento conseguido con el programa, si hay alguna duda favor de postearla aqui

Aqui el codigo ...
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
///          Parpadeo de LED´S    con PIC16F84A   ///
///          A velocidad dentro del rango de pulso      ///
///          en que trabajan los Servomotores             ///
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////


///  Teoricamente deberia trabajar con .5ms, 1.5ms y 2.5ms
///  Pero el servo Vigor Vs-2 se atoraba un poco en los extremos asi que lo deje
///  En .6, 1.5 y 2.4, solo ajustar los valores con el tipo de servo, ya que varian
///  Un poco.



///////////////////////////// DIRECTIVAS DE PREPROCESADO //////////////////////

///   libreria para el manejo del pic16f84a
#include <16F84A.h>

///   declara  la frecuencia del cristal a 4 Mhz
#use delay(clock=4000000)

///configura los fusibles
/// HS es la configuraricion del oscilador la cual indica High speed es decir
/// frecuencias altas esto es a partir de 8 Mhz.
/// NOWDT deshabilita el Watch Dog Timer
/// NOPUT deshabilita le reseteo de power up timer
/// NOPROTECT deshabilita la proteccion del codigo del pic.
#fuses HS,NOWDT,NOPUT,NOPROTECT

///  asignamos a variable port_b el espacio memoria 0x06 que es la dir de port_b
#byte port_b=0x06

//////////////////////////GLOBALES//////////////////////////////////////////////
///         Estos parámetros son visibles desde todo el código                ///
///                    por eso se les llama globales                                    ///
///          Al ser constantes,lo más práctico es declararlas aquí.           ///
////////////////////////////////////////////////////////////////////////////////////
int i;
int contador;

////////////////////////// Principal  //////////////////////////////////////////

void main()
{      

/// declaramos el puerto B como salidas
set_tris_b(0);

/// lo igualamos con cero para que tengamos un valor inicial de lo contrario
/// no sabriamos con que valor iniciaria al comienzo de nuestro programa
port_b=0;

/// bucle infinito para que las instrucciones que tiene siempre se ejecuten
while (true)

{
i=0;

for(i=0;i<50;i++)
   {
/// activa todos los pins del puerto B
/// otra instruccion que podemos poner es contador=255 las dos son lo mismo
contador=0xff;    
port_b=contador;


/// Retardo de milisegundos es decir .6ms

delay_us(600);

//// apaga todos los pins del puerto B
contador=0x00;
port_b=contador;

/// Retardo de 1000 milisegundos es decir 1 segundo
delay_ms(19);
delay_us(400);
   }
for(i=0;i<50;i++)
   {
/// activa todos los pins del puerto B
/// otra instruccion que podemos poner es contador=255 las dos son lo mismo
contador=0xff;    
port_b=contador;

/// Retardo de 1000 milisegundos es decir 1 segundo
delay_ms(1);
delay_us(500);

/// apaga todos los pins del puerto B
contador=0x00;
port_b=contador;

/// Retardo de 18.5ms
delay_ms(18);
delay_us(500);
   } 

/// Del 0 al 49 son 50 veces que mandamos un pulso de 20ms
/// 
for(i=0;i<50;i++)
   {
/// activa todos los pins del puerto B
/// otra instruccion que podemos poner es contador=255 las dos son lo mismo
contador=0xff;    
port_b=contador;


/// Retardo de milisegundos es decir 1.4ms
delay_ms(1)
delay_us(400);

//// apaga todos los pins del puerto B
contador=0x00;
port_b=contador;

/// Retardo de 1000 milisegundos es decir 1 segundo
delay_ms(18);
delay_us(600);
   }
for(i=0;i<50;i++)
   {
/// activa todos los pins del puerto B
/// otra instruccion que podemos poner es contador=255 las dos son lo mismo
contador=0xff;    
port_b=contador;

/// Retardo de 1000 milisegundos es decir 1 segundo
delay_ms(1);
delay_us(500);

/// apaga todos los pins del puerto B
contador=0x00;
port_b=contador;

/// Retardo de 18.5ms
delay_ms(18);
delay_us(500);
   } 

/// Del 0 al 49 son 50 veces que mandamos un pulso de 20ms
/// 
} /// fin de bucle while
} /// fin de funcion principal main

-----------------------------------------------------------------------------------------------------------


Y aqui os dejo el video:






sábado, 13 de noviembre de 2010

El inevitable Hello World!!!

Pues manos a la obra, lo primero que necesitaremos sera tener instalados a nuestros amiguitos GEANY y GLADE, una vez hecho esto puedes descargar el proyecto en el siguiente enlace: " DESCARGAR "

domingo, 7 de noviembre de 2010

Geany y Glade

Estos dos programas van hacer nuestros mejores amigos a la hora de empezar a desarrollar aplicaciones para linux en gtk

Geany
Es un editor de textos y un IDE, o sea que aqui vamos a escribir/editar y o compilar nuestros programas


Glade
Este es una aplicacion que sirve para desarrollar la parte grafica de nuestros programas de una forma facil y sencilla. O sea creamos la parte grafica graficamente :)
De momento es todo, cono suerte ire tirando mas por ahi con el tiempo...
Cya!!

sábado, 6 de noviembre de 2010

Presentacion

Hola, damos comienzo a la escuelita del gtk, donde aprenderemos lo basico, iniciandonos en la programacion en C bajo linux (ubuntu).

Esperemos que este proyecto crezca, y gane lectores y publicadores, todos pueden sumarse a este proyecto 100% Mexicano.

Espero sus respuestas o peticiones.

Cya!!!