สารบัญ:
- ขั้นตอนที่ 1: ขั้นตอนที่ 1: ส่วนประกอบ
- ขั้นตอนที่ 2: ขั้นตอนที่ 2: วงจร
- ขั้นตอนที่ 3: ขั้นตอนที่ 3: รหัส
วีดีโอ: 12V LED PWM Dimmer พร้อม ESP8266: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ในขณะที่พยายามทำให้ครัวเรือนของฉันมีความยั่งยืนมากขึ้น ฉันกำลังเปลี่ยนหลอดไฟฮาโลเจนเป็นไฟ LED มีทางเลือกมากมายในการเปลี่ยนหลอดไฟชนิดใดก็ได้ ขณะทำเช่นนี้ ฉันพบปัญหาต่อไปนี้: ฉันมีโคมไฟซึ่งใช้หลอดฮาโลเจน 7 12 โวลต์จำนวน 10 วัตต์ แสงนี้ถูกควบคุมโดยเครื่องหรี่ซึ่งทำงานได้ดี เมื่อฉันเปลี่ยนหลอดไฟเป็นไฟ LED 12 โวลต์ แต่ละ 1 วัตต์ สวิตช์หรี่ไฟทำงานได้ไม่ดี แสงกะพริบ และการหรี่แสงค่อนข้างไม่แน่นอน นี่เป็นปัญหาของสวิตช์หรี่ไฟแบบคลาสสิกจำนวนมาก: มีระดับพลังงานที่น้อยที่สุดซึ่งจำเป็นสำหรับการทำงาน
ดังนั้น จากระบบ domotics ของฉัน ฉันจึงตัดสินใจเปลี่ยนสวิตช์หรี่ไฟแบบแมนนวลนี้เป็นอันใหม่ ซึ่งจะมีประโยชน์เพิ่มเติมในการควบคุมจากระยะไกล ฉันได้สร้างสวิตช์หรี่ไฟโดยใช้ N-channel MOSFET (IRF540) ซึ่งเหมาะสำหรับสิ่งนี้: สามารถควบคุมได้โดยสัญญาณ PWM และแทบจะทำลายไม่ได้ด้วยพิกัดสูงสุด 100 โวลต์และ 33 แอมป์ เพียงพอสำหรับจุดประสงค์นี้ (ตรวจสอบอย่างรวดเร็ว: 7 x 1 วัตต์ = 7 วัตต์ หารด้วย 12 โวลต์ ให้กระแสไฟสูงสุดประมาณ.58 แอมป์) ฉันต้องการใช้สวิตช์หรี่ไฟนี้กับอุปกรณ์อื่นที่มีหลอดไฟ 12 หลอด แต่ละหลอดมี 2 วัตต์ ซึ่งให้กำลังไฟสูงสุด 2 แอมป์ นั่นก็เพียงพอแล้ว สิ่งเดียวที่ต้องระวังคือความถี่ของสัญญาณ PWM แต่ค่าปกติสำหรับ Arduino หรือ ESP8266 (500 Hz หรือ 1kHz) ไม่ใช่ปัญหา
ขั้นตอนที่ 1: ขั้นตอนที่ 1: ส่วนประกอบ
- ไดรเวอร์ LED (ตัวแปลง AC 230 โวลต์เป็น DC 12 โวลต์) ฉันต้องการใช้กำลังไฟสูงสุด 24 วัตต์เพื่อจุดประสงค์ของฉัน ดังนั้นฉันจึงเริ่มต้นด้วยไดรเวอร์ LED ขนาด 12 โวลต์และ 2 แอมป์ ฉันพบที่ไซต์ผู้จัดจำหน่ายของจีน ไดรเวอร์นี้ได้รับการจัดอันดับ 12 โวลต์ 28 วัตต์ ดังนั้นจึงเพียงพอที่จะขับฟิกซ์เจอร์ด้วยตัวเอง สำหรับสถานการณ์ของคุณเอง คุณสามารถใช้รุ่นที่เบากว่าหรือหนักกว่าก็ได้ ขึ้นอยู่กับอุปกรณ์ติดตั้งของคุณ
- IRF540 n-channel MOSFET
- Adafruit Huzzah ESP8266 Breakoutเนื่องจากฉันต้องการใช้ WiFi และฉันชอบผลิตภัณฑ์ของ Adafruit มาก ฉันจึงเลือกบอร์ดนี้: มันให้ ESP8266 แก่ฉันด้วยพินเอาต์ตั้งโปรแกรมที่สะดวก ตัวควบคุมพลังงานออนบอร์ด และฟอร์มแฟคเตอร์ที่หรูหรา มันเกินความสามารถเล็กน้อยสำหรับโปรเจ็กต์นี้ แต่มันทำให้การทดสอบและการดีบักง่ายขึ้นมาก
- ตัวแปลง DC-DC แบบ LM2596 เพื่อให้ได้พลังงานสำหรับบอร์ด ESP จาก 12 โวลต์ ฉันต้องการตัวควบคุม ตัวแปลงขนาดเล็กเหล่านี้มีประสิทธิภาพมากและราคาถูกมาก
-
Rotary Encoder พร้อมฟังก์ชั่นปุ่มพร้อมไฟ LED ในตัว:
www.sparkfun.com/products/10596
ตัวเข้ารหัสแบบหมุนจะทำได้ แต่ฉันชอบคุณลักษณะเพิ่มเติมที่ดีของ LED ในตัว
-
ลูกบิดพลาสติกใส
www.sparkfun.com/products/10597
- ตัวต้านทาน 4k7
- ตัวต้านทาน 1k
ขั้นตอนที่ 2: ขั้นตอนที่ 2: วงจร
นี่คือวงจรที่ฉันใช้: ฉันใช้พิน 4 & 5 เป็นอินพุตสำหรับตัวเข้ารหัสแบบหมุน และใช้พิน 0 สำหรับปุ่ม Pin 0 เชื่อมต่อกับไฟ LED สีแดงบนบอร์ดด้วย ดังนั้นฉันจึงสามารถตรวจสอบฟังก์ชันของปุ่มบนการเข้ารหัสได้ด้วยการดู LED นี้
Pin 16 ใช้สำหรับเอาต์พุต PWM และฉันเชื่อมต่อสิ่งนี้โดยตรงกับไฟ LED สีเขียวบนตัวเข้ารหัส Sparkfun ESP8266 คือ 3, 3 โวลต์ และถึงแม้จะ 100% ฉันวัดเอาท์พุตเพียง 2, 9 โวลต์ ดังนั้นฉันจึงเชื่อมต่อโดยตรงโดยไม่มีตัวต้านทานแบบอนุกรม เอาต์พุตเดียวกันนี้ไปที่เกทของ n-channel MOSFET โดยใช้ตัวต้านทาน 1kOhm ประตูนี้ถูกดึงสูงถึง 12 โวลต์ด้วยตัวต้านทาน 4.7 kOhm
ฉันใช้ตัวแปลง DC-DC เพื่อแปลง 12 โวลต์เป็น 5.5 โวลต์ ซึ่งเชื่อมต่อกับอินพุต V+ ของการฝ่าวงล้อม Adafruit ฉันสามารถใช้ 3.3 โวลต์และเชื่อมต่อโดยตรง แต่สิ่งนี้ปลอดภัยกว่าเล็กน้อย
หลอดไฟ LED 12 V ในวงจรเป็นอุปกรณ์ติดตั้งของฉัน
ขั้นตอนที่ 3: ขั้นตอนที่ 3: รหัส
ฉันใส่รหัสบน GitHub:
ร่างสำหรับหรี่ไฟ LED PWM แบบ ESP8266
มันขึ้นอยู่กับแนวคิดอื่นที่สามารถสั่งสอนได้:
www.instructables.com/id/Arduino-PWM-LED-D…
แต่นี่เป็นการควบคุมเฉพาะที่ ดังนั้นฉันจึงเพิ่มโซลูชัน domotics ที่ใช้ MQTT ของตัวเอง โดยพื้นฐานแล้วมันทำสิ่งเดียวกัน แต่ความแตกต่างที่สำคัญคือ:
- จำนวนขั้นตอน PWM เริ่มต้นกับ Arduino คือ 255 โดยที่ ESP8266 คือ 1023 (อย่างที่ฉันค้นพบในภายหลัง ทั้งหมดพยายามหาว่าเหตุใดหลอดไฟ LED ของฉันจึงไม่สว่างจนสุด 100%…)
- ฉันไม่ได้ใช้วงจร 'Totempole' กับทรานซิสเตอร์ 2 ตัว เนื่องจาก PWM เป็น DC อยู่แล้ว และทำงานได้ดีกับ IRF 540
- ฉันไม่ได้ใช้ตัวต้านทานแบบดึงขึ้น 10k สำหรับตัวเข้ารหัส ฉันเชื่อในตัวดึงข้อมูลของ ESP8266
- ESP8266 ใช้ลอจิก 3.3 โวลต์แทน 5 โวลต์สำหรับ Arduino ซึ่งพิสูจน์แล้วว่าไม่มีปัญหาสำหรับ IRF540
ซอฟต์แวร์มีคุณสมบัติดังต่อไปนี้:
- การหมุนตัวเข้ารหัสจะทำให้แสงขึ้น (CW) หรือลดลง (CCW) จาก 0 ไปจนถึง 100% ใน 1023 ขั้นตอนโดยบางส่วนจะเร่งความเร็วในระดับที่ต่ำกว่า
- การกดปุ่มจะเป็นการเปิดไฟเมื่อปิดเครื่อง โดยใช้ระดับความสว่างที่บันทึกไว้ล่าสุด หรือปิดเมื่อเปิดเครื่อง
- การกดปุ่มค้างไว้นานขึ้นในขณะที่ไฟเปิดอยู่จะบันทึกความสว่างปัจจุบันเป็นระดับเริ่มต้น
- การกดปุ่มค้างไว้นานขึ้นในขณะที่ไฟปิดอยู่จะเป็นการเปิดไฟที่ความสว่าง 100% โดยไม่เปลี่ยนระดับเริ่มต้น
- มันจะเชื่อมต่อกับการตั้งค่า WiFi ที่กำหนดโดยสตริง 'SECRET_SSID' และ 'SECRET_PASS' ซึ่งถูกบันทึกไว้ในไฟล์แยกต่างหากในแบบร่างของฉันที่เรียกว่า 'secrets.h'
- มันจะเชื่อมต่อกับเซิร์ฟเวอร์ MQTT ในเครือข่าย WiFi โดยใช้สตริง 'MQTTSERVER' และ 'MQTTPORT' ในไฟล์เดียวกัน
- คุณสามารถใช้ MQTT หัวข้อขาเข้า 'domus/esp/in' เพื่อออกคำสั่ง: 'เปิด' หรือ 'ปิด" เพื่อเปิดหรือปิดไฟ หรือค่าจาก 0 ถึง 1023 เพื่อเปลี่ยนความสว่าง
- มันจะรายงานสถานะในหัวข้อ MQTT 'domus/esp/uit' (สถานะเปิดหรือปิด) และ 'domus/esp/uit/brightness' (ค่าความสว่าง)
แนะนำ:
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
PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & โดยทั่วไปแล้ว PWM จะใช้เพื่อสร้างเอาต์พุตแอนะล็อกจาก MCU ใดๆ และเอาต์พุตแอนะล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก
Aquarium Light PWM พร้อม Arduino: 3 ขั้นตอน
PWM Light สำหรับตู้ปลาด้วย Arduino: เมื่อเร็ว ๆ นี้ฉันได้แปลงไฟในตู้ปลาจากแสงจากหลอดฟลูออเรสเซนต์เป็นไฟ LED และฉันได้ตัดสินใจที่จะลองจำลองสภาพแวดล้อมทางธรรมชาติที่แสงค่อยๆ เพิ่มขึ้นตั้งแต่เช้าจรดเที่ยง แล้วลดต่ำลงจนถึงค่ำ ตอนกลางคืนมีหล
Wifi ควบคุม 12v Led Strip โดยใช้ Raspberry Pi พร้อม Tasker, การรวม Ifttt: 15 ขั้นตอน (พร้อมรูปภาพ)
Wifi ที่ควบคุม 12v Led Strip โดยใช้ Raspberry Pi พร้อม Tasker, Ifttt Integration: ในโครงการนี้ ฉันจะแสดงวิธีควบคุมแถบ LED แบบอะนาล็อก 12v อย่างง่ายผ่าน wifi โดยใช้ raspberry pi สำหรับโครงการนี้ คุณจะต้อง: 1x Raspberry Pi (I) กำลังใช้ Raspberry Pi 1 Model B+) 1x RGB 12v Le