Soy nuevo en Arduino. Tal vez es una pregunta elemental ...
Si cargo 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);
}
Obtengo un valor que varía entre 300 y 400. Cuando creo que tiene que ser 0, ya que no hay nada conectado a esa entrada.
¿¿Algunas ideas?? Es un arduino UNO conectado a mi computadora portátil a través de USB
arduino
adc
voltage-measurement
limoragni
fuente
fuente
Respuestas:
Estás obteniendo algo llamado "entrada flotante". Cuando lo piensa, un dispositivo ideal para medir la entrada tendrá una impedancia de entrada muy alta y, por lo tanto, no eliminará mucha electricidad del pin.
Entonces, lo que sucede es que los electrones aleatorios flotan en (o salen) del pin (ya sea por interferencia electromagnética en el medio ambiente o por contacto directo con algo con una ligera carga), y porque actúa como una conexión de resistencia muy alta a tierra, esta carga se drenará muy lentamente. Por lo tanto, cuando va a medirlo, ¡parece que hay algo de voltaje allí! En general, conecta esto a algún dispositivo que proporciona un voltaje, o coloca una resistencia pull-up o pull-down y ajusta sus expectativas en ese pin.
Espero que eso ayude y, si no, estoy seguro de que alguien tiene un enlace con otra persona que ha respondido esta pregunta de manera más competente (veo en la sección relacionada al menos una pregunta casi idéntica ).
fuente
analogRead
llamada en un pin no utilizado como la semilla de larandomSeed
función: arduino.cc/hu/Reference/RandomSeedLa entrada está "flotando", porque no hay nada conectado para "tirar" del voltaje de una forma u otra.
Esto es perfectamente normal. Si conecta una resistencia pull-down de alta impedancia (digamos 10k) desde el pin a tierra, dejará de hacerlo cuando no hay nada conectado (aunque no hay necesidad real de hacerlo, ya que no lo leerá cuando no hay nada) conectado ;-))
fuente