一、邏輯控制的基礎概念與核心語法
1.1 邏輯控制的基本原理
邏輯控制是嵌入式系統中最常見的功能之一,其核心在于通過條件判斷(if-else)、循環(for/while)和布爾運算(&&/||)實現對硬件的精確控制。例如,通過按鍵狀態切換LED亮度、根據傳感器數據調整電機轉速等,均依賴邏輯控制實現。
1.1.1 條件判斷(if-else)
if-else
是最基礎的邏輯控制語句,用于根據條件執行不同分支。
1.1.2 布爾運算
布爾運算符(&&、||、!)用于組合多個條件,實現更復雜的判斷邏輯。
1.1.3 狀態機設計
狀態機通過定義多個狀態(如“啟動”、“運行”、“停止”),管理設備的復雜行為,避免代碼冗余。
1.2 核心語法與代碼示例
1.2.1 if-else
語句
int sensorValue = analogRead(A0); // 讀取模擬輸入
if (sensorValue > 500) {digitalWrite(13, HIGH); // 傳感器值大于500時點亮LED
} else {digitalWrite(13, LOW); // 否則熄滅LED
}
1.2.2 布爾運算符
int button1 = digitalRead(2); // 按鍵1狀態
int button2 = digitalRead(3); // 按鍵2狀態if (button1 == LOW && button2 == LOW) {// 兩個按鍵同時按下時執行操作digitalWrite(4, HIGH);
} else {digitalWrite(4, LOW);
}
1.2.3 狀態機設計
enum State { IDLE, RUNNING, STOPPED };
State currentState = IDLE;void loop() {if (currentState == IDLE) {if (digitalRead(2) == LOW) {currentState = RUNNING;}} else if (currentState == RUNNING) {// 執行運行邏輯digitalWrite(5, HIGH);if (digitalRead(3) == LOW) {currentState = STOPPED;}} else if (currentState == STOPPED) {digitalWrite(5, LOW);currentState = IDLE;}
}
二、實際案例分析
2.1 按鍵控制LED亮度
2.1.1 功能需求
- 按鍵1:切換LED亮度級別(低/中/高)。
- 按鍵2:重置為初始狀態(低亮度)。
2.1.2 代碼實現
const int button1Pin = 2;
const int button2Pin = 3;
const int ledPin = 9;
int brightness = 0;void setup()