Arduino中的数字读取引脚

时间:2015-10-07 17:47:30

标签: arduino arduino-uno arduino-ide

我使用以下代码数字读取引脚输入,看它是高还是低。

问题是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 个答案:

答案 0 :(得分:1)

您必须使用下拉(3)或上拉(4)电阻: enter image description here

使用内部上拉电阻,如下所示:

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

也应该这样做。