ภาพรวมบทเรียน
บทที่ 3 Arduino และการทำงานกับหลอด LED เป็นบทเรียนปฏิบัติพื้นฐานที่ช่วยให้ผู้เรียนเข้าใจการต่อวงจร การอ่านค่าสวิตช์ และการสั่งงานหลอด LED ด้วย Arduino ซึ่งเป็นพื้นฐานสำคัญก่อนต่อยอดไปยัง Sensor, Relay, Motor และระบบ IoT ที่ซับซ้อนขึ้น
สไลด์บทนี้กำหนดเนื้อหาไว้ 4 ส่วนหลัก ได้แก่ อุปกรณ์พื้นฐานในการควบคุมหลอด LED, สัญญาณ Digital และ Analog, การรับค่าจากปุ่ม/สวิตช์ และตัวอย่างโปรแกรม
Learning Objectives
หลังเรียนบทนี้ ผู้เรียนควรสามารถต่อวงจร LED และเขียนโปรแกรม Arduino เพื่ออ่านค่าสวิตช์และควบคุม LED ได้
Flow การควบคุม LED ด้วยสวิตช์
3.1 อุปกรณ์พื้นฐานในการควบคุมหลอด LED
การควบคุมหลอด LED ด้วย Arduino ต้องใช้อุปกรณ์พื้นฐานหลายส่วน ได้แก่ Arduino Uno R3, Breadboard, Resistor, Jumper Wire, Switch และหลอด LED โดยแต่ละส่วนมีหน้าที่แตกต่างกันในการสร้างวงจรทดลอง
Arduino Uno R3
บอร์ดควบคุมหลัก อ่านค่าสวิตช์และสั่งงาน LED ผ่านขา Digital I/O
LED
หลอดไดโอดเปล่งแสง ใช้แสดงสถานะ ON/OFF ของวงจรหรือระบบ
Resistor
จำกัดกระแสไฟฟ้าเพื่อป้องกัน LED เสียหาย
Breadboard
ใช้ทดลองวงจรโดยไม่ต้องบัดกรี เหมาะกับงานต้นแบบ
Switch
อุปกรณ์เปิด-ปิดวงจร ใช้เป็น Input ให้ Arduino อ่านค่า
Jumper Wire
สายไฟสำหรับเชื่อมต่อ Arduino กับ Breadboard และอุปกรณ์ต่าง ๆ
3.1.1 Arduino Uno R3
Arduino Uno R3 เป็นบอร์ดหลักที่ใช้พัฒนาและทดลองงาน IoT มีแหล่งจ่ายไฟและขาสัญญาณพื้นฐาน เช่น GND, VIN และ VCC ซึ่งสไลด์อธิบายว่า GND คือจุดกราวด์หรือแรงดันอ้างอิง 0V, VIN คือขั้วรับแหล่งจ่ายภายนอก และ VCC คือแรงดันเลี้ยงที่เหมาะสมกับวงจร เช่น 5V หรือ 3.3V
3.1.2 หลอด LED
LED ย่อมาจาก Light Emitting Diode เป็นหลอดชนิดไดโอดที่เปล่งแสงเมื่อมีกระแสไหลผ่านในทิศทางที่ถูกต้อง LED มีขั้วบวกเรียกว่า Anode และขั้วลบเรียกว่า Cathode โดยทั่วไปขั้ว Anode มักมีขายาวกว่า ส่วนขั้ว Cathode มักมีขาสั้นกว่าและต่อไปยัง GND
3.1.3 ตัวต้านทาน (Resistor)
ตัวต้านทานเป็นอุปกรณ์ที่ใช้จำกัดการไหลของกระแสไฟฟ้า มีหน่วยเป็นโอห์ม (Ω) ในการต่อ LED ควรใช้ Resistor ต่อร่วมเพื่อจำกัดกระแส ลดความเสี่ยงที่ LED จะเสียหายจากกระแสเกิน
3.1.4 บอร์ดทดลอง (Breadboard)
Breadboard เป็นแผงทดลองวงจรอิเล็กทรอนิกส์แบบไม่ต้องบัดกรี ช่วยให้ผู้เรียนสามารถต่อวงจร แก้ไข และทดลองซ้ำได้สะดวก เหมาะสำหรับการเรียนรู้ Arduino และการสร้างต้นแบบก่อนทำวงจรถาวร
3.1.5 สวิตช์
สวิตช์เป็นอุปกรณ์ควบคุมประเภทเปิด-ปิด ทำหน้าที่เชื่อมต่อหรือขัดจังหวะกระแสไฟฟ้าในวงจร ในบทนี้ใช้สวิตช์เป็น Input เพื่อให้ Arduino อ่านสถานะว่ามีการกดปุ่มหรือไม่
3.1.6 สายต่อ Jumper
Jumper Wire ใช้เชื่อมต่อ Arduino และ Breadboard มีหลายแบบ เช่น ผู้-ผู้, ผู้-เมีย และเมีย-เมีย ควรเลือกให้เหมาะกับช่องต่อของอุปกรณ์แต่ละชนิด
3.2 สัญญาณ Digital และ Analog
ในการทำงานกับ Arduino ผู้เรียนต้องเข้าใจสัญญาณ 2 ประเภทหลัก คือ Digital และ Analog
| ประเภทสัญญาณ | ลักษณะ | ตัวอย่างการใช้งาน |
|---|---|---|
| Digital | มีค่าเป็น 0 หรือ 1, LOW หรือ HIGH | อ่านค่าสวิตช์, เปิด/ปิด LED, ควบคุม Relay |
| Analog | มีค่าเป็นช่วงต่อเนื่อง เช่น 0–1023 ใน Arduino | อ่านค่าแสง ความชื้นดิน หรือแรงดันจาก Sensor |
3.3 การรับค่าจากปุ่ม / สวิตช์
การอ่านค่าสวิตช์ด้วย Arduino ใช้คำสั่ง digitalRead() โดยกำหนดขาที่ต่อสวิตช์เป็น INPUT หรือ INPUT_PULLUP แล้วอ่านค่าที่ได้ออกทาง Serial Monitor เพื่อตรวจสอบสถานะ
int sw = 8;
void setup() {
Serial.begin(9600);
pinMode(sw, INPUT);
}
void loop() {
int val = digitalRead(sw);
Serial.println(val);
}โค้ดนี้กำหนดให้สวิตช์อยู่ที่ขา 8 แล้วอ่านค่าแสดงผลผ่าน Serial Monitor หากวงจรถูกต้อง ผู้เรียนจะเห็นค่าที่เปลี่ยนเมื่อกดหรือปล่อยสวิตช์
3.4 ควบคุม LED ด้วยสวิตช์
เมื่อต้องการควบคุม LED จากสถานะของสวิตช์ สามารถใช้ INPUT_PULLUP และคำสั่ง if else โดยเมื่อต่อแบบ Pull-up ภายใน กดปุ่มแล้วค่าที่อ่านได้มักเป็น 0 หรือ LOW
int sw = 8;
int led = 9;
void setup() {
Serial.begin(9600);
pinMode(sw, INPUT_PULLUP);
pinMode(led, OUTPUT);
}
void loop() {
int val = digitalRead(sw);
if (val == 0) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
delay(500);
}3.5 การทดลองวงจรด้วย Wokwi
สไลด์มีการกล่าวถึง Wokwi ซึ่งเป็นเครื่องมือจำลองวงจร Arduino ออนไลน์ ช่วยให้ผู้เรียนทดลองต่อวงจร เขียนโค้ด และดูผลลัพธ์ได้โดยไม่ต้องมีอุปกรณ์จริงในขั้นแรก เหมาะสำหรับการสอน การทดลอง และการตรวจสอบแนวคิดก่อนต่อวงจรจริง
3.6 ตัวอย่างโปรแกรมไฟจราจรด้วย LED หลายดวง
นอกจากควบคุม LED ดวงเดียวแล้ว สามารถต่อยอดเป็นระบบไฟจราจรโดยใช้ LED หลายดวง เช่น แดง เหลือง เขียว และกำหนดลำดับเวลาการติดดับด้วย delay()
void setup() {
pinMode(8, OUTPUT); // LED เขียว
pinMode(9, OUTPUT); // LED เหลือง
pinMode(10, OUTPUT); // LED แดง
}
void loop() {
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
delay(4000);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(2000);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
delay(4000);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
delay(2000);
}3.7 ปัญหา Port / Driver ที่พบบ่อย
ท้ายสไลด์มีตัวอย่างปัญหาเกี่ยวกับ Driver และ Serial Port เช่น CH340 Driver หรือข้อความลักษณะ “Could not connect to COM3 serial port” ซึ่งมักเกิดจากเลือกพอร์ตผิด พอร์ตถูกโปรแกรมอื่นใช้งานอยู่ สาย USB มีปัญหา หรือยังไม่ได้ติดตั้ง Driver
แนวทางตรวจสอบเบื้องต้น
- ถอดเสียบสาย USB ใหม่ และลองเปลี่ยนพอร์ต USB
- ตรวจสอบ Tools → Port ให้ตรงกับบอร์ดที่ใช้งาน
- ปิด Serial Monitor หรือโปรแกรมอื่นที่อาจใช้พอร์ตอยู่
- ติดตั้ง CH340 Driver หากใช้บอร์ด Clone ที่ใช้ชิป CH340
- ตรวจสอบสาย USB ว่าเป็นสาย Data ไม่ใช่สายชาร์จอย่างเดียว
ต้องการทำชุดทดลอง Arduino + LED สำหรับการสอน?
Siam2Dev ช่วยออกแบบชุดทดลอง IoT ตั้งแต่ Arduino/ESP32, วงจร LED, Sensor, Wokwi, คู่มือปฏิบัติการ และ Dashboard สำหรับรายวิชา IoT หรือ Workshop
สรุปบทเรียน
บทที่ 3 ช่วยให้ผู้เรียนเข้าใจการทำงานพื้นฐานของ Arduino ร่วมกับ LED และสวิตช์ โดยครอบคลุมอุปกรณ์พื้นฐาน สัญญาณ Digital/Analog การอ่านค่าสวิตช์ การสั่งงาน LED และการแก้ปัญหา Port/Driver ซึ่งเป็นพื้นฐานสำคัญในการพัฒนาโครงงาน IoT
แบบฝึกหัดท้ายบท
- อธิบายหน้าที่ของ Arduino Uno R3, LED, Resistor, Breadboard, Switch และ Jumper Wire
- LED มีขั้ว Anode และ Cathode ต่างกันอย่างไร
- ทำไมการต่อ LED ควรใช้ Resistor ร่วมด้วย
- สัญญาณ Digital และ Analog แตกต่างกันอย่างไร พร้อมยกตัวอย่าง
- เขียนโปรแกรมอ่านค่าสวิตช์จากขา 8 และแสดงผลผ่าน Serial Monitor
- เขียนโปรแกรมควบคุม LED ที่ขา 9 ให้ติดเมื่อกดสวิตช์
- ออกแบบวงจรไฟจราจรด้วย LED 3 ดวง พร้อมระบุขาที่ใช้
- อธิบายสาเหตุที่อาจทำให้เกิด Error “Could not connect to COM3 serial port”