Acionando relés com microcontrolador stm32f103 usando driver de relé uln2003

Conducción de relés con microcontrolador STM32F103 utilizando el controlador de relé ULN2003

En este tutorial, le enseñaré cómo interconectar relés con microcontroladores stm32f103. Los microcontroladores Stm32 funcionan con lógica TTL de 3,3 voltios. Donde los relés eléctricos necesitan un mínimo de +5 voltios para realizar una conexión regular. Necesitamos un circuito externo para controlar relés con microcontroladores stm32. Esta publicación es para enseñar qué se debe usar con el microcontrolador stm32 para activar varios relés con él. Existen varios métodos sobre cómo controlar cargas elevadas con microcontroladores. He enumerado estos métodos en otro tutorial. Si está interesado en saber cómo podemos manejar cargas elevadas con microcontroladores, simplemente haga clic en el botón a continuación para seguir el tutorial.

Métodos para manejar cargas elevadas con microcontroladores.

Los transistores se adaptan mejor a los microcontroladores para controlar los relés. Pero si tenemos varios relés en nuestro diseño, usar un transistor para cada relé no es la mejor opción. Los transistores individuales no sólo hacen que nuestro circuito sea más grande sino también confuso. Afortunadamente, tenemos varios circuitos integrados disponibles en el mercado que contienen combinaciones de transistores. Estos circuitos integrados son de tamaño pequeño y consumen menos espacio en comparación con un solo transistor independiente. ULN2003 y ULN2803 son circuitos integrados de combinación de transistores populares disponibles en el mercado. El ULN2003 tiene 7 canales de transistores y el ULN2803 tiene 8 canales de transistores. Cada canal está compuesto por un par Darlington de 2 transistores. En la configuración de Darlington, la corriente amplificada por el primer transistor es amplificada aún más por el segundo transistor. Podemos concluir que cada canal del ULN2003 y ULN2803 son amplificadores de ganancia de alta corriente. En este proyecto utilizaré el par ic Darlington ULN2003. El ULN2003 en este proyecto funcionará como un controlador de retransmisión.

ULN2003 como controlador de relevo

La configuración individual del par Darlington en el circuito integrado ULN2003 se muestra en el lado derecho. 3,3 voltios de los pines de salida del microcontrolador stm32 van a la base del primer transistor. El primer emisor del transistor se inserta en la segunda base del transistor. Por tanto, cuando el primer transistor se enciende instantáneamente, el segundo también se enciende. La corriente comenzará a fluir desde 'Fuera' a tierra. El diodo en el pin 'COM' funciona como un diodo de retorno. Evita que el circuito reciba cualquier fem inversa generada por las bobinas del relé. El ULN2003 puede soportar cargas que requieren 50 voltios y 500 mA de corriente.

Fotografía

Circuito de par de transistores Darlington único ULN2003

Circuito de diseño

Activaré y desactivaré cuatro relés con el microcontrolador stm32. Se utilizan cuatro botones como entrada al microcontrolador stm32. Estos cuatro botones corresponden a cuatro relés de salida. Al presionar cada botón se cambiará el estado del relé correspondiente. Por ejemplo, si el relé está encendido, al presionar el botón correspondiente cambiará su estado a apagado. Podemos decir que los botones alternan el estado de los relés con cada pulsación.

El microcontrolador utilizado en el proyecto es stm32f103c8t6. Está construido sobre el núcleo Cortex M3. Los pines 0,1,2,3 del puerto A del microcontrolador stm32 se utilizan como pines de salida. El pin No. 0 del puerto a está conectado a la entrada 1 del controlador de relé ULN2003. El pin #1 del puerto A está conectado a la entrada #3, el pin #2 está conectado a la entrada #5 y el pin #3 está conectado al pin #7 del controlador de relé ULN2003.

Los botones de entrada están conectados a los pines 6, 7, 8, 9 del puerto B. El microcontrolador Stm32 tiene resistencias de subida y bajada incorporadas en cada pin gpio individual. Podemos habilitarlos y deshabilitarlos en código. Para las entradas de nuestros botones, habilité las resistencias pull-up asociadas con cada gpio (Puerto B Pin#6,7,8,9). Un lado de los botones de entrada está conectado a los pines del microcontrolador y el otro lado está comúnmente conectado a tierra.

Los relés que estoy usando en el proyecto se activan a +9 voltios. Conecté la bobina del relé en un extremo con una salida ULN2003 y en el otro +12 voltios. El pin COM del relé está conectado a tierra a la alimentación de carga. El pin Nc del relé está conectado a la carga y el otro extremo de la carga está conectado al cable de alimentación positivo de la carga. Ningún pin de relé queda intacto. El pin de tierra del ULN2003 está conectado a tierra con una fuente de alimentación de relé de 12 voltios y con tierra stm32. Nota ULN2003 GND debe estar conectado a tierra comúnmente con la fuente de alimentación stm32 y la fuente de alimentación del relé ULN2003.

Relés con microcontrolador STM32 y controlador de relé ULN2003

Relés con microcontrolador STM32 y controlador de relé ULN2003

Código de proyecto

Stm32cubemx se utiliza para la configuración del microcontrolador. En él se declaran los pines de entrada y salida. Las resistencias de subida y bajada de los pines de entrada también se activan en stm32cubemx. Después de la configuración y los ajustes, el código del proyecto se crea y se importa al IDE de Keil Uvision Arm 5 MDK. Debajo de la figura se encuentran las configuraciones finales de stm32 en stm32cubemx.

Configuración de Stm32cubemx GPIOS para pines como entrada y salida

Configuración de Stm32cubemx GPIOS para pines como entrada y salida
Si no has trabajado con el configurador de código stm32cubemx y keil uvision mdk arm 5 y eres novato en este campo. Así que tengo un tutorial completo sobre cómo comenzar con stm32 cubemx y keil ide para ti. Haga clic en el botón a continuación para ver el tutorial.

Comenzando con stm32cubemx y keil arm mdk

El código está escrito y compilado en Keil Uvision IDE. En el proyecto se utilizan bibliotecas Stm32 HAL. La lógica principal y el núcleo del código se encuentran en el bucle while 1. La declaración

if(HAL_GPIO_ReadPin(GPIOB,B6_Pin)==GPIO_PIN_RESET) //Comprueba si se ha presionado el botón de entrada

está comprobando si el botón está presionado o no. La instrucción utiliza bibliotecas HAL stm32 para verificar el estado del botón de entrada. El pin n.º 6 del puerto B está marcado en el código anterior. GPIO_PIN_RESET significa si el pin tiene bajo voltaje (0 voltios). Cuando se presiona el botón, el piso aparece en esta clavija. El otro extremo del botón está conectado a tierra stm32. Si la declaración anterior es verdadera, se ejecutará la siguiente declaración.

HAL_GPIO_TogglePin(GPIOA,A0_Pin);

La declaración anterior se ejecuta justo después de la declaración if SI la declaración es verdadera. Cambia el estado del relé. Esta declaración también utiliza bibliotecas stm32 HAL. La instrucción alterna el estado del pin #6 del puerto A.
Hacer el circuito anterior en una placa de pruebas es difícil para un proyecto de bricolaje. Si está realizando un proyecto de bricolaje sobre cómo controlar el relé stm32. Le sugiero que utilice una placa de relés preensamblada en su proyecto. Hay numerosos tableros de relés disponibles en el mercado que contienen diferentes números de relés. Los tableros de relés de 2, 4 y 8 canales son los más comúnmente disponibles en el mercado. Estas placas tienen instalados circuitos integrados de controlador de relé ULN2003 o ULN2803. También cuentan con LED de estado. Los LED muestran el estado de los relés. Los bloques de terminales de cada relé también son muy útiles para realizar conexiones a cargas.
El código anterior se puede utilizar con la placa de relés. Las conexiones son las mismas. Solo necesita hacer que la alimentación del relé y las tierras de alimentación stm32 sean comunes.

Placa de relés de 4 u 8 canales para microcontrolador con controlador de relé ULN2003 y ULN2803

Placa de relés de 4 u 8 canales para microcontrolador con controlador de relé ULN2003 y ULN2803
Los tableros de relés también vienen con optoacopladores y circuitos de transistor único. El código de este proyecto se puede utilizar con cualquier placa de relés que contenga ULN2003, ULN2803, optoacopladores o transistores individuales como controladores de relé.
Código/Archivos

Regresar al blog

Deja un comentario

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