สารบัญ:

PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน

วีดีโอ: PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน

วีดีโอ: PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
วีดีโอ: ESP32 Pulse Width Modulation (PWM) 2024, กรกฎาคม
Anonim
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE

ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & PWM โดยทั่วไปจะใช้เพื่อสร้างเอาต์พุตอะนาล็อกจาก MCU ใด ๆ และเอาต์พุตแบบอะนาล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก 0V ถึง 5V (ในกรณีของ Arduino uno) และสัญญาณ PWM เหล่านี้ (เอาต์พุตแบบแอนะล็อก) ใช้เพื่อหรี่ (เอาต์พุตแบบแปรผัน ให้แสงสว่าง LED ที่ความสว่างต่างกัน) LED

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

สำหรับบทช่วยสอนนี้ คุณจะต้องมีสิ่งต่อไปนี้:ESP32

ตัวต้านทาน 220 โอห์ม

นำสี

เขียงหั่นขนม

จัมเปอร์ไม่กี่

ขั้นตอนที่ 2: ทำความเข้าใจ PWM บน ESP32

ทำความเข้าใจกับ PWM บน ESP32
ทำความเข้าใจกับ 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

ติดตั้งบอร์ด ESP32 ใน Arduino IDE
ติดตั้งบอร์ด 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

การทดสอบการทำงานของ PWM
การทดสอบการทำงานของ PWM

หลังจากอัปโหลดโค้ดแล้ว คุณจะเห็นความเข้มของไฟ LED เปลี่ยนไป ซึ่งจะนำเราไปสู่จุดสิ้นสุดของคำแนะนำนี้ ขอให้สนุกกับการใช้ PWM กับ ESP32 ในโครงการของคุณ

แนะนำ: