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

O que é um sensor indutivo?

Um sensor indutivo é um dispositivo eletrônico capaz de detectar alvos metálicos sem contato físico. Além de metais ferrosos, como o ferro e o aço, esses sensores também podem detectar metais não ferrosos, como alumínio, latão e cobre (Figura 1). No entanto, a detecção de metais não ferrosos geralmente reduz o alcance de sensibilidade do sensor.

Figura 1 – Detecção de diferentes tipos de metais

Fonte: https://www.realpars.com/blog/inductive-sensor

Como funciona um sensor indutivo?

O funcionamento de um sensor indutivo baseia-se na criação de um campo eletromagnético que é emitido a partir da face do sensor (Figura 2). Quando o alvo metálico se aproxima do sensor, ele causa uma perturbação no campo eletromagnético, o que ativa a saída do sensor e acende um indicador luminoso.

Figura 2 – Partes do sensor

Fonte: https://www.realpars.com/blog/inductive-sensor

Princípio de funcionamento (Figura 3):
  • O sensor indutivo utiliza um oscilador em conjunto com uma bobina localizada na extremidade do dispositivo para gerar um campo eletromagnético variável.
  • Quando um material metálico entra nesse campo, ocorre uma dispersão na energia do campo, o que reduz a amplitude do sinal proveniente do oscilador.
  • O circuito de disparo do sensor detecta essa redução no sinal e fornece uma tensão de saída (resposta lógica) quando o sinal atinge um nível muito baixo, indicando a presença do objeto metálico.

Figura 3 – Funcionamento do sensor indutivo


Fonte: https://automacaoexpert.com/sensor-indutivo/

Características elétricas

Tensão de operação:

AC (Corrente Alternada): Operam com tensões de 127V ou 220V.
  • DC (Corrente Contínua): Operam com tensões que variam de 5V a 30V.

Lógica de chaveamento:

  • Normalmente Aberto (NA): O circuito permanece aberto (sem condução) até que um objeto metálico seja detectado.
  • Normalmente Fechado (NF): O circuito permanece fechado (conduzindo) até que um objeto metálico seja detectado, interrompendo o circuito.

Configuração de saída:

  • PNP: Quando o sensor detecta um objeto metálico, ele conecta a saída à tensão positiva.
  • NPN: Quando o sensor detecta um objeto metálico, ele conecta a saída ao terra (GND).

Implementação do Sensor Indutivo na Categoria Trekking

A implementação do sensor LJ18A3-8-Z/CX, é um aspecto importante do funcionamento do robô Frederico para participar da categoria Trekking (indicar reels), porque ele nos fornece um feedback da detecção do marco.

Aspectos de funcionamento

  • Tipo de Saída: NPN (normalmente aberto).
  • Alcance de Detecção: 8 mm.
  • Tensão de Operação: 5-36V DC.
  • Corrente de Saída: Até 300 mA.
  • Frequência de Chaveamento: 100 Hz.

Conexão do Sensor ao Circuito

O sensor LJ18A3-8-Z/CX possui três fios:

  • Marrom (V+): Conecte à tensão positiva da fonte de alimentação (6-36V DC).
  • Azul (GND): Conecte ao terra da fonte de alimentação.
  • Preto (Saída): Conecte à entrada do microcontrolador ou ao circuito de controle.

Conexão com Arduino

  • V+ (Marrom): Conecte ao pino 5V ou Vin do Arduino (dependendo da tensão de operação).
  • GND (Azul): Conecte ao GND do Arduino.
  • Saída (Preto): Conecte a um pino digital do Arduino (por exemplo, D2).

Exemplo de Código no Arduino

const int sensorPin = 2; // Pino onde o sensor está conectado

void setup() {
  pinMode(sensorPin, INPUT); // Configura o pino como entrada
  Serial.begin(9600); // Inicia a comunicação serial
}

void loop() {
  int sensorState = digitalRead(sensorPin); // Lê o estado do sensor
  if (sensorState == LOW) { // Se o sensor detectar um objeto metálico
    Serial.println("Objeto metálico detectado!");
    // Acione um mecanismo de resgate ou pare o robô
  } else {
    Serial.println("Nenhum objeto detectado.");
  }
  delay(100); // Pequeno atraso para evitar leituras repetidas
}
0

Conhecimento


Medir a intensidade de campo magnético de objetos pode ser um maneira bastante eficiente de extrair informações uteis dele. Afinal, avaliando o campo magnético podemos definir grandezas como posição, velocidade, correntes, entre outras. Por isso, saber como fazer isso é muito importante para quem gosta de eletrônica. Pensando nisso, trazemos este artigo apresentando para vocês o SS49E, um sensor baseado no efeito Hall, que é barato, mas extremamente versátil e capaz de realizar ótimas medidas de campo magnético.

Conhecendo o sensor de efeito Hall

Como já mencionado, esse sensor tem como base o efeito Hall, um fenômeno curioso do electromagnetismo. De maneira simplificada, esse fenômeno se trata do surgimento de uma tensão elétrica, quando uma corrente passa por uma região de campo magnético presente. A figura abaixo ilustra isso.

Nessa imagem, temos o campo magnético e a corrente elétrica passando por uma região com um campo magnético, e perpendicular a ambos temos a tensão Hall, representada por \ V_H. É importante ressaltar que a tensão Hall sempre é perpendicular ao campo magnético e a corrente simultaneamente, isso é, ele é perpendicular ao plano que os contém.

Outra característica da tensão Hall é que ela é proporcional a densidade do fluxo magnético e a corrente elétrica. Então, se desejamos medir o campo magnético devemos manter a corrente constante e medir a tensão Hall gerada no material condutor.
Agora que já apresentamos um pouco sobre o efeito Hall, podemos ir para o seu uso na prática.

Montando o circuito

O SS49E, sensor usado nesse artigo possui aplicação bem simples, se tratando de um sensor com apenas três terminais, sendo dois deles usados para a alimentação e o terceiro para saída. Assim, montamos um pequeno circuito usando um Arduíno UNO. Além disso usamos alguns jumpers e o protoboard para a conexão, o esquema abaixo mostra como ele foi montado.

Nessa montagem, usamos os pinos de 5V e GND do Arduino para alimentar o sensor, ligando-os aos pinos 1 e 2 respectivamente. Já o terceiro pino do sensor foi ligado diretamente à entrada analógica A0 do Arduino. Aqui é importante usar uma entrada analógica, pois a saída do sensor varia continuamente de 0V à 5V, dependendo da intensidade do campo externo. A relação entre a tensão de saída e o campo magnético é explicado um pouco mais adiante.

Programando

Com o circuito montado, podemos escrever o código que será executado no Arduino. Como esse código serve apenas para ilustrar o uso do SS49E mantivemos ele simples. Com ele fazemos a leitura da entrada analógica, convertemos o valor lido a um valor de campo e finalmente exibimos os valores envolvidos no monitor serial. Esse código está abaixo, mas como todos os códigos de nossos projetos, você pode encontra-lo em nosso github.

// Pino do sensor como o A0
const int pinoSensor = A0;

// Valor recebido pelo conversor A/D
int Valor_medido = 0;
// Valor_medido convertido para tensao
float Tensao_lida = 0;
// Valor de campo calculado
float Campo_calculado = 0;

void setup() {
  //inicia comunicação serial
  Serial.begin(9600);
}

void loop() {
  // Leitura do valor de 0 a 1023 do conversor A/D:
  Valor_medido = analogRead(pinoSensor);

  // Conversão do valor lido para a tensao de saida do sensor:
  Tensao_lida = 5.0*Valor_medido/1023;

  // Calculo do valor de tensão do campo 
  Campo_calculado = (Tensao_lida-2.5)/0.019;

  // Envia os resultados para a porta serial:
  Serial.print("Valor Medido = ");
  Serial.print(Valor_medido);
  Serial.print("\t Tensão_sensor = ");
  Serial.print(Tensao_lida);
  Serial.print("V");
  Serial.print("\t Campo = ");
  Serial.print(Campo_calculado);
  Serial.print("mT");
  Serial.print("\n");
  delay(500);
}

Começamos o código definindo a entrada analógica como sendo a A0 e declarando as 3 variáveis principais. A primeira é a “Valor_medido”, onde armazenamos o valor lido pelo conversor analógico digital do Arduino. Nessa variável constará sempre um valor de 0 até 1023, uma vez que o conversor A/D do Arduino possui 10 bits.

A segunda variável é a “Tensao_medida”, onde convertemos o valor obtido pelo conversor A/D em um valor de tensão. Para isso, multiplicamos o valor medido pela tensão mais alta que pode ser lida pelo Arduino (5V) e dividimos pelo nível mais alto do conversor (1023), ou seja, fazemos.

(1)   \begin{equation*}Tensao \_ lida = \frac{5.0*Valor\_medido}{1023}\end{equation*}


Finalmente, usamos a variável  “Campo_calculado” para armazenar o valor do campo magnético. Para isso, usamos os dados do datasheet do SS49E para determinar a equação da reta \ V_H X B. Nele observa-se que a sensibilidade do sensor é de aproximadamente 1,9mV/Gs, que convertendo equivale a 0,019V/mT. Além disso, temos que para um campo de 0mT, a tensão sera de 2,5V, assim, montamos a equação:

(2)   \begin{equation*}campo = \frac{Tensão - 2,5}{0,019}\end{equation*}

O que o loop em execução faz então é realizar a leitura do conversor A/D, determinar a tensão do sensor, calcular o valor do campo e finalmente enviar todos os dados coletados para o monitor serial.

Testando o circuito

O vídeo abaixo mostra o circuito funcionando.
https://youtube.com/shorts/t-J75gkJPYY?feature=share

Nele vemos que na ausência de um campo magnético a leitura tida é de aproximadamente 2,5V. Sendo que esse valor aumenta quando aproximamos um dos pólos do ímã. Ao aproximar o outro polo,  a tensão de saída do sensor reduzirá, permitindo assim realizar a distinção entre o pólo norte e sul do ímã.

Outro ponto importante de notarmos é que os valores de leitura estão sempre entre -100mT a 100mT, ou de 0,86V a 4,21V. Isso acontece porque valores de campo maiores que estes saturam o sensor, não podendo ser lidos adequadamente. Além disso, você pode aumentar a precisão do sensor obtendo a sensibilidade experimentalmente, medindo a tensão de saída para diferentes campos conhecidos.

Lendo o sensor com o DM858

Finalmente, usamos o multímetro digital DM858 da Rigol para realizar essas medidas, já que esse multímetro consegue realizar a leitura de diversos tipos de sensores de maneira prática e rápida, apenas inserindo um conjunto de valores conhecidos.

Afim disso, mantemos a alimentação do sensor com o Arduino, e conectamos o GND e a saída ao pinos do multímetro, em seguida, na tela tocamos no ícone da função atual e selecionamos “sensor”, então vamos para a aba “measure” e selecionamos “customize sensor”. Após isso tocamos em “+” e inserimos os dados conhecidos. Aqui colocamos os pares “2,5V e 0mT” e “5V e 131,579mT”, que satisfazem a equação 2, apesar do segundo ponto não ser possível, já que o sensor se encontraria saturado. Por fim em “sensor unit” escolhemos “customize” e digitamos “mT” no campo ao lado.

Com o multímetro configurado, a tela encontrada sera como abaixo:

Após realizarmos algumas medidas com o multímetro, vemos que os valores se aproximam bastante dos medidos com o Arduino, o que nos leva a acreditar que o código que fizemos está funcionando adequadamente.

Aplicações do sensor Hall

Agora que sabemos que o sensor está funcionando, usamos ele para traçar o gráfico do campo magnético x distância. Para isso, deixamos o sensor parado, e com o auxílio de uma régua, aproximamos um imã à ele em passos de 1 centímetro, obtendo como resultado o gráfico abaixo.

Esse interessante gráfico mostra como o campo magnético decai a medida em que a distância aumenta, além disso, ele mostra que esse tipo de sensor pode ser usado para se medir pequenas distâncias, apesar da baixa linearidade. 

Outra aplicação na qual esse tipo de sensor é aplicada é na medição de velocidade angular em motores. Para isso, basta ter um pequeno imã no eixo do motor, que sempre que ele passa pelo sensor um pulso de tensão será emitido, assim, a velocidade pode ser obtida contando esses pulso.

Já conhecia o sensor SS49E? Conte para gente nos comentários o que você achou deste post. Lembrando que esse sensor e muitos outros você pode encontrar na Ryndack Componentes clicando aqui.

0

Conhecimento

Os LEDs são um dos componentes mais utilizados na eletrônica, estando presentes em quase todos os equipamentos eletrônicos que usamos no dia a dia. Por serem bonitos, baratos e de fácil uso, é difícil encontrar eletrônicos que não possuam pelo menos um LED em sua montagem. Porém, apesar de serem bastante versáteis, pouca gente sabe como eles funcionam. E é por isso que trazemos esse artigo, explicando detalhadamente o funcionamento dos LEDs.

O LED como um diodo

Antes de mais nada, é preciso entender que os LEDs são diodos emissores de luz, ou seja, seu funcionamento é o mesmo que um diodo comum. Tanto os LEDs quanto os diodos comuns são junções P-N, e podem conduzir ou bloquear a corrente elétrica, dependendo da sua polarização. 

Entretanto, existem algumas diferenças entre a operação dos LEDs e dos diodos comuns. Começando pela polarização inversa, quando ambos bloqueiam corrente. A tensão máxima que os LEDs suportam costuma ser muito baixa, não excedendo 5V, na maioria das vezes. Por outro lado, em diodos comuns é normal esse valor chegar ou até exceder 1000V. A outra diferença está na tensão necessária para condução, quando o diodo está diretamente polarizado. Em diodos comuns, essa tensão costuma girar em torno de 0,7V, entretanto para os LEDs, esse valor geralmente esta entre 2V a 3,5V, dependendo da cor.

Essas diferenças aparecem pois os diodos comuns foram construídos com propósitos diferentes. Já que enquanto os diodos foram feitos para explorar a capacidade de condução e bloqueio, nos LEDs a propriedade de interesse é a eletroluminescência. Apesar dessas diferenças, é importante entender que o led continua sendo um diodo, e por isso, discutiremos um pouco sobre os diodos a seguir.

Como os diodos são construídos

Para entender bem o diodo, é preciso entender sua construção. Eles são formados por um material semicondutor puro conhecido como intrínseco, que recebe impurezas selecionadas. Essas impurezas tem o propósito de garantir ao semicondutor as propriedades físicas desejadas. A essas impurezas chamamos de material dopante, e ao semicondutor após a dopagem de extrínseco. Os semicondutores extrínsecos podem ser de dois tipos:

O primeiro tipo é formado quando o material dopante possui um elétron a mais que o semicondutor na sua camada de valência, assim quando o dopante e o semicondutor são ligados, um elétron fica disponível como elétron livre, servindo como um portador de carga. Esse tipo de semicondutor extrínseco é chamado de tipo N. 
 
O segundo tipo é o P, e ele se forma quando o material dopante apresenta um elétron de valência a menos que o semicondutor intrínseco. Nessa situação, na ligação entre o dopante e o semicondutor falta um elétron, assim surge uma lacuna (ou buraco, do inglês hole) como portador de carga.

Um diodo é a junção de um semicondutor P com um semicondutor N, e ele é formado quando se deposita dopantes do tipo N sobre um semicondutor extrínseco do tipo P (ou vice e versa), o que gera uma região com dopagem N e uma região com dopagem P juntas em um mesmo cristal semicondutor. Abaixo temos uma representação de uma junção P-N, nela temos lacunas no semicondutor P e elétrons livres no semicondutor N.

Como funciona a junção P-N

Quando a junção P-N é formada, temos na região da junção o deslocamento de elétrons do lado N para o lado P. Esse deslocamento deixa as proximidades da junção no lado P com carga negativa. Após esse deslocamento de elétrons, lado N da junção fica com carga positiva, como mostra a figura abaixo.


Dessa forma,  na região próxima da junção surge um campo elétrico que aponta de N para P, que constitui uma barreira de potencial elétrico. Essa região recebe o nome de região de depleção, e é essa região responsável tanto pelo bloqueio na polarização inversa, quanto pela tensão de polarização direta.

Quando submetemos ao diodo a uma tensão elétrica temos duas situações:
A primeira é quando temos o polo positivo da fonte ligada a região N e o negativo a região P. Nesse caso temos um campo externo de mesma direção ao campo da região de depleção. Nessa configuração, os portadores de carga do semicondutor são atraídos em direção a fonte e, consequentemente, a região de depleção aumenta, não permitindo que a corrente da fonte flua. Nesse caso, dizemos que o diodo esta inversamente polarizado.

A outra situação é quando o polo negativo esta ligado ao semicondutor N e o positivo ao semicondutor P. Assim os campos externo e da região de depleção estão em sentidos opostos, e se o campo elétrico é o suficientemente grande, portadores de carga conseguem vencer a barreira de potencial da camada de depleção. Quando isso ocorre, elétrons e lacunas se recombinam, o que por sua vez libera espaço para que a corrente elétrica da fonte flua livremente.

Como os LEDs emitem luz

Enquanto o diodo está em condução, os elétrons e as lacunas estarão se recombinando, entretanto, para que isso ocorra é necessário que os elétrons saltem da camada de condução para a banda de valência. Para realizar este salto os elétrons precisam perder parte de sua energia. É nesse momento que um LED se diferencia de um diodo convencional. Em um diodo comum a energia é liberada para o cristalino do semicondutor, na forma de calor, ou seja, sem emitir radiação eletromagnética. Porém, em um LED essa energia é liberada na forma de um fóton que é radiado para o ambiente.

A cor da luz emitida pelo LED depende da distância energética entre as bandas de condução e valência do material, isto é, depende da energia perdida pelo elétron. Essa distância varia de acordo com o material ao qual o semicondutor é formado. Alguns exemplos de materiais usados na fabricação de LEDs são o arseneto de gálio, que produzem LEDs infravermelhos e fosfeto de gálio, para LEDs vermelhos, amarelos e verdes.

Tipos de Leds

Atualmente existem diversos tipos de LEDs como os SMD’s, amplamente utilizados em placas de circuito impresso devido ao seu tamanho compacto. Eles podem ser de diversas cores, sendo um modelo bastante comum os RGB endereçáveis, com eles é possível formar uma diversa gama de cores com facilidade e rapidez.

Outro LED comumente encontrado é o infravermelho, usado na maior parte de controles remotos, além de sensores reflexivos como o TCRT5000. Esses LEDs não emitem luz na faixa visível, mas sim na faixa infravermelha, sendo assim usado para a transmissão de sinais em curtas distâncias e de forma direcionada.

A Ryndack Componentes possui uma grande variedade de LEDs em seu catálogo. Por la você também consegue encontrar diversos outros itens para te ajudar em seus projetos. Tá afim de conhecer nossos produtos, então de uma olhadinha no nosso site.

0

Conhecimento
Existem aplicações onde se faz necessário medir a pressão atmosférica local, como por
exemplo em drones e estações meteorológicas. Além disso, caso você saiba a pressão
atmosférica atual, a nível do mar é possível calcular a altitude local com certa precisão.
Por isso hoje trago um artigo sobre a utilização do sensor de pressão atmosférica BMP180 da
Bosch. Faremos interface do mesmo com um microcontrolador ESP32 programado via software
(IDE) do Arduino.



Este pequeno sensor se comunica com qualquer microcontrolador via porta i2c, utilizando
apenas dois fios (SDA e SCL), além de alimentação 3,3V e GND. Ele é capaz de medir
pressões atmosféricas entre 300 e 1100 hPa (hectopascal), o que significa altitudes entre
-500m e +9000m em relação ao nível do mar.

Seu datasheet está neste link [https://cdn-shop.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf]. Ele é alimentado com tensões entre 1,8V e 3,6V, portanto não suporta 5V. A tecnologia de detecção utilizada é piezo-resistiva, garantindo precisão e repetibilidade.

Conexão elétrica/diagrama esquemático

Conforme comentado acima, são necessários apenas quatro fios para comunicar o BMP180
com o ESP32: SDA, SCL, 3V3 e GND. A placa que estou utilizando é baseada no ESP32-C6 e
foi feita por mim mesmo [https://fritzenlab.com.br/fritzenlab-esp32-c6-dev-board/], mas você
pode utilizar qualquer ESP32, ESP8266, Arduino ou Raspberry Pi Pico que tiver disponível.


A montagem em protoboard ficou conforme imagem abaixo, um tanto cheia de fios porém ainda simples.


O código

A beleza do ecossistema Arduíno é que qualquer pessoa ou empresa pode contribuir com
código, assim como qualquer um pode utilizar o que estiver disponível. No nosso caso
utilizaremos uma biblioteca para BMP085/BMP180 desenvolvida pela empresa Adafruit.
Para instalá-la, no software IDE do Arduino vá em “Rascunho > Adicionar biblioteca >
Gerenciar bibliotecas” e digite “BMP085”; instale a biblioteca “Adafruit BMP085 library” da
Adafruit.
Junto à biblioteca vem um exemplo de código, acessível na IDE do Arduino via “Arquivo >
Exemplos > Adafruit BMP085 Library > BMP085Test”. O código completo é visto abaixo.




Observe que a interface com o sensor é feita através de funções, como
bmp.readTemperature(), bmp.readAltitude() e bmp.readSealevelPressure(). Isso facilita
bastante nossa vida, basta chamar a função correta que o valor nos é apresentado.
Apresentamos então os valores no monitor serial do software IDE do Arduino, através de uma
comunicação serial/USB chamada por Serial.println().

O resultado

Conectando-se o ESP32 via cabo USB ao computador e selecionando a porta correta na IDE
do Arduino (Ferramentas > Porta COM), abra o monitor serial (Ferramentas > Monitor Serial ou
Ctrl + Shift + m).
O resultado é visto como na imagem abaixo, mostrando (em Inglês) temperatura, pressão
atmosférica lida, altitude calculada, pressão atmosférica ao nível do mar (calculada) e altitude
real.


Observe que a altitude está mostrando -55.63 metros, o que não representa a realidade do
meu local (Moro em uma cidade a 60 metros acima do nível do mar). Isso tudo porque o código
nos pede para inserir a pressão atmosférica ao nível do mar atual, do momento. Porém esse
valor pode variar e é difícil encontrar valores reais na internet.
Já a medição de temperatura é bem precisa (24,90ºC), tenho outros sensores aqui comigo e o
valor está bem próximo. Observe também que o código faz uma medição completa a cada
500ms (meio segundo), porém este valor pode ser alterado para mais ou para menos,
conforme sua necessidade.
Vídeo do teste do sensor: https://youtu.be/G4F0teGQtgQ


Resultados e discussões

Sensores de pressão atmosférica são muito úteis em sistemas físicos como drones e estações
meteorológicas. São responsáveis por por exemplo calcular altitude baseados na pressão
atmosférica atual a nível do mar.
O sensor BMP180 da Bosch é bem preciso, rápido de ler e fácil de interfacear, ainda mais com
a biblioteca para Arduino feita pela Adafruit. Considere inseri-lo em seus projetos futuros, é
uma mão na roda.
0

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