zoukankan      html  css  js  c++  java
  • 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;
    }    

  • 相关阅读:
    C#异常小知识
    Cisco路由器配置学习-ip accounting
    Sublime Text 3预览Markdown
    什么是permit-inside功能
    锐捷双出口
    思科双出口+策略路由+NAT
    github常见操作和常见错误
    网易注册页面知识点
    java,xml等注释删除,正则表达式使用123
    简单多线程是否安全判断
  • 原文地址:https://www.cnblogs.com/taoyao/p/14305389.html
Copyright © 2011-2022 走看看