- Componentes necessários:
- Diagrama de circuito:
- Arduino Uno:
- LCD 16x2:
- Conceito de código de cores de resistência:
- Calculando a resistência usando o medidor de Ohm Arduino:
- Explicação do código:
Achamos difícil ler códigos de cores em resistores para encontrar sua resistência. Para superar a dificuldade de encontrar o valor da resistência, vamos construir um medidor de Ohm simples usando o Arduino. O princípio básico por trás deste projeto é uma Rede Divisora de Tensão. O valor da resistência desconhecida é exibido no display LCD 16 * 2. Este projeto também serve como interface de display LCD 16 * 2 com o Arduino.
Componentes necessários:
- Arduino Uno
- Visor LCD 16 * 2
- Potenciômetro (1 quilo Ohm)
- Resistores
- Tábua de pão
- Fios de ligação
Diagrama de circuito:
Arduino Uno:
Arduino Uno é uma placa de microcontrolador de código aberto baseada no microcontrolador ATmega328p. Ele tem 14 pinos digitais (dos quais 6 pinos podem ser usados como saídas PWM), 6 entradas analógicas, reguladores de tensão integrados etc. O Arduino Uno tem 32KB de memória flash, 2KB de SRAM e 1KB de EEPROM. Ele opera na frequência de clock de 16MHz. O Arduino Uno suporta comunicação Serial, I2C, SPI para comunicação com outros dispositivos. A tabela abaixo mostra as especificações técnicas do Arduino Uno.
Microcontrolador | ATmega328p |
Tensão operacional | 5V |
Tensão de entrada | 7-12V (recomendado) |
Pinos de E / S digital | 14 |
Pinos analógicos | 6 |
Memória flash | 32 KB |
SRAM | 2 KB |
EEPROM | 1 KB |
Velocidade do relógio |
16MHz |
LCD 16x2:
16 * 2 LCD é um display amplamente utilizado para aplicações embarcadas. Aqui está uma breve explicação sobre os pinos e o funcionamento do display LCD 16 * 2. Existem dois registros muito importantes dentro do LCD. Eles são registro de dados e registro de comando. O registro de comando é usado para enviar comandos como exibição clara, cursor em casa, etc., o registro de dados é usado para enviar dados que devem ser exibidos no LCD 16 * 2. A tabela abaixo mostra a descrição do pino de 16 * 2 lcd.
PIN |
Símbolo |
I / O |
Descrição |
1 |
Vss |
- |
Terra |
2 |
Vdd |
- |
Fonte de alimentação + 5V |
3 |
Vee |
- |
Fonte de alimentação para controlar o contraste |
4 |
RS |
Eu |
RS = 0 para registro de comando, RS = 1 para registro de dados |
5 |
RW |
Eu |
R / W = 0 para gravação, R / W = 1 para leitura |
6 |
E |
I / O |
Habilitar |
7 |
D0 |
I / O |
Barramento de dados de 8 bits (LSB) |
8 |
D1 |
I / O |
Barramento de dados de 8 bits |
9 |
D2 |
I / O |
Barramento de dados de 8 bits |
10 |
D3 |
I / O |
Barramento de dados de 8 bits |
11 |
D4 |
I / O |
Barramento de dados de 8 bits |
12 |
D5 |
I / O |
Barramento de dados de 8 bits |
13 |
D6 |
I / O |
Barramento de dados de 8 bits |
14 |
D7 |
I / O |
Barramento de dados de 8 bits (MSB) |
15 |
UMA |
- |
+ 5V para luz de fundo |
16 |
K |
- |
Terra |
Conceito de código de cores de resistência:
Para identificar o valor da resistência, podemos usar a fórmula abaixo.
R = {(AB * 10 c) Ω ± T%}
Onde
A = Valor da cor na primeira faixa.
B = Valor da cor na segunda faixa.
C = Valor da cor na terceira faixa.
T = Valor da cor na quarta faixa.
A tabela abaixo mostra o código de cores dos resistores.
Cor |
Valor numérico da cor |
Fator de multiplicação (10 c) |
Valor de tolerância (T) |
Preto |
0 |
10 0 |
- |
Castanho |
1 |
10 1 |
± 1% |
Vermelho |
2 |
10 2 |
± 2% |
laranja |
3 |
10 3 |
- |
Amarelo |
4 |
10 4 |
- |
Verde |
5 |
10 5 |
- |
Azul |
6 |
10 6 |
- |
Tolet |
7 |
10 7 |
- |
cinzento |
8 |
10 8 |
- |
Branco |
9 |
10 9 |
- |
Ouro |
- |
10 -1 |
± 5% |
Prata |
- |
10 -2 |
± 10% |
Sem banda |
- |
- |
± 20% |
Por exemplo, se os códigos de cores são Marrom - Verde - Vermelho - Prata, o valor da resistência é calculado como, Marrom = 1 Verde = 5 Vermelho = 2 Prata = ± 10%
Das primeiras três bandas, R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
A quarta banda indica tolerância de ± 10%
10% de 1500 = 150 Para + 10 por cento, o valor é 1500 + 150 = 1650Ω Para - 10 por cento, o valor é 1500 -150 = 1350Ω
Portanto, o valor real da resistência pode estar em qualquer lugar entre 1350Ω a 1650Ω.
Para torná-lo mais conveniente, aqui está a Calculadora de código de cores de resistência, onde você só precisa inserir a cor dos anéis no resistor e obterá o valor da resistência.
Calculando a resistência usando o medidor de Ohm Arduino:
O funcionamento deste medidor de resistência é muito simples e pode ser explicado usando uma rede divisora de tensão simples mostrada abaixo.
Da rede divisora de tensão dos resistores R1 e R2, Vout = Vin * R2 / (R1 + R2)
A partir da equação acima, podemos deduzir o valor de R2 como
R2 = Vout * R1 / (Vin - Vout)
Onde R1 = resistência conhecida
R2 = resistência desconhecida
Vin = tensão produzida no pino 5V do Arduino
Vout = tensão em R2 em relação ao terra.
Nota: o valor da resistência conhecida (R1) escolhido é 3,3KΩ, mas os usuários devem substituí-lo pelo valor de resistência do resistor que escolheram.
Portanto, se obtivermos o valor da tensão na resistência desconhecida (Vout), podemos calcular facilmente a resistência desconhecida R2. Aqui, lemos o valor de tensão Vout usando o pino analógico A0 (consulte o diagrama do circuito) e convertemos esses valores digitais (0 -1023) em tensão, conforme explicado no Código abaixo.
Se o valor da resistência conhecida for muito maior ou menor do que a resistência desconhecida, o erro será maior. Portanto, é aconselhável manter o valor de resistência conhecido mais próximo da resistência desconhecida.
Explicação do código:
O programa Arduino completo e o vídeo de demonstração para este projeto são fornecidos no final deste projeto. O código é dividido em pequenos pedaços significativos e explicado a seguir.
Nesta parte do código, vamos definir os pinos nos quais o display LCD 16 * 2 está conectado ao Arduino. O pino RS de 16 * 2 lcd está conectado ao pino digital 2 do Arduino. O pino de ativação de 16 * 2 lcd está conectado ao pino digital 3 do Arduino. Os pinos de dados (D4-D7) de 16 * 2 lcd estão conectados aos pinos digitais 4,5,6,7 do Arduino.
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
Nesta parte do código, estamos definindo algumas variáveis que são usadas no programa. Vin é a tensão fornecida pelo pino 5V do Arduino. Vout é a tensão no resistor R2 em relação ao aterramento.
R1 é o valor da resistência conhecida. R2 é o valor da resistência desconhecida.
int Vin = 5; // tensão no pino de 5 V do Arduino float Vout = 0; // tensão no pino A0 do Arduino float R1 = 3300; // valor da resistência conhecida float R2 = 0; // valor de resistência desconhecida
Nesta parte do código, vamos inicializar o display LCD 16 * 2. Os comandos são dados ao display LCD 16 * 2 para diferentes configurações, como limpar a tela, exibir no cursor piscando etc.
lcd.begin (16,2);
Nesta parte do código, a tensão analógica no resistor R2 (pino A0) é convertida em valor digital (0 a 1023) e armazenada em uma variável.
a2d_data = analogRead (A0);
Nesta parte do código, o valor digital (0 a 1023) é convertido em tensão para cálculos posteriores.
buffer = a2d_data * Vin; Vout = (buffer) /1024.0;
O Arduino Uno ADC tem resolução de 10 bits (portanto, os valores inteiros de 0 - 2 ^ 10 = 1024 valores). Isso significa que ele mapeará tensões de entrada entre 0 e 5 volts em valores inteiros entre 0 e 1023. Portanto, se multiplicarmos anlogValue de entrada para (5/1024), obteremos o valor digital da tensão de entrada. Aprenda aqui como usar a entrada ADC no Arduino.
Nesta parte do código, o valor real da resistência desconhecida é calculado usando o procedimento explicado acima.
buffer = Vout / (Vin-Vout); R2 = R1 * tampão;
Nesta parte do código, o valor da resistência desconhecida é impresso no display LCD 16 * 2.
lcd.setCursor (4,0); lcd.print ("ohmímetro"); lcd.setCursor (0,1); lcd.print ("R (ohm) ="); lcd.print (R2);
Podemos calcular facilmente a resistência de um resistor desconhecido usando o Arduino. Verifique também:
- Medidor de frequência Arduino
- Medidor de capacitância Arduino