Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Construa uma Fonte de Alimentação Variável com Arduino UNO – Circuito e Código Passo a Passo

Como Fazer uma Fonte de Alimentação Variável usando Arduino UNO?

Uma fonte de alimentação é um requisito básico e essencial para equipamentos e circuitos eletrônicos e elétricos. Existem vários tipos de circuitos e equipamentos, portanto, sua demanda de fonte de alimentação é diferente para diferentes circuitos eletrônicos. Por exemplo, módulos Wi-Fi, relés, motores, etc., requerem diferentes tensões. No mercado, não conseguimos diferentes fontes de alimentação para cada eletrônica, então geramos nossa própria fonte de alimentação específica de vários métodos. A solução simples para isso é usar baterias.

Baterias são geralmente usadas para alimentar Circuitos e Projetos Eletrônicos, pois são facilmente disponíveis e podem ser conectadas facilmente. Mas elas descarregam rapidamente e então precisamos de novas baterias, também estas baterias não podem fornecer alta corrente para acionar um motor potente. Então as baterias descarregam e também tornam o circuito volumoso. Além disso, as baterias esquentam quando a eletrônica é usada por mais tempo ou excessivamente e com o tempo a vida das baterias diminui. Para superar este problema, introduzimos uma solução melhor e eficiente que pode ser usada em qualquer circuito. Neste projeto, mostraremos como podemos gerar Fonte de Alimentação Variável a partir do Arduino UNO.

Usando este projeto, você poderá obter fonte de alimentação variável de acordo com seu equipamento eletrônico sem se preocupar com carregamento, descarregamento, problemas de aquecimento, etc. Existem muitos métodos disponíveis para gerar fonte de alimentação variável, mas esta é a maneira mais fácil, pois requer componentes baratos e facilmente disponíveis. Então, vamos ver os componentes necessários para este projeto.

Componentes Necessários

Software: Arduino IDE Nightly ou Atmel Studio 6.2

Diagrama de Circuito da Fonte de Alimentação Variável

Antes de entrar neste projeto, vamos saber algumas coisas sobre o projeto.

Construa uma Fonte de Alimentação Variável com Arduino UNO – Circuito e Código Passo a Passo

Arduino UNO

Arduino UNO é uma plataforma de código aberto usada para desenvolver projetos eletrônicos. Pode ser facilmente programado, apagado e reprogramado a qualquer momento. Existem muitas placas Arduino disponíveis no mercado como Arduino UNO, Arduino Nano, Arduino Mega, Arduino LilyPad, etc., com diferentes especificações de acordo com seu uso. Neste projeto, vamos usar Arduino UNO para controlar eletrodomésticos automaticamente. Ele tem microcontrolador IC ATmega328 que roda em velocidade de clock de 16MHz. É poderoso e pode trabalhar com protocolos de comunicação USART, I2C e SPI.

Esta placa é geralmente programada usando software Arduino IDE via cabo micro USB. ATmega328 vem com bootloader pré-programado na placa, o que facilita o upload do código sem ajuda de hardware externo. Tem vasta aplicação na criação de projetos ou produtos eletrônicos. Linguagens C e C++ são usadas para programar a placa, que são muito fáceis de aprender e usar. Arduino IDE torna muito mais fácil programar. Separa o código em duas partes: void setup() e void loop(). A função void setup() roda apenas uma vez e é usada principalmente para iniciar alguns processos, enquanto void loop() consiste na parte do código que deve ser executada continuamente.

Este modelo consiste em 6 pinos de entrada analógica e 14 pinos GPIO digitais que podem ser usados como entrada/saída, 6 dos quais fornecem saída PWM e analógica usando funções pinMode(), digitalWrite(), digitalRead() e analogRead(). 6 canais de entrada analógica são dos pinos A0 a A5 e fornecem resolução de 10 bits. A placa pode ser alimentada via cabo USB que opera a 5 volts ou por conector DC que opera entre 7 a 20 volts.

Existe regulador de tensão onboard para gerar 3,3 volts para operar dispositivos de baixa potência. Como o ATmega328 trabalha com USART, SPI e I2C, tem pinos 0 (Rx) e 1 (Tx) para comunicação USART, SDA (A4) e SCL (A5) para I2C e SS (10), MOSI (11), MISO (12) e SCK (13) para protocolo de comunicação SPI.

ADC no Arduino UNO

Arduino UNO tem 6 canais ADC onboard que podem ser usados para detectar ou ler sinais analógicos variando de 0 volt a 5 volts. Quando interfaceamos sensores com microcontrolador como Arduino UNO, o sensor gera valores de saída analógicos e o Arduino UNO detecta valores digitais. Portanto, o ADC ajuda a converter valores do sensor para valores analógicos e alimenta no microcontrolador. Existem muitas aplicações de ADC como detecção de temperatura, medição de distância, medição de velocidade e muitos sensores que geram valores analógicos.

Arduino UNO tem ADC de 10 bits, o que significa que seu valor muda de 0 a 1023 em cada passo. Isso é chamado de resolução, que indica o número de valores discretos que pode produzir sobre a faixa de valores analógicos.

Como a tensão máxima do ADC é 5 volts, cada passo do ADC variando de 0 a 1023 tem valor equivalente a 5 mV aproximadamente. Existem 6 canais ADC que são de A0 a A5 na placa Arduino UNO, significando que a qualquer momento pode controlar ou interligar com 6 dispositivos que geram valores analógicos.

Arduino IDE fornece função embutida para ler valores analógicos: analogRead(pino).

Simplesmente dando o número do pino de A0 a A5 ao qual os dispositivos estão conectados, esta função nos ajuda a ler os valores analógicos.

PWM no Arduino UNO

Modulação por Largura de Pulso (PWM) é uma técnica usada para gerar sinais analógicos usando alguma fonte digital variando a largura do pulso mantendo a frequência constante. As duas coisas principais que definem PWM são: ciclo de trabalho e frequência.

Ciclo de Trabalho de um Sinal:

A fração durante a qual um sinal está LIGADO em um período completo é chamada de Ciclo de Trabalho.

Ciclo de Trabalho = 100 × Ton / (Ton + Toff)

Geralmente usado para controlar a potência entregue à carga ligando e desligando o sinal. Por exemplo, pode ser usado para controlar a intensidade da luz ou velocidade de algum motor. Após uma chamada da função analogWrite(), o pino gerará uma onda quadrada estável do ciclo de trabalho especificado até a próxima chamada a analogWrite() ou chamada a digitalRead() ou digitalWrite() no mesmo pino.

Frequência de um Sinal:

Frequência de um sinal significa quão rápido um sinal completa seu ciclo, ou seja, em quanto tempo ele muda do estado LIGADO para DESLIGADO ou vice-versa. Fazendo isso em um ciclo de trabalho particular, a saída se comporta como uma tensão analógica constante. A frequência do sinal PWM na maioria dos pinos é aproximadamente 490 Hz. No Uno e placas similares, pinos 5 e 6 têm frequência de aproximadamente 980 Hz. Pinos 3 e 11 no Leonardo também rodam a 980 Hz.

Arduino UNO tem 6 canais PWM de 8 bits com símbolo ~. Podemos obter tensão analógica usando função analogWrite no Arduino IDE:

analogWrite (pino, Ciclo de trabalho)

Pino: Recebe o pino no Arduino UNO usado para gerar saída analógica.

Ciclo de Trabalho: Recebe valor variando de 0 (mín) a 255 (máx) como entrada para mudar o Ciclo de Trabalho.

Display LCD 16×2

Gerar caracteres personalizados no LCD não é muito difícil. Requer conhecimento sobre memória de acesso aleatório de caracteres gerados personalizados (CG-RAM) do LCD e o controlador do chip LCD. Isso é sobre interligar um Arduino UNO ao módulo LCD JHD162A 16×2. JHD162A é um módulo LCD 16×2 baseado no driver HD44780 da Hitachi. O JHD162A tem 16 pinos e pode ser operado em modo 4 bits (usando apenas 4 linhas de dados) ou modo 8 bits (usando todas as 8 linhas de dados). Neste projeto, vamos usar em modo 4 bits, pois usa menos fios de conexão.

Descrição dos Pinos do Módulo LCD 16×2:

Pino no LCD Descrição
VSS Pino Terra
VCC Alimentação +5V
VEE Pino para alterar o contraste do LCD
RS Seleção de Registrador: Modo Dados ou Modo Comando
RW Modo Leitura ou Escrita
E Enable LCD
DB0-DB7 Dados e comando são alimentados usando estes pinos
LED+ Ânodo do LED de backlight
LED- Cátodo do LED de backlight

Este LCD não tem sua própria luz, então há um LED atrás da tela que atua como backlight para o display. Interligar este LCD com Arduino UNO é bem fácil, pois Arduino IDE fornece biblioteca LiquidCrystal que tem muitas funções embutidas para facilitar inicializar e imprimir qualquer coisa no display. As funções do LCD que vamos usar principalmente neste projeto são:

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

Funcionamento da Fonte de Alimentação Variável usando Arduino

Conecte os fios conforme dado no diagrama de circuito corretamente. Neste projeto, vamos ler a tensão obtida no terminal de saída e dá-la como entrada a um dos canais ADC. O canal ADC dá o valor digital que é posteriormente exibido no display LCD 16×2. Os botões usados no projeto são para incrementar e decrementar a tensão e estão conectados aos pinos 4 e 5 do Arduino UNO. Como o Arduino UNO tem resolução de 10 bits, o que significa que varia de 0 a 1023 e a tensão máxima do ADC é 5 volts, portanto um bit equivale a 5/1024 = 4,9 milivolts (aprox). Então, ao incrementar e decrementar, movemos o valor digital varia de 0 a 1023.

Agora estamos lendo o valor ADC no canal A0. Arduino IDE fornece função embutida analogRead(pino) para ler valores ADC, aqui pino é A0 pois nosso canal é A0 no Arduino UNO. Além disso, estamos usando pino 3 para PWM do Arduino UNO. Arduino IDE fornece função analogWrite(pino, Ciclo de Trabalho) para gerar a tensão de saída desejada com dado ciclo de trabalho no pino 3.

Ao pressionar os dois botões, estamos mudando o ciclo de trabalho do sinal PWM, que como resultado muda a tensão de saída. Um botão é para incrementar o ciclo de trabalho e o outro para diminuir. O valor PWM do Arduino Uno muda de 0 a 255, sendo 0 o mínimo para alcançar 0 volts e 255 o máximo para alcançar 5 volts. O pino 3 é alimentado a um transistor NPN que fornece tensão variável em seu emissor e atua como dispositivo de chaveamento.

A base do transistor terá um PWM de razão de ciclo variável e, portanto, podemos obter tensão de saída variável no terminal. Como a tensão não é linear, conectamos capacitores para filtrar o ruído na tensão de saída variável.

Explicação do Código

Incluindo Bibliotecas:

#include <LiquidCrystal.h>

Esta é a biblioteca embutida para usar display LCD. Fornece funções que podem ser usadas facilmente para exibir caracteres no display LCD.

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

liquid crystal lcd recebe o número dos pinos aos quais os pinos de dados e RS, RW e E do display LCD estão conectados. Como estamos definindo nossa tensão de referência para 2,5 volts, estamos definindo ciclo de trabalho para 50% colocando ref_volt como 125.

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

Pino 3 do Arduino UNO definido como saída PWM, pinos 4 e 5 definidos para receber entrada para incremento e decremento da tensão.

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

Função lcd.begin define o número de caracteres do display LCD. No início, exibimos "Tensão Variável" na tela.

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

Variável value lê o valor digital obtido do canal ADC A0 e converte este valor digital em valor de tensão. AnalogWrite fornece PWM no pino 3 do Arduino UNO.

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

Verifica se o botão de incremento está pressionado. Se alguém pressiona o botão de incremento, aumenta o ref_volt.

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

Verifica se o botão de decremento está pressionado. Se alguém pressiona o botão de decremento, diminui o ref_volt.

Desta forma, você pode gerar a fonte de alimentação variável de 5 volts usando Arduino UNO sem se preocupar muito com baterias e tornar o circuito volumoso.

Tecnologia industrial

  1. IA Detecta Tráfico Humano e de Animais Silvestres em Cadeias de Suprimentos Globais
  2. Construa um Decodificador DTMF Usando Apenas um Arduino – Sem CIs Externos
  3. Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
  4. Servidor Web Arduino Uno WiFi: Controle LED via Navegador
  5. Python 3 para Arduino UNO: Controle de Comandos Fácil e Demo com LED
  6. Construa um Rádio FM Compacto com Arduino Nano e RDA5807M
  7. Robô Carro Controlado por Sensor G do Smartphone com Arduino e Bluetooth
  8. Dominando Corrente, Potência e Torque em Acionamentos de Velocidade Variável
  9. Fonte de Alimentação Dual ±12 VDC a partir de 230 VCA – Diagrama de Circuito e Guia
  10. Fontes de Alimentação Sem Transformador: Solução Comprovada para Reduzir Custo e Espaço