6/23/2017

MPLAB X & XC8: Semáforo básico con PIC16F84A

Seguimos con otro ejemplo muy básico usando nuestro compilador XC8 y en este ejemplo aprenderemos a hacer un semáforo básico y de forma sencilla con unas cuantas lineas de código, anteriormente ya había hecho esto usando PBP, pero en esta ocasión lo realice en C como favor a un gran colega (y explicando cada linea para que se entienda mejor).

El circuito usado es el siguiente, usando el ya clásico PIC16F84A:

6/15/2017

MPLAB X & XC8: Matriz de LEDs 8x8 - Mostrar carácter estático


Saludos!!! Hace ya mucho tiempo publique sobre una Matriz de LEDs 8x8 que realice y con ayuda del colega Julio quien aporto el firmware logro funcionar, en aquella ocasión no se coloco el código final, simplemente se compartió algunos fragmentos de un modo demostrativo para que se dieran cierta idea de como funcionaba, bueno ahora empezare con algunos ejemplos desde cero para que puedan hacer una matriz de LEDs.

Bueno retomando parte del diagrama anterior y haciendo algunos cambios tenemos un circuito, y sera el que utilicemos en esta ocasión, les comento que en esta version no se usa un registro de corrimiento, por lo que se decidió usar un PIC18F25K22 (puede ser otro) para tener los suficientes pines y así poder controlar la matriz directamente, esto por facilidad y como dije iniciar desde cero, para las filas he usado transistores BC548 y para las columnas un ULN2803A (arreglo de transistores darlington), esto con el fin de no demandarle mucha corriente si conectaba los LEDs directamente a los pines del PIC, importante decir que he usado una matriz que arme en una tablilla universal hace mucho tiempo (pareciera que desemplovo mis chacharas cada que muestro algo), sin mas que decir el circuito usado es el siguiente:


El código que hace posible esto, es el siguiente:
El código es extremadamente sencillo, iniciamos con un par de chars llamados ROW donde colocaremos el carácter a mostrar y COL donde haremos el barrido de los LEDs, después simplemente iniciamos nuestro PIC, definimos puertos digitales, puertos de salida, limpiamos puertos y establecemos frecuencia de oscilador interno, en este caso de 16MHz, para terminar en nuestra función main y el ciclo while, donde se mostraran los puertos y cada cierto tiempo se hará un conteo con la variable "x" que es la encargada de saber que datos mostrar en los puertos, cuidando de que el conteo maximo de dicha variable sea 8, como todo esto lo hace en un tiempo muy pequeño, a la vista se ve como si la imagen estuviera siempre presente en la matriz.

Aquí el enlace para DESCARGAR todo el material disponible desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...

6/06/2017

Haciendo nuevo mueble para el taller

Hace ya tiempo que tenia estos tramos de aglomerado, los rescate de su cita con la basura, no sabia que hacer con ellos, pero luego de pensar un rato me decidí por hacer un pequeño mueble para acomodar tantas chacharas que tengo ahí amontonadas en cajas de cartón, una vez mas les comento no soy muy bueno haciendo esto, pero tampoco me a quedado tan mal, a continuación algunas fotos del proceso.
 

6/01/2017

Invertir el giro de un motor de CD (Latch RS + Puente H)

Hace unos cuantos días un buen amigo me preguntaba si era posible cambiar el giro de un motor CD de una forma automática por así decirlo, pero sin la necesidad de usar algún tipo de microcontrolador,  el motor a controlar era uno de 12V y con una corriente no mayor a 1A.

La idea era la siguiente: tener un par de switches (dos interruptores de limite) en dos extremos de algo (un riel digamos), entonces un objeto correría por dicho riel (sin importar el sentido inicial) llegando a un extremo activaría un primer switch y con eso cambiaría el sentido de giro, como es de esperar el objeto llegaría al lado opuesto donde activaría el segundo switch y se volvería a repetir el ciclo indeterminadamente (claro esta, siempre y cuando el circuito tenga alimentación). 

Bueno lo primero que se me vino a la mente para el giro del motor pues fue un puente H (el me comentaba que tenia a la mano un L293 así que se decidió usarlo), ahora para tener enclavado el pulso en el puente H recordé mis días de estudiante y dije por que no usar un flip-flop (que ya en su tiempo había hecho algo similar), checando mis viejos apuntes encontré un latch RS con compuertas y vi que era ideal para esto, así que listo fue momento de presentar un circuito y el resultado es el siguiente: