2. 沒有按鈕的電路是沒有靈魂的
使用按鈕控制控制LED燈
1. 使用按鈕控制一個LED燈的亮滅
I. 使用代碼控制
想要通過按鈕開控制燈的亮和滅有兩種思路,第一種就是直接使用代碼來控制.我特地去檢測這個按鈕是否按下,如果按下,我就給LED燈一個高電位,讓LED燈亮起;如果檢測到按鈕沒有按下,那麼久給LED燈一個低電位,這樣LED燈就會熄滅.這個和繼電器的思想有點類似.
· 原理解釋
雖然上圖很容易看出原理,但是我還是簡單的說明一下:
當檢按鈕沒有按下的時候檢測腳通過電阻和電源相連,所以呈現高電平,但是當開關按下的時候則會直接和GND相連,變為低電平.所以我們只需要去檢測GND的電位高低就能知道按鈕是否被按下.
· 電路連接
說明:
1. LED一定要連電阻
這個圖有點丑,希望別介意,當然,你介意也沒用.
· 代碼展示
說明:
1. 我使用檢測電位的腳為13號腳
2. 我使用控制LED燈的腳為7號腳
3. 根據我電路的連接,當我按下按鈕的時候為低電位,沒有按下時為高電位.
1 /* 2 按鈕控制LED的亮滅之一: 3 使用代碼控制 4 */ 5 6 // 按鈕的狀態,按下為LOW,沒有按下為HIGH(這是因為我的電路不小心接成這樣了) 7 int buttonState = 0; 8 9 // 初始化 10 void setup() { 11 // 控制LED的引腳為輸出引腳 12 pinMode(7, OUTPUT); 13 // 監測電位的腳為輸入引腳 14 pinMode(13, INPUT); 15 16 } 17 18 void loop() { 19 // 讀取按鈕的狀態 20 buttonState = digitalRead(13); 21 22 if( buttonState == HIGH ) { 23 // 按鈕沒有按下,讓LED燈熄滅 24 digitalWrite(7, LOW); 25 } else { 26 // 按鈕按下,讓LED燈亮起 27 digitalWrite(7, HIGH); 28 } 29 30 }
· 現象觀察
II. 使用硬件控制
這個就十分簡單了,和小學的自然科學課差不多,你只需要一直給LED一個高電平,然後把LED接到電路當中去就好啦.由於實在是太簡單,我連代碼都不想寫,因為說白了就只有一句digitalWrite(7, HIGH),然後你需要連對電路就可以了呀.
你問我為什麼這麼簡單還要講第一種那麼複雜的方法喔?因為醉翁之意不在酒,你自己下來慢慢品味吧.
2. 使用LED燈選擇亮起的LED燈
既然你已經會使用開關了,那麼下面我們來做一個其他的,使用開關控制兩個LED的交替閃爍(把這次的內容和上一篇文章的內容結合起來,我希望你能先自己思考一下,因為實在是太簡單了,但是不要因為太簡單而不動手喔).
答案我會公佈在下一篇文章當中.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用