หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ LED fade โดยใช้ Arduino UNO พร้อม code

project นี้เกี่ยวกับการเปลี่ยนความเข้มของ LED อย่างเป็นจังหวะ

โปรเจกต์ LED fade โดยใช้ Arduino UNO พร้อม code

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

รายการอุปกรณ์และเครื่องมือ

}

รายละเอียดและวิธีทำ

นี่คือโปรเจกต์แรกของฉันที่ใช้ Arduino UNO เราสามารถใช้โค้ดที่ให้มาเพื่อเปลี่ยนความสว่างของ LED ได้โดยอัตโนมัติ

โค้ดนี้จะเพิ่มและลดความสว่างของ LED ทั้งหมด 255 ระดับ พร้อมกับการหน่วงเวลา (delay) ที่เลือกได้ โค้ดนี้ใช้ analogWrite(PWM) ใน 8 bit mode ซึ่งหมายความว่าความสว่างสามารถควบคุมได้ 255 ระดับ ฉันได้ลองใช้ตรรกะของโค้ดที่แตกต่างกันสำหรับโปรเจกต์นี้

LED ขนาด 10mm เชื่อมต่อกับ Pin หมายเลข 10 บน Board Arduino UNO

โค้ดเวอร์ชันแรก

ในเวอร์ชันนี้มี while Loop อยู่ 2 ชุด ในตอนเริ่มต้นความสว่างจะสูงที่สุด ดังนั้น while Loop แรกจึงถูกใช้เพื่อลดความสว่างจาก 255 ลงเหลือ 0 โดยมี delay 5 มิลลิวินาที

while(intensity != 0)

{

analogWrite(10, intensity);

delay(d);

intensity = intensity - 1;

}

while Loop นี้จะสิ้นสุดลงเมื่อความสว่างกลายเป็น 0 และ while Loop ที่สองจะเริ่มทำงาน ใน Loop นี้ความสว่างจะเพิ่มขึ้นจาก 0 ไปถึง 255

while((intensity < 255) && (intensity >= 0))

{

analogWrite(10, intensity);

delay(d);

intensity = intensity + 1;

}

int intensity = 255;
int d = 5;
// ฟังก์ชัน setup จะทำงานหนึ่งครั้งเมื่อคุณกด reset หรือจ่ายไฟให้ board
void setup() {
// กำหนดให้ digital pin 10 เป็น output
pinMode(10, OUTPUT);
}
// ฟังก์ชัน loop จะทำงานซ้ำไปเรื่อยๆ ตลอดเวลา
void loop() {
while(intensity != 0) // Loop นี้ใช้เพื่อลดความสว่าง
{
analogWrite(10, intensity);
delay(d);
intensity = intensity - 1;
}
while((intensity < 255) && (intensity >= 0)) // เพิ่มความสว่าง
{
analogWrite(10, intensity);
delay(d);
intensity = intensity + 1;
}
}

โค้ดเวอร์ชันที่สอง

ในเวอร์ชันนี้มีการใช้ Variable 2 ตัว คือ intensity และ flag เมื่อ flag เป็น 0 ความสว่างจะเพิ่มขึ้น และเมื่อความสว่างสูงถึง 255 flag จะเปลี่ยนเป็น 1 และเมื่อ flag เป็น 1 ความสว่างจะลดลง เป็นเช่นนี้ไปเรื่อยๆ

int intensity = 0;
int flag = 0;
int d = 5;
void setup() {
pinMode(10, OUTPUT);
}
void loop() {
analogWrite(10, intensity);
delay(d);
if(flag == 0)
intensity = intensity + 1;
if(intensity == 255)
flag = 1;
if(flag == 1)
intensity = intensity - 1;
if(intensity == 0)
flag = 0;
}

ทั้ง 2 เวอร์ชันนี้ค่อนข้างยาว ฉันเลยลองทำให้มันสั้นลง และผลลัพธ์ที่ได้คือเวอร์ชันที่ 3

โค้ดเวอร์ชันที่สาม

ฉันใช้ abs() และ intensity++ ในเวอร์ชันนี้ ความสว่างจะเริ่มเพิ่มขึ้นจาก -255 ไปถึง 255 จากนั้นจะกลับไปที่ -255 และวน Loop ต่อไป

int intensity = 255;
int d = 5;
void setup() {
pinMode(10, OUTPUT);
}
void loop() {
analogWrite(10,abs(intensity));
delay(d);
if(intensity++ == 256)
intensity = -255;
}

โค้ดเวอร์ชันสุดท้าย

นี่คือโค้ดที่สั้นที่สุดเท่าที่ทำได้หลังจากผ่านการลองผิดลองถูกมาหลายครั้ง

int intensity = 255;
int
int d = 5;
void setup() {
pinMode(10, OUTPUT);
}
void loop() {
analogWrite(10, intensity);
delay(d);
intensity = intensity + intensitychange;
if((intensity == 0) || (intensity == 255))
{
intensitychange = -intensitychange;
}
}

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: led-fade-using-arduino-uno-with-code-1bcb6a
870 บาท
PromptPay QR Code