Faça este conversor Buck usando o Arduino

Experimente Nosso Instrumento Para Eliminar Problemas





Neste projeto, vamos reduzir 12v D.C para qualquer valor D.C entre 2 e 11volts. O circuito que reduz a tensão DC é conhecido como conversor Buck. A tensão de saída ou tensão de redução necessária é controlada por meio de um potenciômetro conectado ao Arduino.

Por Ankit Negi



INTRODUÇÃO A CONVERSORES:

Existem basicamente dois tipos de conversores:

1. Conversor Buck



2. Conversor de reforço

Ambos os conversores alteram a tensão de entrada de acordo com o requisito. Eles são semelhantes a um transformador com uma diferença principal. Enquanto o transformador aumenta / diminui uma tensão A.C, os conversores D.C aumentam / diminuem a tensão DC. Os principais componentes de ambos os conversores são:

A. MOSFET

B. INDUTOR

C. CAPACITOR

BUCK CONVERTER: como o próprio nome sugere, buck significa diminuir a tensão de entrada. Conversor Buck nos dá a tensão menor do que a tensão DC de entrada com alta capacidade de corrente. É uma conversão direta.

BOOST CONVERTER: como o próprio nome sugere, boost significa aumentar a tensão de entrada.

O conversor Boost nos dá a tensão DC mais do que a tensão DC na entrada. Também é uma conversão direta.

** neste projeto, vamos fazer um circuito conversor de Buck para reduzir 12 v D.C usando arduino como uma fonte de PWM.

ALTERANDO A FREQUÊNCIA PWM NOS PINOS ARDUINO:

Os pinos PWM do arduino UNO são 3, 5, 6, 9, 10 e 11.

Para realizar o PWM, o comando usado é:

analogWrite (PWM PIN NO, PWM VALUE)

e a frequência PWM para esses pinos são:

Para Arduino Pins 9, 10, 11 e 3 ---- 500 Hz

Para Arduino Pins 5 e 6 ---- 1kHz

Essas frequências são adequadas para uso geral, como atenuação de um led. Mas para circuito como conversor buck ou boost , é necessária uma fonte PWM de alta frequência (na faixa de dezenas de KHZ) porque o MOSFET precisa de alta frequência para a comutação perfeita e também a entrada de alta frequência diminui o valor ou o tamanho dos componentes do circuito como indutor e capacitor. Assim, para este projeto, precisamos de uma fonte PWM de alta frequência.

O bom é que podemos alterar a frequência PWM dos pinos PWM do Arduino usando um código simples:

PARA ARDUINO UNO:

Frequência PWM disponível para D3 e D11:
// TCCR2B = TCCR2B & B11111000 | B00000001 // para frequência PWM de 31372,55 Hz
// TCCR2B = TCCR2B & B11111000 | B00000010 // para frequência PWM de 3921,16 Hz
// TCCR2B = TCCR2B & B11111000 | B00000011 // para frequência PWM de 980,39 Hz
TCCR2B = TCCR2B & B11111000 | B00000100 // para frequência PWM de 490,20 Hz (O DEFAULT)
// TCCR2B = TCCR2B & B11111000 | B00000101 // para frequência PWM de 245,10 Hz
// TCCR2B = TCCR2B & B11111000 | B00000110 // para frequência PWM de 122,55 Hz
// TCCR2B = TCCR2B & B11111000 | B00000111 // para frequência PWM de 30,64 Hz
Frequência PWM disponível para D5 e D6:
// TCCR0B = TCCR0B & B11111000 | B00000001 // para frequência PWM de 62500,00 Hz
// TCCR0B = TCCR0B & B11111000 | B00000010 // para frequência PWM de 7.812,50 Hz
TCCR0B = TCCR0B & B11111000 | B00000011 // para frequência PWM de 976,56 Hz (O DEFAULT)
// TCCR0B = TCCR0B & B11111000 | B00000100 // para frequência PWM de 244,14 Hz
// TCCR0B = TCCR0B & B11111000 | B00000101 // para frequência PWM de 61,04 Hz
Frequência PWM disponível para D9 e D10:
// TCCR1B = TCCR1B & B11111000 | B00000001 // definir divisor do temporizador 1 para 1 para frequência PWM de 31.372,55 Hz
// TCCR1B = TCCR1B & B11111000 | B00000010 // para frequência PWM de 3921,16 Hz
TCCR1B = TCCR1B & B11111000 | B00000011 // para frequência PWM de 490,20 Hz (O DEFAULT)
// TCCR1B = TCCR1B & B11111000 | B00000100 // para frequência PWM de 122,55 Hz
// TCCR1B = TCCR1B & B11111000 | B00000101 // para frequência PWM de 30,64 Hz
** vamos usar o pino no. 6 para PWM, daí o código:
// TCCR0B = TCCR0B & B11111000 | B00000001 // para frequência PWM de 62,5 KHz

LISTA DE COMPONENTES:

1. ARDUINO UNO

2. INDUTOR (100Uh)

3. DIODO SCHOTTKY

4. CAPACITOR (100 uf)

5. IRF540N

6. POTENCIÔMETRO

7. 10k, 100 ohm RESISTOR

8. CARGA (motor neste caso)

BATERIA 9,12 V

DIAGRAMA DE CIRCUITO

Conversor Buck usando Arduino

Conversor Buck usando layout de fiação do Arduino

Faça as conexões conforme mostrado no diagrama do circuito.

1. Conecte os terminais finais do potenciômetro ao pino 5v e ao pino terra do arduino UNO, respectivamente, enquanto seu terminal limpador ao pino analógico A1 do pino.

2. Conecte o pino 6 do PWM do Arduino à base do mosfet.

3. Terminal positivo da bateria para drenar o mosfet e negativo para o terminal p do diodo Schottky.

4. Do terminal p do diodo Schottky, conecte a carga (motor) em série com o indutor ao terminal fonte do mosfet.

5. Agora conecte o terminal n do diodo schottky ao terminal de origem do mosfet.

6. Conecte o capacitor 47uf no motor.

7. Por último, conecte o pino terra do Arduino ao terminal de origem do mosfet.

Objetivo do mosfet:

Mosfet é usado para mudar a tensão de entrada em alta frequência e fornecer alta corrente com menos dissipação de calor.

Objetivo do arduino:

Para alta velocidade de comutação de mosfet (na frequência de 65 KHz aprox.)

Objetivo do indutor:

Se este circuito for executado sem conectar um indutor, então há grandes chances de danificar o mosfet devido a picos de alta tensão no terminal do mosfet.

Para evitar que o mosfet tenha esses picos de alta tensão, ele é conectado como mostrado na figura, pois quando o mosfet está ligado, ele armazena energia e quando o mosfet está desligado ele distribui essa energia armazenada para o motor.

Objetivo do diodo Schottky:

Suponha que o diodo Schottky não esteja conectado no circuito. Neste caso, quando o mosfet é desligado, o indutor libera sua energia para a carga ou o motor, o que tem um efeito muito leve na carga porque há um loop incompleto para a corrente fluir. Assim, o diodo Schottky completa o loop para que a corrente flua. Agora, um diodo normal não está conectado aqui porque o diodo Schottky tem baixa queda de tensão direta. Objetivo do led:
para indicar redução da tensão na carga.

Objetivo do potenciômetro:

Potenciômetro fornece valor analógico para o arduino (com base na posição do terminal do limpador) de acordo com o qual a tensão pwm é recebida pelo terminal do portão do mosfet do pino 6 do PWM do Arduino. Em última análise, esse valor controla a tensão de saída na carga.

Por que o resistor está conectado entre a porta e a fonte?

Mesmo uma pequena quantidade de ruído pode ligar o mosfet. Daí um puxar para baixo o resistor está conectado entre a porta e o solo, ou seja, a fonte.

Código do Programa

Burn this code to arduino:
int m // initialize variable m
int n // initialize variable n
void setup()
B00000001 // for PWM frequency of 62.5 KHz on pin 6( explained under code section)
Serial.begin(9600) // begin serial communication

void loop()
{
m= analogRead(A1) // read voltage value from pin A1 at which pot. wiper terminal is connected
n= map(m,0,1023,0,255) // map this ip value betwenn 0 and 255
analogWrite(6,n) // write mapped value on pin 6
Serial.print(' PWM Value ')
Serial.println(n)
}

EXPLICAÇÃO DO CÓDIGO

1. A variável x é o valor de tensão recebido do pino A1 no qual o terminal do limpador do potenciômetro está conectado.

2. A variável y é atribuída ao valor mapeado que está entre 0 e 255.

3. ** como já explicado na seção acima para circuitos como o conversor buck ou boost, é necessária uma fonte PWM de alta frequência (na faixa de dezenas de KHZ) porque o MOSFET precisa de alta frequência para comutação perfeita e a entrada de alta frequência diminui o valor ou tamanho de componentes de circuito como indutor e capacitor.

Portanto, vamos usar este código simples para gerar uma tensão pwm de aprox. Frequência de 65 kHz: TCCR0B = TCCR0B & B11111000 | B00000001 // para frequência PWM de 62,5 KHz no pino 6

Como funciona:

Como o potenciômetro fornece um valor analógico para o arduino (com base na posição do terminal do limpador), ele determina o valor de tensão pwm recebido pelo terminal de porta do mosfet do pino 6 do PWM do Arduino.

E esse valor, em última análise, controla a tensão de saída na carga.

Quando o mosfet está ligado, o indutor armazena energia e, quando desliga, essa energia armazenada é liberada para a carga, ou seja, o motor, neste caso. E como esse processo ocorre em frequência muito alta, obtemos uma redução da tensão DC no motor, que depende da posição do terminal do limpador, já que o mosfet é um dispositivo dependente de tensão.

Imagens de protótipo:

Vídeo clipe do circuito conversor de Buck explicado acima usando Arduino




Anterior: Circuito de medidor de fluxo de água digital simples usando Arduino Próximo: 4 Circuitos Sensor de Proximidade Simples - Usando IC LM358, IC LM567, IC 555