Pessoal,

Estou fazendo alguns testes que usa as entradas analógicas do Arduino, porém, nestes testes, o valor recebido pelas portas A0 a A5 fica sempre em 980 quando eu coloco 5 V nela ou 67 quando eu aterro a porta. Mesmo se eu entrar com 5V na porta AREF, estes valores não se alteram significativamente. Isso se deve à tensão menor  que 5V que a porta USB está fornecendo, já que não estou usando uma fonte externa. Pergunto:

- Como fazer para estabilizar essas saídas para 0 e 1023, mesmo quando a tensão de alimentação do arduino esteja abaixo de 5V?

Agradeço qualquer ajuda.

Zé Roberto.  

Exibições: 61

Responder esta

Respostas a este tópico

Bom dia J2R,

Qual valor da voltagem que você está lendo da sua fonte?

RV

Nos testes, estou "jumpeando" a porta analogica ao 5V do Arduino, onde recebo 980 na porta. Ai "jampeio" o GND do arduino e recebo 67. A tensão fornecida pela USB para alimentar o Arduino é de 4,35 V.

Zé Roberto 

Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch.

RV

Rui, bom dia.

É um teste simples de leitura da porta analogica. Quando eu coloco a porta no GND do arduino ela deveria mostrar o valor 0 e quando eu a coloco no 5V ela deveria mostrar o valor 1023 na serial. Isso não está ocorrendo. Seria minha placa com defeito?

Já descobri, desculpe... É meu Uno que está com pau. Coloquei na placa do Mega e funcionou perfeito. Ainda bem...

Segue arquivo anexado.

Anexos

Bom dia J2R, 

inclua esta linha na primeira linha do setup(), e teste, depois conta pra gente o resultado.

   pinMode(A0,INPUT);

RV

Ao fazer isto eu estarei declarando a entrada analógica como uma entrada digital. Ou não?

Bom dia HS,

Se declarar pinMode(A0,OUTPUT);, com certeza estará definido como saída digital, 

mas como INPUT é uma dúvida, mas na minha visão, se assim não fizer , os circuitos internos

do ucontrolador poderão estar impressívelmente em qq estado, IN ou OUT.

Estes circuitos,  IN/OUT,  pelo meu parco conhecimento do atmega, são " tristate."

Mas vou ver se descubro esta resposta no datasheet dos atmegas.

RV

Olá RV,,

Realmente não tinha me atentado a isto, declarar um pino analógico como saída digital utilizando OUTPUT.

Achei uma leitura complementar aqui:

https://www.arduino.cc/en/Tutorial/AnalogInputPins

Ao rodapé tem uma informação importante a respeito de erros de leitura nas entradas analógicas:

"The ATmega datasheet also cautions against switching analog pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system. It may be desirable, after manipulating analog pins (in digital mode), to add a short delay before using analogRead() to read other analog pins."

Boa tarde José Roberto, 

Sugestões para medições mais precisas do ADC do Arduino:

  • A tensão do pino AREF é a referência do ADC - use 5,0 V e coloque um capacitor de 10uF em relação ao terra,
  • Permita um tempo de no mínimo de 20 uS entre as medições (é o tempo gasto para o  ADC fazer as medidas),
  • Se a tensão de leitura for CC, use um capacitor de 10nF entre a entrada AX e o terra. 
  • aterre os outros pinos do ADC que não forem usados (com fio conectado ao terra ou configurando resistor Pulldown )

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço