Olá Senhores,

após quebrar a cabeça achando que era meu circuito, verifiquei um comportamento anormal na minha placa NANO.

Estou usando 6 potenciômetros de 5K nas entradas A1 a A6.

Ele funciona somente as três primeiras. Achei que fosse circuito e desconectei A1, A2 e A3 e desta forma A4, A5 e A5 funcionaram.

Tentei utilizar alimentação externa achando que fosse problema de alimentação via USB, mas sem sucesso.

Não vejo erro no código, ou tem algo a ser fazer na programação ou no circuito.

Resumindo funciona 3 de 6. Todas juntos não rola!

Em anexo o code de testes.

Obrigado,

Exibições: 115

Anexos

Responder esta

Respostas a este tópico

Veja com o multimetro qual a tensão em cada um dos ports. Um port com tensão superior ao limite pode gerar problemas com consequencias imprevisiveis.

Quando vc fala "não funciona" o que quer dizer ? Que le 0, que lê 1023, qual o valor que vc lê e qual esperava ?

Na verdade vc não tem n Ads e sim apenas um com uma chave comutadora antes dele. Logo que vc faz a comutação (escolhe um canal diferente do usado anteriormente) pode ocorrer um erro de leitura. A principio a biblioteca já se vira para resolver esse problema, mas tentaria ler umas 3 vezes cada entrada. Se resolver vc sabe que era isso.

Eduardo,

Medições de acordo. Variando de 0 a 4,7.
Quando eu ligo tudo o canal 4 e 5 fica em 0 não oscilando. O canal 6 horas indica 300 e horas e horas 70 e não oscila.

Vou fazer o teste de tirar uma média das leituras assim que estiver em casa.
Eu utilizo a função Map e espero valores de 0-300
Farei outro teste se não é a função map que esta sacaneando.
Obrigado

Eduardo,

teste 1: individualizei as leituras e após apliquei o comando map:

resultado:

quando todos estão em "0"

A1=0

A2=0

A3=0

A4=0

A5=0

A6=300

subindo todos ao máximo em ordem crescente (A1...A6)

A1=300

A2=300

A3=300

A4=0

A5=300

A6=300 (esse sempre trava em 300)

teste 2: removendo função map deixando valores de 0-1023

A1= 0 a 1020

A2= 0 a 1023

A3= 0 a 1020

A4= 0 sempre

A5= 0 a 1023

A6= 1023 sempre

teste 3: fazer MÉDIA de 250 leituras.

mesmo coisa, zera A4 e A6 travado

será que minha placa esta "encapetada"

obrigado

Boa tarde TO.

Só para um teste, experimente colocar um delay de 15 após a leitura de cada uma entrada analogica.

Ex: delay (15);  , e depois conta o resultad do teste pra gente.

RV

RV,

com esse teste manteve os mesmos resultados.

Ta esquisito. Se vc ligou potenciometros, pq ele marca só minimo ou máximo ?

Esse pino que indica sempre maximo (A6), medindo no pino da placa, se possivel no pino do microcontrolador, quanto dá ?

Esse que fica zero (A4), idem, quanto dá ?

Tente fazer:

AI4 = map(analogRead(A4), 0 , 1023, 0, 300); //temperatura de 0-60º

AI4 = map(analogRead(A4), 0 , 1023, 0, 300); //temperatura de 0-60º

AI4 = map(analogRead(A4), 0 , 1023, 0, 300); //temperatura de 0-60º

Sim, repetir 3x a mesma linha. Só pra saber se muda o resultado. Isso elimina a possibilidade da chave que comuta a entrada estar demorando. Se for depois se faz de modo mais polido.

Eduardo,

teste de três leituras do canal 4 não mudou os resultados.

fiz mais uns testes, joguei as leituras dentro de uma função, coloquei o delay sugerido pelo RV e tudo junto resultou nisso:

potenciômetro no mínimo:

leitura tela | multimetro

A1=0 | 0V

A2=0 | 0V

A3=0 | 0V

A4=0 | 0V

A5=0 | 0V

A6=300 | 5V

potenciômetro no máximo:

leitura tela | multimetro

A1=300 | 5V

A2=300 | 5V

A3=300 | 5V

A4=0 | 0V

A5=300 | 5V

A6=300 | 5V  esse ja estava, nada mudou

Resumindo ele trava A4 em 0v e A6 em 5V

Estou mandando a foto da ligação

Bom dia TO,

Para fins de teste, inverta todos fios que chegam nos analogicos no arduino. 

Assim. Ligue o que está em A1 ligue em A6, o que está em A2 em A5 e assim por diante, e conte o

resultado pra gente. Mas mantenha a programação.

RV

Rui,

farei esse teste na sequencia. Agora terei que dar uma atenção para a escrita do TCC.

Obrigado,

Boa tarde, não analisei todo o código.

Um chute - aumente o Buffer para 128 .

char buff [64];

Olá José,

já fiz isso ontem e não modificou nada.

obrigado

Ueh, agora que vi, parece que faltou vc definir os pinos como entrada.

pinMode(A1, INPUT); ...

Ref:

https://www.arduino.cc/reference/en/language/functions/digital-io/p...

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