下面先對ledc函數做一下介紹
ledcSetup(channel0, freq0, resolution0);
ledcAttachPin(DJ0_PWM, channel0);
ledcWrite(channel0,dutyCycle0);
第一個是設置通道、頻率和分辨率的函數。
channel用來設置輸出PWM波的通道。
freq設置頻率,這里將頻率設置成50也就是周期20ms用來控制舵機。
resolution設置分辨率,分辨率能夠大致理解成決定將周期分成多少份,計算方法為2^resolution,因為取值時是從0開始的,所以需要再-1我設置成10,也就是可以分成1024份,于是可以取0~1023的值。
第二個是通道與引腳相關聯的函數
DJ0_PWM處設置ESP32的引腳。
channel決定引腳與那個通道相連。
第三個是設置通道輸出PWM波的占空比。
channel設置是哪個通道。
dutyCycle設置占空比,之前我們用的分辨率為10,所以這里占空比取0~1023,控制舵機需要0ms~2.5ms所以將1024/40=25.6,每個25.6代表的就是0.5ms,因為取值是0~1023所以25.6近似成25,那么如果想讓舵機轉到-90°就需要將dutyCycle設置成25,以此類推。
下面附完整程序
#include #include #define DJ0_PWM 13 int freq = 50; int freq0 = freq; // 頻率 int channel0 = 0; // 通道0,共16個通道,0~15 int resolution0 = 10; // 分辨率,取值0~20,duty最大取值為2^resolution-1 void ledc_Initialization() // ledc初始化程序 { ledcSetup(channel0, freq0, resolution0); // 設置通道0 ledcAttachPin(DJ0_PWM, channel0); // 將通道0與引腳13連接 } int dutyCycle0 = 76; // 設置占空比 void setup() { ledc_Initialization(); // ledc初始化程序 } void loop() { ledcWrite(channel0, dutyCycle0); // 輸出PWM,dutyCycle為占空比 delay(5); } 通過不斷改變數值來找到腿的初始狀態 當找到每一個舵機的初始位置后就可以進行下一步逆運動學的編寫了。
上一篇:使用ESP32驅動TI的TMP117溫度傳感器
下一篇:最后一頁
推薦閱讀最新更新時間:2025-06-09 10:41

設計資源 培訓 開發板 精華推薦
- LT1172HVCT、5V/1.25A 正降壓轉換器的典型應用
- 【訓練營】四條腿機器狗
- SG3525A 推挽式脈寬調制器控制電路的典型應用
- LT1108CS8-12掌上電腦邏輯電源微功率DC/DC轉換器典型應用電路
- AM2M-1515DH30-NZ ±15 Vout、2W 雙路輸出 DC-DC 轉換器的典型應用
- LTC2945HMS 具有高達 200V 浪涌保護的堅固型 4V 至 70V 高壓側功率監視器的典型應用
- 常用MCU全能燒錄器
- 【航順訓練營】國產航順MCU開發學習板
- LTC3624EMSE-25 5V 輸出電壓、2A 同步降壓型穩壓器的典型應用,具有 1MHz、突發模式操作
- 具有備用電源監控功能的 LTC4420IMSE 18V 雙輸入微電源路徑優先器的典型應用電路