LED 呼吸燈, 這篇是 Arduino Blink 的延伸應用.
硬體很簡單就是直接在NANO上插一個LED, 短的街GND, 長的接D6.
請參考一下我的短影音 https://youtube.com/shorts/WHD2Do11J-I?si=wXeUiHkHly3KukYL
執行步驟
1. 準備好硬體, 插上LED.
2. 寫一個Blink程式, 1秒亮, 1秒暗, 會的請直接跳過.
void setup() { pinMode(6, OUTPUT); } void loop() { digitalWrite(6, HIGH); delay(1000); digitalWrite(6, LOW); delay(1000); } |
3. 加速10倍, 1/10秒亮, 1/10秒暗, 會的請直接跳過.
這時LED閃爍加劇.
void setup() { pinMode(6, OUTPUT); } void loop() { digitalWrite(6, HIGH); delay(100); digitalWrite(6, LOW); delay(100); } |
4. 加速1000倍, 1毫秒亮, 1毫秒暗, 會的請直接跳過.
這時LED的閃爍, 眼睛已無法辨識(殘影效應), 變成恆亮.
void setup() { pinMode(6, OUTPUT); } void loop() { digitalWrite(6, HIGH); delay(1); digitalWrite(6, LOW); delay(1); } |
5. 再把delay(1); 切出1000個刻度, 就是換成 delayMicroseconds(1000); 就行了.
解釋一下指令
delay(1); // 延遲1毫秒, 0.001秒
delayMicroseconds(1); // 延遲1微秒, 0.000001秒
亮: 1微秒
暗:1999微秒
就是亮度最小時
void setup() { pinMode(6, OUTPUT); } void loop() { digitalWrite(6, HIGH); delayMicroseconds(1); digitalWrite(6, LOW); delayMicroseconds(1999); } |
亮: 1999微秒
暗:1微秒
就是亮度最大時
void setup() { pinMode(6, OUTPUT); } void loop() { digitalWrite(6, HIGH); delayMicroseconds(1999); digitalWrite(6, LOW); delayMicroseconds(1); } |
6. 最後讓延遲數值動起來就行了
int BlinkVal = 1000; void setup() { pinMode(6, OUTPUT); } void loop() { // 漸亮 for(int i=0;i<2000;i++) { digitalWrite(6, HIGH); delayMicroseconds(i); digitalWrite(6, LOW); delayMicroseconds(2000-i); } // 漸暗 for(int i=0;i<2000;i++) { digitalWrite(6, HIGH); delayMicroseconds(2000-i); digitalWrite(6, LOW); delayMicroseconds(i); } delay(500); // 延遲一下方便觀察, 無關LED亮暗. } |
本作品已獲得CC BY-NC-ND 4.0許可 透過 P
文章標籤
全站熱搜