กลับไปหน้ารวมไฟล์
working-with-two-leds-04d80c.md

การเริ่มต้นเรียนรู้ระบบฝังตัว (Embedded Systems) มักเริ่มต้นจากพื้นฐานที่สำคัญที่สุดคือการควบคุม Output สำหรับโปรเจกต์นี้ เราจะมาเรียนรู้การควบคุม LED จำนวน 2 ดวง ด้วยบอร์ด Arduino เพื่อสร้างเอฟเฟกต์ที่ซับซ้อนขึ้นอีกระดับ ได้แก่ การกะพริบแบบสลับข้าง (Alternating Blinking) และการหม่นแสงแบบนุ่มนวล (Alternating Fading) ซึ่งเป็นพื้นฐานสำคัญในการเข้าใจลอจิก Digital Output และเทคนิค PWM (Pulse Width Modulation)

วัตถุประสงค์ของโครงการ

  1. เพื่อเรียนรู้การสั่งงานขา Digital Pin ของ Arduino ในการควบคุมอุปกรณ์ Output หลายตัวพร้อมกัน
  2. เพื่อทำความเข้าใจการทำงานของลอจิกแบบ "สลับขั้ว" (Alternating Logic)
  3. เพื่อประยุกต์ใช้เทคนิค PWM สำหรับการสร้างเอฟเฟกต์แสงที่ดูเป็นธรรมชาติ (Fading)

รายละเอียดอุปกรณ์และหลักการทางวิศวกรรม

ในการต่อวงจรนี้ เราจำเป็นต้องใช้ส่วนประกอบสำคัญดังนี้:

  • Arduino Board (Uno/Nano/Mega): ทำหน้าที่เป็นหน่วยประมวลผลกลางเพื่อส่งสัญญาณควบคุม
  • LED (Light Emitting Diode): อุปกรณ์กึ่งตัวนำที่เปลี่ยนพลังงานไฟฟ้าเป็นแสง ในโปรเจกต์นี้เราใช้ 2 ดวงเพื่อแสดงการทำงานที่สัมพันธ์กัน
  • Resistors (220Ω - 330Ω): ตัวต้านทานมีความสำคัญอย่างยิ่งในการจำกัดกระแสไฟฟ้า (Current Limiting) เพื่อป้องกันไม่ให้ LED และขา I/O ของบอร์ด Arduino เสียหายจากกระแสที่ไหลเกิน
  • Jumper Wires และ Breadboard: สำหรับการเชื่อมต่อวงจร
Working with two LEDs

การวิเคราะห์ลอจิกของโปรแกรม (Code Logic Analysis)

โปรเจกต์นี้แบ่งรูปแบบการทำงานออกเป็น 2 ส่วนหลัก โดยมีรายละเอียดทางเทคนิคดังนี้:

1. การกะพริบสลับข้าง (Alternating Blinking)

ลอจิกนี้ทำงานโดยอาศัยการสั่งงานแบบ Digital Output โดยใช้ฟังก์ชัน digitalWrite() ในสถานะที่ตรงกันข้ามกัน:

  • ขั้นตอนที่ 1: ส่งสถานะ HIGH ไปยัง LED ดวงที่ 1 (ติด) และส่งสถานะ LOW ไปยัง LED ดวงที่ 2 (ดับ)
  • ขั้นตอนที่ 2: หน่วงเวลา (Delay) เพื่อให้สายตาผู้ใช้รับรู้ภาพได้
  • ขั้นตอนที่ 3: สลับสถานะ โดยส่ง LOW ไปที่ดวงที่ 1 และ HIGH ไปที่ดวงที่ 2
  • ขั้นตอนที่ 4: หน่วงเวลาอีกครั้งก่อนเริ่มรอบใหม่ ผลลัพธ์คือ LED ทั้งสองดวงจะกะพริบสลับกันไปมาอย่างต่อเนื่อง

2. การหม่นแสงสลับข้าง (Alternating Fading)

ส่วนนี้จะมีความซับซ้อนมากขึ้นเพราะเป็นการควบคุมแบบ Analog-like โดยใช้เทคนิค PWM (Pulse Width Modulation) ผ่านฟังก์ชัน analogWrite():

  • กลไกการทำงาน: Arduino จะสร้างสัญญาณสี่เหลี่ยมที่มีความถี่คงที่ แต่เปลี่ยน "ความกว้างของสัญญาณ" (Duty Cycle) จาก 0 ถึง 255
  • ลอจิกการสลับ: ในขณะที่ลูป (Loop) เพิ่มค่า PWM ให้กับ LED ดวงที่ 1 (จาก 0 ไป 255) โปรแกรมจะคำนวณค่าสำหรับ LED ดวงที่ 2 ให้ลดลงในทิศทางตรงกันข้าม (255 - ค่าของดวงที่ 1)
  • ผลลัพธ์ทางวิศวกรรม: เมื่อ LED ดวงหนึ่งค่อยๆ สว่างขึ้นจนสุด อีกดวงหนึ่งจะค่อยๆ ดับลงจนมืดสนิท สร้างเอฟเฟกต์การถ่ายเทแสงที่นุ่มนวลและเป็นมืออาชีพ

สรุปผล

โปรเจกต์นี้ไม่เพียงแต่แสดงให้เห็นถึงความสวยงามของการควบคุมแสงไฟ แต่ยังสะท้อนถึงพื้นฐานการเขียนโปรแกรมเพื่อควบคุม Hardware (Hardware-Software Interfacing) ซึ่งเป็นหัวใจสำคัญของการพัฒนาอุปกรณ์ IoT และระบบอัตโนมัติในอนาคต การเข้าใจความแตกต่างระหว่างสัญญาณ Digital (On/Off) และสัญญาณ PWM (Fading) จะช่วยให้นักพัฒนาสามารถต่อยอดไปสู่การควบคุมมอเตอร์หรืออุปกรณ์ที่ต้องการความละเอียดแม่นยำสูงขึ้นได้

ข้อมูล Frontmatter ดั้งเดิม

title: "Working with Two LEDs"
description: "This project demonstrates working with two LEDs and Arduino."
author: "SBR"
category: ""
tags:
  - "lights"
views: 28922
likes: 5
price: 1499
difficulty: "Easy"
components:
  - "2x Resistor 1k ohm"
  - "1x Arduino UNO"
  - "1x Breadboard (generic)"
  - "4x Male/Male Jumper Wires"
  - "2x 5 mm LED: Red"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "03be274481ac58ba3b2764c17357b9998fcf289f1a047e7fb423ef0a56e28574"
encryptedPayload: "U2FsdGVkX18LkeDjXGAAqjb4eOQaIICS4KG5ysJYyRyMKa5IuBDHMIwXKeQt99rZDJjPRPHQvoNPnpPPFPkY+FvouR2WlDLHx3TigTZR7DI="
seoDescription: "Learn how to control two LEDs with Arduino. Easy step-by-step tutorial for beginners in electronics and programming."
videoLinks:
  - "https://www.youtube.com/embed/niypVVP3mUA"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/working-with-two-leds-04d80c_cover.jpg"
lang: "en"