Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Fuente de alimentación variable con Arduino UNO:circuito y código

¿Cómo hacer una fuente de alimentación variable con Arduino UNO?

Una fuente de alimentación es un requisito básico y esencial para los circuitos y equipos electrónicos y eléctricos. Hay varios tipos de circuitos y equipos, por lo tanto, su demanda de suministro de energía es diferente para diferentes circuitos electrónicos. Por ejemplo, los módulos Wi-Fi, relés, motores, etc. requieren diferentes voltajes. En el mercado, no obtenemos diferentes fuentes de alimentación para cada dispositivo electrónico, por lo que generamos nuestra propia fuente de alimentación específica a partir de varios métodos. La solución simple para esto es usar baterías.

Las baterías se utilizan generalmente para alimentar el circuito electrónico y los proyectos, ya que están fácilmente disponibles y se pueden conectar fácilmente. Pero se agotaron rápidamente y luego necesitamos baterías nuevas, además, estas baterías no pueden proporcionar una corriente alta para impulsar un motor potente. Entonces las baterías se descargan y también engordan el circuito. Además, las baterías se calientan cuando los componentes electrónicos se usan durante más tiempo o en exceso y, con el tiempo, la vida útil de las baterías disminuye. Para superar este problema, presentamos una solución mejor y más eficiente que se puede utilizar en cualquier circuito. En este proyecto le mostraremos cómo podemos generar Fuente de alimentación variable desde Arduino UNO .

Usando este proyecto podrá obtener un suministro de energía variable de acuerdo con su equipo electrónico sin preocuparse por problemas de carga, descarga, calentamiento, etc. Hay muchos métodos disponibles para generar la variable fuente de alimentación, pero esta es la forma más fácil, ya que requiere componentes baratos y fácilmente disponibles. Así que echemos un vistazo a los componentes necesarios para este proyecto.

Componentes necesarios

Software: AURDINO Nightly o Atmel Studio 6.2

Diagrama del circuito de fuente de alimentación variable

Antes de entrar en este proyecto, háganos saber algunas cosas sobre el proyecto.

Arduino UNO

Arduino UNO es una plataforma de código abierto que se utiliza para desarrollar proyectos de electrónica. Se puede programar, borrar y reprogramar fácilmente en cualquier instante del tiempo. Hay muchas placas Arduino disponibles en el mercado como Arduino UNO, Arduino Nano, Arduino Mega, Arduino lily pad, etc. con diferentes especificaciones según su uso. En este proyecto vamos a utilizar Arduino UNO para controlar los electrodomésticos de forma automática. Tiene un IC de microcontrolador ATmega328 que funciona a una velocidad de reloj de 16 MHz. Es un poderoso que puede funcionar en los protocolos de comunicación USART, I2C y SPI.

Esta placa generalmente se programa usando el software Arduino IDE usando un cable micro USB. ATmega328 viene con un cargador de arranque integrado preprogramado que facilita la carga del código sin la ayuda de un hardware externo. Tiene una amplia aplicación en la fabricación de proyectos o productos electrónicos. El lenguaje C y C++ se utiliza para programar la placa, que es muy fácil de aprender y usar. Arduino IDE hace que sea mucho más fácil de programar. Separa el código en dos partes, es decir, configuración vacía () y bucle vacío (). La función void setup () se ejecuta solo una vez y se usa principalmente para iniciar algún proceso, mientras que void loop () consiste en la parte del código que debe ejecutarse continuamente.

Este modelo consta de 6 pines de entrada analógica y 14 pines GPIO digitales que se pueden usar como salida de entrada, 6 de los cuales proporcionan salida PWM y analógica usando pinMode(), digitalWrite(), funciones digitalRead() y analogRead(). Los 6 canales de entrada analógica van desde los pines A0 a A5 y proporcionan una resolución de 10 bits. La placa se puede alimentar con un cable USB que funciona a 5 voltios o con un conector de CC que funciona entre 7 y 20 voltios.

Hay un regulador de voltaje integrado para generar 3,3 voltios para operar dispositivos de baja potencia. Dado que el ATmega328 funciona con el protocolo de comunicación USART, SPI e I2C, tiene pines 0 (Rx) y 1 (Tx) para comunicación USART, pin SDA (A4) y SCL (A5) para I2C y SS (10), MOSI (11) , MISO (12) y SCK (13) pines para el protocolo de comunicación SPI.

ADC en Arduino UNO

Arduino UNO tiene integrados 6 canales ADC que se pueden usar para detectar o leer señales analógicas que van desde 0 voltios hasta 5 voltios. Cuando conectamos sensores con microcontroladores como Arduino UNO, el sensor genera valores de salida analógicos, Arduino UNO detecta valores digitales. Por lo tanto, ADC ayuda a convertir los valores del sensor en valores analógicos y los alimenta al microcontrolador. Hay muchas aplicaciones de ADC como detección de temperatura, medición de distancia, medición de velocidad y muchos sensores que generan valores analógicos.

Arduino UNO tiene ADC de 10 bits, lo que significa que su valor cambia de 0 a 1023 en cada paso. Esto se denomina resolución, que indica el número de valores discretos que puede producir en el rango de valores analógicos.

Dado que el voltaje máximo del ADC es de 5 voltios, cada paso del ADC que va de 0 a 1023 tiene un valor equivalente a 5 mV aproximadamente. Hay 6 canales ADC que, de A0 a A5 en la placa Arduino UNO, significan que a la vez puede controlar o interactuar con 6 dispositivos que generan valores analógicos.

Arduino IDE proporciona una función incorporada para leer valores analógicos:analogRead(pin).

Simplemente dando el número de pin de A0 a A5 a los que están conectados los dispositivos, esta función nos ayuda a leer los valores analógicos.

PWM en Arduino UNO

La modulación de ancho de pulso (PWM) es una técnica utilizada para generar señales analógicas utilizando alguna fuente digital variando el ancho del pulso mientras se mantiene constante la frecuencia. Las dos cosas más importantes que definen PWM son:ciclo de trabajo y frecuencia.

Ciclo de trabajo de una señal:

La fracción durante la cual una señal está ENCENDIDA en un período completo se denomina Ciclo de trabajo.

Ciclo de trabajo =100*Ton / (Ton + Toff)

Esto generalmente se usa para controlar la energía entregada a la carga al ENCENDER y APAGAR la señal. Por ejemplo, se puede utilizar para controlar la intensidad de la luz o la velocidad de algún motor. Después de una llamada a la función analogWrite(), el pin generará una onda cuadrada constante del ciclo de trabajo especificado hasta la próxima llamada a analogWrite() o una llamada a digitalRead() o digitalWrite() en el mismo pin.

Frecuencia de una señal:

La frecuencia de una señal indica qué tan rápido una señal completa su ciclo, significa cuánto tiempo cambia de su estado ENCENDIDO a su estado APAGADO o viceversa. Al hacerlo en un ciclo de trabajo particular, la salida se comporta como un voltaje analógico constante. La frecuencia de la señal PWM en la mayoría de los pines es de aproximadamente 490 Hz. En las placas Uno y similares, los pines 5 y 6 tienen una frecuencia de aproximadamente 980 Hz. Los pines 3 y 11 del Leonardo también funcionan a 980 Hz

Arduino UNO tiene 6 canales PWM de 8 bits con el símbolo ~ en él. Podemos obtener voltaje analógico usando la función analogWrite en Arduino IDE:

analogWrite (pin, ciclo de trabajo)

Pin:Toma el pin de Arduino UNO utilizado para generar una salida analógica.

Ciclo de trabajo:toma rangos de valores de 0 (mínimo) a 255 (máximo) como entrada para cambiar el ciclo de trabajo.

Pantalla LCD de 16×2

Generar caracteres personalizados en la pantalla LCD no es muy difícil. Requiere el conocimiento sobre la memoria de acceso aleatorio generada a medida (CG-RAM) de LCD y el controlador de chip LCD. Se trata de conectar un Arduino UNO a un módulo LCD JHD162A de 16 × 2. JHD162A es un módulo LCD de 16×2 basado en el controlador HD44780 de Hitachi. El JHD162A tiene 16 pines y se puede operar en modo de 4 bits (usando solo 4 líneas de datos) o en modo de 8 bits (usando las 8 líneas de datos). En este proyecto, vamos a utilizar el modo de 4 bits, ya que permite conectar los cables.

Descripción de pines del módulo LCD de 16×2:

Pin en LCD Descripción
VSS Pin de tierra
VCC fuente de alimentación de +5V
VEE Pin para cambiar el contraste de la pantalla LCD
RS Selección de registro:modo de datos o modo de comando
RW Modo de lectura o escritura
E Habilitar LCD
DB0-DB7 Los datos y comandos se alimentan usando estos pines
LED+ Ánodo del LED de retroiluminación
LED- Cátodo del LED de retroiluminación

Esta pantalla LCD no tiene luz propia, por lo que hay un LED detrás de la pantalla que actúa como luz de fondo de la pantalla. La interfaz de esta pantalla LCD con Arduino UNO es bastante fácil, ya que Arduino IDE proporciona una biblioteca LiquidCrystal que tiene muchas funciones incorporadas para facilitar la inicialización e impresión de cualquier cosa en la pantalla. Las funciones de LCD que vamos a utilizar principalmente en este proyecto son:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

Funcionamiento de fuente de alimentación variable usando Arduino

Conecte correctamente los cables como se indica en el diagrama del circuito. En este proyecto vamos al voltaje obtenido en el terminal de salida y lo damos como entrada al del canal ADC. Además, el canal ADC proporciona el valor digital que luego se muestra en la pantalla LCD de 16 × 2. Los botones utilizados en el proyecto son para incrementar y decrementar el voltaje y están conectados al pin 4 y pin 5 del Arduino UNO. Dado que Arduino UNO tiene una resolución de 10 bits, lo que significa que varía de 0 a 1023 y el voltaje máximo de ADC es de 5 voltios, por lo tanto, un bit equivale a 5/1024 =4,9 milivoltios (aprox.). Así que incrementando y decrementando movemos el valor digital varía de 0 a 1023.

Ahora estamos leyendo el valor ADC en el canal A0. Arduino IDE proporciona la función incorporada analogRead (pin) para leer los valores de ADC, aquí el pin es A0 ya que el canal es A0 en Arduino UNO. Además, estamos usando el pin 3 para Pwm de Arduino UNO. Arduino IDE proporciona la función analogWrite(pin,Duty Cycle) para generar el voltaje de salida deseado con el ciclo de trabajo dado en el pin 3.

Ahora, al presionar los dos botones, estamos cambiando el ciclo de trabajo de la señal pwm que, como resultado, cambia el voltaje de salida. Un botón es para incrementar el ciclo de trabajo y el otro es para disminuir el ciclo de trabajo. El valor PWM del Arduino Uno cambia de 0 a 255, siendo 0 como mínimo para alcanzar 0 voltios y 255 como máximo para alcanzar 5 voltios. El pin 3 se alimenta además a un transistor NPN que proporciona un voltaje variable en su emisor y actúa como un dispositivo de conmutación.

La base del transistor tendrá una relación de trabajo variable pwm y, por lo tanto, podemos obtener un voltaje de salida variable en la terminal. Dado que el voltaje no es lineal, conectamos capacitores para filtrar el ruido en el voltaje de salida variable.

Explicación del código

Incluyendo Bibliotecas:

#include <LiquidCrystal.h>

Esta es la biblioteca incorporada para usar una pantalla LCD. Proporciona funciones que se pueden usar fácilmente para mostrar caracteres en la pantalla LCD.

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int ref_volt =125;
float flag =0;

la pantalla LCD de cristal líquido toma el número de pin al que se conectan los pines de datos y los pines RS, RW y E de la pantalla LCD. Dado que estamos configurando nuestro voltaje de referencia en 2,5 voltios, estamos configurando el ciclo de trabajo en 50 % al poner ref_volt en 125.

pinMode (3, OUTPUT);
pinMode (4, INPUT);
pinMode (5, INPUT);

El pin3 de Arduino UNO está configurado como salida PWM, el pin 4 y el pin 5 están configurados para tomar la entrada para incrementar y disminuir el voltaje.

lcd.begin(16, 2);
delay(100);
lcd.setCursor(1, 0);
lcd.print("Variable Voltage");
lcd.clear();
delay(1000);

la función lcd.begin establece el número de caracteres de la pantalla LCD. Al principio, estamos mostrando "Voltaje variable" en la pantalla.

float value = (analogRead(A0));
value = (value*5)/1024;
analogWrite(3,ref_volt);

Valor variable lee el valor digital obtenido del canal A0 ADC y convierte este valor digital en valor de voltaje. AnalogWrite proporciona PWM en el pin 3 de Arduino UNO.

if (digitalRead(4)==LOW)
  {
    if (ref_volt<250)
    {
      ref_volt=ref_volt+1;
      delay(100);
    }
  }

Esto verifica si el botón de incremento está presionado o no. Si alguien presiona el botón de incremento, entonces aumenta el ref_volt.

  if (digitalRead(5)==LOW)
   {
     if (ref_volt>0)
      {
        ref_volt=ref_volt-1;
        delay(100);
      }
    }

Esto verifica si el botón de disminución está presionado o no. Si alguien presiona el botón de disminución, entonces disminuye el ref_volt.

De esta forma puedes generar la fuente de alimentación variable de 5 voltios usando Arduino UNO sin preocuparse mucho por las baterías y engordar el circuito.


Tecnología Industrial

  1. Uso de la inteligencia artificial para descubrir la vida silvestre y la trata de personas en la cadena de suministro
  2. Decodificador DTMF usando solo Arduino
  3. Voltímetro de bricolaje con Arduino y un teléfono inteligente
  4. WebServerBlink usando Arduino Uno WiFi
  5. Python3 y comunicación Arduino
  6. Radio FM usando Arduino y RDA8057M
  7. Robotcar controlado con el teléfono inteligente G-Sensor
  8. Seguimiento GPS mediante Helium, Azure IoT Hub y Power BI
  9. Corriente, potencia y par en variadores de velocidad
  10. Diagrama de circuito de fuente de alimentación dual:230 V CA a ± 12 V CC
  11. Fuente de alimentación sin transformador:forma aprobada de superar los costos y el espacio