Eu sou novo no arduino. Talvez seja uma pergunta elementar ...
Se eu carregar este programa:
int mval = 0;
void setup() {
Serial.begin(9600);
// set up the LCD's number of columns and rows:
}
void loop() {
mval = analogRead(1);
Serial.println(mval);
delay(1000);
}
Eu recebo um valor que varia entre 300 e 400. Quando acho que deve ser 0, é que não há nada conectado a essa entrada.
Alguma ideia?? É um UNO arduino conectado ao meu laptop via USB
arduino
adc
voltage-measurement
limoragni
fonte
fonte
Respostas:
Você está recebendo algo chamado "entrada flutuante". Quando você pensa sobre isso, um dispositivo ideal para medir a entrada terá uma impedância de entrada muito alta e, portanto, não removerá muita eletricidade do pino.
Então, o que acontece é que elétrons aleatórios flutuam para (ou fora) do pino (por interferência eletromagnética no ambiente ou por contato direto com algo com uma leve carga) e porque ele age como uma conexão de resistência muito alta a terra, essa carga será drenada muito lentamente. Assim, quando você mede, parece que há alguma tensão lá! Em geral, você conecta isso a algum dispositivo que fornece tensão ou coloca um resistor de pull-up ou pull-down e ajusta suas expectativas nesse pino.
Espero que ajude e, se não estiver, tenho certeza de que alguém tem um link para outra pessoa que respondeu a essa pergunta com mais competência (vejo na seção relacionada pelo menos uma pergunta quase idêntica ).
fonte
analogRead
chamada em um pino não utilizado como semente para arandomSeed
função: arduino.cc/hu/Reference/RandomSeedA entrada é "flutuante", porque não há nada conectado para "puxar" a tensão de uma maneira ou de outra.
Isso é perfeitamente normal. Se você conectar um resistor pull-down de alta impedância (digamos 10k) do pino ao terra, ele o interromperá quando nada estiver conectado (embora não haja necessidade real de fazê-lo, pois você não o lerá quando não houver nada) conectado ;-))
fonte