鍛鍊 C/C++ 基本控制語法在硬體控制上的活用。
代表範例:
Arrays、For Loop Iteration (Knight Rider)、SwitchCase、While Loop應用場景:
使用
for迴圈與陣列實現噼啪作響的霹靂遊俠跑馬燈效果。使用
switch...case處理多重狀態與串口指令選單。
整合常見基礎感測器件的讀取與物理量轉換。
代表範例:
Detect a Knock、Ping Ultrasonic Range Finder、ADXL3xx Accelerometer應用場景:
壓電片 (Piezo): 震動與敲擊檢測。
超音波模組 (HC-SR04 / Ping): 距離量測與障礙物偵測。
類比三軸加速度計: 傾角與動作感測。
本課程為【Arduino Built-in Examples 入門實作】系列微單元,參照官方經典 Play a Melody using the tone() function 範例,聚焦於微控制器如何透過 PWM 方波頻率控制 驅動無源蜂鳴器與揚聲器發聲。課程將帶領學員從基礎單音控制、音高查表法(pitches.h),一路邁入樂音長度演算法與互動聲光裝置開發。
🎯 核心學習目標與單元亮點:
tone()與noTone()函式演算法: 深入剖析 Timer 定時器產生指定頻率方波的原理,精準掌控音高(Frequency)與音符持續時間(Duration)。pitches.h音高表與音樂陣列設計: 建立國際標準音高頻率對照表(如NOTE_C4262Hz),透過陣列疊代(Array Iteration)實現經典旋律播放。- 節奏與音符間隔優化: 掌握
pauseBetweenNotes(音符時長 + 30% 間隔)技巧,徹底解決樂音黏連問題,打造清晰流暢的數位音效。 - 多樣化互動聲響場景: 延伸實現 Pitch Follower(光敏電阻/可變電阻控音光琴)與 Simple Keyboard(按鈕電子琴),發揮軟硬體互動整合創意。
🔗 電路硬體升級與指定實作課程連動:
當您嘗試用微控制器 GPIO 直驅高功率 8 歐姆揚聲器時,容易面臨電流不足與反向電動勢突波風險!本課程已與實體手作課程 微控制器桌上小實驗–PWM 揚聲器驅動與感性保護 (BJT & Flyback) 深度連動。
建議搭配指定 【智能裝置】微控制器 PWM 揚聲器驅動零件包,親手搭建 2N2222 BJT 開關、Flyback 保護二極體與 RC Snubber 網路,在體驗旋律播放的同時,確保微控制器系統運作之穩定與安全!
💡 終極挑戰加分題: 試著改寫演算法,加入旋律動態 Tempo 控制或製作多音階音樂盒,提交專案報告解鎖「聲學程式創客」數位徽章!
學習接腳讀寫、訊號控制與脈衝寬度調變 (PWM) 的入門核心。
代表範例:
Blink、BlinkWithoutDelay、DigitalReadSerial、AnalogReadSerial、Fading、ReadAnalogVoltage應用場景:
控制 LED 閃爍與呼吸燈效果(PWM 輸出)。
讀取按鈕開關、旋鈕可變電阻與光敏電阻的電位變化。
學習非阻塞式(無
delay())的程式時間管理邏輯。
處理真實世界中開關輸入常見的彈跳問題與狀態切換。
代表範例:
Button、Debounce、InputPullupSerial、StateChangeDetection應用場景:
啟用 Uno/Nano 晶片內建的上拉電阻 (
INPUT_PULLUP),簡化按鍵外圍電路。按鍵去彈跳 (Debounce) 機制。
計算按鍵按下次數(邊緣觸發 / 狀態改變檢測)。
Arduino 與電腦或其它週邊進行資料交換。
代表範例:
ASCII Table、Create a LED Dimmer、Create a Graph with Processing、MIDI Note Player應用場景:
經由 USB 格式化輸出文字與 ASCII 碼。
接收電腦端送出的指令來動態調整硬體(如控制 LED 亮度)。
與外部軟體(如 Processing、Python)連線進行感測器數據繪圖。