課程目標(biāo)
- 布爾類型的概念與應(yīng)用
- 求余的靈活應(yīng)用
- while循環(huán)的應(yīng)用
電路搭建
所需材料
ArduinoUno * 1
任意顏色LED * 1
按鍵模塊 * 2
杜邦線若干
程序編寫
練習(xí)一:兩個(gè)按鍵控制開關(guān)燈
按鍵1按下時(shí),LED燈開,按鍵2按下時(shí),LED燈關(guān)。
電路連接:
圖形化方式:
代碼方式:
/* 項(xiàng)目名稱:雙按鍵控制開關(guān)燈
* 項(xiàng)目時(shí)間:2022.02.25
* 項(xiàng)目作者: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);
}
}
**布爾變量:**當(dāng)我們需要記錄一些只有兩種狀態(tài)的事情時(shí),比如開或者關(guān),冷或者熱。布爾變量是最佳的記錄方式,因?yàn)椴紶栕兞恐挥袃蓚€(gè)值,0(false,假,低)或者1(true,真,高)。
*練習(xí)二:?jiǎn)伟存I開關(guān)燈
在學(xué)習(xí)第八課按鍵控制的時(shí)候,我們布置了一個(gè)課后練習(xí),要求使用單個(gè)按鍵實(shí)現(xiàn)按一下開燈,再按一下關(guān)燈的功能。這里我們就來講解一下。
電路連接:
圖形化方式:
代碼方式:
/* 項(xiàng)目名稱:單按鍵控制開關(guān)燈
* 項(xiàng)目時(shí)間:2022.02.25
* 項(xiàng)目作者: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);
}
}
練習(xí)三:?jiǎn)伟存I多功能燈
制作一個(gè)單按鍵控制的多功能燈,要求按一下微亮,再按一下最亮,按第三下滅,長(zhǎng)按住開關(guān)閃爍,松開開關(guān)熄滅。
電路連接:
圖形化方式:
代碼方式:
/* 項(xiàng)目名稱:單按鍵多功能燈
* 項(xiàng)目時(shí)間:2022.02.25
* 項(xiàng)目作者: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)將會(huì)連續(xù)、無限循環(huán),直到括號(hào)()內(nèi)的表達(dá)式變?yōu)閒alse。必須用一些東西改變被測(cè)試的變量,否則while循環(huán)永遠(yuǎn)不會(huì)退出。Arduino中while循環(huán)常見的用法包括傳感器測(cè)試、傳感器的校準(zhǔn)、可變?cè)隽康取?/p>
-
傳感器
+關(guān)注
關(guān)注
2551文章
51163瀏覽量
754122 -
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108057 -
Arduino
+關(guān)注
關(guān)注
188文章
6471瀏覽量
187217 -
按鍵控制
+關(guān)注
關(guān)注
1文章
44瀏覽量
8804
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論