วันศุกร์ที่ 24 พฤศจิกายน พ.ศ. 2560

จำหน่าย Power Module และ โปรแกรม Arduino ให้เป็น อินเวอร์เตอร์



โครงสร้างการเขียนโปรแกรมภาษาซีของ Arduino

 โครงสร้างการเขียนโปรแกรมภาษาซีของ Arduino

ภาษาซีของ Arduino จะจัดแบ่งรูปแบบโครงสร้างของการเขียนโปรแกรมออกเป็นส่วนย่อยๆหลายๆส่วนโดยเรียกแต่ละส่วนว่า ฟังก์ชัน และ เมื่อนำฟังก์ชัน มารวมเข้าด้วยกัน ก็จะเรียกโปรแกรม โดยโครงสร้างการเขียนโปรแกรมของ Arduino นั้นทุกๆโปรแกรมจะต้องประกอบไปด้วย ฟังก์ชันจำนวน เท่าใดก็ได้ แต่อย่างน้อยที่สุดต้องมีฟังชั่น จำนวน 2 ฟังก์ชั่น คือ Setup() และLoop() ดังตัวอย่าง





รูป





        จะเห็นได้ว่าโครงสร้างพื้นฐานของภาษาซีที่ใช้กับ Arduino นั้น จะประกอบไปด้วย 3 ส่วนใหญ่ๆก็คือ

-         header  ในส่วนนี้จะมีหรือไม่มีก็ได้ ถ้ามีต้องกำหนดไว้ในส่วนเริ่มต้นของโปรแกรม ซึ่งส่วนของ header ได้แก่ ส่วนที่เป็น Compiler Directive ต่างๆรวมไปถึงส่วนของประกาศตัวแปร และ ค่าที่ต่างๆที่จะใช้ในโปรแกรม
-         setup()ในส่วนนี้เป็นฟังก์ชันบังคับที่ต้องกำหนดให้มีในทุกๆ โปรแกรม ถึงแม้ว่าในบางโปรแกรมจะไม่ต้องการใช้งานก็ยังจำเป็นต้องประกาศไว้ด้วยเสมอ เพียงแต่ไม่ต้องเขียนคำสั่งใดๆไว้ในระหว่างวงเล็บปีกกา{ } ที่ใช้เป็นตัวกำหนดขอบเขตฟังก์ของชั่น โดยฟังก์ชั่นนี้จะใช้สำหรับบรรจุคำสั่งในส่วนที่ต้องการให้โปรแกรมทำงานเพียงรอบเดียวตอนเริ่มต้นทำงานของโปรแกรมครั้งแรกเท่านั้น ซึ่งได้แก่คำสั่งเกี่ยวกับการ setup ค่าการทำงานต่างๆ เช่น การกำหนดหน้าที่การใช้งานของ pinmode และการกำหนดค่า Baudrate สำหรับใช้งานพอร์ตสื่อสารอนุกรม เป็นต้น
-         loop() เป็นส่วนฟังก์ชั่นบังคับที่ต้องกำหนดให้มีในทุกๆโปรแกรมเดียวกันกับ ฟังก์ชั่น setup() โดยฟังก์ชั่น  loop() นี้จะใช้บรรจุคำสั่งที่ต้องการให้โปรแกรมทำงานเป็นวงรอบทำซ้ำๆกันไปไม่รู้จบ ซึ่งถ้าเปรียบเทียบกับรูปแบบของ ANSI-C  ส่วนนี้ก็คือฟังก์ชั่น main() นั้นเอง




รูป

แสดงโครงสร้างโปรแกรมของ Arduino
จะเห็นได้ส่วนแรกซึ่งถือเป็นส่วนเริ่มต้นของโปรแกรมซึ่งจะเรียกว่า Header โดยประกอบด้วยคำสั่ง #include ซึ่งเป็นคำสั่งพิเศษที่เรียกว่า Compiler Directive ซึ่งมัน ไม่ใช่คำสั่ง สำหรับสั่งงานในโปรแกรมดังนั้นคำสั่งนี้จึงไม่ต้องมีเครื่องหมายเซมิโคลอนปิดท้าย คำสั่งเหมือนคำสั่งอื่นๆโดย Compiler Directive จะใช้งานทำหน้าที่สำหรับบอกให้ Compiler รับรู้เงื่อนไขในการแปลคำสั่งเท่านั่น ซึ่งในกรณีคำสั่ง #include จะใช้บอกสำหรับบอกให้ Compiler รับรู้ว่าในการแปลคำสั่งของโปรแกรมนี้ มีไฟล์ภายนอกใดบ้างที่จำเป็นต้องใช้ร่วมในการแปลคำสั่งให้โปรแกรมนี้ โดยจากตัวอย่าง ข้างต้นจะเป็นการบอกให้ Compiler ทำการผนวกไฟล์ ชื่อ “Servo.h” เข้ามาใช้เพื่อเรียกใช้คำสั่งต่างๆที่บรรจุไว้ เข้ามาใช้งานในโปนแกรม โดยใช้รูปแบบ



กล่องข้อความ: #include <header.h>






        โดยเมื่อพบคำสั่ง #include ตัวแปลภาษาของ Arduino จะไปค้นหาไฟล์ที่ระบุไว้ในเครื่องหมาย < > หลังคำสั่ง #include จากตำแหน่งDirectory ที่เก็บรวบรวม Library ของโปรแกรม Arduino ไว้ ซึ่งก็คือ “..\arduino-0012\hardware\libraries\” เช่น เมื่อทำการติดตั้งโปรแกรมของ Arduino ไว้ที่ Directoty ที่ชื่อว่า  c:\arduino-0012” ไฟล์ภายนอกที่เป็น Library Function และ Header ต่างๆ จะถูกรวบรวมเก็บไว้ที่“C\arduino-0012\hardware\libraries\” เมื่อโปรแกรมพบคำสั่ง #include โปรแกรมของ Arduino จะไปค้นหาไฟล์ต่างๆจากตำแหน่งของ Directory ที่ชื่อ “C\arduino-0012\hardware\libraries\” นั่นเอง

        โดยส่วนของ Header จะนับรวมไปถึงคำสั่งส่วนที่ใช้ประกาศสร้างตัวแปร (Variable Declaration) และค่าคงที่  (Constant Declaration) รวมทั้ง ฟังก์ชั่นต่างๆ (Function Declaration) ด้วย ซึ่งจากตัวอย่างได้แก่ส่วนที่เป็นคำสั่ง

กล่องข้อความ: Int servo=9; Servo myservo;  



                                                                                                                                                                     

สำหรับส่วนที่มีความสำคัญและจำเป็นที่สุดของโปรแกรม arduino ที่จำเป็นต้องมีและจะขาดไม่ได้ในการเขียนโปรแกรมของ arduino คือฟังก์ชัน setup ()และฟังก์ชัน loop() ฟังก์ชันทั้ง ส่วนนี้มีรูปแบบโครงสร้างที่เหมือนกัน แต่ถูกกำหนดด้วยชื่อของฟังก์ชันเป็นการเฉพาะคือ setup ()และ loop() โดย setup () จะเขียนไว้ก่อน loop() ซึ่งทั้ง ฟังก์ชั่นนี้ มีขอบเขต เริ่มต้นและสิ้นสุด อยู่ภายใต้เครื่องหมาย { }





รูป






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





รูป

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

        

ข้อสังเกต  จะเห็นได้ว่าโปรแกรมนี้จะประกอบไปด้วย คำสั่งที่เขียนขึ้นเองส่วนหนึ่ง และ อีกส่วนหนึ่งเป็น คำสั่งจากภายนอก ที่มีการสร้างและเก็บรวบรวมเป็นไฟล์ ในรูปแบบของ Library Function เก็บอยู่ภายนอกโปรแกรม เมื่อต้องการใช้งานก็สั่งผนวกไฟล์นั้นเข้ามาใช้งานในโปรแกรม จากนั้นก็สามารถเรียกใช้คำสั่งต่างๆ ที่สร้างเก็บไว้ในไฟล์นั้นได้ตามต้องการ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น