ตอนที่ 2 โครงสร้างภาษา C Arduino เบื้องต้น

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
การสร้างเว็บเพจด้วยภาษา Html
Advertisements

เป็นการนำความรู้ด้าน Microsoft Excel ที่มีความพิเศษตรงที่สามารถ กำหนดสูตรการคำนวณในแต่ละเซลล์ ของ Sheet งานนั้นๆได้ โดยอาศัย ความแม่นยำในการคีย์ข้อมูลเข้าไป.
 เครือข่ายคอมพิวเตอร์  การที่ระบบเครือข่ายมีบทบาทและ ความสำคัญเพิ่มขึ้น เพราะไมโครคอมพิวเตอร์ได้รับ การใช้งานอย่างแพร่หลาย จึงเกิดความต้องการที่จะ.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
การเพิ่ม ลบ จำกัดสิทธิ์ User จัดทำโดย 1. นายธัชนนท์ ต๊ะต้องใจ 1-B เลขที่ 4 2. นาย ไพบูรณ์ อินทะซาว 1-B เลขที่ 23.
LAB ตัวแปร : Variables ในการเขียนโปรแกรมเราต้องการให้โปรแกรม จดจำค่าต่างๆ ไว้ เช่นเมื่อรับค่าข้อมูลจาก ผู้ใช้ หรือค่าที่ได้จากการคำนวณใดๆ ค่า.
ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ซอฟต์แวร์และการเลือกใช้
เรื่อง หลักการเขียนโปรแกรม เบื้องต้น จัดทำโดย นางสาวชาดา ศักดิ์บุญญารัตน์
นาย สรวิศ เตธัญญวรากูล ปวช.3/2 นาย ศิวกร มาลี ปวช.3/2.
INTRODUCE SUBJECT สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
การจัดเก็บข้อมูลในแฟ้มข้อมูลธรรมดา นั้น อาจจำเป็นที่ใช้แต่ละคน จะต้องมีแฟ้มข้อมูลของตนไว้เป็นส่วนตัว จึง อาจเป็นเหตุให้มีการเก็บข้อมูล ชนิดเดียวกันไว้หลาย.
วิธีการใ ช้ โปรแกรมคำนวณคะแนน กลุ่มเกษตรกรดีเด่น กองพัฒนาสหกรณ์ด้าน การเงินและร้านค้า กรมส่งเสริม สหกรณ์
MTH 261 File Management. File Management File Management จะอธิบายเกี่ยวกับการเขียน ส่วนจัดการแฟ้มข้อมูล เราสามารถที่จะเขียน โปรแกรมเพื่อเรียกใช้แฟ้มข้อมูลที่เรามี
LOGO ภาษาซี 1.1 อ. กฤติเดช จินดาภัทร์. LOGO ตัวอย่างโค้ดภาษาซี
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts.
อาจารย์อภิพงศ์ ปิงยศ Lab 05 : Microsoft Excel (Part3) พท 260 เทคโนโลยีสารสนเทศและการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์ ปิงยศ.
“วิธีการใช้งาน PG Program New Version สำหรับ PGD”
เกม คณิตคิดเร็ว.
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การติดต่อฐานข้อมูลและการแสดงผล
บทที่ 5 อินพุตและเอาต์พุต
โปรแกรมย่อย อาจารย์สมเกียรติ ช่อเหมือน
Introduction to VB2010 EXPRESS
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
ครูวีรธรรม เทศประสิทธิ์ แผนกวิชาคอมพิวเตอร์ธุรกิจ
บริษัท พัฒนาวิชาการ (2535) จำกัด
การติดต่อฐานข้อมูลและการแสดงผล
การพัฒนาการใช้งานในระบบเว็บ
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
แนวทางการออกแบบโปสเตอร์
คุณลักษณะของสัญญาณไฟฟ้าแบบต่าง ๆ
DC Voltmeter.
โครงสร้างภาษา C Arduino
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
SPEI R & R Studio Program User Manual.
Basic Input Output System
การติดต่อฐานข้อมูลและการแสดงผล
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
บทที่ 8 การควบคุมโครงการ
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
บทที่ 3 แฟ้มข้อมูลและฐานข้อมูล
สำนักพัฒนาระบบและรับรองมาตรฐานสินค้าปศุสัตว์ กรมปศุสัตว์
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
Object-Oriented Programming Paradigm
ขอต้อนรับสู่ PowerPoint
บริษัท พัฒนาวิชาการ (2535) จำกัด
SPI R & R Studio Program User Manual.
บทที่ 9 การทำซ้ำ (Loop).
การเขียนภาษาจาวาเบื้องต้น
บทที่7 ทฤษฎีกราฟเบื้องต้น
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
หน่วยการเรียนรู้ การเขียนโปรแกรมภาษาขั้นพื้นฐาน เรื่อง โครงสร้างพื้นฐาน HTML 5 รหัส รายวิชา ง23102 การงานอาชีพและเทคโนโลยี 6 กลุ่มสาระ การงานอาชีพและเทคโนโลยี
บทที่ 7 การประมวลผลอาร์เรย์
บทที่ 8 การแก้ไขข้อผิดพลาดโปรแกรม(Debugging)
การเปลี่ยนแปลงประมาณการทางบัญชี และข้อผิดพลาด
บทที่ 10 การแบ่งปัญหาใหญ่ออกเป็นปัญหาย่อยและการสร้างลำดับขั้นตอนย่อย
Chapter 10 Exception Handling
เริ่มต้นสร้างบล็อกเวิร์ดเพรส
Chapter 3 : Array.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
บทที่ 5 พัลส์เทคนิค
โครงการถ่ายทอดเทคโนโลยีถนนรีไซเคิลเพื่อลดขยะพลาสติกใน 4 ภูมิภาค
การวิเคราะห์สถานะคงตัวของ วงจรที่ใช้คลื่นรูปไซน์
กระดาษทำการ (หลักการและภาคปฏิบัติ)
ใบสำเนางานนำเสนอ:

ตอนที่ 2 โครงสร้างภาษา C Arduino เบื้องต้น Arduino UNO ตอนที่ 2 โครงสร้างภาษา C Arduino เบื้องต้น

โครงสร้างโปรแกรมภาษา C บน Arduino จะมีลักษณะแบบเดียวกับ C ทั่วๆ ไป แต่สำหรับท่านที่ยังไม่เคยเรียนรู้การเขียนโปรแกรมภาษาใดๆมาก่อน ท่านต้องทำความเข้าใจในเรื่องต่างๆดังนี้ 1. พรีโปรเซสเซอร์ไดเร็กทีฟ (Preprocessor directives) 2. ส่วนของการกำหนดค่า (Global declarations) 3. ฟังก์ชั่น setup() และ ฟังก์ชั่น loop() 4. การสร้างฟังก์ชั่น และการใช้งานฟังก์ชั่น (Users-defined function) 5. ส่วนอธิบายโปรแกรม (Program comments)

1. ปรีโปรเซสเซอร์ไดเร็กทีฟ (Preprocessor directives) #include เป็นคำสั่งที่ใช้อ้างอิงไฟล์ภายนอก เพื่อเรียกใช้ฟังก์ชั่น หรือตัวแปรที่มีการสร้างหรือกำหนดไว้ในไฟล์นั้น รูปแบบการใช้งานคือ #include <ชื่อไฟล์.h> ตัวอย่างเช่น #include <Wire.h> #include <Time.h> จากตัวอย่าง จะเห็นว่าได้มีการอ้างอิงไฟล์ Wire.h และไฟล์ Time.h ซึ่งเป็นไลบารี่พื้นฐานที่มีอยู่ใน Arduino ทำให้เราสามารถใช้ฟังก์ชั่นเกี่ยวกับเวลาที่ไลบารี่ Time มีการสร้างไว้ให้ใช้งานได้

การอ้างอิงไฟล์จากภายใน หรือการอ้างอิงไฟล์ไลบารี่ที่มีอยู่แล้วใน Arduino หรือเป็นไลบารี่ที่เพิ่มเข้าไป จะใช้เครื่องหมาย <> ในการคร่อมชื่อไฟล์ไว้ เพื่อให้โปรแกรมคอมไพลเลอร์เข้าใจว่าควรไปหาไฟล์เหล่านี้จากในโฟลเดอร์ไลบารี่ แต่หากต้องการอ้างอิงไฟล์ที่อยู่ในโฟลเดอร์โปรเจค จะต้องใช้เครื่องหมาย "" คร่อมแทน เช่น #include "myFunction.h" จากตัวอย่างด้านบน คอมไพล์เลอร์จะวิ่งไปหาไฟล์ myFunction.h ภายในโฟลเดอร์โปรเจคทันที หากไม่พบก็จะแจ้งเป็นข้อผิดพลาดออกมา #define เป็นคำสั่งที่ใช้ในการแทนข้อความที่กำหนดไว้ ด้วยข้อความที่กำหนดไว้ ซึ่งการใช้คำสั่งนี้ข้อดี คือ ไม่มีการอ้างอิงกับตัวโปรแกรม รูปแบบ #define NAME VALUE ตัวอย่างเช่น #define LEDPIN 13 จากตัวอย่าง ไม่ว่าคำว่า LEDPIN จะอยู่ส่วนใดของโค้ดโปรแกรมก็ตาม คอมไพล์เลอร์จะแทนคำว่า LEDPIN ด้วยเลข 13 แทน ซึ่งข้อดีคือเราไม่ต้องสร้างเป็นตัวแปรขึ้นมาเพื่อเปลืองพื้นที่แรม และยังช่วยให้โปรแกรมทำงานเร็วขึ้นอีกด้วย เพราะซีพียูไม่ต้องไปขอข้อมูลมาจากแรมหลายๆทอด

2. ส่วนของการกำหนดค่า (Global declarations) ส่วนนี้จะเป็นส่วนที่ใช้ในการกำหนดชนิดตัวแปรแบบนอกฟังก์ชั่น หรือประกาศฟังก์ชั่น เพื่อให้ฟังก์ชั่นที่ประกาศสามารถกำหนด หรือเรียกใช้ได้จากทุกส่วนของโปรแกรม เช่น int pin = 13; void blink(void) ;

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

ตัวอย่าง ฟังก์ชั่น setup() และฟังก์ชั่น loop() int pin = 13; void setup() { pinMode(pin, OUTPUT); } void loop() { digitalWrite(pin, HIGH); delay(1000); digitalWrite(pin, LOW);

จากตัวอย่าง จะเห็นว่ามีการประกาศตัวแปรแบบนอกฟังก์ชั่น ทำให้สามารถกำหนด หรือเรียกใช้จากในฟังก์ชั่นใดๆก็ตามได้ ในฟังก์ชั่น setup() ได้มีการกำหนดให้ขาที่ 13 เป็นดิจิตอลเอาต์พุต และในฟังก์ชั่น loop() มีการกำหนดให้พอร์ต 13 มีลอจิกเป็น 1 และใช้ฟังก์ชั่น delay() ในการหน่วงเวลา 1 วินาที แล้วจึงกำหนดให้พอร์ต 13 มีสถานะลอจิกเป็น 0 แล้วจึงหน่วงเวลา 1 วินาที จบฟังก์ชั่น loop() และจะเริ่มทำฟังก์ชั่น loop() ใหม่ ผลที่ได้คือไฟกระพริบบนบอร์ด Arduino Uno ในพอร์ตที่ 13 ทำงานแบบไม่รู้จบ ในทุกๆ การทำงานของฟังก์ชั่น จะต้องเริ่มด้วยการกำหนดค่าที่ส่งกลับ ตามด้วยชื่อฟังก์ชั่น แล้วตามด้วยเครื่องหมายปีกกาเปิด { และจบด้วยเครื่องหมายปีกกาปิด ภายในฟังก์ชั่น หากจะเรียกฟังก์ชั่นใช้งานย่อยใดๆ จะต้องมีเครื่องหมาเซมิโคล่อน ; ต่อท้ายเสมอ * การกำหนดชนิดค่าที่ส่งกลับเป็น void หมายถึงไม่มีการส่งค่ากลับ แต่สามารถใช้คำสั่ง return; ตรงๆ ได้ เพื่อให้จบการทำงานของฟังก์ชั่นก่อนจะไปถึงบรรทัดสุดท้ายของฟังก์ชั่น

4. การสร้างฟังก์ชั่น และการใช้งานฟังก์ชั่น (Users-defined function) ในการสร้างฟังก์ชั่นขึ้นมา คำสั่งต่างๆ ที่อยู่ภายในฟังก์ชั่น ต้องอยู่ภายใต้เครื่องหมายปีกกาเปิด { และปีกกาปิด } เท่านั้น ภายใต้เครื่องหมาย {} สามารถนำฟังก์ชั่นหรือคำสั่งใดๆก็ได้มาใส่ไว้ แต่จะต้องคั่นแต่ละคำสั่งด้วยเครื่องหมายเซมิโคล่อน ; โดยจะนำคำสั่งทั้งหมดไว้บรรทัดเดียวกันเลย หรือแยกบรรทัดกันก็ได้เพื่อความสวยงามของโค้ด (ไม่มีผลกับขนาดของโปรแกรมหลังคอมไพล์) ตัวอย่าง void Mode(int pin) { pinMode(pin, OUTPUT); } void setup() {  Mode(13);

5. ส่วนอธิบายโปรแกรม (Program comments) ส่วนอธิบายโปรแกรม หรือการคอมเม้นโปรแกรมเป็นส่วนที่สำคัญที่จะช่วยให้ ผู้ที่ไม่ได้เขียนโปรแกรม หรือเป็นผู้เขียนโปรแกรมเข้าใจโปรแกรมได้ง่ายขึ้นโดยอ่านจากคอมเม้น แทนการทำความเข้าใจโปรแกรมโดยอ่านแต่ละฟังก์ชั่น ส่วนอธิบายโปรแกรม จะไม่มีผลใดๆ กับขนาดของโปรแกรมหลังคอมไพล์ เนื่องจากส่วนนี้จะถูกตัดทิ้งทั้งหมดเนื่องจากไม่ได้ถูกนำไปใช้งาน มีผลเพียงแค่ว่าไฟล์โค้ดโปรแกรมจะใหญ่ขึ้นมา หากมีการคอมเม้นโค้ดเยอะๆ

การคอมเม้นโค้ดมีอยู่ 2 รูปแบบ คือเปิดด้วย /. และปิดด้วย การคอมเม้นโค้ดมีอยู่ 2 รูปแบบ คือเปิดด้วย /* และปิดด้วย */ เป็นการคอมเม้นโค้ดแบบข้ามบรรทัด คือตราบใดที่ยังไม่มี */ตรงส่วนนั้น จะเป็นคอมเม้นทั้งหมด เช่น /* This code by IOXhop.com 17/5/2558 */ void setup() { .... } และแบบที่ 2 เป็นการคอมเม้นบรรทัดเดียว คือเปิดด้วยเครื่องหมาย // และปิดด้วยการขึ้นบรรทัดใหม่ เช่น void setup() {   pinMode(13, OUTPUT);  // Set pin 13 to output }

สิ่งที่ต้องใช้ 1. ตัวต้านทาน (เพื่อจำกัดกระแส) มีสองตัวคือ 330 โอม  กับ 10k โอม ใช้ตัว 330 โอม 1 ตัว 2. หลอด LED 1 หลอด

3. บอร์ด Arduino UNO  4. บอร์ด โปรโตไทร 5. สายไฟ 2 เส้น