課程目標
- 布爾類型的概念與應用
- 求余的靈活應用
- while循環的應用
電路搭建
所需材料
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);
}
}
**布爾變量:**當我們需要記錄一些只有兩種狀態的事情時,比如開或者關,冷或者熱。布爾變量是最佳的記錄方式,因為布爾變量只有兩個值,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循環: while循環將會連續、無限循環,直到括號()內的表達式變為false。必須用一些東西改變被測試的變量,否則while循環永遠不會退出。Arduino中while循環常見的用法包括傳感器測試、傳感器的校準、可變增量等。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
傳感器
+關注
關注
2576文章
55028瀏覽量
791233 -
led燈
+關注
關注
22文章
1606瀏覽量
111836 -
Arduino
+關注
關注
190文章
6526瀏覽量
196903 -
按鍵控制
+關注
關注
1文章
44瀏覽量
9146
發布評論請先 登錄
相關推薦
熱點推薦
arduino學習筆記6 - 按鍵實驗
子的。 在按鍵沒有按下去的時候1,2號腳相連,3,4號腳相連。按鍵按下去的時候,1,2,3,4號腳就全部接通。本次實驗使用按鍵來控制led的亮或者滅。一般情況是直接把按鍵開關串聯在l
發表于 10-23 17:32
微雪Arduino系列教程六:按鍵
了。再接下來的教程中我將使用Accessory Shield擴展板作為示例講解Arduino的數字IO,模擬IO,PWM,I2C,SPI等接口的編程。 [接口Arduino接口方便接入各種帶A
發表于 04-27 19:52
微雪Arduino系列教程(包含基本語法和實驗:語音、傳感器.... )——持續更新中
Arduino語法篇0:Arduino基本語法介紹Arduino語法篇1:基本的變量類型Arduino
發表于 06-08 09:09
微雪Arduino系列教程(包含基本語法和實驗:語音、傳感器....
Arduino語法篇0:Arduino基本語法介紹Arduino語法篇1:基本的變量類型Arduino
發表于 06-08 09:10
Arduino開發實戰指南 AVR篇
的產品,目前,國內關注Arduino的人越來越多,所以本書以實際應用為紐帶將各個章節聯系起來。 作者: 程晨 出版社: 機械工業出版社副標題: AVR篇ISBN: 9787111370055圖書
發表于 08-03 16:14
Landzo的Arduino小車有個五向按鍵,請問誰有按鍵檢測的好的方式
Landzo的Arduino小車有個五向按鍵,請問誰有按鍵檢測的好的方式,歷程是按下和松開時兩個狀態,分別亮滅。現在想按下松開,響應一次,比如 按一下亮,在按一下滅。請教大家有沒有好的按鍵
發表于 08-18 17:39
外部按鍵中斷精準控制步進電機起保停,正反轉(Arduino+TB6600驅動器)資料下載
外部按鍵中斷精準控制步進電機起保停,正反轉(Arduino+TB6600驅動器)這次帶來的是真正意義上的通過外部中斷來實現控制的,前面一篇寫的外部中斷片是偽中斷,文章中開頭有特別說明。
發表于 06-29 07:19
Arduino智能小車測試篇
為后續的研究先做資料的鋪墊,如果錯誤,歡迎指正Arduino智能小車——測試篇Arduino 智能小車-電機控制delay 延時處理:delay(10000)某個操作運行10秒后再進行其他操作
發表于 09-16 07:11
RFID標簽組中的可驗證門限秘密共享方案
無線射頻識別(RFID)標簽具有隱蔽、方便、高效等優點,可以作為秘密存儲的新載體。該文針對如何在RFID 標簽組中實現秘密共享的問題,提出適用于RFID 系統的可驗證門限秘密共享方
發表于 03-24 09:55
?20次下載
Arduino基礎入門篇(按鍵控制LED)
上一節我們介紹了使用數字引腳的輸出來控制LED,本篇我們主要介紹通過檢測按鍵狀態來控制LED燈亮滅,把LED的亮滅變成人為可控制的。一、按鍵開關介紹按鍵開關主要是指輕觸式按鍵開關,也稱
發表于 11-25 10:21
?1次下載
Arduino通訊篇
作者:iotsharer首發:Arduino通訊篇一、Arduino與藍牙通訊1、DIY智能溫濕度計(上)——數據獲取2、DIY智能溫濕度計(下)——APP控制溫濕...
發表于 02-07 12:07
?2次下載
Arduino篇—按鍵中的秘密
評論