0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino篇—按鍵中的秘密

冬至子 ? 來源:X的創(chuàng)客課堂 ? 作者:MRXY ? 2023-11-01 14:22 ? 次閱讀

課程目標

  • 布爾類型的概念與應用
  • 求余的靈活應用
  • while循環(huán)的應用

電路搭建

所需材料

ArduinoUno * 1
任意顏色LED * 1
按鍵模塊 * 2
杜邦線若干

程序編寫

練習一:兩個按鍵控制開關燈

按鍵1按下時,LED燈開,按鍵2按下時,LED燈關。

電路連接:

圖片

圖形化方式:

圖片

代碼方式:

/* 項目名稱:雙按鍵控制開關燈
 * 項目時間:2022.02.25
 * 項目作者:MRX
 */
const int switch1_Pin = 3;
const int switch2_Pin = 8;
const int led_Pin = 7;
bool switch1 = LOW;
bool switch2 = LOW;
void setup() {
  pinMode(switch1_Pin,INPUT);
  pinMode(switch2_Pin,INPUT);
  pinMode(led_Pin,OUTPUT);
}
void loop() {
  switch1 = digitalRead(switch1_Pin);
  switch2 = digitalRead(switch2_Pin);
  if (switch1 == HIGH) {
    digitalWrite(led_Pin,HIGH);
  }
  if (switch2 == HIGH) {
    digitalWrite(led_Pin,LOW);
  }
}

**布爾變量:**當我們需要記錄一些只有兩種狀態(tài)的事情時,比如開或者關,冷或者熱。布爾變量是最佳的記錄方式,因為布爾變量只有兩個值,0(false,假,低)或者1(true,真,高)。

*練習二:單按鍵開關燈

在學習第八課按鍵控制的時候,我們布置了一個課后練習,要求使用單個按鍵實現按一下開燈,再按一下關燈的功能。這里我們就來講解一下。

電路連接:

圖片

圖形化方式:

圖片

代碼方式:

/* 項目名稱:單按鍵控制開關燈
 * 項目時間:2022.02.25
 * 項目作者:MRX
 */
const int switch_Pin = 3;
const int led_Pin = 7;
bool switch_value = LOW;
void setup() {
  pinMode(switch_Pin,INPUT);
  pinMode(led_Pin,OUTPUT);
}
void loop() {
  if(digitalRead(switch_Pin)){
    switch_value = !switch_value;
    delay(500);
  }
  if (switch_value == HIGH) {
    digitalWrite(led_Pin,HIGH);


  }
  if (switch_value == LOW) {
    digitalWrite(led_Pin,LOW);
  }
}

練習三:單按鍵多功能燈

制作一個單按鍵控制的多功能燈,要求按一下微亮,再按一下最亮,按第三下滅,長按住開關閃爍,松開開關熄滅。

電路連接:

圖片

圖形化方式:

圖片

代碼方式:

/* 項目名稱:單按鍵多功能燈
 * 項目時間:2022.02.25
 * 項目作者:MRX
 */
const int switch_Pin = 3;
const int led_Pin = 6;
int switch_value = 0;
void setup() {
  pinMode(switch_Pin,INPUT);
  pinMode(led_Pin,OUTPUT);
}
void loop() {
  if(digitalRead(switch_Pin)){
    delay(500);
    switch_value = (switch_value + 1) % 3;
    if (switch_value == 1) {
      analogWrite(led_Pin,120);
    }
    if (switch_value == 2) {
      analogWrite(led_Pin,255);
    }
    if (switch_value == 0) {
      analogWrite(led_Pin,0);
    }
    while (digitalRead(switch_Pin)) {
      digitalWrite(led_Pin,HIGH);
      delay(100);
      digitalWrite(led_Pin,LOW);
      delay(100);
      switch_value = 0;
    }
  }
}

while循環(huán): while循環(huán)將會連續(xù)、無限循環(huán),直到括號()內的表達式變?yōu)閒alse。必須用一些東西改變被測試的變量,否則while循環(huán)永遠不會退出。Arduino中while循環(huán)常見的用法包括傳感器測試、傳感器的校準、可變增量等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2545

    文章

    50445

    瀏覽量

    751069
  • led燈
    +關注

    關注

    22

    文章

    1592

    瀏覽量

    107749
  • Arduino
    +關注

    關注

    187

    文章

    6457

    瀏覽量

    186502
  • 按鍵控制
    +關注

    關注

    1

    文章

    44

    瀏覽量

    8763
收藏 人收藏

    評論

    相關推薦

    arduino學習筆記6 - 按鍵實驗

    子的。 在按鍵沒有按下去的時候1,2號腳相連,3,4號腳相連。按鍵按下去的時候,1,2,3,4號腳就全部接通。本次實驗使用按鍵來控制led的亮或者滅。一般情況是直接把按鍵開關串聯在l
    發(fā)表于 10-23 17:32

    微雪Arduino系列教程六:按鍵

    了。再接下來的教程我將使用Accessory Shield擴展板作為示例講解Arduino的數字IO,模擬IO,PWM,I2C,SPI等接口的編程。 [接口Arduino接口方便接入各種帶A
    發(fā)表于 04-27 19:52

    微雪Arduino系列教程(包含基本語法和實驗:語音、傳感器.... )——持續(xù)更新

    Arduino語法0:Arduino基本語法介紹Arduino語法1:基本的變量類型Arduino
    發(fā)表于 06-08 09:09

    微雪Arduino系列教程(包含基本語法和實驗:語音、傳感器....

    Arduino語法0:Arduino基本語法介紹Arduino語法1:基本的變量類型Arduino
    發(fā)表于 06-08 09:10

    Arduino開發(fā)實戰(zhàn)指南 AVR

    的產品,目前,國內關注Arduino的人越來越多,所以本書以實際應用為紐帶將各個章節(jié)聯系起來。 作者: 程晨 出版社: 機械工業(yè)出版社副標題: AVRISBN: 9787111370055圖書
    發(fā)表于 08-03 16:14

    Landzo的Arduino小車有個五向按鍵,請問誰有按鍵檢測的好的方式

    Landzo的Arduino小車有個五向按鍵,請問誰有按鍵檢測的好的方式,歷程是按下和松開時兩個狀態(tài),分別亮滅?,F在想按下松開,響應一次,比如 按一下亮,在按一下滅。請教大家有沒有好的按鍵
    發(fā)表于 08-18 17:39

    Arduino開發(fā)實戰(zhàn)指南 AVR

    Arduino開發(fā)實戰(zhàn)指南AVR
    發(fā)表于 04-04 12:20

    外部按鍵中斷精準控制步進電機起保停,正反轉(Arduino+TB6600驅動器)資料下載

    外部按鍵中斷精準控制步進電機起保停,正反轉(Arduino+TB6600驅動器)這次帶來的是真正意義上的通過外部中斷來實現控制的,前面一寫的外部中斷片是偽中斷,文章開頭有特別說明。
    發(fā)表于 06-29 07:19

    Arduino智能小車測試

    為后續(xù)的研究先做資料的鋪墊,如果錯誤,歡迎指正Arduino智能小車——測試Arduino 智能小車-電機控制delay 延時處理:delay(10000)某個操作運行10秒后再進行其他操作
    發(fā)表于 09-16 07:11

    RFID標簽組的可驗證門限秘密共享方案

    無線射頻識別(RFID)標簽具有隱蔽、方便、高效等優(yōu)點,可以作為秘密存儲的新載體。該文針對如何在RFID 標簽組實現秘密共享的問題,提出適用于RFID 系統(tǒng)的可驗證門限秘密共享方
    發(fā)表于 03-24 09:55 ?20次下載

    使用Arduino實現按鍵控制LED實驗的例程免費下載

    本文檔的主要內容詳細介紹的是使用Arduino實現按鍵控制LED實驗的例程免費下載。
    發(fā)表于 12-01 17:47 ?19次下載

    使用Arduino實現按鍵切換LED顏色的實驗免費下載

    本文檔的主要內容詳細介紹的是使用Arduino實現按鍵切換LED顏色的實驗免費下載。
    發(fā)表于 02-04 16:25 ?13次下載
    使用<b class='flag-5'>Arduino</b>實現<b class='flag-5'>按鍵</b>切換LED顏色的實驗免費下載

    Arduino基礎入門按鍵控制LED)

    上一節(jié)我們介紹了使用數字引腳的輸出來控制LED,本篇我們主要介紹通過檢測按鍵狀態(tài)來控制LED燈亮滅,把LED的亮滅變成人為可控制的。一、按鍵開關介紹按鍵開關主要是指輕觸式按鍵開關,也稱
    發(fā)表于 11-25 10:21 ?1次下載
    <b class='flag-5'>Arduino</b>基礎入門<b class='flag-5'>篇</b>(<b class='flag-5'>按鍵</b>控制LED)

    Arduino通訊

    作者:iotsharer首發(fā):Arduino通訊一、Arduino與藍牙通訊1、DIY智能溫濕度計(上)——數據獲取2、DIY智能溫濕度計(下)——APP控制溫濕...
    發(fā)表于 02-07 12:07 ?2次下載
    <b class='flag-5'>Arduino</b>通訊<b class='flag-5'>篇</b>

    快速制作PCB秘密

    快速制作PCB秘密
    的頭像 發(fā)表于 12-14 18:27 ?721次閱讀
    快速制作PCB<b class='flag-5'>中</b>的<b class='flag-5'>秘密</b>