DarckFlox
Usuario (Colombia)
Soy estudiante de electrónica, en este semestre termine una materia llamada microcontroladores (módulos programables muy similares al Arduino) en el curso se utilizaba el lenguaje C y los compiladores lo traducían al lenguaje asembler o lenguaje de maquina, trabajamos con 2 módulos el PIC18F47J53 desarrollado por Microchip y el JM60 desarrollado por Freescale, dentro de los primeros proyectos con el fin de manejar los pines como entradas y salidas se propuso el proyecto de crear secuencias de leds controladas por pulsadores, con cualquier modulo se puede hacer, yo escogí el PIC para este proyecto. PIC 18F47J57 : tiene 28 pines útiles distribuidos en 5 puertos: -Puerto A: 5 pines (RA0, RA1, RA2, RA3 y RA5), ademas son entradas de conversor análogo digital. -Puerto B: 8 pines (RB0 - RB7) ademas de ser salidas PWM poseen un sistema de interrupciones para pulsadores o bien controlar un teclado matricial. -Puerto C: 4 pines (RC0, RC1, RC2 y RC7). -Puerto D: 8 pines (RD0 - RD7) por este puerto controlo la salida de datos hacia los leds. -Puerto E: 3 pines (RE0 - RE2) este puerto también esta dedicado al conversor análogo digital. Para este proyecto utilizamos 4 pulsadores y 5 secuencias una secuencia inicial la cual debería estar cuando no se activaran los pulsadores y 4 secuencias cada una controlada por un pulsador, el proyecto que voy a mostrar tiene un solo pulsador ya que puede cumplir la misma tarea de los 4 pulsadores modificando la programación ademas de que no me limita a las 5 secuencias y se puede controlar por medio de la interrupción del pin RB0 aunque no necesariamente se debe hacer con la interrupción simplemente se puede preguntar por medio de un (if) si un pin en particular esta encendido o apagado, para encender los leds solo se debe poner un dato en el puerto D este dato puede ser binario, hexadecimal, decimal e incluso ASSCI y el microprocesador se encarga de ponerlo en binario en cada uno de sus pines. En la imagen solo incluí los pines utilizados en el proyecto, el modulo que tengo es uno antiguo por lo que se deben puentear el VUSB, el VIN y el VCC, existe otro modelo para este microcontrolador es negro en ese modulo no se deben puentear y solo se utiliza el VUSB para alimentar los dispositivos externos. Declaración de variables y constantes Configuración de la interrupción Cambiando el si agrego otra secuencia solo debo incrementar el 3 dentro del IF. Configuración de los pines En esta parte se entra en un ciclo infinito gracias al FOR( ; ; ) tambien se logra con un While(1) esto es necesario para que el programa se repita un y otra vez. Si quiero hacer otra secuencia se debe preguntar cuando la variable de control este en 4 y agregar la secuencia. Primer secuencia (control en cero) Segunda secuencia (Control en uno) Tercer secuencia (control en dos) Cuarta secuencia (control en 3) De pronto no se nota mucho los leds avanzan de dos en dos. Gracias por visitar mi primer post cualquier consejo u observación se tendrá en cuenta, si quieren una secuencia en especifico o no entienden parte del código solo comenten.