Arquivos Conhecimento - Blog Ryndack Componentes
Rua Jovelina Claudino Buhrer, 440 - São José dos Pinhais - PR (41) 3383-3034
Conhecimento

No artigo de hoje, usaremos um sensor de nível de luz LDR. LDR significa “light dependent resistor”, que é exatamente o que esse sensor faz. É um resistor cuja resistência (entre dois terminais) depende da quantidade de luz que ele recebe.

Resistor LDR 20mm

Segundo essa fonte, sua resistência aumenta com menos luz e diminui com mais luz. A resposta espectral na imagem abaixo mostra que ele é mais sensível à luz verde do que qualquer outra cor. Isso se deve à sua constituição, feita de CdS (Sulfeto de Cádmio).

Gráfico de resposta do resistor LDR
LDRs são considerados dispositivos lentos, com respostas levando entre 2ms e 50ms. É muito
mais lento do que um fotodiodo ou fototransistor, por exemplo. É por isso que você o vê sendo
aplicado principalmente à detecção crepuscular em iluminação pública.
Você poderia, é claro, aplicá-lo para robótica caseira/hobby, como em construções com
Arduíno

O circuito para testes

Implementamos um circuito de teste simples, com o LDR em série com um resistor de 10k
Ohm. Ele é lido pelo Raspberry Pi Pico 2 por meio de uma entrada analógica, A0. Poderia ser
qualquer outra placa com uma entrada analógica, como o Arduino UNO, ESP32, STM32,
família PIC etc.
Ele é fornecido pelos 3,3 V do próprio Pi Pico 2, já que ele consome apenas alguns
miliamperes. Se você fosse usar um Arduino UNO, poderia fornecer ao sensor 5 V sem
problemas. Em sistemas de 3,3 V como o ESP32, é melhor usar 3,3 V.

Circuito com uso de resistor LDR

Código para Arduíno

Como dito antes, a interface de um LDR com um microcontrolador é tão fácil quanto ler uma
entrada analógica. É basicamente o que eu faço no código abaixo, a cada 500 ms (meio
segundo) eu leio a entrada analógica com analogRead(A0).
Então eu imprimo a variável “ldrvalue” no console serial no software Arduino IDE.

Código arduíno para LDR
Um recurso importante a ser lembrado sobre o Raspberry Pi Pico 2 é a capacidade de alterar a
resolução da entrada analógica. Esta é a razão pela qual eu uso analogReadResolution(12),
para definir a resolução para o máximo (12 bits).
Isso significa que podemos ler valores entre 0 e 3,3 V que serão convertidos em inteiros entre 0
e 4095, no monitor serial. Depois de copiar e colar o código acima no seu software Arduino
IDE, conecte seu microcontrolador ao computador via cabo USB.
Em seguida, clique no botão de upload e aguarde um pouco. Você pode então abrir o monitor
serial do IDE, indo em “Ferramentas > Monitor serial” ou Ctrl + Shift + M.

Testando o circuito

Ao abrir o monitor serial ele começará a receber valores, assim como na imagem abaixo.
Cobrindo a face do LDR ou oferecendo mais luz, você pode ver o valor inteiro mudando.

Testando o circuito para resistor LDR
Fiz um vídeo completo sobre o circuito, o código e os testes.
Vídeo sobre o teste: https://www.youtube.com/watch?v=sWoHgWNHI4E

Considerações finais sobre o LDR

O LDR é um sensor super simples e muito útil, capaz de traduzir nível de luz em nível de
resistência elétrica. Apesar de ser “lento” para sistemas mais críticos, ele serve muito bem para
detecção crepuscular (dia/noite) e de nível de luz em aplicações simples.
É também um sensor barato e muito consolidado, fácil de interfacear e ler. O fato de sua
resposta espectral ser diferente para cada cor também o torna interessante, possibilitando uma
aplicação de detecção de cores bem simples.

Clique e confira em nosso site alguns dos sensores LDR disponíveis: https://www.ryndackcomponentes.com.br/catalogsearch/result/?q=ldr

0

Conhecimento

O que são resistores de Pull-Up e Pull-Down?

Na eletrônica, sempre queremos que os sinais digitais sejam bem definidos, os resistores de Pull-Up e Pull-Down são usados para garantir isso!

Por exemplo, ao ligar um botão em um microcontrolador da seguinte maneira:




Dessa forma, ao pressionar o botão, será enviado 5V ao microcontrolador, o que corresponde ao sinal lógico 1. Mas e quando o botão não está pressionado ou durante o pequeno período onde ele está sendo solto? Nesse caso, não há um sinal bem definido sendo enviado ao microcontrolador, fazendo com que ele possa oscilar entre 0V e 5V, ou entre 0 e 1.

Ou seja, Pull-Up e Pull-Down são técnicas usadas em circuitos eletrônicos para definir o estado padrão de um pino quando não há sinal ativo!

Qual a Diferença entre Pull-Up e Pull-Down?

  • – Pull-Up: Imagine que você está “puxando” o pino para a posição mais alta. Isso significa que, na ausência de um sinal, o pino estará em um estado lógico alto (1), que pode ser 5V ou 3,3V, dependendo do circuito. Então, o Pull-Up é usado para garantir que o pino esteja no nível alto quando não está sendo ativamente dirigido por outro componente.


Caminho da Corrente com o Botão Solto, Enviando VCC ao pino

Caminho da Corrente com o Botão Pressionado, Enviando GND ao Pino
ALT

Quando o botão não está pressionado, o sinal que é enviado ao pino do microcontrolador é o sinal do VCC, ou 1, visto que o botão está aberto, portanto o único caminho para a corrente é através do resistor de Pull-Up de 10kΩ. Ao pressionar o botão, o circuito é fechado e o sinal enviado ao pino do microcontrolador é GND, ou 0. O motivo de ter o resistor é para não dar curto em entre VCC e GND ao pressionar o botão. Por isso, deve ser utilizado um valor alto de resistência para garantir que não haja um curto ao pressionar o botão.
  • – Pull-Down: Aqui, você está “puxando” o pino para a posição mais baixa. Assim, quando não há sinal ativo, o pino estará em um estado lógico baixo (0), que geralmente é 0V ou GND. O Pull-Down é utilizado para assegurar que o pino esteja no nível baixo quando não está sendo controlado por outro dispositivo.
  • Caminho da Corrente com o Botão Solto, Enviando GND ao Pino



Caminho da Corrente com o Botão Pressionado, Enviando VCC ao Pino

Com o resistor de Pull-Down, quando o botão não está pressionado, o sinal enviado ao pino é o GND (ou 0), e ao pressionar o botão, o sinal enviado é o VCC (ou 1). De maneira semelhante ao Pull-Up, o resistor está ali para garantir que não haja curto entre VCC e GND ao pressionar o botão, e também deve possuir um valor alto de resistência.

Os valor dos resistores de Pull-Up e Pull-Down são determinados a depender do circuito, variando de 1kΩ a 100kΩ. Então como escolher? Como tudo na engenharia, é um equilíbrio entre velocidade e potência.

Ao usar um resistor com baixa resistência, ele irá permitir que a corrente flua com mais velocidade, garantindo uma resposta rápida do circuito, mas pode ser que por conta dessa resposta ser tão rápida, o fluxo de corrente pode ser elevado demais para a aplicação ou não ter tanta potência para a aplicação.

Já com um resistor de alta resistência, irá impedir que a corrente flua com tanta velocidade, mas o circuito terá uma resposta mais lenta.

Para aplicações comuns com microcontroladores, valores de 4,7kΩ a 20kΩ são os mais utilizados!

Em resumo, o Pull-Up mantém o pino em um estado alto por padrão, enquanto o Pull-Down o mantém em um estado baixo por padrão.

Qual Devo Usar, Pull-Up ou Pull-Down?

A resposta depende de o que o seu circuito se propõe a fazer. Mas há algumas recomendações. Por exemplo, ao usar um botão conectado a um microcontrolador, faz sentido usar um resistor de Pull-Down, visto que quando o botão não estiver sendo pressionado, a leitura será 0, e quando for pressionado, irá para 1.

Já, por exemplo, se estiver utilizando o protocolo I2C em seu circuito, é necessário utilizar resistores de Pull-Up nos pinos de clock e data, visto que é um requisito do protocolo de comunicação.

0

Conhecimento

Uma das grandes dificuldades quando você faz um projeto eletrônico, é ter uma fonte fácil, confiável, que não dê problema, e a fonte HiLink é uma ótima opção, pois você pode soldá-la diretamente na sua placa.

Então hoje vamos falar mais sobre o funcionamento dela e seus benefícios. Ela é um pequeno módulo de fonte de alimentação isolado. Alimentado diretamente na rede elétrica ele é capaz de fornecer 3,3V em 1A (~3W) para seus projetos com Arduino e ESP32.

As fontes de alimentação Hi-Link surgiram alguns anos atrás, vindas certamente da China. O site oficial do fabricante é https://www.hlktech.net/ . Estas fontes tomaram grande parte do mercado de fornecimento de energia para projetos maker e DIY (do Inglês “faça você mesmo”). Isso devido à sua disponibilidade (majoritariamente Aliexpress), mas também encontradas no Brasil na loja Ryndack.


No presente artigo faremos testes da fonte sob algumas cargas, sempre medindo tensões e correntes com um multímetro. 


Mecanicamente


A fonte é totalmente encapsulada em plástico, nada do seu circuito eletrônico fica visível. Apenas estão disponíveis quatro terminais: dois para rede elétrica 100-240V e dois para saída (+) e (-). Seu dimensional é um comprimento: 34mm, largura: 30mm e altura: 15mm.


Teste sem carga, medição de ripple


O setup para iniciarmos nossos testes é visto abaixo. Conectaremos a fonte à tomada elétrica 220V diretamente, então sua saída a um multímetro. 



A tensão medida sem carga (somente o multímetro na saída da fonte HiLink) é de 3,94V. Isso é normal pois grande parte da regulação de tensão de fontes chaveadas é proporcionada pelo consumo de corrente. Isto se deve ao fato que a maioria dos circuitos integrados controladores funcionam por corrente, a estabilidade do controle fica melhor. Como o multímetro não é uma carga grande o suficiente, a tensão fica um pouco alta mesmo.



Medindo a saída da fonte HiLink em escala de tensão AC (alternada) observamos um ripple (oscilação) de 2mV, bem baixo e quase imperceptível. O ideal seria observar a forma de onda com osciloscópio, porém não tenho um disponível no momento.


Testes sob carga


Começaremos com um resistor de 470 Ohm/1W como carga, isso daria uma corrente de 7mA. A tensão do HiLink começou em 3,90V e foi caindo até 3,41v após alguns minutos. Agora usaremos como carga um projeto que estou desenvolvendo com ESP8266MOD (ESP12), um velocímetro para bicicleta com display de LEDs.



Observe que na esquerda em cima do diagrama esquemático há um conector de três pinos para um regulador de tensão. É ali que entraremos com os 3,3V da fonte HiLink. O consumo médio deste projeto é de 70mA.

Ao conectar e ligar a fonte HiLink, a tensão foi a 3,5V; estabilizou em 3,39V após uns dois minutos.

Finalmente testamos a fonte 3,3V HiLink com uma carga um pouco maior, um motor destes utilizamos em robótica com Arduino.




Vamos conectá-lo diretamente aos terminais de saída da fonte, + e -. Sua corrente foi medida com um multímetro e chegou a 85mA, enquanto a tensão ficou em 3,36V. Segurando um pouco seu eixo (forçando) a corrente foi a 160mA mas a tensão ficou em 3,36V.

Isto prova que quanto mais corrente você consumir da HiLink, mais regulada e próxima de 3,3V ela vai estar. Lembrando que esta fonte HiLink é capaz de fornecer 1A para a carga, então se ela se regula bem a partir dos 85mA, ótimo sinal.


Mais testes de performance foram realizados por este blog, se você tiver interesse em acompanhar.


Palavras finais


As fontes Hilink podem ser encontradas em várias tensões diferentes, mas todas com as mesmas características de serem alimentadas pela rede elétrica e terem saídas galvanicamente isoladas da mesma.

Nos meus testes a regulação de tensão funcionou melhor com correntes a partir de 70-80mA, indicando que para cargas menores a tensão fica um pouco mais alta do que os prometidos 3,3V. Isso pode ser ruim para alguns microcontroladores de projetos embarcados mais sensíveis.

Não observei aquecimento do encapsulamento nem geração de ruído audível, pontos positivos. Sendo assim, considero essa uma boa opção para utilização em seus projetos.

0

Conhecimento

Os encoders são botões giratórios, similares aos potenciômetros, e que podem ser girados indefinidamente. Eles estão presentes em rádios, mouses, impressoras 3D, equipamentos de bancada, entre vários outros dispositivos eletrônicos. Assim, entender o seu funcionamento e aprender a usa-lo é algo muito interessante e útil, por isso vamos te ensinar mais sobre eles!

Podemos classificar os encoders em dois tipos, os absolutos e os incrementais. Aqui não iremos nos aprofundar muito nos encoders absolutos, mas vale apena uma breve explicação sobre eles. De modo simplificado, os encoders absolutos são construídos com um disco com diversas trilhas, cada uma com um sensor e uma marcação específica de modo que, ao se combinar as informações captadas pelos sensores de todas as trilhas é possível se formar um código, que é único para a posição em que o encoder se encontra, ou seja, em um encoder absoluto podemos determinar exatamente sua posição através de um código.

O segundo tipo de encoder, o incremental é um pouco mais simples. Ele é formado por uma unica trilha com marcações igualmente espaçadas e dois sensores postos lado a lado, assim, quando o seu disco é girado, com o auxilio do seu eixo, temos a ordem com a qual os sensores são ativados e que dependem do sentido de rotação.

Conhecendo o encoder incremental

Um exemplo de encoder incremental é o EC11, que é o modelo que usaremos neste artigo. Ele possui cinco terminais, sendo dois deles usados por uma chave, que pode ser ativada pressionando o seu eixo. Enquanto isso os demais terminais são usados para controlar o encoder. A imagem abaixo representa o simbolo esquemático de um encorder desse tipo.

Aqui temos os terminais S1 e S2 para a chave, enquanto os terminais A e B permitem acesso a saída dos sensores. O terminal C é o comum aos dois sensores e geralmente é aterrado. O acionamento desse encoder ocorre de forma mecânica, sendo que, quando giramos o seu eixo, o contato entre um dos terminais das extremidades (A ou B) é fechado com o terminal comum (C). Como já foi dito, a ordem com a qual os sensores são acionados dependem do sentido de rotação do encoder, assim, se ele é rotacionado no sentido horário, sabemos que o contato entre A e C é fechado e em seguida entre B e C. Mas o inverso ocorre se girado no sentido anti-horário, quando fecha-se primeiro o contato entre B e C, e depois entre A e C.

Isso pode nos descrever duas ondas quadradas em quadratura, como abaixo.

Por quadratura nos referimos a diferença de fase entre os sinais, isto é, temos que um sinal esta adiantado em relação ao outro por 90° (aqui vale ressaltar que esse ângulo não se refere ao ângulo físico do encoder, mas sim a defasagem dos sinais).

Mapeando as transições do encoder

As ondas apresentadas mostram os sinais nos canais A e B de acordo com a posição do encoder. Se percorrermos as ondas da esquerda para a direita vemos que o sinal A está adiantado em relação ao sinal B. Isso ocorre quando giramos o encoder no sentido horário. Entretanto, se percorrermos as ondas da direita para a esquerda, veremos que o sinal B fica adiantado em relação ao A, o que acontece quando giramos o encoder no sentido anti-horário. Assim, para saber o sentido de rotação, precisamos apenas encontrar o sinal adiantado.

Agora que conhecemos seu funcionamento, pensamos em como identificar o sinal adiantado. Com as formas de onda em mãos, podemos mapear as transições realizadas, ou seja, encontrar todas as transições possíveis e determinar em quais condições ela ocorre. 

Vamos usar como exemplo o caso em que A e B estão em nível alto, ou seja, AB=11, os próximos estados possíveis são AB=01, quando girado no sentido horário e AB=10, quando girado no sentido anti-horário. Isso fica mais claro na imagem abaixo.

Além disso, se AB permaneceu em 11 ele ficou parado, e para AB=00 temos um erro de leitura. Assim, para cada posição temos 4 estados futuros, sendo 1 deles impossível (ou um erro de leitura). Isso está sintetizado na tabela abaixo.

Nessa tabela, temos um número binário de quatro bits para cada movimento do encoder. Além disso podemos escrever horário como sendo 1, anti-horário como -1 e parado ou impossível como 0, assim conseguimos escrever um vetor de 16 posições com as transições possíveis. Esse vetor é {0,-1,1,0,1,0,0,-1,-1,0,0,1,0,1,-1,0} e ele é muito útil, uma vez que podemos usa-lo para incrementar ou decrementar uma variável, como veremos logo mais.

Montando um teste

Para entender como usar um encoder preparamos um exemplo prático, mas, antes de mais nada precisamos de alguns materiais básicos, são eles:

  1. Display LCD 16X2;
  2. Arduíno;
  3. Resistores de 330Ω e de 3,3kΩ (1 de cada);
  4. Encoder rotativo EC11;
  5. LED;

O que faremos é controlar o brilho de um LED, para isso, ajustaremos a razão cíclica de um PWM gerado com um Arduino. O valor da razão cíclica será determinado pelo encoder e exibido no display LCD, assim, precisamos montar o circuito como abaixo.

 

Aqui temos os pinos 0 e 1 (PD0 e PD1 para o ATmega328p) para a entrada dos sinais A e B do encoder, enquanto os pinos de 4 a 7 (PD4 ao PD7) são conectados nos pinos de mesmo valor do LCD, para o envio de dados. Já os pinos A0, A1 e A2 (PC0 ao PC2) são conectados nos pinos En, R/W e RS respectivamente, para configurar o display. Por fim temos o pino 11 (PB3), que é por onde saíra o PWM gerado. 

Lendo o encoder

Com o hardware montado, podemos programar o Arduino. O programa completo com as bibliotecas utilizadas estão disponíveis em nosso github. Para o programa criamos uma função denominada “le_encoder()”, que como o nome já diz, é responsável pela leitura do encoder. Essa função ficou como mostrado abaixo:


int le_encoder(void){

    static int8_t A_B = 3;                                                                                     // A_B |==> Armazena os estados anterior e atual do encoder.
    static int8_t incremento;                                                                                // incremeto|==> Variavel retornada pela função, indica o sentido de rotação do encoder.
    static int8_t entradas[]= {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0};          // entradas[] |==> Vetor com as mudanças de estados possíveis.

// Cria um binario de 4 bits com os 2 MSDs indicando o estado passado e os 2 LSDs indicando o estado atual do encoder.
    A_B<<=2;
    A_B |= (PIND & 0x03);
    incremento += entradas[A_B & 0x0f];

// Evita incrementos e decrementos descontrolados.
    if(incremento>1){
        incremento=0;
    }
    if(incremento<-1){
        incremento=0;
    }
    return incremento;
}

Primeiro temos a declaração das variáveis locais, sendo todas estáticas para não serem reiniciadas a cada chamada da função. Em seguida, o valor antigo da variável A_B, responsável por armazenar o estado dos pinos PD0 e PD1, sofre um deslocamento de dois bits para a esquerda (A_B<<=2) e o valor dos pinos PD0 e PD1 são lidos com o auxilio de uma mascara e colocados nos 2 bits menos significativos (A_B |= (PIND & 0x03)). Isso forma um binário que representa a mudança de estado do encoder.

Logo após, soma-se na variável incremento 1, -1 ou 0, de acordo com o valor dos quatro bits menos significativos de A_B. Para isso lê-se a posição A_B & 0X0f do vetor entradas[], que é o vetor com as transições possíveis, que já discutimos aqui. Aplica-se a mascará 0x0f para se descartar os bits mais significativos de A_B, e ler apenas os 4 menos significativos, que são formados pelo valor de A_B anterior e atual.
Finalmente temos um “if”, que verifica se o valor do incremento é maior que 1 ou menor que -1, e se sim zera esse valor. Isso evita incrementos sucessivos de forma descontrolada.

Controlando o PWM

Agora que já conseguimos identificar o sentido de rotação do nosso encoder, vamos realizar o controle do PWM. Para isso, usaremos um inteiro de 8 bits e sem sinal, assim, temos uma variável que ira de 0 a 255. Fazemos isso porque o registrador OCR2A, responsável pelo PWM no pino PB3, é de 8 bits. O código fica como segue abaixo.

void calcula_PWM(int incremento){

static uint8_t D;                    // D = duty cicle em percentual
static uint8_t duty = 0;             // duty = duty cicle valor passado para o OCR2A para dutyrole do PWM
char s_duty[20];                     // s_duty = string com o duty cicle em percentual para exibir no LCD.

if (incremento){ if(duty>10){ if(duty<245){ duty += 3*incremento; } else if(duty<253){ duty += incremento; } else if(incremento>0){ duty = 255; } else{ duty += incremento; } } else if(duty>2){ duty += incremento; } else if(incremento<0){ duty = 0; } else{ duty += incremento; } D=100*duty/255; if(duty > 254){ sprintf(s_duty, "Duty: %d%% Max ", D); } else if(duty < 1){ sprintf(s_duty, "Duty: %d%% Min ", D); } else{ sprintf(s_duty, "Duty: %d%% ", D); } OCR2A = duty; LCD_move_cursor(0,0); LCD_write(s_duty); _delay_ms(20); } }

Nessa função primeiro se verifica se existe algum incremento (ou decremento) e se sim, verifica se a variável duty (que será passada para o OCR2A) está entre 10 e 245. Em caso afirmativo será somado 3 vezes o incremento em duty, mas caso essa variável esteja entre 2 e 10 ou 245 e 253, esse incremento será de apenas uma unidade. No caso dessa variável ser menor que dois ou maior que 253 então a saída será 0 ou 255 respectivamente.

O incremento de 3 quando duty está entre 10 e 245 permite um controle veloz da razão cíclica, mas mantem o controle do brilho do led suave, já que uma mudança dessa grandeza no PWM não é perceptível. Além disso, quando o valor está próximo de 255 o controle do PWM não permite um novo incremento, já que isso acarretaria em uma transição abrupta de nível máximo para mínimo. O mesmo ocorre nas proximidades de 0.

Em seguida calculamos o valor percentual da razão cíclica na variável D, exibindo esse valor no display LCD na forma “Duty: XXX”. Além disso, imprimimos na tela Máx quando a razão cíclica é 100% e Min quando essa é 0%. Por fim enviamos o valor de duty para o registrador OCR2A.

Main

Finalmente temos a função main, que realiza a configuração das entradas e saídas, além de configurar o PWM. Ela ficou como abaixo:


int main(void){
// Configura os pinos de entrada. 
    DDRD &= ~((1<<PD0)+(1<<PD1));
    PORTD |= ((1<<PD0)+(1<<PD1));

// Configura PWM.
    DDRB |= (1<<PB3);
    TCCR2A |= ((1<<COM2A1)+(1<<WGM21)+(1<<WGM20));
    TCCR2B |= (1<<CS20);
    OCR2A = 0;

// Inicia o LCD.
    LCD_init();
    LCD_move_cursor(0,0);

// Loop de execução.
    while(1){
        calcula_PWM(le_encoder());
    }
return 0;
}

O que fazemos aqui é configurar os pinos PD0 e PD1 como entradas (no registrador DDRD) e habilitar o resistor de pull up interno (no PORTD). Em seguida, habilitamos PB3 como saída (com DDRB), e configuramos o timer 2 no modo fast PWM, sem prescale. Aqui também iniciamos o LCD, configurando as entradas e saídas pertinentes com a função LCD_init(), e posicionamos o cursor na primeira casa e na primeira coluna. Finalmente, temos um loop infinito que realiza a constante chamada da função calcula_PWM().

Nós montamos este circuito para testarmos na prática e ele ficou funcionando como no vídeo deste link. O que você achou desse artigo? Pretende usar o encoder em algum projeto? Nos conte aqui nos comentários.

0

Conhecimento

Você já deve ter precisado converter um sinal digital, gerado por um microcontrolador, em um sinal analógico, mas como fazemos isso? É para isso que serve o R2R, um circuito simples, mas muito útil, que usa apenas alguns resistores. Para entendermos seu funcionamentos, primeiro precisamos conhecer sua construção, que esta mostrada no esquemático abaixo.



O nome R2R é fácil de entender quando olhamos para o circuito, uma vez que os valores de resistência do circuito alternam entre um resistor de valor R e um com dobro de resistência, 2R. As entradas rotuladas de V0 até V3 são entradas digitais e Vout é a saída desse circuito.


Para usar esse circuito você insere uma palavra binária com V0 sendo o bit menos significativo, e V3 sendo o mais significativo. Como resultado, será obtido uma tensão em Vout, cujo o valor esta entre 0V e um valor de referencia, equivalente a tensão de um bit em nível lógico alto.


Para realizar a analise desse circuito vamos recorrer a 2 princípios bem interessantes da eletrônica, o principio da superposição, e o equivalente de Thévenin.


Calculo da Tensão de Saída em Função das Entradas Para 4 Bits

Considerando, em um primeiro momento, apenas o efeito de V0, temos V1=V2=V3=0. Assim o circuito fica como a imagem abaixo.



Determinando o equivalente de Thévenin para o ponto A, precisamos primeiro desconectar o restante do circuito, o que nos deixa com o que esta mostrado abaixo.



Para este circuito, a resistência de Thévenin é obtida substituindo V0 por 0V, assim a resistência será o paralelo dos dois resistores, ou seja R.


Já a tensão no ponto A (V_A) será obtida através do divisor resistivo formado pelos dois resistores de 2R, obtendo-se V_A=\frac{2R}{2R+2R}V0=\frac{V0}{2}, assim, o circuito fica como abaixo.



Repetindo essa analise, temos que a tensão no ponto B será \frac{V0}{4}, para o ponto C, \frac{V0}{8}, e por fim, temos que a tensão de saída será Vout=\frac{V0}{16}, quando consideramos o efeito de V0 apenas.


Agora consideraremos apenas a fonte V1, desprezando as demais fontes, o que nos deixa com o circuito abaixo.




A resistência equivalente até A é dada pelo paralelo dos dois resistores que antecedem esse nó, resultando em um resistor de resistência R, portanto a resistência antes do ponto B é de 2R, o que nos deixa com o circuito abaixo.




Esse circuito é quase igual ao que tínhamos para V0, logo, de maneira similar ao caso anterior a tensão no ponto B será \frac{V1}{2}. Para o ponto C teremos \frac{V1}{4}, e por fim Vout=\frac{V1}{8} para a saída.


Nesse ponto você já deve ter percebido que o mesmo raciocínio serve para V2 e V3. Considerando cada uma dessas fontes individualmente, teremos Vout=\frac{V2}{4} para V2 e Vout=\frac{V3}{2} para V3.


A tensão na saída considerando todas as fontes é dada pela soma de todas as contribuições individuais, uma vez que aplicamos o principio da superposição. O que resulta na equação abaixo:


(1)   \begin{equation*}Vout=\frac{V0}{16}+\frac{V1}{8}+\frac{V2}{4}+\frac{V3}{2}\end{equation*}




Generalizando…


Se quisermos colocar mais entradas no nosso circuito, basta adicionar um novo conjunto de resistores R2R, como mostra a imagem abaixo.



Ao adicionar esses novos resistores à sua rede R2R, a tensão na nova saída (Vout_novo) sem considerar a nova fonte de tensão (V4) será a metade da saída antiga (Vout_antigo). Mas se desprezarmos as demais fontes de tensão, e calcularmos a tensão de saída apenas para V4, encontraremos \frac{V4}{2}. Por fim, aplicamos o principio da superposição novamente, encontrando:


(2)   \begin{equation*}Vout=\frac{V0}{32}+\frac{V1}{16}+\frac{V2}{8}+\frac{V3}{4}+\frac{V4}{2}\end{equation*}



Se você observar os denominadores das equações 1 e 2, você verá que temos potências de base 2, de forma que 32=2^5, 16=2^4 e assim por diante. Então, a equação anterior pode ser escrita como sendo:


(3)   \begin{equation*}Vout=\frac{V0}{2^5}+\frac{V1}{2^{4}}+\frac{V2}{2^3}+\frac{V3}{2^2}+\frac{V4}{2^1}\end{equation*}



A fim de generalizar essa expressão, tomaremos o circuito abaixo.



Se você observar as equações 1 e 3, você verá que, quando temos 4 entradas digitais, a contribuição de V0 é dividida por 2^4. Já para 5 entradas, temos V0 dividido por 2^5, disso concluímos que para n entradas, teremos \frac{V0}{2^n}.


Para V1, temos, \frac{V1}{2^3} para 4 entradas, e \frac{V1}{2^4} para 5 entradas. Assim, para n entradas, ficamos com \frac{V1}{2^{n-1}}.


A entrada mais a direita, sempre ficou dividida por dois, assim, para n entradas, teremos \frac{Vn-1}{2}. Por fim a expressão 3 pode ser reescrita de modo geral como sendo:


(4)   \begin{equation*}Vout=\frac{V0}{2^n}+\frac{V1}{2^{n-1}}+\frac{V2}{2^n-2}+...+\frac{Vn-3}{2^3}+\frac{Vn-2}{2^2}+\frac{Vn-1}{2^1}\end{equation*}


O R2R é um circuito simples, porém muito útil, capaz de converter sinais digitais em analógicos. E você, já conhecia ele? Deixe seu comentário.

1

Conhecimento


Os retificadoras são os responsáveis pela transformação de corrente alternada em corrente contínua, mas o que isso significa?

Para entendermos isso, primeiro precisamos lembrar o que significam corrente alternada (CA) e corrente contínua (CC). De modo simples, a corrente alternada, como o nome já diz, alterna constantemente o seu sentido, sendo ora positiva e ora negativa, seguindo um comportamento senoidal, como a figura a seguir nos mostra. Por outro lado, a corrente contínua possui um sentido único, que se mantém constante, sempre fluindo do positivo para o negativo (este é o sentido convencional).

Os sinais CA são muito usados na geração e distribuição de eletricidade, sendo o tipo de sinal que chega nas tomadas de nossas casas. Entretanto a maior parte dos eletrônicos que possuímos funcionam com corrente contínua, isso porque a corrente contínua pode ser facilmente armazenada em pilhas e baterias. Além disso, computadores, celulares, entre outros funcionam através da lógica binária, e para isso precisam internamente de tensões estáveis para servirem como níveis baixo (0) e alto (1).

Então, como ligamos circuitos de corrente continua (CC) com a energia das tomadas (CA)?

É aqui que entram os retificadores, que são circuitos elétricos com a função de retificar a tensão CA, isto é, transformá-la em corrente contínua.


Retificadores de Meia Onda

De modo geral, para a retificação de uma senoide apenas se usa uma característica bastante conhecida de um diodo, que é sua capacidade de condução em uma única direção. A imagem abaixo mostra a esquerda um circuito retificador simples, nele o diodo conduz corrente para a carga apenas quando a tensão entre o seu catodo e anodo (V_{21}) é positiva, bloqueando a corrente quando V_{21} é negativa. Já na imagem a direita temos a tensão na carga R, esta tensão é uma réplica do sinal de entrada, porém com a parte negativa removida.

Esse tipo de circuito é chamado de retificador de meia onda, uma vez que ele elimina metade da onda de entrada. Além disso, embora sem a parte negativa, este sinal ainda não é um sinal CC puro, já que ele não é estável em uma única tensão.

Para aumentar a estabilidade da tensão costuma-se usar um capacitor, ligado paralelo com a carga, como no circuito a seguir.


A ideia aqui é bem simples, ela consiste em carregar o capacitor, durante os picos de tensão, e usar o capacitor para fornecer energia para a carga quando a tensão está em baixa. Assim é possível alcançar maior estabilidade na tensão. Entretanto, com esse tipo de circuito ainda temos alguns problemas, sendo os principais o baixo aproveitamento da tensão, já que ele descarta metade do sinal, e que, mesmo com o capacitor, o sinal ainda continua uma grande variação de tensão, o que fica visível na próxima imagem.


Um modo de contornar estes problemas é o uso de retificadores de onda completa.

Retificadores de Onda Completa

O circuito de retificação mais utilizado é a ponte retificadora, sendo possível construí-la com diodos discretos, como o 1N4007, 1N4148, 1N5402, entre outros, ou podendo ser comprado já montado, como nas pontes KBPC5010, MB10F, e outros. Este circuito é um retificador de onda completa, ou seja, ele não só mantém a parte positiva da onda de entrada como também realiza a reflexão da parte negativa. Sua montagem é simples, envolvendo apenas 4 diodos, ligados como mostrado abaixo.


O funcionamento deste circuito pode ser separado em 2 momentos diferentes. Primeiro, quando a tensão é positiva. Nessa condição os diodos
D1 e D2 conduzem corrente elétrica, enquanto os diodos 3 e 4 a bloqueiam, isto está ilustrado na imagem a direita. A imagem a esquerda representa o segundo momento, quando a tensão de entrada é negativa. Nessa condição o inverso ocorre, isto é, os diodos 3 e 4 conduzem e os diodos 1 e 2 bloqueiam a corrente elétrica.

 

Testes Experimentais

Na imagem a seguir temos a tensão usada para alimentar uma carga de 10kΩ após um retificador de onda completa construído com os diodos 1N4148. Essa imagem foi obtida realizando medições com um osciloscópio. Nela vemos que a tensão fica em 0V por alguns instantes, mesmo em um retificador de onda completa. Isso ocorre porque o diodo usado apresenta uma queda de tensão mínima antes da condução de aproximadamente 0,7V. Note que o circuito montado não apresenta o capacitor presente no circuito retificador de onda completa apresentado anteriormente.

Quando usamos um retificador de meia onda, para uma mesma carga, temos como resultado a imagem abaixo. Note que a tensão de pico para ambos os retificadores é a mesma (9,30V). Porém frequência reduz pela metade, quando comparamos com um retificador de onda completa, apesar da fonte ser a mesma.

A diferença nas frequências são provocadas uma vez que o retificador de meia onda conserva a frequência da fonte. Enquanto o retificador de onda completa dobra a frequência, já que o sinal se repete a cada semi ciclo.


Colocando um capacitor de 100uF no retificador de onda completa obtêm-se uma tensão plana como mostra a imagem a seguir.


Note que a tensão é quase constante, já que o capacitor usado possui um valor muito alto. 
Pontes retificadoras são de grande importância na eletrônica. E você, já conhecia elas? Deixe seu comentário sobre o que achou do post. 

0

Conhecimento
Na Ryndack Componentes uma dúvida muito frequente é sobre usar potenciômetros como regulador de tensão, para controlar o brilho de um LED ou até para controlar a velocidade de um motor. Bem, isso não é possível, e você vai descobrir o porquê. 🙂

O que é um Potenciômetro?

Um potenciômetro é um resistor ajustável. Existem modelos de fio e de carbono, mas os de carbono são os mais comuns, principalmente por serem mais baratos. Eles são fabricados com uma plaquinha de felonite (igual as placas de circuito impresso), com carbono depositado, formando uma pista resistiva, em que são conectados dois terminais nas extremidades. Sobre a pista é montada uma palheta condutora deslizante, conectada a um terceiro terminal, que tem a resistência em relação aos outros mudada conforme a palheta desliza. A figura abaixo deixa isso bem mais claro pra você!

Potenciometro desmontado com indicações das partes que o compõe
O potenciômetro como divisor de tensão

Muitos já devem ter percebido, que o potenciômetro se comporta como um divisor resistivo, onde os valores dos resistores estão em constante mudança, de acordo com o movimento da palheta (veja esse post, onde falo mais detalhadamente sobre divisores resistivos), então todos concordam que se montarmos o circuito abaixo, teremos no terminal central do potenciômetro uma variação de tensão de 0 a 12V, correto? (se você não concorda leia o post sobre os divisores resistivos 😂)Então podemos pensar: “nossa, vou conectar uma carga ali na saída, e alimentar ela com uma tensão variável”. Bem, não vai funcionar como esperado. Toda a corrente drenada pela carga terá obrigatoriamente que passar por dentro do potenciômetro. Como ele tem uma resistência muito alta, a queda de tensão é grande, o que diminui a tensão na carga. 

A análise do problema

Para analisar o que acontece quando tentamos usar um potenciômetro como regulador de tensão, efetuei uma simulação usando o QUCS. Nesse circuito substitui o potenciômetro por dois resistores em série, R1 e R2. Como carga colocamos R3, com uma resistência de 50Ω, e alimentando o circuito a fonte V1 com tensão de 1V. A tensão na carga é medida pela ponteira Vo.
Para fazer a simulação do circuito, defini algumas variáveis: R é a resistência máxima do potenciômetro (simulei com 10kΩ), C é a variável que a simulação irá varrer e representa o deslocamento da palheta sobre a pista de carbono, indo de 0 até 1. Desse modo conseguimos calcular as duas “metades” do potenciômetro, que chamamos de Rp (resistência atribuída a R1), e Rn (R2).

Esquema elétrico da simulação

Podemos ver o resultado da simulação no gráfico abaixo. No eixo “X” (abscissas), temos a variação do curso do potenciômetro, e no eixo “Y” (ordenadas), temos a tensão de saída na carga. A tensão de saída fica muito próxima a 0 em quase todo o curso, mostrando que o potenciômetro não se comporta como um regulador ou fonte de tensão. Em destaque, o ponto de 0,9 do curso (onde em um comportamento de fonte iriamos querer 0,9V na saída), mas ela é apenas de 47,4mV.

Gráfico da Simulação de Potenciômetro como Fonte de Tensão

Os potenciômetros devem ser usados apenas como entrada de um sinal para um circuito, e não em partes de potência. Caso você precise de um regulador de tensão, existem circuitos integrados lineares (como os L78xx, LM317), chaveados (como por exemplo o LM2596), e também módulos prontos que usam esses componentes, que são adequados a essa função. 🙂

0

Conhecimento

O divisor resistivo de tensão é um circuito simples, porém muito útil em projetos eletrônicos. Como é de se esperar, ele divide a tensão de entrada, tendo na sua saída uma tensão menor que a da entrada. O circuito é bem simples mesmo, composto de apenas dois resistores, veja a figura abaixo:

Circuito de divisor resistivo

Dedução da Fórmula do Divisor Resistivo de Tensão

A fórmula do divisor resistivo de tensão todo mundo conhece, mas nem todo mundo sabe de onde ela vem, e é importante saber fazer deduções de fórmula e análise de circuitos, pois nem sempre você vai ter como consultar isso, e as vezes vai que você inventa um circuito? Aí não tem como consultar mesmo, né? 😉

Primeiro vamos calcular a corrente que circula pela única malha do circuito, ela depende apenas dos resistores e da fonte, o medidor de tensão é ideal e tem resistência infinita, logo não entra no cálculo:

(1)   \begin{equation*} I = \frac{V_1}{R_1+R_2}\end{equation*}



Agora, vamos calcular a tensão em cima do resistor R2, já que essa é exatamente a tensão de saída:

(2)   \begin{equation*} V_s = V_{R_2} = I \times R_2\end{equation*}



Substituindo (1) em (2), temos:

(3)   \begin{equation*} V_s =( \frac{V_1}{R_1+R_2} ) \times R_2 = V_1 \frac{R_2}{R_1+R_2}\end{equation*}



A equação (3) é a fórmula que todos nós conhecemos para divisores resistivos. Analisando, é possível ver que a tensão de saída não tem como ser maior que a de entrada, pois  a parcela \frac{R_2}{R_1+R_2} sempre será menor que 1.

Aplicações dos Divisores Resistivos

Os divisores resistivos são usados em muitas aplicações, irei citar algumas delas:

  • Adequação de sinais de entrada em conversores analógico digitais: Os conversores AD, hoje normalmente internos aos microcontroladores, só suportam na entrada tensões da faixa de alimentação do próprio microcontrolador, que normalmente é de 5V ou 3,3V. Se você precisa medir um sinal com níveis maiores, irá precisar passar por um divisor resistivo antes.

  • Volume em equipamentos de áudio: O controle de volume feito por potenciômetros é na verdade um divisor resistivo variável. O próprio potenciômetro faz o papel dos dois resistores, e a resistência deles varia conforme o eixo é girado, fazendo dividir por um número maior ou menor, diminuindo ou aumentando o volume.

  • Referências de tensão: Circuitos de fontes e reguladores de tensão normalmente usam divisores resistivos na parte de feedback de tensão, e o ajuste dos valores dos resistores influencia na tensão de saída. Um detalhamento disso fica para outro post. 😉


Os divisores resistivos de tensão são circuitos primitivos, e são muito simples, mas isso não tira sua importância e relevância, um dia você ainda vai precisar deles nos seus circuitos. 🙂

0