การใช้ Arduino แบบ Standalone หมายถึงการหยิบเอาเฉพาะตัวไมโครคอนโทรลเลอร์ (MCU) ที่อยู่บนบอร์ด มาเพียงตัวเดียว และนำมาต่อวงจรต่างๆที่จำเป็นเพิ่มเติมในภายหลัง ซึ่งวิธีนี้ทำให้เรามีความยืดหยุ่นในการดีไซน์วงจรได้มากขึ้น แถมขนาดที่อาจเล็กลง แต่ที่แน่ๆคือ ราคาถูกลงแน่นอน เพราะถ้าเทียบกับงานที่ต้องใช้ Arduino จำนวนมากๆ แต่ถ้าเราซื้อมาเฉพาะตัวไมโครคอนโทรลเลอร์ ก็จะประหยัดเงินได้หลายเท่า
สิ่งที่ควรรู้ก่อน
ในบทเรียนนี้เราจะใช้ Arduino UNO R3 เป็นอุปกรณ์หลัก โดยเราสามารถใช้งานแบบ Standalone ได้ด้วย 2 ขั้นตอน คือ
1. Burn Bootloader
2. Upload Program (Upload Code)
ซึ่งขั้นตอนการ Upload Program สามารถทำได้ 2 วิธีหลักๆ คือ
• 2.1 ใช้ Module USB TTL to UART ซึ่งเป็นอุปกรณ์ที่เอาไว้ Upload Code ลง Arduino ตระกูลที่ไม่มีช่อง USB เช่น Arduino Pro mini เป็นต้น (แต่ในบทเรียนนี้ เราจะไม่ใช้วิธีนี้ เพราะต้องซื้อโมดูลมาเพิ่มเติม)
• 2.2 ใช้ Arduino UNO R3 เป็นทั้งตัว Burn และ Upload เนื่องจาก UNO R3 เป็นรุ่นที่หลายๆคนน่าจะมีอยู่แล้ว เพราะเป็นรุ่นมารตฐาน แต่ที่สำคัญคือ เป็นรุ่นเดียวที่สามารถอด Microcontroller ออกจากตัวบอร์ดได้ ซึ่งการ Upload Standalone นั้นจำเป็นต้องถอดตัว MCU ออก ในขณะที่ Arduino รุ่นอื่นๆจะใช้ MCU แบบ SMD ซึ่งถูกบัดกรีติดกับตัวบอร์ดไปเลย
อุปกรณ์ที่ใช้
|
||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||
ภาพแสดงตำแหน่งขาต่างๆของ ATmega328P
|
ขั้นตอนที่ 1 : Burn Bootloader
เป็นขั้นตอนในการเปลี่ยนไมโครคอนโทรลเลอร์ทั่วๆไป ให้สามารถใช้งานกับ Code ของ Arduino ได้ โดย Arduino UNO R3 นั้น ใช้ Microcontroller รุ่น ATmega328P ซึ่งเป็นไมโครคอนโทรลเลอร์ของ Atmel แต่อยู่ๆถ้านำมาใช้เลย ก็จะไม่สามารถใช้กับ Arduino ได้ จึงต้องมีการ Burn Bootloader ก่อนนั่นเอง โดย Microcontroller ที่ติดมากับ UNO R3 ตั้งแต่แรก จะมีการ burn ไว้อยู่แล้ว แต่ไมโครคอนโทรลเลอร์ที่แยกซื้อมาต่างหาก อาจจะยังไม่ได้ burn และถึงแม้ว่าจะ burn ไว้แล้ว ก็สามารถทำซ้ำอีกรอบได้เช่นกัน
Bootloader คืออะไร?
สำหรับไมโครคอนโทรลเลอร์ทั่วๆไป การที่จะโปรแกรมหรืออัปโหลด Code ลงบนตัวมันได้ จะต้องใช้เครื่องโปรแกรม หรืออาจเรียกว่าเครื่องเบิร์น แต่สำหรับ MCU ของ Arduino หรือ MCU บางรุ่น จะมีชุดโปรแกรมเล็กๆ หรือที่เรียกว่า Firmware ซึ่งเป็นโปรแกรมที่จะทำหน้าที่ upload code โดยไม่จำเป็นต้องมีเครื่องเบิร์น และเราเรียก Firmware นั้นว่า Bootloader นั่นเอง ผู้ที่ใช้ Arduino จึงไม่จำเป็นต้องมีเครื่องเบิร์น แต่เราก็จะต้องเบิร์น Bootloader ลงบนตัว MCU ก่อน
ขั้นตอนการ Burn Bootloader
1. ต่อวงจร
2. Upload code และ Burn ได้เลย
ทำการ Upload Code Arduino ISP ลงบน MCU หลักก่อน ซึ่งเป็น Code ที่จะใช้ในการ Burn bootloader ให้ MCU เป้าหมาย โดยไปที่ Examples > ArduinoISP




2. Upload บน Protoboard
(ให้เลือกวิธีใดวิธีหนึ่ง)
เทคนิคการถอด(แกะ) MCU ออกจากบอร์ด
บางคนอาจจะไม่กล้าแกะ MCU ออกจาก Socket ของบอร์ด Arduino UNO R3 เพราะกลัวว่าขาจะขาดหรืองอ ซึ่งมันก็สามารถขาดได้จริงๆ หากเราไม่มีเทคนิคในการแกะ
เทคนิคในการแกะก็คือ ใช้ไขควงปากแบน หรืออะไรที่แบนๆก็ได้ เช่นไม้บรรทัด สอดเข้าไปใต้ท้องของ MCU แล้วค่อยๆงัด ทีละฝั่งเท่ากันๆ อย่างัดฝั่งเดียว ต้องงัดทั้ง 2 ฝั่ง (ด้านหน้าและหลัง) โดยอาจจะงัดข้างหน้าทีละนิดก่อน แล้วสลับไปงัดด้านหลัง จนกระทั่ง MCU มีความหลวมมากพอ เราก็ดึงมันออกมาจาก Socket ได้เลย

หลังจากต่อวงจรไว้แล้ว ก็ทำการ Upload ตามปกติ โดยอย่าลืมเปลี่ยนประเภทการ Upload (programmer) ให้กลับมาเป็นแบบ Parallel Programmer ด้วย เพราะการ Upload Code ของ Arduino จะใช้การเชื่อมต่อแบบ Parallel
เลือกประเภทการ Upload กลับมาเป็น Parallel Programmer
ทำการ Upload code ที่ต้องการตามปกติ เช่น code ไฟ LED กระพริบ ก็สามารถ Upload ได้ตามปกติเลย โดยไปคลิกที่เครื่องหมายลูกศรด้านบน และรอจน Upload เสร็จสิ้น เพียงเท่านี้ เราก็จะได้ Arduino แบบ Standalone มาใช้แล้ว
การนำ MCU แบบ Standaloneไปใช้
หลังจากที่ได้ MCU แบบ Standalone มาแล้ว การที่เราจะนำไปใช้งานได้ ก็จะต้องมีการต่อวงจรเล็กๆเพิ่ม อีก 2 วงจร ได้แก่1.วงจรกำเนิดความถี่ 2.วงจรไฟเลี้ยง
1.วงจรกำเนิดความถี่
การใช้งานไมโครคอนโทรลเลอร์ทั่วๆไป จะต้องมีวงจรกำเนิดความถี่ให้กับมัน เพราะความถี่นี้ จะเป็นตัวกำหนดจังหวะการทำงานและการนับเวลาต่างๆของ MCU
วงจรกำเนิดความถี่ ไม่มีอะไรซับซ้อน มีอุปกรณ์ดังนี้
อุปกรณ์ | จำนวน |
Crystal กำเนิดความถี่ 16.00 MHz | 1 ตัว |
ตัวเก็บประจุ 22 pF | 2 ตัว |
โดยการนำ Crystal ต่อเข้าที่ขา 9 และ 10 ของ MCU ATmega328P (ต่อด้านไหนก็ได้ เพราะ Crystal ไม่มีขั้ว) และนำตัวเก็บประจุจัมป์ระหว่างขาทั้ง 2 ของ Crystal กับ Ground
2.วงจรไฟเลี้ยง
เป็นอีกวงจรที่สำคัญมาก เพราะก่อนอื่นต้องรู้ว่า MCU ATmega328P รับไฟเลี้ยงได้ไม่เกิน 5.5 V แต่ในบางครั้ง เราอาจต้องการใช้กับไฟเลี้ยง หลายๆแบบที่หามาได้ เช่น 5 V , 9 V หรือ 12 V เป็นต้น ดังนั้น เราจึงจำเป็นต้องมี IC Voltage Regulator เพื่อจำกัดแรงดันให้ไม่เกิน 5 V เพื่อประสิทธิภาพสูงสุดของ MCU และป้องกันความเสียหายจากไฟแรงดันเกิน
โดยมีอุปกรณ์ดังนี้
อุปกรณ์ | จำนวน |
IC 7805 Voltage Regulator | 1 ตัว |
ตัวเก็บประจุ 0.1 uF | 1 ตัว |
ตัวเก็บประจุ 0.33 uF | 1 ตัว |
* ตัวเก็บประจุจะเพิ่มความเสถียรและความเรียบของสัญญาณไฟฟ้าได้มาก IC 7805 Voltage Regulator ทำหน้าที่แปลงแรงดันขาเข้า จาก 5 – 35 V ให้กลายเป็นแรงดันขาออก 4.8 – 5.2 V นั่นหมายความว่า เราสามารถใช้แหล่งจ่ายได้หลากหลายตั้งแต่ 5 – 35 V