軟體
請先下載連結內的兩個資料夾
Arduino IDE安裝
安裝開發板
- 點擊左側欄的圖標開啟開發板管理員
- 搜尋”ESP32″
- 安裝ESP32開發板

安裝程式庫
- 點擊左側欄的圖標開啟程式庫管理員
- 搜尋”ESP32SERVO”
- 安裝ESP32Servo程式庫
- 重新啟動Arduino IDE

上傳程式碼
- 開啟Min資料夾內的”Min.ino”檔案
- 點擊上方下拉選單,並點擊”選擇其他開發板及連接埠

程式碼參考:
#include <ESP32Servo.h>
Servo myservo; // create servo object to control a servo
int servoPin = 4; // GPIO pin (使用pin 4)
void setup()
{
// Allow allocation of all timers
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
myservo.attach(servoPin, 500, 2400);
myservo.write(85);
}
void loop() {
myservo.write(0); // 設定伺服馬達為最小值(開啟狀態)
}
- 搜尋esp32 c3,選擇ESP32C3 Dev Module
- 選擇開發板的連接埠,每個電腦連接埠號碼不一定相同(可透過插拔USB確認連接埠號碼)

- 點擊上傳按鈕

- 完成! 這個程式會讓伺服馬達設定為最小值,方便我們安裝

硬體
- 將搖臂鎖上垃圾桶蓋
- ⚠️請勿過度用力,避免塑膠損壞


- 使用”厚”雙面泡棉膠將開發板黏在殼體對應的位置
- ⚠️避免與伺服馬達搖臂碰撞

- 將伺服馬達的線材接入開發板
- ⚠️注意線材顏色,不要接錯


- 將開發板接上TYPE-C電源,伺服馬達會順時針旋轉至最小值
- 將搖臂卡入伺服馬達軸心,垃圾桶蓋子與本體呈略大於90度,並鎖上軸心螺絲
- ⚠️請勿過度用力,避免塑膠損壞

- 使用”薄”雙面泡棉膠將紅外線模組黏貼在外殼側面(左、右側皆可)
- 將杜邦線插入模組 ⚠️注意線材顏色

- 將紅外線模組的三條線接上開發板
- 使用束線帶整理線材



上傳自動掀蓋的程式碼
- 點擊Knob資料夾,並開啟Knob.ino
- 與前面相同,選擇好開發板型號與連接埠號碼並上傳
程式碼參考:
#include <ESP32Servo.h>
Servo myservo; // create servo object to control a servo
int servoPin = 4; // 伺服馬達接腳(PIN 4)
int sensorPin = 3; // 傳感器接腳(PIN 3)
int sensor = 1;
void setup()
{
// Allow allocation of all timers
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
myservo.attach(servoPin, 500, 2400);
pinMode(sensorPin,INPUT);
}
void loop() {
sensor = digitalRead(sensorPin);
if(sensor == 0){
myservo.write(0); // 設定伺服馬達角度(開啟)
delay(2000);
}
if(sensor == 1){
myservo.write(90); // 設定伺服馬達角度(關閉)
}
}
此時會發現蓋子無法完全閉合,請將程式內下列代碼中的”90″稍微加大(例如95),並上傳,重複此操作直至完全閉合
if(sensor == 1){
myservo.write(90); // 設定伺服馬達角度(關閉)
}
⚠️若閉合時伺服馬達發出異音或是有電流聲,請將參數逐次-1進行微調
恭喜你已完成Arduino 自動掀蓋垃圾桶的學習!