Interface de display de 7 segmentos com microcontrolador stm32f103

Interfaz de pantalla de 7 segmentos con microcontrolador stm32f103

Este tutorial trata sobre la interfaz de una pantalla LED de 7 segmentos con un microcontrolador stm32 usando keil arm mdk 5 con bibliotecas HAL stm32 para la compilación de código. Stm32cubemx se utiliza para inicializar los periféricos/pines variables del microcontrolador stm32f103c8t6, ​​la frecuencia de funcionamiento, la selección del oscilador, etc. La configuración inicializada de Stm32cubemx luego se importa al proyecto keil mdk arm 5. Stm32cubemx genera automáticamente el código para el ide en el que queremos trabajar y en este proyecto usaré keil arm mdk 5 ide. Si eres nuevo y no conoces stm32cubemx y keil uvision arm ide. Le sugiero que obtenga más información sobre Stm32cubemx y keil uvision mdk arm ide utilizados junto con las bibliotecas stm32 HAL para la generación de código de microcontrolador stm32. Simplemente haga clic en el botón de abajo para hacer el tutorial.

Primeros pasos con stm32cubemx y keil mdk arm ide

Llegando al proyecto principal. En este tutorial conectaré una pantalla de siete segmentos con el microcontrolador stm32f103. Imprimiré números del 0 al 9 y caracteres de la A a la F en una única pantalla de siete segmentos. El display de siete segmentos está compuesto por LED dispuestos en formato matricial. Al encender y apagar los LED en un patrón dedicado, se imprime el número o carácter deseado en una pantalla de 7 segmentos. Hay dos tipos de pantallas de siete segmentos, ánodo común y cátodo común. La pantalla de siete segmentos del ánodo común tiene todos los pines del ánodo del LED conectados a un solo punto. Mientras que en el cátodo común, todas las clavijas del cátodo están conectadas a un solo punto. Para obtener más información sobre la diferencia entre tipos, tamaños y pantallas especiales de 7 segmentos, siga el tutorial a continuación. Haga clic en el botón de abajo para hacer el tutorial.

Diferencia entre 7 tamaños y tipos de hilo.

Usaré una pantalla de ánodo común de 7 segmentos en este proyecto. Los microcontroladores Stm32 no son fáciles de usar. No vienen en un paquete DIP. Así que no puedes hacer un proyecto de bricolaje con ellos en una placa. Necesitamos diseñar una placa especial para funcionar con microcontroladores stm32, lo que sigue siendo un trabajo que requiere mucho tiempo. Afortunadamente, hay varias placas de entrada STM32 preensambladas disponibles en el mercado. No sólo son baratos sino también fáciles de trabajar. También usaré una placa stm32 preensamblada que alberga un microcontrolador stm32f103c8t6.
Primero, se inicializa el microcontrolador stm32cubemx para stm32f103c8t6. Se inicializan 7 pines del microcontrolador stm32 como salida que interactuará con la pantalla de siete segmentos. Los pines tienen el mismo nombre que los pines del display de siete segmentos. En el proyecto se utilizan los pines del puerto A del microcontrolador stm32. El puerto A del microcontrolador stm32 es un puerto de 16 bits de ancho. Usaré tus primeros 7 pines del 0 al 6 en el proyecto. La configuración de Stm32cubemx para declarar pines como salida se muestra en el lado derecho.

Configuraciones stm32cubemx de 7 segmentos para microcontrolador stm32f103

Configuraciones stm32cubemx de 7 segmentos para microcontrolador stm32f103

Diagrama del circuito del proyecto.

La placa que estoy usando en el proyecto se encuentra en el diagrama de circuito a continuación. Aunque en la placa no todos los pines GPIO del microcontrolador stm32f103 están expuestos, todavía tiene una cantidad decente de pines GPIO con los que trabajar. El puerto A del stm32f103 tiene 16 pines GPIO, pero solo 12 están expuestos en la placa. Afortunadamente, los pines del puerto a 0 a 6 están presentes en la placa y son suficientes para las necesidades de nuestro proyecto. me conecté

  • El pin #0 del puerto A está conectado al pin A de la pantalla de 7 segmentos
  • El pin #1 del puerto A está conectado al pin b de la pantalla de 7 segmentos
  • El pin #2 del puerto A está conectado al pin C de la pantalla de 7 segmentos
  • El pin n.° 3 del puerto A está conectado al pin d de la pantalla de 7 segmentos
  • El pin #4 del puerto A está conectado al pin E de la pantalla de 7 segmentos
  • El pin n.º 5 del puerto A está conectado al pin f de la pantalla de 7 segmentos
  • El pin #6 del puerto A está conectado al pin g de 7 segmentos .

Como estoy usando la pantalla de ánodo común de 7 segmentos, el pin de salida de 3,3 voltios del stm32 está conectado al pin comp de la pantalla de siete segmentos. Cargué el código en el microcontrolador usando el depurador stlink v2.

Microcontrolador stm32 con display de 7 segmentos

Microcontrolador Stm32 con pantalla de ánodo común de 7 segmentos
Llegando al código del proyecto. El código está escrito en keil uvision mdk arm ide. En el proyecto se utilizan bibliotecas Stm32 HAL. El configurador de código Stm32cubemx se utiliza para configurar el oscilador, gpios y temporizadores del microcontrolador stm32. Aquí sólo es importante la parte 1 del bucle while. Escribí el código solo en este bucle. El código restante lo genera el ide stm32cubemx.
El registro ODR del Stm32 se utiliza para escribir en los puertos del microcontrolador stm32. Es un registro de 16 bits. Para acceder a este registro, la sintaxis del código para las bibliotecas HAL se encuentra a continuación. Como estoy usando el puerto A de stm32 en el proyecto, la sintaxis se convierte en

GPIOA->ODR = 0x003F; //Mostrando 0

El código anterior escribe una palabra de 16 bits en el puerto A del microcontrolador stm32. La palabra de 16 bits es 0x003F. Es un número hexadecimal de 16 bits. Si lo traducimos a su equivalente binario, el comando se traducirá a 0000 0000 0011 1111. Cada bit binario se escribe en el pin individual del puerto a del stm32. La parte más pequeña comienza desde la derecha y va hacia la parte superior izquierda. Solo nos preocupan los primeros 7 pines del stm32, ya que los usamos en el proyecto. Por lo tanto, 011 1111 se escriben en los primeros siete bits del puerto a del microcontrolador stm32. El pin del puerto A más alto (6) se escribirá 0 y todos los demás permanecerán altos. El pin 6 del puerto a está conectado al pin g de la pantalla de siete segmentos. Lo que sucede es cuando esta palabra se escribe en el puerto a de stm32. El pin g de siete segmentos se apagará y todos los demás se encenderán, totalizando 0 en la pantalla de siete segmentos. Espero que esto tenga sentido para ti. Todos los demás caracteres se muestran de la misma manera. Se inserta un retraso de 1 segundo entre cada carácter para ver claramente el carácter/número en la pantalla de siete segmentos.

Trabajo futuro

Puede conectar una serie de pantallas de siete segmentos con el puerto único del stm32 y controlarlas con pines individuales del stm32 para mostrar números del 0 al 100. Puede hacer un reloj con una pantalla de siete segmentos. Se pueden utilizar barras de LED especiales para crear diagramas de caracteres especiales, etc.

Código/Archivos

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.