你好,我是愛吃魚香ROS的小魚。上一節(jié)完成了LED燈的控制,本節(jié)我們學(xué)習(xí)下如何使用按鍵。
本教程所使用硬件平臺為MicroROS學(xué)習(xí)板V1.0.0,可點擊閱讀原文購買及查看詳情
一、 按鍵檢測原理
上面的原理圖就是我們MicroROS開發(fā)板的BOOT按鍵的原理圖,該按鍵的位置在板子的左下角。
簡單的看下原理圖可知
- 當(dāng)
BOOT
按下時,1,2就被連通了,此時ESP_IO2
就連接到了GND
上,也就是連接到GND
,ESP_IO2
的電平被拉低了。 - 當(dāng)
BOOT
沒有按下時,ESP_IO0
通過R10
連接到了3.3V
,ESP_IO2
引腳上的電壓就被拉高了。
二、 使用按鍵控制LED燈(無自鎖)
新建example03_key
工程,在main.cpp
輸入代碼。
/**
* @file main.cpp
* @author fishros@foxmail.com
* @brief 使用按鍵控制LED燈,按著開,松開關(guān)
* @version 0.1
* @date 2022-12-19
*
* @copyright Copyright (c) 2022
*
*/
#include < Arduino.h >
void setup()
{
Serial.begin(115200);
pinMode(0, INPUT); // 設(shè)置2號引腳模式為OUTPUT模式
pinMode(2, OUTPUT); // 設(shè)置2號引腳模式為OUTPUT模式
}
void loop()
{
if (digitalRead(0) == LOW)
{
Serial.println("LED ON");
digitalWrite(2, LOW); // 低電平,打開LED燈
}
else
{
Serial.println("LED OFF");
digitalWrite(2, HIGH); // 高電平,關(guān)閉LED燈
}
}
接著將代碼編譯燒錄到開發(fā)板上,按下按鍵,查看LED燈。
三、使用按鍵控制LED(自鎖開關(guān))
所謂自鎖,就是按下開,再按一下關(guān),看一下代碼實現(xiàn)
/**
* @file main.cpp
* @author fishros@foxmail.com
* @brief 使用按鍵控制LED燈,按著開,松開關(guān),自鎖開關(guān)
* @version 0.1
* @date 2022-12-19
*
* @copyright Copyright (c) 2022
*
*/
#include < Arduino.h >
bool status = false;
void setup()
{
Serial.begin(115200);
pinMode(0, INPUT); // 設(shè)置2號引腳模式為OUTPUT模式
pinMode(2, OUTPUT); // 設(shè)置2號引腳模式為OUTPUT模式
}
void loop()
{
// 自鎖開關(guān)
if (digitalRead(0) == LOW)
{
delay(50); // 休眠50ms再次判斷,防止誤觸
if (digitalRead(0) == LOW)
{
status = !status;
while (digitalRead(0) == LOW) // 死循環(huán)等待放開按鍵
;
}
}
if (status == true)
{
digitalWrite(2, LOW); // 低電平,打開LED燈
}
else
{
digitalWrite(2, HIGH); // 低電平,打開LED燈
}
/*
// 按著開,松開關(guān)
if (digitalRead(0) == LOW)
{
Serial.println("LED ON");
digitalWrite(2, LOW); // 低電平,打開LED燈
}
else
{
Serial.println("LED OFF");
digitalWrite(2, HIGH); // 高電平,關(guān)閉LED燈
}
*/
}
這里稍微復(fù)雜一些,當(dāng)按鍵按下時我們需要休眠50ms,防止誤觸,接著反置狀態(tài),等待按鍵松開。
將代碼下載到開發(fā)板,按下按鍵,測試一下。
四、總結(jié)
本節(jié)我們通過學(xué)習(xí)按鍵的使用,掌握了GPIO的輸入,下一節(jié)我們將嘗試進(jìn)階使用ADC,測量電池的電。
-
原理圖
+關(guān)注
關(guān)注
1303文章
6362瀏覽量
235379 -
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108467 -
按鍵
+關(guān)注
關(guān)注
4文章
223瀏覽量
57674 -
Boot
+關(guān)注
關(guān)注
0文章
150瀏覽量
35969 -
ROS
+關(guān)注
關(guān)注
1文章
281瀏覽量
17127
發(fā)布評論請先 登錄
相關(guān)推薦
STM32——按鍵控制LED燈(仿真+源碼)精選資料推薦
STM32單片機(jī)是如何實現(xiàn)按鍵控制LED燈設(shè)計的
獨立按鍵按鍵控制led燈學(xué)習(xí)過程記錄
HT32F5232學(xué)習(xí)之四種方法實現(xiàn)按鍵控制LED燈
![HT32F5232學(xué)習(xí)之四種方法實現(xiàn)<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用51單片機(jī)實現(xiàn)按鍵控制LED燈的亮滅
![使用51單片機(jī)實現(xiàn)<b class='flag-5'>按鍵控制</b><b class='flag-5'>LED</b><b class='flag-5'>燈</b>的亮滅](https://file1.elecfans.com/web2/M00/8C/75/wKgaomSszwOAFkO-AAAeVoSdRnc162.jpg)
評論