Цифровой считыватель в Arduino

Я использовал следующий код для цифрового считывания ввода с пина и проверки, является ли он высоким или низким.

Проблема в том, что Arduino дает неправильные значения. Это дает несколько раз 0 или некоторое время высоко, хотя штифт всегда низок.

Он также дает низкий или 0 в качестве ответа, хотя пин высокий, может ли кто-нибудь помочь мне в этом?

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  delay(1000);
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(1000); // delay in between reads for stability
}

1 ответ

Вы должны использовать понижающий (3) или подтягивающий (4) резистор:

Используйте внутренний подтягивающий резистор следующим образом:

pinMode(pin, INPUT);           // set pin to input
digitalWrite(pin, HIGH);       // activate internal pull-up resistor

это должно сделать это также.

Другие вопросы по тегам