Encender un LED con el PIC18F4550 vía USB
El título suena como: “matar un mosquito con un rayo láser”, bueno si hacemos analogía sería algo equivalente, pero… aquí no se trata de matar ningún mosquito sino de mostrar de manera sencilla el ¿cómo? haciendo uso de éste pic, podemos lograr encender o apagar un LED mediante un comando enviado vía usb, desde un pc al pic, además de enviar y recibir varios datos a la vez.
Esto lo podemos lograr de dos formas: mediante una simulación en proteus (versión 7 SP2) ó montando el circuito en un protoboard.
En el
proteus pueden montar el siguiente circuito:
(En los archivos adjuntos ya está un .dsn en la carpeta Proteus, que ya tiene montado éste circuito)
En las propiedades del PIC es importante colocar 48Mhz en Processor clock frecuency
Al ejecutar, la pc nos indicará que encontró un nuevo hardware (win xp SP2) y nos pedirá su correspondiente driver, que está en la carpeta ‘Driver’ en los archivos adjuntos.
En la carpeta ‘Aplicación’ se encuentra un programita con el nombre PicUSB.exe y una dll con el nombre ‘mpusbapi’, para ejecutarlo es necesario tener instalado el Microsoft .NET Framework 2.0, lo pueden descargar desde:
AquíUna vez que ya tenemos la simulación en el proteus corriendo con el driver correctamente instalado, ejecutamos el programita PicUSB.exe, que fué diseñado utilizando
Microsoft Visual C# 2005 Express EditionImagen corriendo la aplicación y el proteus:
Como verán, se envían 5 comandos (ventanas blancas) y se reciben 5 respuestas (ventanas grises), el programita en el pic, hace lo siguiente: si en la 1era posición le mandan un 1 => enciende un LED y si es un 2 lo apaga y en ambos casos regresa los demás números multiplicados por 2, además de devolver el comando enviado.
El botón que dice Nro. de dispositivos, lo único que hace es regresar 0, si el pic no está conectado y 1 si lo está.
Para el caso del
protoboard, se utilizó el
Programador PIPO2, que es el más sencillito que conseguí en la red, pero no utilicé el ICPROG como allí recomiendan, sino el WinPic800, porque con el 1er programa nombrado me generaba un error, ya ni lo recuerdo, pero no pude grabar éste PIC, es un circuito sencillito y funcional, lo recomiendo no sin antes dar un consejo, a la hora de colocar el conector DB9 hembra, quizás tiendan a confundirse (eso me sucedió) lo que les recomiendo es que se fijen en la siguiente figura
ésta les sacará de dudas, y si tienen problema, revisen bien que sí funciona
El circuito a realizar es el siguiente:
y a éste le falta conectar el LED en el pin 21 (RD2)
En el winpic800, en Configuración --> Hardware, Seleccionar: JDM Programmer
El programa en el pic se realizó con el PCWH Compiler versión 4.023. y se encuentra en la carpeta CCS.
Ya lo que restaría es instalar el driver cuando la pc lo solicite, correr la aplicación PicUSB y verificar su funcionamiento, ya lo probé en el proteus y en el protoboard y todo funciona, espero que a uds. también.
Agradecimientos:
Gracias a J1M por su trabajo
PicUSB, gracias a
PalitroqueZ que me enteré de que con el proteus se podía simular esto y además de su post
“Mis primeros pasos con el 18F4550” Que me sirvió de ayuda para configurar los fuses con el CCS. Y también quiero agradecer a Cryn, que me motivó a publicar éste proyecto para que los que se inicien lo hagan con patada voladora! Jajaja. Y por supuesto gracias al foro todopic.
Atte. Guillermo Núñez.