Arduino 諌程教學<<點我看課程
開放硬體接感測器之微處理器(MCU):micro:bit 、ESP8266 、ESP32... 均可
選用 microPython 或 circuitPython ,python方式銜接感測器。
學習python 進場英文程式語言過程 有 感測器讀取 強化學習認知
以下 mcu 選用ESP32 與 109年開放式硬體創客套件之感測器 為主要教學用料,ESP32 以 microPython 作為入門練習環境。
數位輸入-按鈕開關 與 數位輸出-LED 二者關連起來?
接腳定義: GPIO12=按鈕開關 | GPIO13=LED
簡易功能: [按住]按鈕開關 時 LED [亮],放開時暗。
這功能適合使用[自鎖式開關]
數位輸入-按鈕開關 與 數位輸出-LED 二者關連起來?
接腳定義: GPIO12=按鈕開關 | GPIO13=LED
簡易功能: 按鈕開關[按一下] 時 LED [亮],再[按一下]後LED[暗],[切換]功能。
[一個開關]有二種狀態,以 [按下]=上一狀態放開 [及] 目前狀態按住
第11行:辨認[按下]狀態
第12行:LED 亮|暗 二狀態 以 變數ledS 運算 加1後再[除2的餘數]
類比輸入-可變電阻 與 類比輸出-LED 二者關連起來?
接腳定義: GPIO12=可變電阻 | GPIO13=LED
簡易功能: LED呼吸燈模式動作,可變電阻調[呼吸頻率]。
ADC 取值範圍: 0~65535
PWM 內 duty 設定範圍: 0~1023
第12行 運算式: 10-abs(10-i) 依 廻圈 0~20 改成 0~10~1 來回方式
程式缺點: 沒有時時刻刻 依 可變電阻之ADC 調時間,呼吸來回一次才取ADC,確認接續呼吸速度。亮度控制是直線式變化!
可改善之處?
每小回合即讀取ADC值
亮度 duty數值控 依[正弦線]控制
個人請 Gemini AI 給的 範例程式 <<下載參考
AI協助改善,學習新潮流!
類比輸入-光線感測器 與 函式庫-無源蜂鳴器 二者關連起來?
接腳定義: GPIO12=光線感測器 | GPIO13=無源蜂鳴器
簡易功能: 測光亮度 極亮時每1.5秒才[ㄅㄧ]1聲,全暗時短[ㄅㄧ]聲。
需事先分別確定
光線感測器:實際取得數值範圍 暗=568 ~ 亮=4096
無源蜂鳴器:[ㄅㄧ]聲的 音頻=freq(770) 及 音長=sleep(0.1) 參數值
請 Gemini AI 給無源蜂鳴器的 範例程式 <<下載參考
相同接線模式,播2隻老虎 Gemini AI 給的 範例程式 <<下載參考
[全暗] 休息 0.02秒 ,[極亮] 休1.5秒 [對照] 568~4096 VS 20~1500
範例程式:以解決問題為主,無源蜂鳴器 需 音頻+音長 故類函式功能
函式庫-超音波測距 與 函式庫-輸出LCD 二者關連起來?
超音波測距 HC-SR04 訊號腳 有 Trig Echo 2支,正電 及 接地 共4條線。
LCD1602(I2C介面) 訊號腳 有 SDA SCL 2支,正電 及 接地 共4條線。
ESP32接腳圖中 GPIO21=SDA | GPIO22=SCL ...
請 Gemini AI 給 這二個物件案例程式 ,其中程式 GPIO16=Trig | GPIO17=Echo 說明... 需求環境 下載程式庫... 如何安裝LCD1602需要庫? 如何求證目前I2C之地址? 實體接線對不對... 案例程式產生錯誤訊息如何排解? AI無法一次給對的解答!!
降低難度!求LCD1602與ESP32順利動作,這網頁分享得到解決 使用lcd_api.py及machine_i2c_lcd.py為函式庫,實作結果OK。
用Gemini改用這函式庫整合HC-SR04 再修函式沒有ljust() 功能 及 16字上限,要看懂程式作用,人工作小修正才得 範例程式包<<下載解壓再參考
簡易功能: