你好,我是愛吃魚香ROS的小魚。上一節完成了LED燈的控制,本節我們學習下如何使用按鍵。
本教程所使用硬件平臺為MicroROS學習板V1.0.0,可點擊閱讀原文購買及查看詳情
一、 按鍵檢測原理
上面的原理圖就是我們MicroROS開發板的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燈,按著開,松開關
* @version 0.1
* @date 2022-12-19
*
* @copyright Copyright (c) 2022
*
*/
#include < Arduino.h >
void setup()
{
Serial.begin(115200);
pinMode(0, INPUT); // 設置2號引腳模式為OUTPUT模式
pinMode(2, OUTPUT); // 設置2號引腳模式為OUTPUT模式
}
void loop()
{
if (digitalRead(0) == LOW)
{
Serial.println("LED ON");
digitalWrite(2, LOW); // 低電平,打開LED燈
}
else
{
Serial.println("LED OFF");
digitalWrite(2, HIGH); // 高電平,關閉LED燈
}
}
接著將代碼編譯燒錄到開發板上,按下按鍵,查看LED燈。
三、使用按鍵控制LED(自鎖開關)
所謂自鎖,就是按下開,再按一下關,看一下代碼實現
/**
* @file main.cpp
* @author fishros@foxmail.com
* @brief 使用按鍵控制LED燈,按著開,松開關,自鎖開關
* @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); // 設置2號引腳模式為OUTPUT模式
pinMode(2, OUTPUT); // 設置2號引腳模式為OUTPUT模式
}
void loop()
{
// 自鎖開關
if (digitalRead(0) == LOW)
{
delay(50); // 休眠50ms再次判斷,防止誤觸
if (digitalRead(0) == LOW)
{
status = !status;
while (digitalRead(0) == LOW) // 死循環等待放開按鍵
;
}
}
if (status == true)
{
digitalWrite(2, LOW); // 低電平,打開LED燈
}
else
{
digitalWrite(2, HIGH); // 低電平,打開LED燈
}
/*
// 按著開,松開關
if (digitalRead(0) == LOW)
{
Serial.println("LED ON");
digitalWrite(2, LOW); // 低電平,打開LED燈
}
else
{
Serial.println("LED OFF");
digitalWrite(2, HIGH); // 高電平,關閉LED燈
}
*/
}
這里稍微復雜一些,當按鍵按下時我們需要休眠50ms,防止誤觸,接著反置狀態,等待按鍵松開。
將代碼下載到開發板,按下按鍵,測試一下。
四、總結
本節我們通過學習按鍵的使用,掌握了GPIO的輸入,下一節我們將嘗試進階使用ADC,測量電池的電。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
原理圖
+關注
關注
1293文章
6310瀏覽量
232940 -
led燈
+關注
關注
22文章
1592瀏覽量
107838 -
按鍵
+關注
關注
4文章
223瀏覽量
57572 -
Boot
+關注
關注
0文章
149瀏覽量
35781 -
ROS
+關注
關注
1文章
276瀏覽量
16967
發布評論請先 登錄
相關推薦
評論