Electrónica

Proyectos de electrónica

No a la ley SOPA

2

Yo también estoy en contra de la ley SOPA!

 

Proyecto brazo robótico

2

Actualmente estoy cursando el 6to semestre de Ingeniería en Cibernética Electrónica en el CETYS Universidad Tijuana. Mi proyecto final para la materias de Instrumentación y Control (impartida por el profesor Iván López) y para la materia de Electrónica Analógica 1 (impartida por la profesora Nataly Medina) fue la elaboración del control y la potencia para un brazo robótico.

Para datos más específicos pueden ver el reporte aquí: Brazo Robótico

Prender un led con el PIC18F4550

20

Como todos los programas, debemos siempre empezar con algo sencillo. Normalmente el ejemplo en programación es el típico Hola Mundo, pero aquí no lo haremos :P para mí el hello world de cualquier circuito electrónico es prender un led, y es lo que haremos.

El IDE que estaré usando es el MPLAB, y el compilador es el C18, osea que estaré programando en C. El PIC es el PIC18f4550, uno de los más usados de la serie 18F. Y bueno, empecemos..

Aviso: en este tutorial no enseñaré a usar el MPLAB ni a compilar el programa.

El Vcc es de 5 volts para este PIC, y los pines para que funcione el micro van conectados como siguen:

  • Pin 1: Vcc
  • Pin 11: Vcc
  • Pin 12: Tierra
  • Pin 31: Tierra
  • Pin 32: Vcc

Para la cuestión de prender el led, usaré el puerto B7, aunque en el programa especifico que se puede usar cualquier pin del puerto B, así que conectamos el pin B7 (o el B que quieras) hacia nuestro led por la parte positiva (la patita larga), y de la parte negativa del led (patita corta) conectamos una resistencia de aproximadamente 330 ohms, y del otro lado de la resistencia la conectamos a tierra. Y listo, se acabó la circuitería, ahora veamos el programa en C:

#include <p18f4550.h>
#include <delays.h>
#pragma config FOSC = INTOSCIO_EC, FCMEN = OFF, IESO = OFF
#pragma config PWRT = ON, BOR = OFF, BORV = 3
#pragma config VREGEN = OFF, WDT = OFF, WDTPS = 32768
#pragma config MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF, CCP2MX = OFF
#pragma config STVREN = OFF, LVP = OFF, ICPRT = OFF, XINST = OFF, DEBUG = OFF
#pragma config CP0 = ON, CP1 = ON, CP2 = ON, CP3 = ON
#pragma config CPB = ON, CPD = ON
#pragma config WRT0 = ON, WRT1 = ON, WRT2 = ON, WRT3 = ON
#pragma config WRTB = ON, WRTC = ON, WRTD = ON
#pragma config EBTR0 = ON, EBTR1 = ON, EBTR2 = ON, EBTR3 = ON, EBTRB = ON
void main()    //inicia el programa aquí.
{
   TRISB = 0×00;  //Define todos los puertos B como pines de salida.
   while(1)    //Un ciclo infinito
   {
      LATB = 0xFF;    //Prender todos los puertos B.
      Delay10KTCYx(25);    //Hacer una pausa.
      LATB = 0×00;    //Apagar todos los puertos B.
      Delay10KTCYx(25);    //Otra pausa, y se repite el ciclo.
   }
}

Todos los #pragma config son las configuraciones del PIC (oscilador interneto, no usar el watch dog, etc). Y los #include son para incluir las funciones y puertos, es por eso que importamos los puertos del p18f4550.h e importamos las funciones de pausa del delay.h


Y listo, tenemos nuestro bonito led parpadeando :D

Go to Top