当你按下按键的时候会接通电路的两点。这个例子是当你按下按键的时候点亮连接在12号脚上的LED。
/* Button 按下连结在15号脚的按键之后,让LED亮灭 */ const int buttonPin = 15; //按键脚 const int ledPin = 2; // LED脚 // 变量: int buttonState = 0; // 按键状态的变量 void setup() { // 初始化LED作为输出: pinMode(ledPin, OUTPUT); // 初始化按键作为输入: pinMode(buttonPin, INPUT); } void loop(){ // 读取按键值: buttonState = digitalRead(buttonPin); // 检查按键是否被按下. //如果是 buttonState就为high: if (buttonState == HIGH) { // 点亮LED: digitalWrite(ledPin, HIGH); } else { // 熄灭LED: digitalWrite(ledPin, LOW); } }
连接三根线到控制器,前两根红黑线,连接到面包板的长直端,提供5V电压和GND。第三根线连到数字口2到按键。同样的按键一端接下拉电阻(10K欧姆)到GND,按键另一个脚连接到5V。
当按键没按下去,也就是断开的时候,是连接到GND的,我们读取到LOW,当按下去,按键两个脚之间接通,进而连接到5V,控制器就读取到5V。
你也可以反着来,用上拉电阻保持输入端HIGH,按下后LOW。
如果你断开数字脚的连接,LED将会无规律闪烁,因为输入端是悬空着的,会随机返回HIGH或LOW,所以需要在电路里加了上拉电阻或者下拉电阻。
/* Button 按下连结在2号脚的按键之后,让LED亮灭 */ const int buttonPin = 2; //按键脚 const int ledPin = 13; // LED脚 // 变量: int buttonState = 0; // 按键状态的变量 void setup() { // 初始化LED作为输出: pinMode(ledPin, OUTPUT); // 初始化按键作为输入: pinMode(buttonPin, INPUT); } void loop(){ // 读取按键值: buttonState = digitalRead(buttonPin); // 检查按键是否被按下. //如果是 buttonState就为high: if (buttonState == HIGH) { // 点亮LED: digitalWrite(ledPin, HIGH); } else { // 熄灭LED: digitalWrite(ledPin, LOW); } }