1 votos

(Arduino Uno) Entrada errónea en el Pin 2 aunque no esté realmente conectado

Soy nuevo en Arduino y tengo el siguiente problema:

He probado a controlar un servo con dos botones (izquierda, derecha) y ha funcionado perfectamente. Pero hoy he intentado hacer lo mismo pero con algún LED adicional de retroalimentación. (si va a la izquierda, LED izquierdo. Si va a la derecha, LED derecho)

He conectado todo como debe ser, pero ahora cada vez que enciendo la placa el LED izquierdo se enciende y apaga muy rápidamente y el servo se va hacia la izquierda. (No estoy presionando nada)

He desconectado el cable que va del pin(Arduino) a la placa. Pero sigue pasando lo mismo. (un simple cable sin nada en él conectado al Arduino y me dice que pulse el botón ?)

Desconecté los LEDs, el servo y el botón derecho y escribí un programa que me dijera si el botón está pulsado(1) o no(0). Así puedo ver lo que pasa.

int pushButton = 2;

void setup() {
  Serial.begin(9600);
  pinMode(pushButton, INPUT);
}
void loop() {
  int buttonState = digitalRead(pushButton);
  Serial.println(buttonState);
  delay(5);
}

Me muestra exactamente lo mismo que me mostró el LED. Como si presionara el botón muy rápidamente varias veces por segundo.

Botón izquierdo = Pin2, Botón derecho = Pin3, LED izquierdo = Pin4, LED derecho = Pin5, Servo = Pin13. (todo digital por supuesto)

Usé 330 Ohms para el LED y 10K Ohm para los botones. Todo está conectado a los 5V.

El Arduino UNO está conectado por USB a mi portátil y a un 9V adicional para el servo.

schematic

simular este circuito - Esquema creado con CircuitLab

1voto

chrisbunney Puntos 228

Debido a los pull-ups internos (y a los pull-ups explícitos en tu esquema), 1 significa sin empujar y un 0 de atar la entrada a tierra a través de un botón significa empujado . Su lógica es inversa.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X