你好,我是愛吃魚香ROS的小魚。上一節(jié)完成了LED燈的控制,本節(jié)我們學(xué)習(xí)下如何使用按鍵。
本教程所使用硬件平臺為MicroROS學(xué)習(xí)板V1.0.0,可點擊閱讀原文購買及查看詳情
一、 按鍵檢測原理
上面的原理圖就是我們MicroROS開發(fā)板的BOOT按鍵的原理圖,該按鍵的位置在板子的左下角。
簡單的看下原理圖可知
- 當
BOOT
按下時,1,2就被連通了,此時ESP_IO2
就連接到了GND
上,也就是連接到GND
,ESP_IO2
的電平被拉低了。 - 當
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ù)雜一些,當按鍵按下時我們需要休眠50ms,防止誤觸,接著反置狀態(tài),等待按鍵松開。
將代碼下載到開發(fā)板,按下按鍵,測試一下。
四、總結(jié)
本節(jié)我們通過學(xué)習(xí)按鍵的使用,掌握了GPIO的輸入,下一節(jié)我們將嘗試進階使用ADC,測量電池的電。
-
原理圖
+關(guān)注
關(guān)注
1298文章
6343瀏覽量
233998 -
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
107992 -
按鍵
+關(guān)注
關(guān)注
4文章
223瀏覽量
57600 -
Boot
+關(guān)注
關(guān)注
0文章
149瀏覽量
35836 -
ROS
+關(guān)注
關(guān)注
1文章
278瀏覽量
17007
發(fā)布評論請先 登錄
相關(guān)推薦
評論