“ จงเป็นประกายสว่างไสวปิดไฟจนกว่าจะมืด!” บางครั้งเราลืมปิดไฟเสียค่าไฟและคุณต้องเคยเห็นไฟถนนเปิดอยู่ในตอนกลางวัน เราได้สร้างวงจรไว้สองสามวงจรบนเครื่องตรวจจับความมืดซึ่งไฟจะปิดโดยอัตโนมัติหากข้างนอกสว่างและจะเปิดขึ้นหากภายนอกมืด แต่คราวนี้ในวงจรนี้เราไม่เพียง แต่เปิดและปิดไฟตามสภาพแสงเท่านั้น แต่ยังปรับความเข้มของแสงตามสภาพแสงภายนอกด้วย ที่นี่เราได้ใช้แนวคิด LDR และ PWM กับ Arduino เพื่อลดหรือเพิ่มความสว่างของPower LED 1 วัตต์โดยอัตโนมัติ
โดยทั่วไป PWM หมายถึงPulse Width Modulationสัญญาณเอาต์พุตผ่านพิน PWM จะเป็นสัญญาณแอนะล็อกและได้มาเป็นสัญญาณดิจิทัลจาก Arduino ใช้วัฏจักรหน้าที่ของคลื่นดิจิทัลเพื่อสร้างค่าอนาล็อกตามลำดับสำหรับสัญญาณ และสัญญาณนั้นจะถูกใช้เพิ่มเติมเพื่อควบคุมความสว่างของ LED เพาเวอร์
วัสดุที่จำเป็น
- Arduino UNO
- LDR
- ตัวต้านทาน (510, 100k โอห์ม)
- ตัวเก็บประจุ (0.1uF)
- ทรานซิสเตอร์ 2N2222
- LED กำลังไฟ 1 วัตต์
- การเชื่อมต่อสายไฟ
- เขียงหั่นขนม
แผนภูมิวงจรรวม
รหัสและคำอธิบาย
รหัส Arduino ที่สมบูรณ์สำหรับเครื่องหรี่ LED อัตโนมัติจะได้รับในตอนท้าย
ในโค้ดด้านล่างนี้เรากำลังกำหนดพิน PWM และตัวแปรที่จะใช้ในโค้ด
int pwmPin = 2; // กำหนดพิน 12 ให้กับตัวแปร pwm int LDR = A0; // กำหนดอินพุตอะนาล็อก A0 ให้กับหม้อตัวแปร int c1 = 0; // ประกาศตัวแปร c1 int c2 = 0; // ประกาศตัวแปร c2
ตอนนี้ใน วง เรามีครั้งแรกที่อ่านค่าที่ใช้คำสั่ง “analogRead (LDR)” แล้วบันทึกอนาล็อกลงในตัวแปรชื่อ“คุ้มค่า” ด้วยการคำนวณทางคณิตศาสตร์เรากำลังสร้างสัญญาณ PWM ที่นี่เรากำลังควบคุมความเข้มของแสงโดยใช้ PWM เฉพาะในกรณีที่ค่าอนาล็อกน้อยกว่า 500 และถ้ามากกว่า 500 เราจะปิดไฟโดยสมบูรณ์
ค่า int = analogRead (LDR); Serial.println (ค่า); c1 = ค่า; c2 = 500-c1; // ลบ c2 จาก 1,000 ans บันทึกผลลัพธ์ใน c1 if (ค่า <500) { digitalWrite (pwmPin, HIGH); delayMicroseconds (c2); digitalWrite (pwmPin, LOW); delayMicroseconds (c1); } if (ค่า> 500) { digitalWrite (2, LOW); } }
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ PWM ใน Arduino ได้จากที่นี่
วิธีควบคุมความเข้มของแสงโดยอัตโนมัติ:
ตามแผนภาพวงจรเราได้สร้างวงจรแบ่งแรงดันไฟฟ้าโดยใช้ตัวต้านทาน LDR และ 100k เอาต์พุตตัวแบ่งแรงดันจะถูกป้อนไปยังขาอะนาล็อกของ Arduino อะนาล็อกพินตรวจจับแรงดันไฟฟ้าและให้ค่าอะนาล็อกกับ Arduino ค่าอะนาล็อกจะเปลี่ยนไปตามความต้านทานของ LDR ดังนั้นหากมืดเหนือ LDR ความต้านทานจะเพิ่มขึ้นและด้วยเหตุนี้ค่าแรงดันไฟฟ้า (ค่าอะนาล็อก) จึงลดลง ดังนั้นค่าอะนาล็อกจะเปลี่ยนเอาต์พุต PWM หรือรอบการทำงานและรอบการทำงานจะเป็นสัดส่วนเพิ่มเติมกับความเข้มของไฟ LED ดังนั้นแสงเหนือ LDR จะควบคุมความเข้มของ LED Power โดยอัตโนมัติ ด้านล่างนี้เป็นแผนภาพการทำงานของวิธีการนี้เครื่องหมายลูกศรกลับหัวแสดงว่า "เพิ่มขึ้น" และเครื่องหมายลูกศรลงแสดงว่า "กำลังลดลง"
ความเข้มของแสง (บน LDR) ↓ - ความต้านทาน↑ - แรงดันไฟฟ้าที่ขาอนาล็อก↓ - รอบการทำงาน (PWM) ↑ - ความสว่างของ LED เพาเวอร์ ↑
หากภายนอกสว่างเต็มที่ (เมื่อค่าอนาล็อกเพิ่มขึ้นมากกว่า 500) ไฟ LED แสดงการทำงานจะดับลง
นี่คือวิธีที่คุณสามารถควบคุมความเข้มของแสงโดยอัตโนมัติโดยใช้ของ LDR
ตรวจสอบวงจรที่เกี่ยวข้องกับ LDR ของเราเพิ่มเติมได้ที่นี่