สารบัญ:

หรี่ไฟ LED เข้าและออก: 3 ขั้นตอน
หรี่ไฟ LED เข้าและออก: 3 ขั้นตอน

วีดีโอ: หรี่ไฟ LED เข้าและออก: 3 ขั้นตอน

วีดีโอ: หรี่ไฟ LED เข้าและออก: 3 ขั้นตอน
วีดีโอ: หลอดLED ฟลูออเรสเซนต์ มีอยู่2แบบ มีวิธีการต่อแบบไหน ต่างกันอย่างไร 2024, กรกฎาคม
Anonim
หรี่ไฟ LED เข้าและออก
หรี่ไฟ LED เข้าและออก

ขั้นตอนต่อไปนี้คือการทดลองเพื่อแสดงให้เห็นว่า LED ทำงานอย่างไร พวกเขาแสดงให้เห็นวิธีการหรี่ไฟ LED ในอัตราที่เท่ากันและวิธีจางเข้าและออก

คุณจะต้องการ:

  • Arduino (ฉันใช้ดูโอ้)
  • เขียงหั่นขนม
  • ไฟ LED สีแดง 5 มม.
  • ตัวต้านทาน 330 Ω (ไม่สำคัญ 330-560 Ω จะทำงาน)
  • สายเชื่อมต่อที่เป็นของแข็ง 22 เกจ

ชิ้นส่วนที่จำเป็นสำหรับการทดลองเหล่านี้รวมอยู่ในชุดเริ่มต้น Arduino ทั้งหมด

ขั้นตอนที่ 1: อธิบายการปรับพัลส์

อธิบายการปรับพัลส์
อธิบายการปรับพัลส์
อธิบายการปรับพัลส์
อธิบายการปรับพัลส์
อธิบายการปรับพัลส์
อธิบายการปรับพัลส์

ไฟ LED จะทำงานที่แรงดันไฟฟ้าเท่ากันเสมอโดยไม่คำนึงถึงความสว่าง ความสว่างถูกกำหนดโดยออสซิลเลเตอร์คลื่นสี่เหลี่ยมและระยะเวลาที่แรงดันไฟฟ้าสูงจะกำหนดความสว่าง สิ่งนี้เรียกว่าการปรับความกว้างพัลส์ (PWM) สิ่งนี้ควบคุมโดยฟังก์ชัน Arduino analogWrite (พิน n) โดยที่ n มีค่าตั้งแต่ 0 ถึง 255 analogWrite () เอาต์พุต PWM ไม่ใช่แอนะล็อกจริง ถ้า n=2 LED จะสว่างเป็นสองเท่าของ n=1 ความสว่างจะเพิ่มเป็นสองเท่าเสมอเมื่อ n เพิ่มเป็นสองเท่า ดังนั้น n=255 จะสว่างเป็นสองเท่าของ n=128

ค่าของ n มักแสดงเป็นเปอร์เซ็นต์ที่เรียกว่ารอบการทำงาน รูปภาพแสดงร่องรอยของออสซิลโลสโคปสำหรับรอบการทำงาน 25, 50 และ 75%

ขั้นตอนที่ 2: Un-even Dimming

หรี่แสงไม่เท่ากัน
หรี่แสงไม่เท่ากัน
หรี่แสงไม่เท่ากัน
หรี่แสงไม่เท่ากัน

สร้างวงจรเหมือนในแผนภาพ ก็เหมือนวงจรไฟ LED กระพริบ มันใช้พิน 9 เพราะคุณต้องใช้พินที่เปิดใช้งาน PWM

คัดลอก/วางภาพสเก็ตช์ด้านล่างลงใน Arduino IDE และเรียกใช้

คุณจะสังเกตเห็นว่าไฟ LED ที่สว่างขึ้นจะหรี่ลงช้าลง เมื่อเข้าใกล้แสงสลัวที่สุดก็จะหรี่ลงอย่างรวดเร็ว

การตั้งค่าเป็นโมฆะ ()

{ โหมดพิน (9, เอาต์พุต); } วงเป็นโมฆะ () { int pin = 9; สำหรับ (int i = 255; i > -1; i--) { analogWrite (พิน, i); ล่าช้า(10); } สำหรับ (int i = 0; i < 256; i++) { analogWrite (พิน, i); ล่าช้า(10); } }

}

ขั้นตอนต่อไปจะแสดงวิธีการหรี่ไฟ LED ในอัตราคงที่ และในขั้นเดียวสำหรับคำสั่ง

ขั้นตอนที่ 3: ขึ้นและลงใน One For()

เพื่อให้ LED หรี่ลงที่อัตราคงที่ การหน่วงเวลา () จะต้องเพิ่มขึ้นในอัตราเลขชี้กำลัง เนื่องจากครึ่งรอบการทำงานจะให้ความสว่างเพียงครึ่งหนึ่งเสมอ ความคิดแรกของฉันคือลองใช้ฟังก์ชัน map() แต่เป็นเชิงเส้น

เส้น:

int d = (16-i/16)^2;

คำนวณกำลังสองของความสว่างผกผันเพื่อกำหนดความยาวของการหน่วงเวลา

คัดลอก/วางภาพสเก็ตช์ด้านล่างลงใน Arduino IDE แล้วคุณจะเห็นว่าไฟ LED จะจางเข้าและออกในอัตราคงที่

การตั้งค่าเป็นโมฆะ ()

{ โหมดพิน (9, เอาต์พุต); } วงเป็นโมฆะ () { int x = 1; int พิน = 9; สำหรับ (int i = 0; i > -1; i = i + x) { int d = (16-i/16)^2; analogWrite(พิน ผม); ล่าช้า (d); ถ้า (i == 255) x = -1; // เปลี่ยนทิศทางที่จุดสูงสุด } }

แนะนำ: