Haga una pantalla de depuración para microcontroladores: 6 pasos

Haga una pantalla de depuración para microcontroladores: 6 pasos

Tabla de contenido:

Anonim

Esta pantalla es muy útil si trabaja con la función ADC de microcontroladores.

Solo se necesitan dos pines para controlar la pantalla (tres si desea controlar el pestillo también). Con dos siete segmentos puede mostrar hasta 0xFF como hexadecimal. Ese es el rango completo de 8 bits, ¿cuál es el ancho variable más utilizado para las uC pequeñas?

Lo construí porque la aplicación final no tiene una pantalla y quería saber qué está pasando antes de terminarlo.

Necesita dos registros de desplazamiento 74HC959, dos pantallas de siete segmentos y 14 (16) resistencias. Necesita 16 si desea usar los puntos, que no están implementados en el software. Pero usar los puntos expandiría los valores visualizables a 10bit o 0-1027. Te lo dejo a ti para que resuelvas esto.

Suministros:

Paso 1: El Esquema

Utilizamos dos registros de desplazamiento 74HC595 para interconectar las pantallas de siete segmentos. Ya sea que utilice ánodo común o cátodo común de 7 segmentos, debe ajustar el circuito. Utilicé cátodos comunes. Lo que significa que cada segmento es un LED verde y los cátodos de todos los LED están conectados entre sí. (Pines 3 y 8 de la pantalla de 7 seg.)

Los registros de turno funcionan de esta manera:

Cada vez que aplica un pulso en la entrada de cambio, el estado actual del pin de entrada en serie se desplaza en la memoria del 74HC595. Cada vez que llega un pulso en la entrada de retención, el estado de la memoria interna se utiliza para controlar las salidas.

Después de 8 ciclos de cambio, la primera entrada se desplaza hacia afuera en el pin9 nuevamente y podría usarse como una entrada para otro 74HC595. Esto también se llama una cadena de margaritas.

El 74HC595 puede manejar hasta 70 mA en total, por lo que tenemos que ajustar las resistencias de manera que la corriente a través de cada segmento de LED se mantenga por debajo de 9 mA, que es de aproximadamente 470 Ohm para 5V y las pantallas utilizadas.

Paso 2: El Registro de Turnos 75HC595

Una mirada a la imagen le indica qué pines necesita conectar.

Los pines se cuentan en el sentido contrario a las agujas del reloj a partir de la marca en el IC si se mira desde arriba.

Conecte los pines 1 - 7 y 15 a los pines del segmento 7.

Los pin 8 y 13 deben estar conectados a tierra (GND o terminal negativo de la batería)

El pin 9 está conectado al pin 14 del siguiente IC.

Los pines 10 y 16 deben estar conectados a la tensión de alimentación (VCC o terminal positivo de la batería)

Los pines 11, 12 y 14 son la interfaz que debe ser accionada por el microcontrolador, conéctelos al pinheader de tres pines para la interfaz externa.

Paso 3: Construyó la pantalla

Aunque hubiera sido posible grabar una placa de circuito personalizada, elegí construir todo en una placa de pruebas con un cable de cobre fino.

Este alambre de cobre está recubierto, pero el recubrimiento podría quemarse con un poco de estaño fundido. Es muy fácil hacer conexiones con él. Solo puede estañar un extremo, soldarlo al pin y luego estirarlo hasta el otro pin y quemar el aislamiento donde quiera soldarlo. Luego soldarlo al pin y cortar el resto. Un soldador de 30W como este de Craftsman es más que suficiente para el trabajo.

Utilicé pequeños resistores SMD 1206, porque encajan muy bien debajo de las pantallas de siete segmentos.

Pero, después de todo, necesitas armar el tablero por ti mismo y, por supuesto, también puedes usar cualquier resistencia que te guste.

Paso 4: Encuentra el orden de los segmentos

Finalmente tenemos que escribir las funciones para mostrar algo significativo.

El principal problema ahora es encontrar el segmento correcto - secuencia de control. Al principio, intente insertar un solo 1 en todo el registro de desplazamiento.

Aplique un alto a la entrada serial y pulse el cambio una vez. Ahora pulsa el pestillo una vez y mira qué segmentos se encienden.

Si luego presiona el botón de cambio y traba nuevamente, el siguiente segmento se iluminará y así sucesivamente.

Finalmente, tiene el orden de todos los segmentos y puede transferirlos a números binarios.

Paso 5: Escribe el código

Quería usar la pantalla con mis microcontroladores AVR. Así que escribí un archivo *.h que podría incluirse en cualquier proyecto.

Si conectó la placa de forma diferente, es posible que deba ajustar la matriz de control de segmentos.

Para usarlo, necesita ajustar las definiciones de pin en el archivo debug.h (primeras 12 líneas).

En la aplicación principal necesitas agregar las siguientes líneas:

#include "debug.h"

initdebug (); // Esto inicializa los puertos de salida especificados en debug.h

Entonces puede mostrar cualquier variable de 8 bits simplemente llamando a la función de depuración con ella. digamos que la variable se llama contador, luego el valor actual de contador se muestra mediante:

depuración (contador);

Consejos:

  • Agregue un poco de tiempo de retardo después de la llamada de debug () para tener tiempo para leer el valor.
  • Cuando conectó shift y latch juntos, simplemente defina los dos puertos para el mismo pin. Cada vez que se activa el cambio, también se bloquea el estado actual, lo que significa que la pantalla parpadea mientras se cargan los registros de desplazamiento. Si lo hace rápido en comparación con el tiempo que deja que la pantalla permanezca, es o.k.
  • Para mostrar un valor de 16 bits, divídalo entre 256 y muestre el resultado, o separe el byte alto y el byte bajo y visualícelos uno tras otro con un pequeño freno en medio.

Paso 6: Pruébalo

Para probar la pantalla parece ideal usar el adaptador de tablero de pruebas attiny2313 que publiqué en este instructivo:

www.instructables.com/id/Make-a-breadboard-adapter-for-your-AVR-microcontroller

El programa del video incorporado solo cuenta de 0 a 0xFF y viceversa.

El video: