Arduino + Relay Module: พื้นฐานการควบคุมโหลดไฟฟ้าสำหรับผู้เริ่มต้น

ในบทเรียนนี้ เราจะก้าวข้ามขีดจำกัดของการแค่อ่านค่าเซนเซอร์หรือสั่งไฟ LED กระพริบ มาสู่การควบคุม "ฮาร์ดแวร์ของจริง" แบบปลอดภัยกันครับ!

เป้าหมายของเราเรียบง่ายแต่ทรงพลังมาก: ทำยังไงให้ไมโครคอนโทรลเลอร์ตัวจิ๋ว สามารถสั่งงานอุปกรณ์ที่ใช้ไฟแรงดันสูง หรือกินกระแสไฟเยอะกว่าที่ตัวบอร์ดจะจ่ายไหว? คำตอบก็คือการใช้ฮีโร่ 2 ตัวในวงการอิเล็กทรอนิกส์ นั่นคือ รีเลย์ (Relay) และ ทรานซิสเตอร์ (Transistor) ครับ ในบทเรียนที่ 18 นี้ เราจะมาดูว่าอุปกรณ์สองตัวนี้ช่วยให้ Arduino UNO คุมมอเตอร์ได้อย่างไรโดยที่บอร์ดไม่พัง!

Relay and Transistor with Arduino

อุปกรณ์ที่ต้องเตรียม (Supplies)

  • บอร์ด Arduino UNO และ I/O Expansion Shield
  • เซนเซอร์วัดอุณหภูมิ LM35 และ โมดูลปุ่มกด (Push Button)
  • หน้าจอ I2C LCD Module
  • โมดูลรีเลย์ (Relay Module) และ ทรานซิสเตอร์ (BC547)
  • มอเตอร์ขนาดเล็ก และ หลอดไฟ LED
  • ไดโอด (H23 FR207G) *สำคัญมากสำหรับมอเตอร์
  • ตัวต้านทาน (2k และ 5kΩ)
  • เบรดบอร์ด (Breadboard), แบตเตอรี่ และสายจัมเปอร์
Supplies Overview
คลิกเพื่อดูรูปภาพอุปกรณ์ชิ้นอื่นๆ (View More)
Supply 1
Supply 2
Supply 3
Supply 4
Supply 5
Supply 6
Supply 7
Supply 8
Supply 9
Supply 10

Step 1: วิดีโอสอนแบบละเอียดยิบ

Step 2: ทำความเข้าใจการทำงานของ Relay

ถ้าอธิบายง่ายๆ รีเลย์ (Relay) ก็คือสวิตช์ที่ถูกควบคุมด้วยไฟฟ้า แทนที่เราจะเอานิ้วไปกดสวิตช์ มันจะใช้ขดลวดแม่เหล็กไฟฟ้า (Electromagnetic coil) ในการดึงหน้าสัมผัสเหล็กให้มาแตะกันเพื่อเปิด-ปิดวงจรแทน

ความเจ๋งของมันคือ "การแยกวงจร" (Isolation) บอร์ด Arduino ของเราจ่ายไฟได้นิดเดียว เอาไปต่อตรงกับมอเตอร์หรือหลอดไฟบ้านไม่ได้ บอร์ดจะไหม้เอา! รีเลย์เลยทำหน้าที่เป็นสะพานกั้น โดยฝั่งที่ต่อกับ Arduino ใช้ไฟต่ำ (Control side) และฝั่งที่ต่อไปหาโหลดใช้ไฟสูง (Switching side)

  • COM (Common): จุดต่อไฟหลักจากแหล่งจ่ายไฟภายนอก
  • NO (Normally Open): ปกติวงจรจะเปิด (ไฟไม่เดิน) จะทำงานก็ต่อเมื่อมีคำสั่งจาก Arduino
  • NC (Normally Closed): ปกติวงจรจะปิด (ไฟเดินตลอด) ถ้ามีคำสั่งจาก Arduino ถึงจะตัดไฟ
Inside a Relay
คลิกเพื่อดูภาพอธิบายขั้ว COM / NO / NC (View More)
Relay diagram

Step 3: ผู้สนับสนุนโปรเจกต์

ซีรีส์บทเรียนนี้ได้รับการสนับสนุนจาก DFRobot ผู้จัดจำหน่ายฮาร์ดแวร์โอเพนซอร์สชั้นนำระดับโลก โดยใช้ชุด MindPlus Arduino Coding Kit ที่รวมเซนเซอร์และอุปกรณ์ที่จำเป็นมาให้ครบจบในกล่องเดียว ช่วยให้ผู้เริ่มต้นเรียนรู้ได้ง่ายขึ้น ไม่ต้องห่วงเรื่องการต่อสายไฟผิดครับ

DFRobot Kit

Step 4: โปรเจกต์ที่ 1 - พัดลมคุมด้วยอุณหภูมิ (ใช้ Relay)

เราจะมาสร้างระบบจำลอง "เทอร์โมสตัท" (Thermostat) โดยใช้เซนเซอร์ LM35 อ่านอุณหภูมิ ถ้าอุณหภูมิเกินที่เราตั้งไว้ รีเลย์จะทำงานและสั่งให้พัดลม (มอเตอร์) หมุน!

จุดที่ต้องระวัง: ไดโอดกันไฟกระชาก (Flyback Diode)

มอเตอร์คืออุปกรณ์ประเภทขดลวด (Inductive load) เวลาที่เราตัดไฟ มันจะเกิด "ไฟกระชาก" ย้อนกลับมาที่วงจรแรงมาก ซึ่งอาจทำให้รีเลย์พังได้ เราเลยต้องต่อไดโอด (หันแถบสีขาวไปทางขั้วบวกของมอเตอร์) คร่อมไว้ เพื่อเป็นทางให้ไฟกระชากวิ่งวนจนหมดไป ปลอดภัยแน่นอน!

Project 1 Wiring
คลิกเพื่อดูรูปการต่อวงจรและ Flyback Diode (View More)
Wiring Detail 1
Wiring Detail 2
Schematic

Step 5: อธิบายโค้ด

ในโค้ดเราจะกำหนดตัวแปรให้เช็กอุณหภูมิ เช่น ถ้าอุณหภูมิเกิน 50°C ให้สั่งเปิดพินดิจิทัล (HIGH) ไฟก็จะไปกระตุ้นคอยล์ในรีเลย์ให้ทำงาน และถ้าต่ำกว่า 50°C ก็สั่งปิดพิน (LOW) เพื่อตัดไฟมอเตอร์

Code Screenshot
คลิกเพื่อดูและคัดลอกโค้ด C++ (View More)
Code Snippet
// ---------- FAN CONTROL ----------
if (smoothedTempC >= 50.0) {
  digitalWrite(RELAY_PIN, HIGH);
} else {
  digitalWrite(RELAY_PIN, LOW);
}

Step 6: ทำความเข้าใจการทำงานของ Transistor

รีเลย์นั้นเจ๋งก็จริง แต่มันมีข้อเสียคือ "ทำงานช้า มีเสียงดังแต๊กๆ และเสื่อมสภาพไวเพราะเป็นกลไกขยับได้" ถ้าเราต้องการสวิตช์ที่สับแบบรัวๆ (PWM) หรือทำงานแบบเงียบกริบ ทรานซิสเตอร์ (Transistor) คือคำตอบครับ!

ทรานซิสเตอร์ทำงานเหมือน "วาล์วน้ำอิเล็กทรอนิกส์" รุ่น BC547 (NPN) ที่เราใช้ มี 3 ขา คือ Base (B), Collector (C) และ Emitter (E) พอเราป้อนกระแสไฟนิดเดียวเข้าที่ขา B มันจะยอมให้กระแสไฟก้อนใหญ่ไหลผ่านจาก C ไป E ได้ (ถ้าเป็น PNP จะกลับกัน) แถมยังทำหน้าที่ขยายสัญญาณ (Amplifier) ได้ด้วยนะ

Transistor Diagram
คลิกเพื่อดูภาพอธิบาย Transistor (View More)
Transistor 1
Transistor 2
Transistor 3

Step 7: โปรเจกต์ที่ 2 - ไฟเตือนอุณหภูมิ (ใช้ Transistor)

เนื่องจากทรานซิสเตอร์ BC547 ตัวเล็กเกินกว่าจะขับมอเตอร์ไหว เราเลยเปลี่ยนมาใช้ หลอด LED แทนครับ โดยต่อขา B เข้ากับตัวต้านทาน 5kΩ แล้วเข้าพินดิจิทัล 3 ส่วนขา C และ E ต่อคร่อม LED กับแหล่งจ่ายไฟ (โค้ดใช้ชุดเดิมได้เลย) พออุณหภูมิถึงจุดที่ตั้งไว้ ขา 3 จะส่งไฟมาเปิดวาล์วที่ขา B ทำให้ LED สว่างขึ้นมาทันที!

Transistor Project Build
คลิกเพื่อดูรูปการต่อวงจรโปรเจกต์ที่ 2 (View More)
Transistor Detail 1
Transistor Detail 2
Transistor Diagram 1
Transistor Diagram 2

Step 8: เลือกใช้อะไรดีระหว่าง Relay กับ Transistor?

  • เลือกรีเลย์ (Relay): เมื่อต้องการ "แยกวงจร" เด็ดขาด (ไฟกระแสสลับ AC ไฟบ้าน 220V หรือไฟสูงมากๆ) เพราะมีความปลอดภัยสูง เป็นสวิตช์กายภาพชัดเจน
  • เลือกทรานซิสเตอร์ (Transistor): เมื่อต้องการควบคุมด้วยความเร็วสูง รัวๆ (PWM) ต้องการความเงียบ และความทนทานในระยะยาว (ถ้าขับมอเตอร์ตัวใหญ่ๆ นิยมใช้ทรานซิสเตอร์ชนิด MOSFET แทนครับ)
Relay vs Transistor

Step 9: สรุป

การเรียนรู้วิธีใช้งาน Relay และ Transistor เป็นเหมือนการปลดล็อกพลังให้ Arduino ของคุณสามารถควบคุมโลกความเป็นจริงได้ ไม่ใช่แค่การอ่านโค้ดในคอมพิวเตอร์ แต่มันคือการเปลี่ยนคำสั่งลอจิก ให้กลายเป็น "การลงมือทำ" (Physical Action) อย่างเปิดไฟ สตาร์ทปั๊มน้ำ หรือคุมมอเตอร์

Conclusion Project

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา

อ้างอิงและเรียบเรียงโดย: Globalbyteshop Blog

แหล่งที่มาต้นฉบับ:
- บทความโดย lucascreator: How to Use Relays and Transistors With Arduino - Lesson #18
- PDF

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี