โปรเจกต์ วิธีควบคุม mini water pump ด้วย Arduino
บทความนี้แสดงวิธีการควบคุม mini water pump ด้วย Arduino โดยการใช้ direct wiring และตัวอย่าง code ที่ง่าย
บทความนี้แสดงวิธีการควบคุม mini water pump ด้วย Arduino โดยการใช้ direct wiring และตัวอย่าง code ที่ง่าย
Project Supporter Team
โพสต์โดย
บทความหลัก: วิธีการควบคุม mini water pump ด้วย Arduino
การมาถึงของ Arduino microcontrollers ได้ปฏิวัติโลกของ electronics และ automation ด้วย interface ที่ใช้งานง่ายรวมถึง modules และ sensors ที่หลากหลาย ทำให้บอร์ด Arduino กลายเป็นตัวเลือกหลักสำหรับทั้งเหล่านักประดิษฐ์และมืออาชีพ ในบทความนี้ เราจะมาเจาะลึกความสำคัญของ 5V water pump module ความสำคัญของการใช้ transistors และวิธีการเชื่อมต่อทั้งสองอย่างเข้าด้วยกันอย่างมีประสิทธิภาพเพื่อสร้างระบบควบคุมน้ำที่มีประสิทธิภาพ
เราขอแนะนำให้คุณลองอ่านบทความเกี่ยวกับ transistor ของเราก่อน ซึ่งจะช่วยให้คุณเข้าใจพื้นฐานการทำงานและหน้าที่ของมันในวงจร นอกจากนี้ ควรทำความคุ้นเคยกับ resistors และวิธีการคำนวณหาค่าที่คุณต้องการด้วย เพราะความรู้นี้เป็นหัวใจสำคัญในการเลือกค่า resistor ที่ถูกต้องสำหรับวงจรของคุณ
เมื่อใช้งาน water pumps ร่วมกับ Arduino สิ่งสำคัญคือต้องจัดเตรียมแหล่งจ่ายไฟแยกต่างหากสำหรับ water pump เนื่องจาก pumps โดยเฉพาะรุ่นที่ต้องการกำลังไฟสูง สามารถดึงกระแส (current) ปริมาณมากเกินกว่าที่ Arduino จะรับไหว การใช้แหล่งจ่ายไฟแยกนี้จะช่วยให้ Arduino ของคุณทำงานได้อย่างต่อเนื่องโดยไม่มีปัญหา ในขณะที่ pump ก็สามารถทำงานได้อย่างเต็มประสิทธิภาพ
เชื่อมต่อขั้วบวก (positive terminal) ของแหล่งจ่ายไฟเข้ากับขั้วบวกของ pump และเชื่อมต่อขั้วลบ (negative terminal) ของแหล่งจ่ายไฟเข้ากับขั้วลบของ pump นอกจากนี้ ต้องทำการสร้างจุดอ้างอิง ground ร่วมกัน (common ground) โดยต่อ ground ของแหล่งจ่ายไฟเข้ากับ ground ของ Arduino
ในการควบคุมการทำงานของ pump ให้ใช้ NPN transistor เป็นตัวกลางระหว่าง Arduino และ water pump โดยเชื่อมต่อขา base ของ NPN transistor เข้ากับ Arduino pin ผ่านทาง resistor ที่เหมาะสม เชื่อมต่อขา collector เข้ากับขั้วของ pump และขา emitter เข้ากับ ground ของ Arduino เมื่อมีการจ่าย voltage ไปยังขา base ของ transistor จะทำให้กระแสไหลจาก collector ไปยัง emitter และสั่งให้ pump เริ่มทำงาน

ตามที่แสดงในแผนผังด้านบน จะมี resistor วางอยู่ระหว่าง Arduino D3 pin และขา base ของ transistor ในส่วนถัดไป เราจะมาคำนวณหาค่าสำหรับ resistor ตัวนี้กัน
ในการคำนวณหาค่า base resistor (RB) อันดับแรกเราต้องหาค่า collector current เสียก่อน เนื่องจากโหลดเพียงอย่างเดียวในวงจรนี้คือ water pump จึงสามารถสรุปได้ว่า collector current จะเท่ากับกระแสของ water pump จากข้อมูลเฉพาะของ water pump เราทราบว่า IC = 100 mA หรือ 0.1 A ซึ่งจะใช้เป็นค่าพื้นฐานในการคำนวณของเรา
สิ่งสำคัญที่ต้องทราบคือ หากเราใช้งานเกินพารามิเตอร์ที่ transistor ถูกออกแบบมา มันจะเกิดการไหม้และเสียหายได้ ด้วยเหตุนี้เราจึงต้องตรวจสอบค่า gain ของ transistor จาก datasheet ซึ่งเราพบว่าเมื่อ IC = 100 mA ค่า gain จะเท่ากับ 100 ตอนนี้เราได้ค่าที่สองแล้วคือ 𝛽 = 100
เมื่อได้ค่า gain แล้ว ขั้นตอนต่อไปคือการคำนวณหา base current สิ่งที่ต้องเข้าใจคือ collector current จะแปรผันตรงกับ base current และ gain ซึ่งความสัมพันธ์นี้สามารถเขียนเป็นสมการทางคณิตศาสตร์ได้ดังนี้:
hFe = 𝛽 (gain) = Ic / Ib
เมื่อแทนค่าลงไป เราจะได้พารามิเตอร์ตัวที่สามคือ Ib = 1mA = 0.001A ตอนนี้เราสามารถคำนวณค่า Rb โดยใช้กฎของ Ohm:
Vb = VS - VBE = Ib * Rb
Rb = (VS - VBE) / Ib
โดยที่ VS คือ source voltage และ VBE คือค่า voltage drop ตกคร่อมระหว่างรอยต่อ base-emitter ของ transistor ในวงจรของเรา ขา base ของ transistor เชื่อมต่อกับ output ของ Arduino ซึ่ง output ของ Arduino จ่ายไฟได้สูงสุด 5V และ 40mA ดังนั้นเราจึงมี source voltage เท่ากับ 5V และค่า barrier potential ของ transistor คือ 0.7V
Rb = (5V - 0.7V) / 1mA = 4.3kΩ
สำหรับวงจรของเรา ค่าที่เหมาะสมสำหรับ base resistor ควรจะเท่ากับหรือต่ำกว่า 4.3K ohms เราเลือกใช้ resistor ค่ามาตรฐานที่ต่ำกว่า และตรวจสอบจากกราฟใน datasheet ว่า base voltage เพียงพอที่จะขับให้ transistor เข้าสู่สภาวะอิ่มตัว (saturation) อีกวิธีหนึ่งเพื่อให้มั่นใจว่า transistor ทำงานในสภาวะ saturation คือการเพิ่ม base current เล็กน้อย ในตัวอย่างนี้ Arduino สามารถจ่ายกระแสให้ transistor ได้สูงสุดถึง 40mA ดังนั้นเราจึงยังมีช่องว่างในการเพิ่มกระแสได้อีกเล็กน้อย
ในการออกแบบวงจร transistor สูตรนี้มักถูกใช้เพื่อกำหนดค่า base current ที่จำเป็นเพื่อให้ได้ค่า collector current ที่ต้องการตามค่า gain ที่กำหนด อย่างไรก็ตาม สิ่งสำคัญที่ต้องทราบคือคำแนะนำที่ให้ใช้ base current ในช่วง 5% ถึง 10% นั้นเป็นเพียงกฎปฏิบัติทั่วไป (rule of thumb) และไม่ได้มีที่มาโดยตรงจากสูตรนี้

หมายเหตุ: ในสถานการณ์จริง resistors ที่มีค่าเจาะจงตามที่คำนวณได้อาจไม่มีจำหน่ายทั่วไป เนื่องจากผู้ผลิตจะกำหนดค่าของ resistors ที่วางขายในท้องตลาดไว้แล้ว พูดง่ายๆ คือ resistors จะถูกขายตามค่ามาตรฐาน (standardized values) เราจึงควรเลือกค่า resistor มาตรฐานที่ใกล้เคียงที่สุด
ในส่วนของ code นี้ เราเริ่มต้นด้วยการกำหนดให้ Arduino pin 3 เป็น output เพื่อควบคุม motor จากนั้นเราจะสั่งให้ motor สลับระหว่างการเปิดและปิดทุกๆ 3 วินาที
#define PUMP_PIN 13
void setup()
{
pinMode(PUMP_PIN, OUTPUT);
Serial.begin(115200);
}
void loop()
{
Serial.println("Turning pump ON");
digitalWrite(PUMP_PIN, HIGH);
delay(3000); // รอสามวินาที
Serial.println("Turning pump OFF");
digitalWrite(PUMP_PIN, LOW);
delay(3000); // รอสามวินาที
}
เราจะเห็นได้ว่า motor ทำงานได้ตามที่คาดไว้ โดยเปิดใช้งานเป็นเวลา 3 วินาทีแล้วจึงปิดลง
5V water pump module ช่วยเปิดโลกแห่งความเป็นไปได้ให้กับระบบควบคุมน้ำอัตโนมัติ ช่วยให้นักประดิษฐ์สามารถสร้างสรรค์ไอเดียใหม่ๆ ให้เป็นจริงได้ การใช้ transistors เพื่อเชื่อมต่อ water pump เข้ากับ Arduino ช่วยให้ผู้ใช้งานมั่นใจในความปลอดภัยและประสิทธิภาพของ microcontroller ในขณะที่สามารถจัดการกับความต้องการ voltage และ current ที่สูงขึ้นได้
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้