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