Arduino - LED ที่ซีดจาง
ตัวอย่างนี้แสดงให้เห็นถึงการใช้ฟังก์ชัน analogWrite () ในการทำให้ LED ดับลง AnalogWrite ใช้การมอดูเลตความกว้างพัลส์ (PWM) โดยเปิดและปิดพินดิจิทัลอย่างรวดเร็วด้วยอัตราส่วนที่แตกต่างกันระหว่างเปิดและปิดเพื่อสร้างเอฟเฟกต์การซีดจาง
ส่วนประกอบที่จำเป็น
คุณจะต้องมีส่วนประกอบต่อไปนี้ -
- 1 ×เขียงหั่นขนม
- 1 × Arduino Uno R3
- 1 × LED
- ตัวต้านทาน 1 ×330Ω
- 2 ×จัมเปอร์
ขั้นตอน
ทำตามแผนภาพวงจรและต่อส่วนประกอบบนเขียงหั่นขนมดังแสดงในภาพด้านล่าง
Note- หากต้องการทราบขั้วของ LED ให้ดูอย่างใกล้ชิด ยิ่งขาสองข้างสั้นลงไปทางขอบแบนของหลอดไฟแสดงถึงขั้วลบ
ส่วนประกอบเช่นตัวต้านทานจำเป็นต้องให้ขั้วของมันโค้งงอเป็นมุม 90 °เพื่อให้พอดีกับซ็อกเก็ตเขียงหั่นขนมอย่างถูกต้อง คุณยังสามารถตัดขั้วให้สั้นลงได้
ร่าง
เปิดซอฟต์แวร์ Arduino IDE บนคอมพิวเตอร์ของคุณ การเข้ารหัสในภาษา Arduino จะควบคุมวงจรของคุณ เปิดไฟล์ร่างใหม่โดยคลิกใหม่
รหัส Arduino
/*
Fade
This example shows how to fade an LED on pin 9 using the analogWrite() function.
The analogWrite() function uses PWM, so if you want to change the pin you're using, be
sure to use another PWM capable pin. On most Arduino, the PWM pins are identified with
a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
*/
int led = 9; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(300);
}
รหัสที่ควรทราบ
หลังจากประกาศพิน 9 เป็นพิน LED แล้วจะไม่มีอะไรทำในฟังก์ชัน setup () ของโค้ดของคุณ ฟังก์ชัน analogWrite () ที่คุณจะใช้ในลูปหลักของโค้ดของคุณต้องการอาร์กิวเมนต์สองตัว: หนึ่งบอกฟังก์ชันที่จะเขียนพินและอีกอันระบุว่าจะเขียนค่า PWM ใด
ในการทำให้ LED ปิดและเปิดจางลงค่อยๆเพิ่มค่า PWM จาก 0 (ตลอดทาง) เป็น 255 (เปิดตลอดทาง) จากนั้นกลับไปที่ 0 เพื่อให้ครบวงจร ในภาพร่างที่ให้ไว้ข้างต้นค่า PWM ถูกตั้งค่าโดยใช้ตัวแปรที่เรียกว่าความสว่าง ทุกครั้งที่ผ่านลูปจะเพิ่มขึ้นตามค่าของตัวแปรfadeAmount.
หากความสว่างอยู่ที่ค่ามากเกินไป (0 หรือ 255) ก็จะเปลี่ยน fadeAmount เป็นค่าลบ กล่าวอีกนัยหนึ่งคือถ้า fadeAmount เป็น 5 ก็จะตั้งค่าเป็น -5 ถ้าเป็น -5 ก็จะตั้งค่าเป็น 5 ในครั้งต่อไปผ่านลูปการเปลี่ยนแปลงนี้จะทำให้ความสว่างเปลี่ยนทิศทางเช่นกัน
analogWrite()สามารถเปลี่ยนค่า PWM ได้เร็วมากดังนั้นการหน่วงเวลาในตอนท้ายของร่างจะควบคุมความเร็วของการจาง ลองเปลี่ยนค่าของการหน่วงเวลาและดูว่าจะเปลี่ยนเอฟเฟกต์การซีดจางอย่างไร
ผลลัพธ์
คุณควรเห็นความสว่าง LED ของคุณค่อยๆเปลี่ยนไป