sábado, 2 de agosto de 2014

Controle virtual de Bounce

Hoje estaremos abordando o tratamento de um ruído gerado por sinal de controle de origem mecânica, em outras palavras, interferência gerado ao pressionar um botão, por exemplo, para alterar o nível lógico em um pino de um microcontrolador. Existe o tratamento desta resposta indesejada de um acionamento mecânico via hardware, normalmente envolvendo capacitores configurados como "passa-baixa", mas caso tenha algum processamento sobrando em seu circuito de controle essa é uma prática que pode lhe poupar algum dinheiro e ajudar a solucionar problemas de no circuito físico virtualmente. Nosso circuito será um pouco complexo hoje:


Ou não, suponhamos que a saída (Out) esteja indo para um pino do seu microcontrolador que irá tratar este sinal, enquanto a chave (S1) esta aberta nosso resistor (R1) garante VCC em "Out" e ao pressionar garantimos terra no mesmo, até aqui a história simples, mas dependendo da aplicação existe um grande problema na transição entre os níveis lógicos, vamos analisar o gráfico a seguir:

Digamos que essa tenha sido a resposta no momento que a chave fora fechada, notem que entre o nível alto e a condição 0V estabilizada existe uma sequencia de pulsos indesejados. Caso o circuito que esta a planejar sirva para controle de volume, a condição acima é extremamente prejudicial ao controle, já que, dependendo da frequência que esta seu ciclo de maquina, este pulsos serão tratados e ao invés de um único pulso de ajuste teremos entre quatro e cinco pulsos de controle, vejamos a seguir:

O sinal que queremos realmente processar esta em azul agora, notem que a cada vez que o sinal bate em 0V e retorna a um nível alto temos um pulso e não é garantido de nenhuma maneira que serão apenas cinco variações a cada vez que S1 for pressionado e essa imprevisibilidade não é útil para a nossa aplicação hipotética. Veremos então o que podemos fazer durante o processamento desta informação para não haver erros de leitura, a seguir o código:

int conta=0;
int verifica=0;
short resposta=0;
short aciona=0;

void main{

      while(TRUE){

      if((input(PIN_"xx"))==FALSE){
            aciona=TRUE;
      }
       if(aciona){  
             for(conta=0, conta<100, conta++){
                     if((input(PIN_"xx"))==FALSE){
                           verifica=verifica+1;
                     delay_ms(1);
                     }
              if(verifica>75){
                      resposta=TRUE;
              }
              else{
                      resposta=FALSE;
              }
              verifica=0;
              aciona=FALSE;
              }
      }
      
      if(resposta){
                      output_high(PIN_"yy");
      }
      else{
                      output_low(PIN_"yy");
      }
}

O código acima funciona da seguinte maneira, a variável "int conta" serve apenas para podermos efetuar a função "for", "int verifica" armazenará os resultados dos teste da condição do pino analisado, "int resposta" fala por si só e por fim a variável "int aciona" que indicará quando o estado do pino deve ser verificado. O trecho de código esta em um loop, mas não executa a verificação da entrada a cada ciclo, apenas quando o primeiro pulso é detectado que a variável "int aciona" ficará em alta, o programa entrará na verificação, devolvera a resposta e a variável "int aciona" voltará a ficar em baixa até ,pelo menos, um pulso ser detectado na entrada, este processo permite que o microcontrolador se concentre em se a entrada esta realmente com um sinal valido ou não apenas quando algum pulso é detectado. Após a "int aciona" ser colocada em alta entramos no trecho de verificação, onde a função "for" verifica cem vezes se a entrada esta em alta ou não com um tempo de um milissegundo entre uma verificação e outra, a resposta de cada verificação é incrementada na variável "int verifica", ou seja, a verificação da condição lógica da entrada é feita aproximadamente em um décimo de segundo. No momento que a função "for" termina de ser executada a "int verifica" é analisada, se seu valor for maior que 75 isto significa que a leitura se trata realmente de um comando e não de um ruído (Bounce) , caso contrario não se trata de um comando, e aqui esta nosso trunfo, o 75 indica que durante a verificação em 75% do tempo a entrada ficou em baixa (lembre que nossa lógica esta negada, quando vai a zero que temos sinal), portanto ao invés de agirmos a cada pulso analisamos a média de tempo em cada estado lógico eliminando o problema de ruído mecânico, continuemos. Com "int verifica" analisado, setamos a saída "int resposta" como alta ou não, este dado acionará um pino onde podemos colocar um LED e assistir a lógica funcionando, claro que para trabalhar com esse LED na saída o interessante é aumentar o tempo de amostra de analise setando o "delay" para 10 ou 15 milissegundos. Espero que tenham gostado, um abraço e até a próxima.   

quarta-feira, 30 de julho de 2014

Sensor de Temperatura LM35

Hoje iremos falar deste sensor de grande precisão e baixo custo. A maior vantagem deste sensor é ter uma saída de tensão linear com a temperatura, com uma resolução de 10mV/ºC.
Este sensor tem saída com baixa impedância, resposta linear conforme variação de temperatura e calibração inerente precisa, fazendo com que a interface de leitura seja  simples, diminuindo o custo de todo o sistema em função disto.
Este sensor poderá ser alimentado de maneira convencional ou simétrica, dependendo do que se deseja como sinal de saída, mas independentemente disso, a saída continuará sendo de 10mV/ºC. Ele drena apenas 60μA para ambas as formas de alimentação, sendo assim sua dissipação térmica gera um erro aproximado de 0.01ºC ao ar livre.
O sensor LM35 é encontrado em diversos tipos de encapsulamento, sendo o mais comum o TO-92, que mais se parece com um transistor. Oferece um excelente custo/beneficio por ser o mais barato do mercado a usar a tecnologia nele embarcado, garantindo a mesma precisão dos demais desta categoria.
Você encontra este sensor a partir de R$5,00 nas lojas de componentes eletrônicos ou pode comprar este da China, em uma placa com conector, para facilitar na sua aplicação:


Existe uma vantagem muito grande em usar este componente se comparado a outros utilizados para leitura de temperatura, como por exemplo, termistores NTC e PTC  que apresentam curvas de resposta exponenciais que exigirão mais capacidade de processamento matemático dos componentes responsáveis pelo processamento desse dado (PIC, Arduino, Etc...) , a seguir falaremos um pouco quanto ao conceito de conversor A/D de um PIC e mostraremos um firmware para teste.

Quanto ao conversor A/D:

Não podemos falar de um LM35 sem, pelo menos, comentar sobre o principio de funcionamento das portas A/D de microcontroladores. Após configurar o firmware o sinal de entrada de um pino analógico é jogado em um comparador interno a estrutura do microcontrolador (Poderão encontrar mais a respeito de comparadores, mais explicitamente sobre amplificadores operacionais, vulgo AOP, neste blog que vos fala) quando for solicitado pelas funções que estão "rodando" no seu programa o hardware do componente em questão irá "cutucar" um contador (Geralmente de 10 bit's) que esta ligado a um conversor D/A e a saída deste conversor estará ligada a uma das entradas do AOP, sendo assim temos em ordem; O sinal analógico entrando no pino e um das entradas do AOP e o segundo sinal analógico gerado por um conversor D/A entrando na outra entrada do AOP. Conforme o contador vai aumentando seu valor, o nível de tensão na saída do D/A  vai aumentando proporcionalmente (Nota o que é chamado de resolução ou mV/bit) até que se equivale ao valor de tensão da entrada do pino analógico do microcontrolador, neste momento o AOP "joga" sua saída para nível alto, sinalizando que o valor binário gerado pelo contador é correspondente ao valor de tensão injetado no pino analógico. A sensibilidade desta leitura depende do valor que o contador consegue contar, se for um contador de 10 bits por exemplo, o mesmo chega a apresentar 1024 possibilidades, ou seja a sua resolução será de Vcc/1024, ou seja, com uma alimentação de 5V teremos cerca de 48mV/bit. Esquema a seguir:





Continuando, vamos ao firmware:


int16 temperatura=0;

void main ( )
{  
   setup_adc_ports(AN0);            //Habilita pino como analógico
   setup_adc(ADC_CLOCK_INTERNAL);   //Habilita clock interno para contador
   set_adc_channel(0);              //Solicita a leitura do pino AN0
   delay_us(20);                    //Espera um tempo ai...

   while (true)
   {  
      temperatura = read_adc();     //Solicita o valor do pino AN0
      if(temeperatura>0xXX){        //Se o valor corresponder...
          
         output_high(PIN_"X");      //...coloca em alta a pino "X"
      }
   }
} 

Considerações importantes:

*O valor da variável que gravará o retorno da porta do valor do pino analógico deve corresponder ao tamanho do contador ligado ao conversor D/A, para isso é necessário consultar o 'datasheet' do microcontrolador que esta sendo usado.

*Vale lembrar que o LM35 não irá inicializar sua saída com zero (Volts) ou qualquer valor estipulado, o ideal  é efetuar uma calibração, colocar seu circuito em um ambiente com temperatura regulada (Preferencialmente a 25°C) e verificar o valor de resposta do LM35 e a partir disto (Dependendo da resolução e configurações do conversor A/D das portas analógicas do microcontrolador) calcular valores onde seu circuito execute alguma função. Caso queira usar o mesmo como termômetro,  tabelar/estipular de quanto em quanto a variável (int16 temperatura) deve  incrementar/decrementar para que corresponda ao calor encontrado no ambiente.

Claro que não conseguirão medir a temperatura de nitrogênio liquido e muito menos do núcleo do sol com este guerreiro, mas com certeza existe "n" aplicações que um LM35 pode ser a melhor das soluções, pelo seu preço, por exigir menos dos microcontroladores (Pode ser utilizado com um PIC com características básicas, diminuindo o custo) e por aguentar o tranco garantindo confiabilidade. Espero que tenham gostado do post, a baixo alguns links que podem ajudar, um grande abraço e até a próxima.


Clique aqui para comprar no Aliexpress
Clique aqui para acessar o Datasheet

terça-feira, 29 de julho de 2014

Topologias para Amplificador Operacional (2)

Seguindo nosso estudo sobre amplificadores operacionais, falaremos de mais topologias encontradas.

- Buffer (ou seguidor de tensão)
O seguidor de tensão funciona como um amplificador não inversor de ganho unitário. Ele é comumente utilizado como isolador de estágios (buffer), reforçador de correntes e como casador de impedâncias.


- Subtrator
Este circuito permite obter a diferença de tensão entre dois sinais, multiplicada por um ganho.

A equação para este circuito fica:
Atenção para o fato de que R3=R1 e R2=R4. Essa relação é obrigatória nesta topologia para que a equação acima seja válida.

- Diferenciador
O circuito diferenciador realiza a operação matemática da diferenciação. A tensão de saída é proporcional a taxa de variação da tensão de entrada.


A equação para a saída deste circuito é:
No nosso exemplo, utilizamos R=10k, C=10uF. O sinal de entrada é um seno com frequencia de 1Hz (2π rad). A saída fica sendo um cosseno (que é a derivada do seno) defasado de 180º (por causa da inversão de fase da entrada inversora). A amplitude desta onda é Vp=10000*0,00001*2π*5=π.
Abaixo você pode ver o sinal de entrada (em amarelo) e a saída do circuito (em azul).


- Integrador

Este circuito realiza a operação de integração do sinal de entrada, operação inversa a derivação. O integrador difere do derivador apenas pela posição do circuito RC.


A equação para este circuito:




Abaixo, uma onda quadrada de sinal de entrada (amarelo) e a saída do integrador em azul. Perceba uma pequena distorção nos picos da onda de saída. Isto é facilmente explicado devido a descontinuidade que há no sinal de entrada, pois há uma transição "instantânea" de -1V para 1V.


Todos os circuitos analisados neste post podem ser baixados abaixo, com as simulações realizadas no Proteus 8.1:


Aplicando Excel na eletrônica analógica

 Hoje estaremos falando sobre a importância do Excel para analise rápida de possibilidades em circuitos analógicos, esta ferramenta além de cria planilhas também pode ser uma ferramenta muito útil na eletrônica. Analisemos o circuito a seguir:

Temos em mãos um circuito simples para controle de corrente, no primeiro estágio esta nossa referencia gerada por um diodo Zener de valor "X" polarizado por R1, este valor "X" será o valor de tensão sobre R2 (Mais precisamente "X"-0.7, por causa do diodo interno a T1) e assim controlamos a corrente fornecia a CARGA, já que, o Zener manterá sua tensão de trabalho fixa e R2 também possui um valor sem grandes variações (Térmicas). Porem existe condições criticas que precisam ser analisadas, como por exemplo a dissipação máxima sobre o transistor T1 , os valores aceitáveis para o Zener, o quanto a tensão sobre a carga pode variar (Por exemplo, se colocarmos uma série de diodos difusos vermelhos ou uma série de azuis como carga.), até onde pode ser dimensionado o resistor R1 para garantir a corrente de Z1 e assim por diante. Neste ponto entra nosso amigo tabelador, equacionando o circuito obtemos seu comportamento e podemos jogar esse comportamento em uma planilha onde temos uma faixa de trabalho pré assinalada e termos variáveis que nos permitirá simular certas condições, como veremos a seguir:


No exemplo acima temos nossos termos variáveis críticos no canto  superior esquerdo da tabela marcado a seguir.


No canto a esquerda temos nossa faixa de trabalho para com a carga, 0V à 6V, valores que não serão modificados durante testes, basta mudar estes valores antes de simular, caso não atenda as suas necessidades.


Restante das condições, fora ultimas duas colunas mostra o comportamento dom componentes passivos do circuito.

Nas ultimas duas colunas temos pontos críticos quanto ao transistor, essa informação gera o gráfico que será analisado para verificar qual é a faixa ideal de trabalho do mesmo quanto a tensão, vale lembrar que todos os valores dos componentes dessa tabela podem ser alterados para verificar outras condições.


Para exemplificar, digamos que os demais pontos dos circuito se mantenham com os valores originais da tabela e alteremos apenas o "Vcc" para determinarmos quais os valores mínimo e máximo para que um transistor que dissipe até 600mW possa trabalhar.

Vcc = 10V:

 Vcc = 30V:

Notem que com Vcc a 10V a curva entra em outro quadrante gerando valores negativos, isto indica que com aqueles valores de carga estipulados a esquerda da tabela o circuito não consegue manter seu comportamento e com Vcc a 30V a curva ultrapassa os 750mW de dissipação, ou seja, não conseguimos mais conter a fumaça. Sendo assim podemos estipular que uma zona de trabalho quanto a alimentação esta entre 12 e 24 Volts. Espero que tenham gostado, a seguir encontrarão o link para download da tabela exemplificada nas imagens acima, para poderem fazer mais testes e tirarem suas próprias conclusões quanto a operação do circuito apresentado no inicio desta postagem. Um grande abraço e até a próxima.



segunda-feira, 28 de julho de 2014

Topologias para Amplificador Operacional (1)

O amplificador operacional ou simplesmente Amp-OP, foi introduzido na década de 40, inicialmente com objetivo de realizar operações matemáticas, necessárias à computação analógica. Em aproximadamente cinco décadas, o Amp-OP sofreu inúmeras melhorias, ganhando assim, posição de destaque entre os componentes eletrônicos.
Este grande sucesso deve-se à grande variedade de circuitos, executando as mais variadas funções, com um único circuito integrado e poucos componentes externos. Hoje, o mercado disponibiliza milhares de amplificadores operacionais de baixo custo, altamente confiáveis e o mais importante, praticamente pronto para o uso.
Para o equacionamento, vamos tratar o operacional como o ideal, o que é uma aproximação razoável para a maioria das aplicações. Na tabela abaixo, você poderá ver um comparativo entre os parâmetros ideais e compará-los com os valores do ampop mais comum utilizado, o 741:


O amplificador operacional, assim como qualquer amplificador, é representado por um triângulo que aponta em direção ao fluxo de sinal, porem, é caracterizado pelos sinais de (+) e (-) presentes na simbologia. Dependendo do circuito o símbolo pode ser simplificado omitindo alguns terminais. Os sinais (+) e (-) presentes em ambos os símbolos representam as entradas, inversora e não inversora do amplificador operacional e não devem ser omitidas.


Chega de enrolação, vamos para as topologias mais comuns utilizadas:

- Não Inversor:
Na configuração não inversora, a fase do sinal de saída é a mesma do sinal de entrada. O ganho é determinado pela resistência de realimentação negativa (feedback). O circuito básico de um amplificador neste tipo de aplicação é mostrado abaixo:
A formula do ganho para este circuito é:

- Inversor
Nesta configuração, há a inversão da polaridade do sinal. A equação de saída também é um pouco diferente da equação de entrada.
E a equação:
Atenção para qual resistor da imagem a equação se refere, para não haver erro no ganho do circuito.
Abaixo, pode-se ver uma simulação com os circuitos inversor e não-inversor. Como todos os resistores utilizador foram iguais, temos um ganho de 1 para o inversor e um ganho de 2 para o nao-inversor, conforme as equações.


O sinal em amarelo é a entrada do amplificador. Em azul, a saída do não-inversor e em rosa a saída do inversor.

Clique abaixo para baixar a simulação do inversor e do não inversor no Proteus 8.1

- Amplificador Somador Não-Inversor
O circuito abaixo mostra um amplificador não inversor. Nesta topologia, o sinal de saída é a soma dos sinais de entrada ponderados pelos seus ganhos individuais.

A equação então fica:

- Amplificador Somador Inversor
Mais comumente utilizado que o somador não inversor, possui um equacionamento mais simples. O ganho de cada entrada também é ponderado como o não-inversor.

E a equação fica sendo:
Na simulação, temos como entrada os sinais amarelo (senoide, 2Vp, 1000Hz) e o sinal azul (senoide, 4Vp, 500Hz). Em rosa podemos ver a saída do somador não inversor e em verde a saída do inversor. Por estarmos trabalhando somente com senoides, a saída acaba sendo uma senoide também. Vale lembrar que estas equações são validas independentes da entrada (como por exemplo, um sinal DC)


Link para download dos somadores simulados no Proteus 8.1


Como o assunto Amplificador Operacional é longo, esta postagem será divida em mais de uma parte.

sábado, 26 de julho de 2014

Gerador de CRC para comunicações.

Hoje estaremos falando do gerador CRC (Cyclic Redundancy Check) mais comum usado em redes de comunicação serial ou Ethernet , para quem não conhece, um CRC é um trecho de código enviado junto a um frame (pacote de dados para comunicação) para validar a informação que esta chegando ao receptor, vale lembrar que nenhum meio de transmissão é livre de ruído (sendo este previsível, como no caso de atenuação de sinal, ou imprevisível, caso de interferências eletromagnéticas) portanto esta técnica mesmo sendo uma das mais confiáveis não eliminará completamente a chance de um dado corrompido ser interpretado como valido. O processo não é muito complicado, mas chamo a atenção para a frequência de banda da comunicação pois tanto a geração quanto teste de integridade usufruindo desta ferramenta demanda processo matemático, portanto tempo de processamento e quando esta se trabalhando com altas taxas de velocidade os terminais que enviam e recebem estes pacotes  precisam ser um pouco mais porrada quando o assunto é microcontroladores.
A sequencia se resume em escolher um polinômio gerador ou "chave" como também é chamado, fazer a operação XOR (Para quem não se lembra, termos de ordem distinta geram nível alto e de mesma ordem nível baixo, exemplos : 0+0=0, 0+1=1, 1+0=1 e 1+1=0)entre o dado+(sequencia de zeros equivalente a extensão da "chave"-1) a ser verificado a integridade e a "chave", o "resto" desta operação será nosso  CRC e deve possuir o mesmo numero de termos da "chave" e ser anexado ao frame que será enviado, o receptor deste frame deve conhecer a "chave" que gerou o CRC e usa-la para fazer novamente a operação XOR entre o dado+CRC e a "chave", o restante desta soma deve ser zero ("0") comprovando assim que o dado recebido pelo sistema é o mesmo enviado pela origem. Vamos para a parte pratica, digamos que o dado a ser transmitido é a sequencia binária  1010001101 e a chave seja 110101, automaticamente nosso dado se torna 101000110100000 , estes cinco ("5") zeros finais equivalem ao numero de termos do CRC e em seguida efetuamos a operação XOR.

Para enviar:

101000110100000(Dado)
110101                  (Chave)
_______ (Primeira XOR)
0111011  (O primeiro zero da sequencia é eliminado e próximo termo na sequencia desce.)
  110101
  _______ (Segunda XOR)
  00111010 (Como há dois zeros no inicio da sequencia os cortamos e descemos dois termos)
      110101
      _______ (Terceira XOR)
      00111110 (Mesmo caso da soma anterior)
          110101
          _______
          00101100 (Mais dois termos descem)
              110101
              _______
              0110010 (No trecho final não podemos descer mais de um termo)
                110101
                ________
                0001110 (Desce ultimo termo)
                  110101
                  _______
                  111011
                  110101 (Quando necessário executamos a operação mais uma vez)
                  _______
                  001110 >> 01110 (Cortando o ultimo zero temos nosso CRC)

Uma vez que extraímos o CRC pela soma XOR o concatenamos com o dado desta maneira:

Informação contida no frame: Dado+CRC = 101000110101110

Quando o destinatário da mensagem recebe este dado , o mesmo faz o mesmo processo considerando o CRC como parte do trecho de código e o resultado deve ser zero para confirmar a integridade do dado, vejamos a seguir.

Para receber:

101000110101110 (Dado+CRC)
110101                   (Chave)
_______ (Sequencia de XOR)
0111011 (Pule uma casa kkk)
  110101
  _______
  00111010 (Pule duas casas)
      110101
      _______
      00111110 (Pule duas casas)
          110101
          _______
          00101111 (Pule duas casas)
              110101
              _______
              0110101 (Falta pouco, alias, pule uma casa)
                110101
                _______
                000000 >>> (No momento que todos os termos zerarem acaba a soma!)

Eureca, funcionou, com o restante zero confirmamos a integridade do nosso dado, desta maneira podemos evitar interpretação errôneas de dados em nossa linha de comunicação, ufaa!! Com eu disse no inicio simples, porem extensa. Espero que tenham gostado, até a próxima, um grande abraço.
                                    

          

quarta-feira, 23 de julho de 2014

Conversor Buck

Hoje estaremos falando sobre fontes chaveadas, os circuitos  integrados a seguir com o auxilio de alguns componentes passivos são um ótimo recurso para aplicações não instrumentais e de baixo consumo (Entre 1 e 3 amperes). Para quem já trabalhou com estes conversores Buck/Boost ou fontes chaveadas sabe que não estamos falando de um animal dócil, pelo fato de haver uma realimentação que regula a saída e a necessidade de uma modulação proporcional ao consumo do sistema estes equipamentos são suscetíveis a ruídos e instabilidades quando construídas em bancada, por isso viemos apresentar uma solução mais pratica nestes casos.

Os LM2575T/LM2576T, produzidos por diversos fabricantes e com a opção de trabalhar em uma faixa predeterminada de tensão ou ajustável. Um componente compacto (Encapsulamento TO-220) , barato (Entre R$4,00 a R$9,00 no mercado nacional), com boa eficiência para a categoria (Até 85%) e baixa emissão de calor(Apenas em pleno funcionamento é necessário dissipação).

Seu funcionamento é muito simples, há os pinos de alimentação de entrada (4V à 40V) e saída (1.23V a 35V), pino ON/OFF para controle de acionamento, pino para plano de terra e outro para feedback (Este recebe uma tensão de referencia gerada através de um divisor na saída que irá para um comparador, conforme a tensão de saída sofre pequenas alterações o pulso PWM que executa o chaveamento do circuito é alterado para atender essa demanda/alteração).

Vale lembrar que para o plano de terra os polos negativos dos capacitores de entrada, saída e o anodo do diodo Schottky devem estar o mais próximo possível do pino 3(GND) do chaveador LM2575T/LM2576T para evitar variações na tenção de saída e geração de ruido. Vamos abordar agora os componentes passivos:



Capacitor de entrada: Capacitor eletrolítico comum que atenda a faixa de tensão de entrada que esta aplicando no sistema (Com margem para variações, 20% a mais da tensão de entrada) e com capacitância dentro do tabelado em datasheet do componente (Valor genérico de 100uF).

Capacitor de saída:  Capacitor com 'LOW ESR' (Baixa impedância interna trabalhando em altas frequências,  esta propriedade permite a carga/descarga do capacitor mais rápido para acompanhar os ciclos de chaveamento do PWM), é uma característica que a maioria dos fornecedores não conhecem então para ajudar na busca digo de ante-mão que alguns capacitores para 105°C podem servir para este propósito e no próprio datasheet já são indicados alguns fornecedores como a Nichicon, Parasonic, Epson e Mallory.

Diodo Schottky: Diodo com curva de resposta rápida e isolação contra tensão reversa, normalmente dimensionado para três vezes o valor de corrente máxima fornecida  pelo conversor para proteção em caso de curtos, fácil de encontrar em mercado (Dica, 1N5822).

Indutor: Este é o componente que mais precisamos nos preocupar quanto a precisão, não confie nos valores nominais de indutores vendidos no mercado (Principalmente os de baixo valor), aconselho a fazer o indutor a mão usando um toroide de ferrite e fio esmaltado com bitola proporcional a demanda de corrente do circuito, na falta de fio esmaltado, fio com isolamento plastico fino também serve.


Segue link com artigo explicando o funcionamento do conversor Buck: 

Espero que tenham gostado, um grande abraço.