(Arduino Uno) Entrada incorrecta en el Pin 2 aunque no esté realmente conectada

1

Soy nuevo en Arduino y tengo el siguiente problema:

Intenté controlar un servo con dos botones (izquierda, derecha) y funcionó perfectamente. Pero hoy intenté hacer lo mismo pero con algunos comentarios LED adicionales. (si va a la izquierda, LED izquierdo. Si está a la derecha, LED derecho)

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

Desconecté el cable, pasando del pin (Arduino) al pinboard. Pero sigue ocurriendo lo mismo. (un cable simple sin nada conectado al Arduino y me dice que presiono el botón?)

Desconecté los LED, el servo y el botón derecho y escribí un programa para decirme si el botón está presionado (1) o no (0). Así que puedo ver qué está pasando.

int pushButton = 2;

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

Me está mostrando exactamente lo mismo que el LED me mostró. 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)

Utilicé 330 ohmios para el LED y 10K ohmios para los botones. Todo está conectado a la 5V.

El Arduino UNO está conectado a través de USB a mi computadora portátil y a un 9V adicional para el Servo.

simular este circuito : esquema creado usando CircuitLab

    
pregunta progger

1 respuesta

1

Debido a los pull-ups internos (y los pull-ups explícitos en su esquema), 1 significa no presionado y un 0 de atar la entrada a tierra a través de un botón significa presionado . Tu lógica está invertida.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas