第四章 開關電路與LED跑馬燈 認識開關 讀取數位輸入值 if條件式 撰寫迴圈程式 認識陣列 認識埠口與位移操作
認識開關 開關的外觀與電路符號 參閱 4-2
讀取數位輸入值 讀取數位輸入值的語法: 電路的接法: 參閱 4-6
比較運算子 條件式當中的且、或和反相測試: 參閱 4-10 名稱 運算符號 運算式 說明 且(AND) && A && B == 如果兩者相等則成立 != 如果不相等則成立 < 如果左邊小於右邊則成立 > 如果左邊大於右邊則成立 <= 如果左邊小於或等於右邊則成立 >= 如果左邊大於或等於右邊則成立 條件式當中的且、或和反相測試: 名稱 運算符號 運算式 說明 且(AND) && A && B 只有A和B兩個值都成立時,整個條件才算成立。 或(OR) || A || B 只要A或B任何一方成立,整個條件就算成立。 反相(NOT) ! !A 把成立的變為不成立;不成立的變為成立。 參閱 4-10
開關實驗麵包板電路 參閱 4-12
條件判斷式敘述 依據開關的狀態,點亮或關閉LED。 參閱 4-12
啟用上拉電阻 ATmeg328微控器的數位接腳有內建上拉電阻,可透過底下的敘述啟用,啟用內建的上拉電阻後,開關電路就能省略外接電阻。 參閱 4-13
消除開關的彈跳訊號 機械式開關在切換的過程中,電子信號並非立即從0變成1(或從1變成0),而會經過短暫的,忽高忽低變化的彈跳現象。 為了避免上述狀況,程式(或者硬體)需要加入所謂的消除彈跳(de-bouncing)處理機制。 參閱 4-15
LED跑馬燈電路 輪流點亮一個LED 參閱 4-19
LED跑馬燈程式一 輪流點亮一個LED的程式碼 參閱 4-20
迴圈控制指令 參閱 4-22
使用for迴圈的跑馬燈程式 參閱 4-25
陣列變數 陣列(array)變數可以存放很多不同值,就像具有不同分隔空間的盒子一樣。 宣告陣列的同時可一併設定其值 參閱 4-26 讀取陣列元素
使用陣列的跑馬燈程式 參閱 4-27
埠口操作與位移指令 ATMega328處理器,具有D, B兩個數位輸出∕輸入埠,以及一個類比埠C。 埠口指令可用一行敘述,將多個腳位設定成輸出或輸入。 位移(shift)運算子可以將資料裡的所有位元向右或向左移動,空缺的部分補上0。 參閱 4-28
使用埠口與位移製作跑馬燈 參閱 4-30
歐姆定律 電路中的電壓、電流和電阻之間的關係,可以用歐姆定理表示:電流和電壓成正比,和電阻成反比。 透過歐姆定律,可求出電路所需的限流電阻值,以及消耗功率。 參閱 4-31