สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 2: ทำความเข้าใจ PWM บน ESP32
- ขั้นตอนที่ 3: การเชื่อมต่อ
- ขั้นตอนที่ 4: ติดตั้งบอร์ด ESP32 ใน Arduino IDE
- ขั้นตอนที่ 5: รหัส
- ขั้นตอนที่ 6: การทดสอบฟังก์ชัน PWM
วีดีโอ: PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & PWM โดยทั่วไปจะใช้เพื่อสร้างเอาต์พุตอะนาล็อกจาก MCU ใด ๆ และเอาต์พุตแบบอะนาล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก 0V ถึง 5V (ในกรณีของ Arduino uno) และสัญญาณ PWM เหล่านี้ (เอาต์พุตแบบแอนะล็อก) ใช้เพื่อหรี่ (เอาต์พุตแบบแปรผัน ให้แสงสว่าง LED ที่ความสว่างต่างกัน) LED
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
สำหรับบทช่วยสอนนี้ คุณจะต้องมีสิ่งต่อไปนี้:ESP32
ตัวต้านทาน 220 โอห์ม
นำสี
เขียงหั่นขนม
จัมเปอร์ไม่กี่
ขั้นตอนที่ 2: ทำความเข้าใจ PWM บน ESP32
ESP32 มีตัวควบคุม 16 Channel PWM และ 16 Channels เหล่านี้เป็นอิสระและสามารถกำหนดค่าได้อย่างอิสระเพื่อรับสัญญาณ PWM ที่มีคุณสมบัติแตกต่างกันสำหรับความต้องการที่แตกต่างกัน ก่อนที่จะผ่านโค้ดและกระบวนการทั้งหมดที่คุณต้องรู้สิ่งต่อไปนี้: >> มี 16 (0 ถึง 15) pwm Channels ใน ESP32 คุณต้องเลือกช่องสัญญาณ PWM ของคุณ >>หลังจากนี้เราต้องเลือกความถี่สำหรับ PWM เราสามารถไปที่ 5000hz.>>ที่นี่เรามีความละเอียด 1 ถึง 16 บิตใน ESP32 แต่สำหรับบทช่วยสอนนี้เราจะไปสำหรับ 8 บิตเท่านั้น ซึ่งหมายความว่าความสว่างจะถูกควบคุมโดยค่า 0 ถึง 255 >> คุณต้องตั้งค่า LED สำหรับ PWM เพื่อทำเช่นนั้น คุณต้องใช้บรรทัดของรหัสต่อไปนี้ และคุณต้องพูดถึงเกี่ยวกับ ledchannel (เรากำลังใช้ช่อง 0 ของ ESP32) ที่คุณใช้สำหรับ PWM & freq คือความถี่ (เรากำลังใช้ 5000hz) ของ PWM & ความละเอียดที่คุณใช้ (เรากำลังใช้ความละเอียด 8 บิต)ledcSetup(ledChannel, freq, resolution) ค่าในกรณีของเรา: const int freq = 5000; const int ledChannel = 0; ความละเอียด int const = 8;>>จากนั้นระบุพิน LED ที่คุณต้องการโดยใช้คำสั่งต่อไปนี้: ledcAttachPin(ledPin, ledChannel);- ที่นี่ ledPin คือหมายเลขพิน ซึ่งเราจะใช้ & ledChannel เป็นช่องที่เราต้องเลือก PWM.5. สุดท้าย เพื่อควบคุมความสว่างของ LED โดยใช้ PWM คุณใช้ฟังก์ชันต่อไปนี้ >> ส่วนสำคัญของโค้ดจะเป็นคำสั่งต่อไปนี้ ซึ่งจะเขียนเอาต์พุตแบบอะนาล็อกไปยังพิน LED: ledcWrite (ledChannel, dutycycle) คำสั่งด้านบนนี้ ต้องการ 'ledChannel' & 'dutyCycle' โดยที่ channel คือหมายเลขช่องสัญญาณที่เราจะใช้ และรอบการทำงานคือค่าที่เรากำลังเขียนเป็นเอาต์พุตไปยังพิน LED
ขั้นตอนที่ 3: การเชื่อมต่อ
ส่วนการเชื่อมต่อนั้นง่ายมาก คุณต้องเชื่อมต่อ LED กับตัวต้านทานกับ GPIO16 ตามที่แสดงในแผนผัง
ขั้นตอนที่ 4: ติดตั้งบอร์ด ESP32 ใน Arduino IDE
ตรวจสอบให้แน่ใจว่าคุณมี Arduino IDE ในพีซีของคุณ และคุณติดตั้งบอร์ด ESP32 ใน Arduino IDE ของคุณแล้ว และหากไม่เป็นเช่นนั้น โปรดปฏิบัติตามคำแนะนำของฉันต่อไปนี้เพื่อติดตั้ง:
ขั้นตอนที่ 5: รหัส
โปรดคัดลอกโค้ดต่อไปนี้และอัปโหลดไปยัง ESP32 ของคุณ: // จำนวน LED pinconst int ledPin = 16; // 16 สอดคล้องกับ GPIO16 // การตั้งค่าคุณสมบัติ PWMconst int freq = 5000;const int ledChannel = 0;const int resolution = 8;การตั้งค่าเป็นโมฆะ () { // กำหนดค่าฟังก์ชันการทำงานของ LED PWM ledcSetup (ledChannel, freq, resolution); // แนบช่องสัญญาณเข้ากับ GPIO เพื่อควบคุม ledcAttachPin(ledPin, ledChannel);}void loop(){ // เพิ่มความสว่าง LED สำหรับ (int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){ // เปลี่ยน LED ความสว่างด้วย PWM ledcWrite (ledChannel, dutyCycle); ล่าช้า(15); } // ลดความสว่างของ LED สำหรับ (int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){ // เปลี่ยนความสว่าง LED ด้วย PWM ledcWrite (ledChannel, dutyCycle); ล่าช้า(15); }}
ขั้นตอนที่ 6: การทดสอบฟังก์ชัน PWM
หลังจากอัปโหลดโค้ดแล้ว คุณจะเห็นความเข้มของไฟ LED เปลี่ยนไป ซึ่งจะนำเราไปสู่จุดสิ้นสุดของคำแนะนำนี้ ขอให้สนุกกับการใช้ PWM กับ ESP32 ในโครงการของคุณ
แนะนำ:
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: 3 ขั้นตอน
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: เป็นโปรเจ็กต์เครื่องรับย่านความถี่ทั้งหมด ใช้ห้องสมุด Arduino Si4734 ห้องสมุดนี้มีตัวอย่างมากกว่า 20 ตัวอย่าง คุณสามารถฟัง FM ด้วย RDS สถานี AM (MW) ในพื้นที่ SW และสถานีวิทยุสมัครเล่น (SSB) เอกสารทั้งหมดที่นี่
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: 5 ขั้นตอน
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: Micropython เป็นการเพิ่มประสิทธิภาพของ python และมีขนาดเล็กของ python ซึ่งหมายถึงการสร้างสำหรับอุปกรณ์ฝังตัวซึ่งมีข้อจำกัดด้านหน่วยความจำและใช้พลังงานต่ำ Micropython สามารถใช้ได้กับคอนโทรลเลอร์หลายตระกูล ซึ่งรวมถึง ESP8266, ESP32, Ardui
เริ่มต้นใช้งาน ESP32 - การติดตั้งบอร์ด ESP32 ใน Arduino IDE - ESP32 Blink Code: 3 ขั้นตอน
เริ่มต้นใช้งาน ESP32 | การติดตั้งบอร์ด ESP32 ใน Arduino IDE | รหัสการกะพริบของ ESP32: ในคำแนะนำนี้ เราจะดูวิธีการเริ่มทำงานกับ esp32 และวิธีการติดตั้งบอร์ด esp32 ลงใน Arduino IDE และเราจะตั้งโปรแกรม esp 32 เพื่อเรียกใช้โค้ดกะพริบโดยใช้ arduino ide
เริ่มต้นใช้งาน Esp 8266 Esp-01 ด้วย Arduino IDE - การติดตั้งบอร์ด Esp ใน Arduino Ide และการเขียนโปรแกรม Esp: 4 ขั้นตอน
เริ่มต้นใช้งาน Esp 8266 Esp-01 ด้วย Arduino IDE | การติดตั้งบอร์ด Esp ใน Arduino Ide และการเขียนโปรแกรม Esp: ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้งบอร์ด esp8266 ใน Arduino IDE และวิธีตั้งโปรแกรม esp-01 และอัปโหลดโค้ดในนั้น เนื่องจากบอร์ด esp ได้รับความนิยมอย่างมาก และคนส่วนใหญ่ประสบปัญหา
12V LED PWM Dimmer พร้อม ESP8266: 3 ขั้นตอน
12V LED PWM Dimmer พร้อม ESP8266: ในขณะที่พยายามทำให้ครัวเรือนของฉันมีความยั่งยืนมากขึ้น ฉันกำลังเปลี่ยนหลอดฮาโลเจนเป็นไฟ LED มีทางเลือกมากมายในการเปลี่ยนหลอดไฟชนิดใดก็ได้ ขณะทำสิ่งนี้ ฉันพบปัญหาต่อไปนี้: ฉันมีไฟ