zoukankan      html  css  js  c++  java
  • 3. 序列埠的輸出以及按鈕消抖

    序列埠的輸出以及按鈕消抖

    0. 一段簡短的廢話:

    由於我的電腦重置之後很多之前使用的軟件都不見了,包括用來畫圖的軟件,所以以後我不一定會提供電路圖.

    1. 上一期的答案:

     1 /*
     2  * 使用按鈕控制LED燈的交替閃爍
     3  */
     4 
     5 int buttonState = 0;
     6 
     7 void setup() {
     8   // 定義11,12腳為輸出,控制LED的亮滅
     9   pinMode(11, OUTPUT);
    10   pinMode(12, OUTPUT);
    11   // 定義7腳為輸入,判斷按鈕的狀態
    12   pinMode(7, INPUT);
    13 }
    14 
    15 void loop() {
    16   // 獲取按鈕的狀態  
    17   buttonState = digitalRead(7);
    18 
    19   if(buttonState == HIGH) {
    20     // 低電平,11腳的燈熄滅,12腳的燈亮起
    21     digitalWrite(11, LOW);
    22     digitalWrite(12, HIGH);
    23   } else {
    24     // 高電平,12腳的燈熄滅,11腳的燈亮起
    25     digitalWrite(12, LOW);
    26     digitalWrite(11, HIGH);
    27   }
    28 }

    帶我我放在這個地方,儘管注釋很詳細,希望大家自己多動手和思考.

    2. 序列埠的輸出

    序列埠的輸出講白了就是指由Arduino通過串口發送消息給電腦所以我們今天要做的就是記錄一個按鈕被按下的次數(按下,鬆開為一次,按下不放不計數).

    • 代碼展示:
      • 簡要說明:
        • 13行的9600通信速度可以使用其他的,但是一般都是使用9600
        • 20行中與操作使用的是&&,除了&&你還可以使用and.同理||可以使用or
        • 23行加一操作使用的是自加一操作++,你也可以使用count += 1,或者count = count +1;

     

    /*
      序列埠的輸出(向電腦傳輸數據)
      統計按鈕的按下次數
    */
    
    // 按鈕上一次的狀態
    int beforState = 0;
    // 按鈕按下的次數
    int count = 0;
    
    void setup() {
      // 串口通信速度
      Serial.begin(9600);
      pinMode(7, INPUT);
    }
    
    void loop() {
      // 定義按鈕的當前狀態,并從7號腳讀取
      int buttonState = digitalRead(7);
      if( buttonState == HIGH && beforState == LOW ) {
        // 如果按鈕是高電位,並且前一次是低電位
        // 按鈕按下,按下的次數加一
        count++;
        // 傳送給電腦
        Serial.println(count);
      }
    
      // 按鍵消抖
      if ( buttonState != beforState ) {
        delay(20);
      }
      // 記錄本次的按鈕狀態
      beforState = buttonState;
      //delay(100);
    }

    代碼上傳之後點擊arduinoIDE右上角 放大鏡的圖標就能看見輸出

    3. 關於消抖

    其實消抖的代碼已經寫在上面了,我就不做過多的解釋.其實消抖的方法還有很多,除了這一種你還可以寫兩個if都是可以的.

  • 相关阅读:
    文章索引
    Rancher pipeline 实现简单跟踪
    rancher 应用商店
    nginx ingress 在aks 上安装
    go countdown
    go channel pipeline 套路
    gorm使用
    华为云cce pvc 指定云硬盘云存储
    influxdb 基本概念
    Python3处理xlsx去掉含有特定字符的行
  • 原文地址:https://www.cnblogs.com/ltozvxe/p/12295423.html
Copyright © 2011-2022 走看看