Oi pessoal, tudo bem?
Então, nesse post montaremos um ohmímetro com o Arduino.
Em termos práticos, um ohmímetro é um instrumento capaz de medir o valor da resistência de um resistor. (para saber mais sobre resistores clique aqui).
Então vamos lá:
Embasamento Teórico
Onde I é a corrente no circuito, Vx a tensão a ser medida pelo Arduino, +5V a tensão constante fornecida pelo Arduino, X o valor da resistência a ser encontrada e R uma resistência conhecida previamente (resistência de referência).
Aplicando a lei de Kirchoff ao resistor R, temos:
Aplicando a Lei de Ohm no resistor desconhecido X, temos:
Substituindo (1) em (2), temos:
Loo, basta termos R e V, e medirmos Vx com o Arduino, para que encontremos o valor do resistor.
No nosso caso, temos que V = 5 Volts.
Material Necessário
Vamos à liste de materiais necessários:
- Resistores diversos (sendo que 1 deles será o resistor de referência):
- Arduino MEGA R3:
- Jumpers Macho/Macho:
- Protoboard:
Metodologia
- Escolha um resistor com valor conhecido para ser o seu resistor R de referência.
- Coloque o resistor a ser calculada a resistência na posição do resistor X da figura.
- Implemente o seguinte código no IDE e carregue-o no seu Arduino:
/* Programa Ohmimetro Basico com Arduino
Blog Mecatronizando Ideias
Qualquer copia do codigo deve ser feita com devida atribuicao de autoria do mesmo
05/12/2014*/
char pino_leitura = 0; // Pino para a leitura dos valores da tensão Vx \\ Pode ser suprimida essa linha sem problemas
int leitura = 0; // Variavel para armazenar o valor lido pela entrada analógica (valor entre 0 e 1023)
float Vx = 0.0; // Variavel para calcular o valor lido pela entrada analóica em volts (entre 0 e 5 volts)
float R = 0.0; // Variavel para receber o valor do resistor de referencia a ser dado pelo usuario via serial monitor
float resultado = 0.0; // Variavel para calcular o valor do resistor utilizando a formula (3) do embasamento teorico
void setup(){
Serial.begin(9600); // Configuraçao do serial monitor
pinMode(pino_leitura, INPUT); // Configuraçao do pino de leitura como entrada de dados \\ também pode ser suprimida essa linha
}
void loop(){
leitura = analogRead(pino_leitura); // Variavel leitura recebe o valor lido pela porta serial A0
Vx = (5.0*leitura)/1023.0; /* Os valores mapeados pela entrada analogica estabelecem a seguinte relacao (regra de tres simples):
5 Volts ---------- valor = 1023
Vx (Volts) ---------- valor = leitura (valor lido pela porta A0)*/
if(Serial.available()>0){ // Se existir dados na porta serial a serem transmitidos, então executa o if
R = float(Serial.parseInt()); // R recebe o próximo valor inteiro a ser enviado pela serial
resultado = ((5*R)/Vx) - R; // Calculo do resultado utilizando a formula (3)
Serial.print("O valor da Resistencia Eletrica e:"); // Imprime no serial monitor a frase entre aspas
Serial.println(resultado); // Imprime no serial monitor o resultado calculado
Serial.flush();
}
}
- Execute o programa e abra o serial monitor. Ao abri-lo, você deverá digitar o valor de R para que seja calculado o valor do resistor X. Ou seja, no início o serial monitor estará em branco, sem nada, Ao digitar o valor de R, você receberá o valor do resistor desconhecido.
Resultados
Primeiramente devemos escolher o nosso resistor de referência. No meu caso, utilizei um de 10000 Ohms:
Após isso, devemos colocar o resistor desconhecido na posição do resistor X anterior e executar o programa no Arduino. Tendo executado o programa, vamos abrir o serial monitor. Inicialmente ele estará assim:
Agora colocaremos o valor do resistor de referencia no campo adequado (no meu caso será 10000 ohms). Lembre-se de colocar o valor completo e somente valores inteiros.
Após você digitar enter ou clicar em ENVIAR, retornará o resultado (o valor do resistor desconhecido).
1º Teste
No nosso primeiro teste utilizarei um resistor com o mesmo valor do resistor de referência. Ou seja:
Como resultado, obtive:
2º Teste
Agora vamos utilizar o seguinte resistor como o resistor X:
Como resultado, obtive:
3º Teste
Desta vez utilizaremos o seguinte resistor:
Como resultado, obtive:
4º Teste
Por fim, utilizaremos o seguinte resistor:
Como resultado, obtive:
Considerações Finais
Com esses resultados pudemos constatar que, quando se tem um resistor conhecido e outros resistores com valores desconhecidos, esse método [básico] se mostra bem eficaz.
Vale ressaltar que os erros em relação ao valor obtido pelo código de cores, principalmente para valores de resistência mais baixos, se devem à tolerância dos resistores (incluindo a tolerância do resistor de referência, é claro).
Para se ter resultados mais precisos pode-se colocar um resistor de precisão (com tolerâncias menores) como sendo o resistor de referência.
Além disso, pode-se utilizar um circuito de corrente constante (em outras palavras, uma "fonte de corrente"). Sabendo a corrente fornecida e medindo a diferença de potencial no resistor desconhecido podemos ter o valor da resistência em questão.
Basicamente é isso, espero que tenham gostado e que tenha sido útil para cada um de vocês. Qualquer dúvida comente que eu respondo, se possível.
Até a próxima o/
Hola, muy buena tu explicación.
ResponderExcluirte consulto como debería hacer para medir resistencias de 0.15, 0.22. 0.33
Saludos
Gostei muito de seu trabalho, parabéns, vou testar.
ResponderExcluirPode me dizer se funciona no Arduino UNO?
E o monitor serial, como aciono? não entendi. meu e-mail é eng.edsonferraz@gmail.com
Bom dia, eu acredito que funcione no arduino UNO sim! E para ativar o monitor serial você pode utilizar o comando Ctrl + Shift + M ou abrir a aba " Ferramentas" no canto superior direito, o monitor serial é o quarto item na versão atual do software.
ExcluirAbraço!
Vou deixar um link, por favor tenha paciência para ver, pois tá uma bagunça e não sei que parte está. Vou te mandar um e-mail pra gente manter contato. Tenho uns projetos. Consegui fazer um ohmímetro com boa precisão de 0 a 6k na Uno. Ainda preciso aprimorar, quem sabe a gente não faz pra esse Arduino Day 2018? Participo de alguns grupos.
ResponderExcluirhttps://youtu.be/6DhdF3dZqnI
Se inscrevam lá, assim que ser vou regravar tudo.
Pode responder por aqui que estou acompanhando está conversa.
renatomportugal@gmail.com
Ola. Eu vou monitorar um tanque de combustivel.
ResponderExcluirO valor dele vazio é 129 a 131 OMS, e cheio de 9 a 11.
Ja vou pegar os fios de sinal e deixar staticos.
Como eu poderia iniciar o programa?
Não iria inserir um valor pois não sei a posição do sensor.
pode me ajudar?
Vamos falar em algoritmo primeiro. Comece a desenhar o diagrama de blocos. Veja sobre a matéria "Controle de Processos"... Primeiro deve fazer algumas perguntas... 1. Qual a primeira coisa que tem que fazer? (Ler o sensor antes de ligar a bomba? Fazer algum tipo de teste?). Então comece com os if's.... if (nivel > 130){ LIGA_BOMBA}...
ResponderExcluirComece pelo ALGORITMO. Nunca pelo programa.
Vai nos informando...
muito bom
ResponderExcluirMuito bom. Tenho uma dúvida, qual a explicação de ter feito a regra de 3 com o sinal Vx?
ResponderExcluirObrigado
my videos on YouTube
ResponderExcluirWhat is YouTube? youtube. youtube. youtube to mp3 converter mac youtube. youtube. YouTube. youtube. youtube. youtube. youtube. youtube. youtube. youtube. youtube. youtube. youtube. youtube.youtube.youtube.youtube. youtube.youtube.youtube.youtube.youtube.