บทที่ 5: เริ่มกันที่ “Hello World”

UTEN BOONLIAM Avatar
บทที่ 5 / 26

บทที่ 5: เริ่มกันที่ “Hello World”

โดยพื้นฐานของการ ฝึกเขียนโปรแกรมคอมพิวเตอร์หรือไมโครคอนโทรลเลอร์ เรามักจะเริ่มต้นด้วยโปรแกรม “Hello World” ก่อนเป็นอันดับแรก ซึ่งจะเป็นการทดสอบเครื่องมือที่เราใช้เขียนโปรแกรมและคอมไพเลอร์ว่าทำงานถูกต้องหรือไม่ และตัวฮาร์ดแวร์ซึ่งก็คือบอร์ด Arduino Learning Kit ว่าสามารถทำงานและติดต่อกับคอมพิวเตอร์ที่ใช้เขียนโปรแกรมได้ไม่มีปัญหา เอาละ มาเริ่มเขียนโปรแกรมกันเลยดีกว่าครับ โดยทำตามขั้นตอนต่าง ๆด้านล่างไปพร้อมกันเลยนะครับ

  1. ติดตั้ง Arduino Uno เข้ากับบอร์ด Arduino Learning Kit จากนั้นต่อสาย USB ระหว่างบอร์ดเข้ากับพอร์ต USB ของคอมพิวเตอร์ ซึ่งจะทำหน้าที่ เป็นทั้งสายอัปโหลด โปรแกรมและดีบัคกมอนิเตอริ่ง ในการทดลองนี้เราไม่จำเป็นที่จะต้องเสียบ Adapter 12VDC ให้กับบอร์ด เพราะกระแสไฟที่มาจากสาย USB ของคอมพิวเตอร์เพียงพอต่อการทำงานของบอร์ดแล้ว เมื่อต่อเสร็จแล้ว ไฟหน้าจอ LCD16x2 จะสว่างขึ้น

  1. เปิดโปรแกรม Arduino IDE ขึ้นมา จากนั้นเลือกชนิดของบอร์ดเป็น Arduino Uno

  1. ก่อนทำการเขียนโปรแกรม ให้เซ็ตค่า Arduino IDE โดยให้แสดงบรรทัดที่หน้าต่าง Editor

ทั้งนี้เพื่อให้ง่ายในการตรวจสอบและอธิบายในการเรียนการสอนในครั้งนี้ โดยให้คลิกที่ File -> Preferences แล้วคลิกที่ Display line numbers ตามรูปด้านล่าง จากนั้นคลิก OK

  1. ทำการเลือกพอร์ต Arduino Uno ที่คอมพิวเตอร์มองเห็น ให้คลิกที่ Tools -> Port

ในรูปด้านบนจะเห็นว่าคอมพิวเตอร์จะมองเห็นพอร์ต Arduino Uno เป็น COM3 แต่ถ้าคอมพิวเตอร์ไม่เจอพอร์ตใดใดเลย ให้ตรวจสอบดูสาย USB ว่าได้ทำการเสียบเรียบร้อยดีหรือไม่ แต่ถ้ายังหาไม่เจออีกให้ตรวจสอบว่า Arduino IDE ได้ทำการติดตั้ง USB driver ไว้หรือไม่ ถ้ายังไม่ได้ติดตั้งหรือติดตั้งไม่สมบูรณ์ ให้ทำการติดตั้งใหม่อีกครั้ง (ดูได้จากหัวข้อ การติดตั้ง USB driver ให้กับ Arduino IDE ด้านท้ายของคู่มือ)

  1. เขียนโปรแกรมตามตัวอย่างรูปด้านล่าง

ขออธิบายในส่วนของโค้ดตามตัวอย่างด้านบนสักเล็กน้อย เพื่อเป็นพื้นฐานในการเขียนโปรแกรมในหัวข้อต่อ ๆไป ส่วนผู้ที่มีพื้นฐานในการเขียนโปรแกรม Arduino ภาษา C# อยู่แล้ว ให้ข้ามไปได้เลยครับ

แต่เนื้อหาในหนังสือเล่มนี้จะไม่ลงไปในพื้นฐานของการเขียนโปรแกรมภาษาซี ดังนั้นผู้อ่านต้องมีความรู้ความเข้าใจเบื้องต้นของภาษาซีมาแล้วบ้างไม่มากก็น้อย

โครงสร้างของโค้ด Arduino C# จะมีส่วนประกอบอยู่ 2 ส่วนหลัก ๆ ซึ่งขาดส่วนใดส่วนหนึ่งไปไม่ได้ นั่นคือฟังก์ชัน setup (บรรทัดที่ 1-4) และฟังก์ชัน loop(บรรทัดที่ 6-10)

ฟังก์ชัน setup เป็นฟังก์ชันที่ตัว Arduino จะเข้ามาทำงานเป็นฟังก์ชันแรก และทำงานครั้งเดียวหลังจากบอร์ดเริ่มทำงานหรือหลังจากทำการรีเซ็ตบอร์ด ดังนั้นเมื่อต้องการให้ Arduino รันคำสั่งใดคำสั่งหนึ่งเพียงครั้งเดียว เช่นคำสั่งการกำหนดการทำงานของ pin ว่าให้เป็นอินพุตหรือเอาต์พุต หรือคำสั่งการกำหนดค่า initial หรือกำหนดค่าเริ่มต้นต่าง ๆ ก็จะถูกนำมาวางไว้ในฟังก์ชัน setup

ฟังก์ชัน loop เป็นฟังก์ชันที่ตัว Arduino จะทำต่อจากฟังก์ชัน setup และจะทำงานวนซ้ำอยู่ในฟังก์ชันนี้ตลอดชีวิต ถ้าไม่เกิดการค้างหรือเกิดการรีเซ็ตบนตัว Arduino เสียก่อน

กลับมาดูในส่วนรายละเอียดของโค้ดด้านบนอีกครั้ง ในบรรทัดที่ 3 คำสั่ง Serial.begin(9600) ที่อยู่ในฟังก์ชัน setup เป็นการกำหนดอัตราความเร็วให้กับพอร์ตอนุกรม(Serial Port) หรือที่เราเรียกกันว่าค่า baud rate ซึ่งกำหนดไว้ที่ 9600 bit/second

บรรทัดที่ 8 คือการส่งข้อความสตริง “Hello Word” ออกไปทาง Serial Port โดยใช้คำสั่ง Serial.println(“Hello World”); จากนั้นบรรทัดที่ 9 ให้หน่วงเวลาเป็นระยะเวลา 1 วินาที ด้วยคำสั่ง delay(1000); โดยค่าที่อยู่ในฟังก์ชัน delay จะเป็นหน่วย millisecond (1000 mSec = 1 Sec )

  1. ทำการ save sketch หรือ save โค้ดที่ได้เขียนมา โดยเมื่อคลิกปุ่มคอมไพล์โค้ด Arduino IDE จะให้ทำการ save ให้อัตโนมัติ

  1. ทำการ upload โค้ดที่ผ่านการคอมไพล์แล้ว เข้าไปยังบอร์ด Arduino ถ้าการ upload เสร็จสมบูรณ์ ที่มุมซ้ายด้านล่างของหน้าต่าง sketch จะขึ้นข้อความคำว่า “Done uploading”

  1. เปิดหน้าต่าง Serial Monitor คลิกที่ Tools -> Serial Monitor

หลังจากเปิดหน้าต่าง Serial Monitor ขึ้นมาแล้วให้เลือก Baud Rate ตามที่เราได้เขียนโปรแกรมไว้ ซึ่งก็คือ 9600

  1. ดูผลการรันของโปรแกรมจากหน้าจอ Serial Monitor จะเห็นได้ว่า จะมีข้อความ “Hello Word” พิมพ์ออกมาทุก ๆ 1วินาที

แบบฝึกหัดสำหรับทบทวนความเข้าใจ

  1. ใน sketch ที่ผ่านมาให้ทดลองเปลี่ยนค่า baud rate เป็นค่า 19200 ใน แล้วดูค่าใน Serial Monitor ว่าให้ผลเป็นอย่างไง และถ้าไม่มีค่าข้อความใดใดปรากฏขึ้นมา วิธีแก้ไขให้ข้อความปรากฏขึ้นมาเหมือนการทดลองข้างต้น ทำอย่างไร

 

  1. ใน sketch ที่ผ่านมาบรรทัดที่ 8 ให้ลองเปลี่ยนคำสั่ง จาก Serial.println เป็น Serial.print ดูผลความแตกต่าง และอธิบายความแตกต่างระหว่างสองคำสั่งดังกล่าว

 

Leave a Reply

Your email address will not be published. Required fields are marked *