He configurado mi Arduino UNO con 4 cables de entrada, se conectan al puerto 10, 11, 12, 13, están conectados a mi placa de prueba sin nada más que el cable.
Mi código simplemente sería:
Serial.println(digitalRead(13));
Serial.println(digitalRead(12));
Serial.println(digitalRead(11));
Serial.println(digitalRead(10));
La cuestión es que, después de conectar brevemente un pin a 5V o 3V3, la lectura comenzaría a volverse loca como: 1 0 0 1 0 1 1 1 0 1 0 1 1 0 ¡Sin ningún sentido! Sin tener ningún cable conectado directamente a mi VCC (5V o 3V3), la lectura cambia constantemente, ¡cuando debería ser cero!
¿Mi Arduino está muerto? ¿Cómo puedo arreglar esto?
arduino
floating-pin
Guilherme Garcia da Rosa
fuente
fuente
Respuestas:
Lo que tienes se llama
Floating
pin. Los pines de entrada digital son muy sensibles al cambio y, a menos que se conduzcan positivamente a un estado u otro (alto o bajo), captarán la capacitancia parásita de fuentes cercanas, como paneles, dedos humanos o incluso el aire. Cualquier cable conectado a él actuará como una pequeña antena y hará que cambie el estado de entrada. Y me refiero a cualquier cable, el rastro en la placa, el cable a la placa de pruebas, el pin de la placa de pruebas, incluso el pin de metal del propio circuito integrado.Esto se menciona en la página de referencia de Arduino:
Si nos fijamos en el Tutorial Arduino Digital Pin :
Estas resistencias de tracción débiles fuerzan el estado del pin de entrada a un estado conocido y se sobrescriben fácilmente con voltajes de entrada más fuertes, como una conexión directa a tierra o + 5v.
fuente
pinMode(pin, INPUT_PULLUP)
? Es fácil de recordar y realmente difícil de arruinar.Esto es normal. A menos que una entrada esté conectada a algo, se mostrará ALTA o BAJA o cambiará constantemente. Esto se describe en la página de referencia digitalRead en el sitio web de Arduino.
El pin de entrada se comporta con una pequeña capacitancia, por lo que la conexión breve a 3V3 o 5V cargará la capacitancia. Puede encontrar un efecto similar con un dedo desnudo.
Puede evitar el problema agregando una resistencia de gran valor entre el pin y GND.
Pregúntese por qué espera cero?
fuente