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

Fonte de alimentação variável usando Arduino UNO – Circuit and Code

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 alimentação é diferente para diferentes circuitos eletrônicos. Por exemplo, módulos Wi-Fi, relés, motores, etc, requerem tensões diferentes. No mercado, não temos fontes de alimentação diferentes para todos os eletrônicos, então geramos nossa própria fonte de alimentação específica a partir de vários métodos. A solução simples para isso é usar baterias.

As baterias geralmente são usadas para alimentar o Circuito Eletrônico e os Projetos, pois são facilmente disponíveis e podem ser conectadas facilmente. Mas eles se esgotaram rapidamente e então precisamos de novas baterias, também essas baterias não podem fornecer alta corrente para acionar um motor potente. Assim as baterias descarregam e também tornam o circuito volumoso. Além disso, as baterias aquecem quando a eletrônica é usada por mais tempo ou excessivamente e com o tempo a vida útil das baterias diminui. Para superar este problema, apresentamos 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 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 a variável fonte de alimentação, 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: AURDINO Nightly ou Atmel Studio 6.2

Diagrama do circuito da fonte de alimentação variável

Antes de entrar nestes projetos, deixe-nos saber algumas coisas sobre o projeto.


Arduino UNO

Arduino UNO é uma plataforma de código aberto que é usada para desenvolver projetos eletrônicos. Ele 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 lily pad etc. com especificações diferentes de acordo com seu uso. Neste projeto vamos usar o Arduino UNO para controlar eletrodomésticos automaticamente. Ele tem um microcontrolador ATmega328 IC nele que funciona com velocidade de clock de 16MHz. É um poderoso que pode trabalhar em protocolos de comunicação USART, I2C e SPI.

Esta placa geralmente é programada usando o software Arduino IDE usando um cabo micro USB. O ATmega328 vem com um carregador de inicialização integrado pré-programado, o que facilita o upload do código sem a ajuda do hardware externo. Tem vasta aplicação na confecção de projetos ou produtos eletrônicos. A linguagem C e C++ é usada para programar a placa que é muito fácil de aprender e usar. A IDE do Arduino facilita muito a programação. Ele separa o código em duas partes, ou seja, void setup() e void loop(). A função void setup() é executada apenas uma vez e usada principalmente para iniciar algum processo 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 saída de entrada 6 dos quais fornecem saída PWM e analógica usando pinMode(), digitalWrite(), funções 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 por um cabo USB que opera em 5 volts ou por um conector DC que opera entre 7 e 20 volts.

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

ADC no Arduino UNO

O Arduino UNO possui 6 canais ADC integrados que podem ser usados ​​para detectar ou ler sinais analógicos que variam de 0 volt a 5 volts. Quando fazemos a interface de sensores com microcontroladores como o Arduino UNO, o sensor gera valores de saída analógica e o Arduino UNO detecta valores digitais. Portanto, o ADC ajuda a converter os valores do sensor em valores analógicos e os alimenta no microcontrolador. Existem muitas aplicações de ADC como sensor 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 etapa. Isso é chamado de resolução, que indica o número de valores discretos que pode produzir na faixa de valores analógicos.

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

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

Ao fornecer 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

Pulse Width Modulation (PWM) é uma técnica usada para gerar os sinais analógicos usando alguma fonte digital variando a largura do pulso mantendo a frequência constante. As duas principais coisas importantes que definem o 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)

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

Frequência de um sinal:

A frequência de um sinal significa a rapidez com que um sinal completa seu ciclo significa em quanto tempo ele alterna do estado LIGADO para o DESLIGADO ou vice-versa. Ao fazer isso em um ciclo de trabalho específico, a saída se comporta como uma tensão analógica constante. A frequência do sinal PWM na maioria dos pinos é de aproximadamente 490 Hz. No Uno e placas semelhantes, os pinos 5 e 6 têm uma frequência de aproximadamente 980 Hz. Os pinos 3 e 11 do Leonardo também funcionam a 980 Hz

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

analogWrite (pin, Ciclo de trabalho)

Pin:Pega o pino do Arduino UNO usado para gerar a saída analógica.

Ciclo de trabalho:Leva valores de 0 (min) a 255 (max) como entrada para alterar o Ciclo de trabalho.

Tela LCD 16×2

Gerar caracteres personalizados no LCD não é muito difícil. Requer o conhecimento sobre a memória de acesso aleatório gerada personalizada (CG-RAM) do LCD e o controlador do chip LCD. Trata-se da interface de um Arduino UNO para um módulo LCD JHD162A 16×2. JHD162A é um módulo LCD 16×2 baseado no driver HD44780 da Hitachi. O JHD162A possui 16 pinos e pode ser operado em modo de 4 bits (usando apenas 4 linhas de dados) ou modo de 8 bits (usando todas as 8 linhas de dados). Neste projeto, vamos usar o modo de 4 bits, pois permite conectar os fios.

Descrição do pino do módulo LCD 16×2:

Fixar no LCD Descrição
VSS Pino de aterramento
VCC Fonte de alimentação +5V
VEE Pin para alterar o contraste do LCD
RS Registrar Seleção:Modo de Dados ou Modo de Comando
RW Modo de leitura ou gravação
E Ativar LCD
DB0-DB7 Dados e comandos são alimentados usando esses pinos
LED+ Anodo do LED de luz de fundo
LED- Catodo do LED de luz de fundo

Este LCD não possui luz própria, portanto, há um LED atrás da tela que atua como luz de fundo da tela. A interface deste LCD com o Arduino UNO é muito fácil, pois o Arduino IDE fornece uma biblioteca LiquidCrystal que possui muitas funções embutidas para facilitar a inicialização e a impressão de qualquer coisa na tela. 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()

Trabalho de fonte de alimentação variável usando Arduino

Conecte os fios conforme indicado no diagrama de circuitos corretamente. Neste projeto vamos pegar a tensão obtida no terminal de saída e dar como entrada a do canal ADC. Além disso, o canal ADC fornece o valor digital que mais tarde é exibido no display LCD 16×2. Os botões utilizados no projeto são para incrementar e decrementar a tensão e estão ligados ao pino 4 e pino 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 é de 5 volts, portanto, um bit é igual a 5/1024 =4,9 mili volts (aproximadamente). Então para qual incremento e decremento movemos o valor digital varia de 0 a 1023.

Agora estamos lendo o valor ADC no canal A0. O Arduino IDE fornece a função analogRead(pin) embutida para ler os valores do ADC, aqui o pino é A0, pois o canal é A0 no Arduino UNO. Além disso, estamos usando o pino 3 para Pwm do Arduino UNO. O Arduino IDE fornece a função analogWrite(pin,Duty Cycle) para gerar a tensão de saída desejada com determinado ciclo de trabalho no pino 3.

Agora, ao pressionar os dois botões, estamos alterando o ciclo de trabalho do sinal pwm que, como resultado, altera a tensão de saída. Um botão é para aumentar o ciclo de trabalho e outro é para diminuir o ciclo de trabalho. O valor PWM do Arduino Uno muda de 0 a 255, sendo 0 no mínimo para atingir 0 volts e 255 no máximo para atingir 5 volts. O pino 3 é ainda alimentado a um transistor NPN que fornece uma tensão variável em seu emissor e atua como um dispositivo de comutação.

A base do transistor terá uma relação de trabalho variável pwm e, portanto, podemos obter uma 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 um display LCD. Ele fornece funções que podem ser usadas facilmente para exibir caracteres no visor LCD.

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

LCD de cristal líquido recebe o número do pino ao qual os pinos de dados e os pinos 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 o ciclo de trabalho para 50% colocando ref_volt para 125.

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

O pino 3 do Arduino UNO é definido como saída PWM, o pino 4 e o pino 5 são definidos para receber a entrada para incremento e decremento da tensão.

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

lcd.begin define o número de caracteres do display LCD. No início estamos exibindo “Tensão variável” na tela.

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

A variável Value lê o valor digital obtido do canal A0 ADC e converte esse 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);
    }
  }

Isso verifica se o botão de incremento está pressionado ou não. Se alguém pressionar o botão de incremento, ele aumentará o ref_volt.

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

Isso verifica se o botão de decremento está pressionado ou não. Se alguém pressionar o botão de decremento, ele diminuirá 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 tornando o circuito volumoso.

Tecnologia industrial

  1. Usando IA para descobrir vida selvagem e tráfico humano na cadeia de suprimentos
  2. Decodificador DTMF usando apenas Arduino
  3. Faça você mesmo voltímetro usando Arduino e Smartphone
  4. WebServerBlink usando Arduino Uno WiFi
  5. Comunicação Python3 e Arduino
  6. Rádio FM usando Arduino e RDA8057M
  7. Robotcar controlado por smartphone G-Sensor
  8. Corrente, potência e torque em variadores de velocidade
  9. Diagrama de Circuito de Fonte de Alimentação Dupla - 230VAC a ±12VDC
  10. Fonte de alimentação sem transformador:maneira aprovada de superar custo e espaço