Arduino按钮实验

一、按钮实验

// 设置引脚
const int buttonPin = 7;
const int ledPin =  13;

int buttonState = 0; // 定义变量,读取状态

void setup() {

  pinMode(ledPin, OUTPUT); // 设定ledPin引脚用来输出

  pinMode(buttonPin, INPUT); // 设定buttonPin引脚用来输入
}

void loop() {

  buttonState = digitalRead(buttonPin); // 读取buttonPin引脚状态

  if (buttonState == HIGH) {

    digitalWrite(ledPin, HIGH); // 打开LED灯(高电压)
  } else {

    digitalWrite(ledPin, LOW); // 关闭LED灯(低电压)
  }
}

二、从串口读取数字信号

int pushButton = 7;

void setup() {
  //以每秒9600bit初始化串行通信
  Serial.begin(9600);

  pinMode(pushButton, INPUT);
}

void loop() {

  int buttonState = digitalRead(pushButton);
  
  // 输出按钮状态
  Serial.println(buttonState);
  delay(100);
}

 

三、按钮计数器(去抖)

int pushButton = 7;
// 记录上次引脚输入值
int beforeButtonState = 0;
// 记录随按钮点击的递增数据
int num = 0;

void setup() {

    Serial.begin(9600);

    pinMode(pushButton, INPUT);
}

void loop() {

    int buttonState = digitalRead(pushButton);

    // 检测按下事件,按前引脚输入为0,按后引脚输入为1
    if(buttonState==1 and beforeButtonState==0){

        num=num+1;

        Serial.println(num);
    }
    // 按钮仍未松开,延时20毫秒
    if(buttonState==1){
        
        delay(20);
    }
    
    // 记录本次按钮引脚输入,便于下次按钮是否点击检测
    beforeButtonState = buttonState;
}    

原文地址:https://www.cnblogs.com/taoyao/p/14305389.html