บทความนี้แนะนำบอร์ด Arduino รุ่น Uno ซึ่งเป็นบอร์ดที่นิยมใช้ในการศึกษาการเขียนโปรแกรมเพื่อควบคุมอุปกรณ์ โดยกล่าวถึงคุณสมบัติของบอร์ด และการใช้ Arduino IDE รุ่น 2 (beta 7) เป็นพื้นฐานสำหรับการเขียนโปรแกรมต่อไป

คุณสมบัติของ Arduino Uno
บอร์ด Arduino Uno เป็นบอร์ดไมโครคอนโทรลเลอร์ที่ใช้ชิพ ATmega328P ของบริษัท Microchip โดนตัวบอร์ดถูกออกแบบให้เชื่อมต่อกับคอมพิวเตอร์ผ่านทางพอร์ต USB รองรับการจ่ายไฟฟ้าแรงดันกระแสตรงไม่เกิน 12V จากภายนอก มีปุ่มรีเซ็ต (reset) และบนบอร์ดมีขั้วเสียบสำหรับเชื่อมต่อกับวงจรภายนอก โดยคุณสมบัติของบอร์ดเป็นดังนี้
- ไมโครคอนโทรลเลอร์ : ATmega328P
- แรงดันไฟฟ้ากระแสตรงสำหรับทำงาน : 5VDC
- แรงดันนำเข้า : 7-12VDC
- จำนวนขาที่ทำงานแบบดิจิทัล : 14 ขา (มี 6 ขาที่สามารถทำงาน PWM ได้)
- จำนวนขานำเข้าสัญญาณแอนาล็อก : 6 ขา
- จำนวนขาที่เป็นขานำเข้า/ส่งออกแบบ PWM : 6 ขา
- กระแสที่ขับได้จากขานำเข้า/ส่งออก : 20mA
- กระแสที่ขับได้จากขาจ่ายแรงดัน 3.3VDC : 50mA
- ขนาดหน่วยความจำแฟลช : 32 KB (ถูกใช้เก็บรอมของ Arduino 0.5KB)
- ขนาดหน่วยความจำแรม : 2KB
- ขนาดหน่วยความจำ EEPROM : 1KB
- ความเร็วสัญญาณนาฬิกา : 16MHz
- ขนาด : 6.86×5.34cm
Arduino IDE
Arduino IDE เป็นเครื่องมือพัฒนาโปรแกรมสำหรับบอร์ด Arduino ปัจจุบันรุ่น 1.8.15 เป็นรุ่นล่าสุด แต่ทางทีมพัฒนาได้พัฒนารุ่น 2 เป็นรุ่น beta7 ซึ่งเป็นรุ่นที่ผู้เขียนเลือกใช้ในการเขียนบทความและปรับเปลี่ยนเป็นรุ่นใหม่กว่าเมื่อมีการปรับปรุงรุ่นจากทีมพัฒนา โดยระบบปฏิบัติการที่สามารถใช้งานได้เป็นดังนี้
- Windows แบบ 32 บิต และ 64บิต
- Linux แบบ 32 บิต และ 64 บิต
- Linux ARM แบบ 32 บิต และ 64 บิต (รุ่น 2 ยังไม่สนับสนุน)
- Mac OS X รุ่น 10.14 ขึ้นไปสำหรับรุ่น 2 และ 10.10 สำหรับรุ่น 1.8.15
เมื่อเสียบบอร์ด Arduino Uno เข้ากับพอร์ตของเครื่องคอมพิวเตอร์และติดตั้งไดรเวอร์ เมื่อเข้าโปรแกรม Arduino IDE เป็นครั้งแรกจะและเลือกบอร์ดเป็น Arduino Uno จะแสดงหน้าจอให้ติดตั้งบอร์ดดังภาพต่อไปนี้

เมื่อคลิกปุ่ม Yes ระบบจะดำเนินการติดตั้งบอร์ดดังภาพต่อไปนี้


รายการไอคอนคำสั่งพื้นฐานที่ต้องรู้ได้แก่
Board Manager : สำหรับเพิ่มเติม อัพเกรด หรือถอนการติดตั้งบอร์ด


Library Manager : สำหรับเพิ่ม อัพเกรด และลบไลบรารีออกจาก Arduino IDE


New : สำหรับสร้างโปรแกรมใหม่

Open : สำหรับเปิด Sketch (โปรแกรม) ที่เขียน หรือตัวอย่างโปรแกรม



Save : สำหรับบันทึก Sketch ที่เขียน


แถบ board selected : สำหรับเลือกบอร์ดที่เชื่อมต่อกับพอร์ตสื่อสาร


ในกรณีที่แท็บมองเห็นพอร์ตแต่ไม่รู้จักบอร์ดดังภาพต่อไปนี้

ให้คลิกเพื่อเลือกรายการบอร์ดดังภาพต่อไปนี้

verify : สำหรับทำการคอมไพล์โปรแกรม


upload : สำหรับคอมไพล์โปรแกรมและอัพโหลดเข้าบอร์ด Arduino


โครงสร้างโปรแกรมพื้นฐาน

จากภาพด้านบทเป็นโครงสร้างโปรแกรมพื้นฐานที่ Arduino IDE สร้างให้ โดยภาษาที่ใช้กับ Arduino เป็นภาษา C++ ที่กำหนดฟังก์ชันพื้นฐาน 2 ฟังก์ชันสำหรับทำงาน คือ
- setup( ) สำหรับเขียนโค้ดที่จะถูกเรียกใช้เมื่อบอร์ด Arduino พร้อมทำงาน และเมื่อฟังก์ชันนี้ทำงานเสร็จจะไม่ถูกเรียกให้ทำงานอีกจนกว่าบอร์ดจะถูกรีเซ็ตหรือเริ่มจ่ายไฟเข้าบอร์ดอีกครั้ง
- loop( ) สำหรับเขียนโค้ดโปรแกรมที่จะถูกเรียกให้ทำงานซ้ำวนไปเรื่อย

ดังนั้นโปรแกรมที่ถูกสร้างขึ้นเมื่อเริ่มทำงานจึงไม่ทำสิ่งใด (เพราะไม่ได้เขียนโค้ด) และในแต่ละการวนรอบก็ไม่ได้ทำงานอะไร
สรุป
จากบทความนี้ทางทีมงาน JarutEx หวังว่าผู้อ่านสามารถใช้งาน Arduino IDE เพื่อสร้างโปรแกรม คอมไพล์และอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จ ในครั้งหน้าจะอธิบายถึงหลักภาษา C++ เพื่อเป็นพื้นฐานของการเขียนโค้ดต่อไป สุดท้ายขอให้สนุกกับการเขียนโปรแกรมครับ
(C) 2020-2021, โดย อ.ดนัย เจษฎาฐิติกุล/อ.จารุต บุศราทิจ
ปรับปรุงเมื่อ 2021-05-20, 2021-06-02, 2021-09-13