LED กระพริบและค่อยๆ สว่าง/ดับด้วย Arduino
ภาพลวงตาแบบอนาล็อก: การค่อยๆ สว่าง/ดับของ LED
โปรเจกต์ LED Blink and Fade แนะนำแนวคิดที่สำคัญในอิเล็กทรอนิกส์ดิจิทัล นั่นคือ Pulse Width Modulation (PWM) ไมโครคอนโทรลเลอร์เป็นแบบดิจิทัลโดยสมบูรณ์ สามารถส่งเอาต์พุต 5 Volts (เปิด) หรือ 0 Volts (ปิด) ได้เท่านั้น ไม่สามารถส่งเอาต์พุต 2.5 Volts ได้ แล้วเราจะทำให้ LED สว่างที่ความเข้ม 50% ได้อย่างไร?

แนวคิดของ PWM
เราใช้เทคนิคหลอกตาของมนุษย์ โดยการเปิดและปิด pin อย่างรวดเร็วหลายพันครั้งต่อวินาที ดวงตาจะรวมแสงเข้าด้วยกัน
- หาก pin เปิดเป็นเวลา 50% และปิดเป็นเวลา 50% LED จะดูสว่างเพียงครึ่งหนึ่ง
- หากเปิดเป็นเวลา 10% และปิดเป็นเวลา 90% LED จะดูหรี่มาก
ฟังก์ชัน analogWrite()
คุณสามารถใช้ PWM ได้เฉพาะกับ pin บางตัวบนบอร์ดของคุณ (ซึ่งมีเครื่องหมายคลื่น ~ กำกับไว้ เช่น ~3, ~5, ~6, ~9, ~10, ~11 บน Uno)
- ฟังก์ชัน
analogWrite(pin, value)ยอมรับค่าระหว่าง0(ปิดสนิท) ถึง255(เปิดสนิท) - ลูปการหายใจ (The Breathing Loop): คุณสร้างลูป
forที่จะเพิ่มค่าตัวแปรbrightnessอย่างรวดเร็วจาก 0 ไปจนถึง 255 โดยมีการหน่วงเวลาเล็กน้อยเพียง 5 มิลลิวินาที ทำให้ LED ค่อยๆ สว่างขึ้นอย่างนุ่มนวลจากสีดำไปสู่ความสว่างที่จ้ามาก! - ลูปย้อนกลับ (The Return Loop): ลูป
forที่สองจะนับถอยหลัง (brightness--) จาก 255 กลับไปที่ 0 ทำให้ LED ค่อยๆ หรี่แสงลงอย่างนุ่มนวล
ส่วนประกอบที่จำเป็น
- Arduino Uno/Nano: ตัวสร้าง PWM
- LED ขนาด 5 มม. ทั่วไป และ ตัวต้านทาน 220-ohm
- Breadboard และ Jumper Wires