robot1
Elect. Analogica
Elect. Digital
Pro. Mecatronicos
Info. de Interes
Regresar
Regresar
Regresar
Ingeniero Fernando Ruiz
Proyectos Mecatronicos
Contacto
© www.ingenierofernandoruiz.com 2011. Website Design by Fernando Ruiz Version 2.0

Carrito Controlado por Pic

Ingeniero Fernando Ruiz

comentarios y sugerencias blog

fecha de publicacion 22 de junio del 2010.

Introduccion

Este Proyecto "Carrito controlado por PIC" es un ensamble donde programamos

un microprocesador ( PIC18F2620 en este caso) para que este controle movimiento de un

carrito electrico desarrollando un circuito o pista establecido por nosotros.

Este es un proyecto donde se abarcan varias areas como la programacion en C, la electronica

y la mecanica.

 

Desarrollo

Materiales y Programas necesarios para el proyecto

  • Pickit 2 (disco de instalacion de PICkit 2 v2.5 u otra version, Cable para programar pic, 6 pins o cables para la conectarlo con el protoboard)pickit2Nota: Para mas informacion sobre el uso del PICkit2 -->Guia basica PICkit2.
  • PIC C Compiler (Programa mas desarrollar programas en C y crear archivos .Hex para nuestro PIC).
  • Protoboard
  • Carrito electrico con dos motores, el de traccion ( con el que se mueve para adelante o para atras) y el de direccion ( con que da vuelta). Puedes ensamblarlo tu pero es mucho mas facil si consigues un carrito con ya hecho.
  • Bateria 5V a 10 V para alimentar al Carrito, es decir, motores.
  • Bateria de 5 V para alimentar al Circuito.
  • PIC18F2620
  • 4- Relevadores de 5V
  • 4- tip41
  • 4- Resistencias de 100 ohm
  • 5- leds
  • 2- push bottons
  • 2 - resistencias de 10 k ohms
  • Cable para hacer conecciones

Procedimiento General

Por Fases

  1. Escribiremos el programa en PIC C compiler y crearemos el Archivo .Hex
  2. Copiaremos el Archivo Hex al Pic mediante el PICkit2
  3. Ensamblaremos el circuito
  4. Probaremos el Carrito.

 

Fase 1 Programacion

Pista a Desarrollar mediante el codigo.

pista

Programa del PIC para realizar el circuito en PIC C compiler.

 

Notas:

  • El Pin C2 correponder a led de encendido.
  • El Pin A0 corresponde al control de motor de mov. hacia adelante.
  • El Pin A1 corresponde al led del control de motor hacia adelante.
  • El Pin B5 corresponde al motor de direccion (izquierda)
  • El Pin B4 corresponde al led del motor de direccion.(Iz)
  • El Pin B3 corresponde al motor de direccion (derecha)
  • El Pin B2 corresponde al led del motor de direccion.(D)
  • El Pin A2 corresponde al control de motor de mov. de reversa.
  • El Pin A3 corresponde al led del control de motor reversa.
  • El Pin C3 corresponde al push botton para encender el carrito.
  • El Pin C1 corresponde al push botton para apagar el carrito.
  • Los tiempos para cada operacion pueden ser modificados ala nececidad

pic18f

Codigo C

#include <18f2620.h>
#use delay (clock =2000000)
#fuses INTRC

void main()
{
while(1)
{
if(input_state(pin_c3)==1)
{
while(input_state(pin_c3)==1)
{
// tramo a
output_high(pin_c2);
delay_ms(1000);
output_high(pin_a0);
output_high(pin_a1);
delay_ms(500);
//tramo b
output_high(pin_b5);
output_high(pin_b4);
delay_ms(500);
output_low(pin_b5);
output_low(pin_b4);
delay_ms(100);
output_high(pin_b3);
output_high(pin_b2);
delay_ms(500);
output_low(pin_b3);
output_low(pin_b2);
// tramo c
delay_ms(100);
output_high(pin_b3);
output_high(pin_b2);
delay_ms(500);
output_low(pin_b3);
output_low(pin_b2);
delay_ms(100);
output_high(pin_b5);
output_high(pin_b4);
delay_ms(500);
output_low(pin_b5);
output_low(pin_b4);
// tramo d
delay_ms(100);
output_low(pin_a0);
output_low(pin_a1);
delay_ms(1000);
//tramo e reversa
output_high(pin_a2);
output_high(pin_a3);
delay_ms(100);
output_high(pin_b5);
output_high(pin_b4);
delay_ms(1000); //vuelta 180
output_low(pin_b5);
output_low(pin_b4);
delay_ms(100);
output_low(pin_a2);
output_low(pin_a3);
delay_ms(500);
//curso de vuelta

// tramo a
output_high(pin_c2);
delay_ms(1000);
output_high(pin_a0);
output_high(pin_a1);
delay_ms(500);
//tramo b
output_high(pin_b5);
output_high(pin_b4);
delay_ms(500);
output_low(pin_b5);
output_low(pin_b4);
delay_ms(100);
output_high(pin_b3);
output_high(pin_b2);
delay_ms(500);
output_low(pin_b3);
output_low(pin_b2);
// tramo c
delay_ms(100);
output_high(pin_b3);
output_high(pin_b2);
delay_ms(500);
output_low(pin_b3);
output_low(pin_b2);
delay_ms(100);
output_high(pin_b5);
output_high(pin_b4);
delay_ms(500);
output_low(pin_b5);
output_low(pin_b4);
// tramo d
delay_ms(100);
output_low(pin_a0);
output_low(pin_a1);
delay_ms(1000);
//tramo e reversa
output_high(pin_a2);
output_high(pin_a3);
delay_ms(100);
output_high(pin_b5);
output_high(pin_b4);
delay_ms(1000); //vuelta 180
output_low(pin_b5);
output_low(pin_b4);
delay_ms(100);
output_low(pin_a2);
output_low(pin_a3);
delay_ms(500);
//curso de vuelta




}
}
if(input_state(pin_c1)==1)
{
while(input_state(pin_c1)==1)
{
output_a(0);
output_c(0);
output_b(0);


}
}

}
}

Fase 2 programacion de PIC mediante PICkit2

  1. Conectamo el Pic en nuestro protoboard
  2. Conectamos el Cable del PICkit2 al protoboard (mas info en -->Guia basica PICkit2. )
  3. Utilizamos el Programa PICkit2 v2.5 para copiar el archivo .hex a nuestro Pic.
  4. Desconectamos los cables del Pickit para poder empezar a ensamblar el circuito del Carrito.

Fase 3 Ensamble del circuito

Diagrama de ensamble del circuito del carrito en mi cuaderno.

diagrama

Este diagrama no es muy profesional pero las conecciones son correctas para hacer funcionar el Carrito.

Foto de ensamble.

ca1

Nota: Esto tambien puede hacerse en una tablilla pero les comiendo no hacerlo para poder reutilizar las partes en otro proyecto.

 

Fase 4 Prueba del carrito.

Pruebe el funcionamiento buen funcionamiento la parte electrica y modifique si es necesario ajuste los tiempos de cada accion a sus necesidades.

Carrito Terminado

ca2

Conclusion

Este fue un proyecto bastante bueno para aprender a utilizar PIC C compiler, el Pickit , el PIC18F2620 , motores y otros diversos elementos electronicos.

Por desgracia no grabe video del carrito funcionando. Pero les aseguro que Funcionaba muy bien.

 
a2
aa3
aa4
aa5
aaa6
aa7
aa7
Regresar
   
 
A I