Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Unit_03 ชุดคำสั่งไมโครคอนโทรเลอร์ Arduino

Unit_03 ชุดคำสั่งไมโครคอนโทรเลอร์ Arduino

Published by Thanakorn Intharakheenee, 2021-11-13 02:53:34

Description: Unit_03 ชุดคำสั่งไมโครคอนโทรเลอร์ Arduino

Search

Read the Text Version

หน่วยท่ี 3 ชุดคำส่ังไมโครคอนโทรเลอร์ Arduino

1. ชุดคำส่ังทใ่ี ช้ในกำรเขยี นโปรแกรม ไมโครคอนโทรลเลอร์ Arduino การเขียนโปรแกรมไมโครคอนโทรลเลอร์ Arduino สามารถเขียนไดท้ ้งั ภาษาแอสเซมบลี และภาษาระดบั สูง ไดแ้ ก่ ภาษาซี ข้ึนอยกู่ บั วา่ ผพู้ ฒั นาโปรแกรมเลือกใชภ้ าษาใด มาใชส้ าหรับเขียนโปรแกรมเพอื่ ควบคุมการทางานของ ไมโครคอนโทรลเลอร์ Arduino

2. ภำษำแอสเซมบลสี ำหรับไมโครคอนโทรลเลอร์ Arduino ภาษาแอสเซมบลีจดั จดั เป็นภาษาในระดบั ล่าง เป็นภาษาท่ีมี ความใกลเ้ คียงกบั ภาษาเครื่องและฮาร์ดแวร์ของซีพยี ู โครงสร้างของภาษา แอสเซมบลีสาหรับไมโครคอนโทรลเลอร์ Arduino ไม่แตกต่างจากภาษา แอสเซมบลีของสถาปัตยกรรมไมโครคอนโทรลเลอร์อ่ืนๆ ส่วนการเขียน โปรแกรมภาษาแอสเซมบลีตอ้ งทาการใชช้ ุดคาสง่ั ของซีพียเู พ่ือเขา้ ถึง หน่วยความจาและขอ้ มูลในรีจิสเตอร์ซ่ึงมีโดยตรง ส่งผลใหภ้ าษา แอสเซมบลีมีความยงุ่ ยากในการใชง้ านมากกวา่ ภาษาระดบั สูง

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

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.1 คาสง่ั การควบคุม เป็นคาสงั่ ใหไ้ มโครคอนโทรลเลอร์ทางานตาม เง่ือนไข - คาสง่ั if เป็นคาสงั่ ในการตรวจสอบเงื่อนไขการทางานของโปรแกรม ถา้ เงื่อนไขเป็นจริงใหท้ างานตามคาสง่ั ที่กาหนดน้นั - คาสงั่ if...else เป็นคาสง่ั กาหนดเงื่อนไขการทางานของโปรแกรม โดยมี 2 เงื่อนไข ถา้ เง่ือนไขเป็นจริงทางานตามคาสง่ั ท่ีกาหนดแบบหน่ึง ถา้ เง่ือนไขเป็นเทจ็ ทางานตามคาสง่ั ท่ีกาหนด อีกแบบหน่ึง - คาสงั่ for เป็นคาสง่ั ใหโ้ ปรแกรมทางานซ้าตามจานวนรอบที่ตอ้ งการ

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino - คาสง่ั switch case เป็นคาสง่ั เพอื่ กาหนดการทางานของโปรแกรม หลายๆ เงื่อนไข ถา้ ตวั แปรที่กาหนดตรงกบั เง่ือนไขน้นั ๆ ทาใหโ้ ปรแกรม ทางานตามท่ีกาหนดไวแ้ ต่และเง่ือนไข - คาสงั่ while เป็นคาสง่ั ทาซ้าแบบวนรอบ ถา้ เง่ือนไขเป็นจริงโปรแกรม ทางานตามคาสงั่ ท่ีเขียนไวใ้ นวงเลบ็ ปี กกา แต่ถา้ เงื่อนไขเป็นเทจ็ โปรแกรม จบการทางาน - คาสง่ั do...while เป็นคาสง่ั ทาซ้าแบบวนรอบ โดยมีการทางานตรงกนั ขา้ มกบั คาสง่ั while คือทางานตามคาสงั่ ท่ีเขียนไวใ้ นวงเลบ็ ปี กกา แลว้ จึงมา ตรวจสอบเงื่อนไข แต่ถา้ เงื่อนไขเป็นเทจ็ โปรแกรมจบการทางาน

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino - คาสง่ั break เป็นคาสงั่ ใชร้ ่วมกบั คาสงั่ การทางานแบบวนรอบ - คาสง่ั continue เป็นคาสงั่ ใชส้ าหรับขา้ มการทางานของคาสงั่ ถดั ไป - คาสงั่ return เป็นคาสง่ั จบการทางานในโปรแกรมยอ่ ย - คาสงั่ goto เป็นคาสง่ั กระโดดโดยไม่มีเง่ือนไขไปยงั ตาแหน่งที่กาหนด โดยอา้ งถึงตาแหน่ง Label ท่ีกระโดดไป

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.2 ขอ้ กาหนดของไวยากรณ์ เป็นกฎเกณฑ์ ในการสร้างประโยคข้ึนมา อธิบายความหมายของโปรแกรม - เครื่องหมาย ; (เซมิโคล่อน) เป็นการจบคาสง่ั ในบรรทดั น้นั ๆ - เครื่องหมาย { } (วงเลบ็ ปี กกา) เป็นการกาหนดบลอ็ กของคาสงั่ ใชก้ บั คาสง่ั if, else, while หรือ for - เคร่ืองหมาย // (หมายเหตบุ รรทดั เดียว) เป็นส่วนของผเู้ ขียนโปรแกรม อธิบายเพิ่มเติม ในคาสงั่ ต่างๆ วา่ โปรแกรมทางานอยา่ งไรในแต่ละบรรทดั

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino - เครื่องหมาย /* */ (หมายเหตุหลายบรรทดั ) เป็นส่วนของผเู้ ขียน โปรแกรมอธิบายเพิม่ เติม ในคาสงั่ ต่างๆ วา่ โปรแกรมทางานอยา่ งไร สามารถอธิบายไดห้ ลายบรรทดั - เคร่ืองหมาย #define เป็นคาสง่ั ในการกาหนดคา่ คงท่ี ใหก้ บั โปรแกรม - เคร่ืองหมาย #include เป็นคาสง่ั ใหน้ าไฟลอ์ ื่นเขา้ มาร่วมกบั ไฟล์ โปรแกรมหลกั

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.3 การดาเนินการทางคณิตศาสตร์ เป็นเครื่องหมายทางคณิตศาสตร์ ในการ เขียนโปรแกรม เพื่อหาผลลพั ธจ์ ากการคานวณซ่ึงสามารถกระทากบั ขอ้ มูล ไดห้ ลายรูปแบบ - เครื่องหมาย + เป็นการบวกของตวั ถูกกระทาสองตวั - เคร่ืองหมาย – เป็นการลบของตวั ถูกกระทาสองตวั - เคร่ืองหมาย * เป็นการคูณของตวั ถูกกระทาสองตวั - เครื่องหมาย / เป็นการหารของตวั ถูกกระทาสองตวั - เครื่องหมาย % เป็นการหารเอาเศษ ใชห้ าค่าเศษที่ไดจ้ ากการหาร

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.4 การดาเนินการเปรียบเทียบ เป็นเครื่องหมายท่ีใชใ้ นการเปรียบเทียบทาง คณิตศาสตร์ มีเคร่ืองหมายดงั ต่อไปน้ี - เคร่ืองหมาย == เป็นการเปรียบเทียบเท่ากบั - เครื่องหมาย != เป็นการเปรียบเทียบไม่เท่ากบั - เครื่องหมาย < เป็นการเปรียบเทียบนอ้ ยกวา่ - เคร่ืองหมาย > เป็นการเปรียบเทียบมากกวา่ - เครื่องหมาย <= เป็นการเปรียบเทียบนอ้ ยกวา่ หรือเท่ากบั - เครื่องหมาย >= เป็นการเปรียบเทียบมากกวา่ หรือเท่ากบั

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.5 การดาเนินการทางตรรกะ เป็นเครื่องหมายที่ใชเ้ ช่ือมเงื่อนไข 2 เง่ือนไข หรือมากกวา่ เพือ่ ใหก้ ารเปรียบเทียบมีความละเอียดมากข้ึน โดยใช้ สญั ลกั ษณ์แทนในแต่ละเครื่องหมาย มีเครื่องหมายดงั ต่อไปน้ี - เครื่องหมาย && ใหค้ ่าเป็นจริง เม่ือผลการเปรียบเทียบค่าท้งั สองเป็น จริงท้งั คู่ - เคร่ืองหมาย || ใหค้ ่าเป็นจริง เม่ือผลการเปรียบเทียบคา่ ท้งั สองเป็นจริง ท้งั คู่ หรือตวั แปรใดตวั หน่ึงเป็นจริง - เครื่องหมาย ! ใหค้ า่ เป็นจริง เมื่อผลการเปรียบเทียบเป็นเทจ็

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.6 การดาเนินการระดบั บิต เป็นนาคา่ แต่ละบิตของตวั แปรเดียวหรือ 2 ตวั มากระทากนั ในระดบั บิต - เครื่องหมาย & เป็นการแอนดร์ ะดบั บิต - เคร่ืองหมาย | เป็นการออร์ระดบั บิต - เคร่ืองหมาย ^ เป็นการเอก็ คลูซีฟออร์ระดบั บิต - เคร่ืองหมาย ~ เป็นการน็อตระดบั บิต - เคร่ืองหมาย << เป็นการเลื่อนบิตไปทางซา้ ย - เคร่ืองหมาย >> เป็นการเล่ือนบิตไปทางขวา

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.7 ตวั ดาเนินการ เป็นเครื่องหมายทางคณิตศาสตร์ของตวั แปรเดียว เพ่อื หา ผลลพั ธจ์ ากการคานวณน้นั เครื่องหมาย ++, เคร่ืองหมาย -- , เครื่องหมาย +=, เครื่องหมาย -= เครื่องหมาย *=, เครื่องหมาย /= , เคร่ืองหมาย %=, เคร่ืองหมาย &= เครื่องหมาย |=, เคร่ืองหมาย ^=, เคร่ืองหมาย <<=, เคร่ืองหมาย >>=

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 3.7 ตวั ดาเนินการ เป็นเครื่องหมายทางคณิตศาสตร์ของตวั แปรเดียว เพ่อื หา ผลลพั ธจ์ ากการคานวณน้นั เครื่องหมาย ++, เคร่ืองหมาย -- , เครื่องหมาย +=, เครื่องหมาย -= เครื่องหมาย *=, เครื่องหมาย /= , เคร่ืองหมาย %=, เคร่ืองหมาย &= เครื่องหมาย |=, เคร่ืองหมาย ^=, เคร่ืองหมาย <<=, เคร่ืองหมาย >>=

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 4. ตวั แปร เป็นช่ือเรียกแทนพ้ืนท่ีเกบ็ ขอ้ มูลในหน่วยความจาของ ไมโครคอนโทรลเลอร์ 4.1 ค่าคงที่ เป็นคาสง่ั ขอ้ ความที่กาหนดไวใ้ นโปรแกรม Arduino - คาสงั่ HIGH/LOW แทนสานะลอจิก “1” กบั ลอจิก “0” - คาสง่ั INPUT/OUTPUT ใชส้ าหรับกาหนดคา่ อินพตุ กบั เอาตพ์ ตุ - คาสงั่ true/false เป็นคา่ คงที่แบบบูลีน โดย true แทนสภาวะค่าใดๆท่ี ไม่ใช่ 0 ถือวา่ เป็นจริง ส่วน false มีค่าเป็น 0 หรือเป็นเทจ็ - คาสงั่ integer constants เป็นคา่ คงที่ของเลขจานวนเตม็ - คาสงั่ floating point constants เป็นคา่ คงที่ของเลขทศนิยม

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 4.2 ชนิดของขอ้ มูล สามารถแบ่งชนิดของขอ้ มูลไดด้ งั น้ี - void ใชเ้ ฉพาะในการประกาศฟังกช์ น่ั - boolean มีค่าจริงหรือเทจ็ - char มีค่าต้งั แต่ -127 ถึง 127 - unsigned char มีค่าต้งั แต่ 0 ถึง 255 - byte มีคา่ ต้งั แต่ 0 ถึง 255 - int มีคา่ ต้งั แต่ -32,7678 ถึง 32,767 - unsigned int มีค่าต้งั แต่ 0 ถึง 65,555

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 4.2 ชนิดของขอ้ มูล สามารถแบ่งชนิดของขอ้ มูลไดด้ งั น้ี - word มีค่าต้งั แต่ 0 ถึง 65,555 - long มีคา่ ต้งั แต่ -2,147,483,648 ถึง 2,147,483,647 - unsigned long มีคา่ ต้งั แต่ 0 ถึง 4,294,967,295 - float มีค่าต้งั แต่ -3.4028235E+38 ถึง 3.4028235E+38 - double มีคา่ ต้งั แต่ -3.4028235E+38 ถึง 3.4028235E+38 - string ตวั แปรสาหรับเกบ็ ขอ้ ความ - array ตวั แปรหลายตวั ที่ถูกเกบ็ รวมไวใ้ นตวั แปรช่ือเดียวกนั

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5. ชุดคาสง่ั เป็นชุดคาสง่ั ในการเขียนโปรแกรมโดยมีคาสง่ั ต่างๆ ดงั น้ี 5.1 คาสงั่ ดิจิตอล อินพตุ /เอาตพ์ ตุ - คาสง่ั pinMode() เป็นการกาหนดพอร์ตเป็นอินพตุ หรือเอาตพ์ ตุ - คาสงั่ digitalWrite() เป็นการเขียนขอ้ มูลออกพอร์ตท่ีกาหนด - คาสง่ั digitalRead() เป็นการอ่านขอ้ มูลเขา้ พอร์ตท่ีกาหนด

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.2 คาสงั่ อนาลอ็ ก อินพตุ /เอาตพ์ ตุ - คาสง่ั analogReference() เป็นการกาหนดคา่ แรงดนั อา้ งอิงท่ีใชส้ าหรับ อนาลอ็ กอินพตุ - คาสงั่ analogRead() เป็นการอ่านแรงดนั ไฟฟ้าแบบอนาลอ็ กและแปลง เป็นจานวนเตม็ มีคา่ ระหวา่ ง 0 ถึง 1023 - คาสงั่ analogWrite() เป็นการใช้ PWM เขียนค่าออกทางพอร์ตที่กาหนด

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.3 คาสง่ั เวลา - คาสงั่ millis() เป็นการหน่วงเวลามีหน่วยเป็นมิลลิวินาทีของ Arduino ทนั ทีที่มีไฟเล้ียงเขา้ Arduino - คาสง่ั micros() เป็นการหน่วงเวลามีหน่วยเป็นไมโครวินาทีของ Arduino ทนั ทีที่มีไฟเล้ียงเขา้ Arduino - คาสงั่ delay() เป็นการหน่วงเวลาตามคา่ ท่ีกาหนด มีหน่วยเป็น มิลลิวนิ าที - คาสง่ั delayMicroseconds() เป็นการหน่วงเวลาตามค่าท่ีกาหนด มี หน่วยเป็ นไมโครวินาที

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.4 คาสง่ั คณิตศาสตร์ - คาสงั่ min() เป็นการหาคา่ ต่าสุด - คาสงั่ max() เป็นการหาคา่ มากสุด - คาสงั่ abs() เป็นการหาคา่ สมบูรณ์ของตวั แปร - คาสง่ั constrain() เป็นการตรวจสอบและการปรับค่าตวั แปรที่กาหนด - คาสงั่ map() เป็นการปรับคา่ ตวั แปรจากเดิมใหอ้ ยรู่ ะหวา่ งค่าท่ีกาหนด - คาสงั่ pow() เป็นการหาคา่ ของตวั เลขยกกาลงั - คาสงั่ sqrt() เป็นการหาค่าของรากที่สองของตวั เลข

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.5 คาสงั่ ตรีโกณมิติ - คาสง่ั sin() เป็นการคานวณหาค่า sin - คาสง่ั cos() เป็นการคานวณหาคา่ cos - คาสงั่ tan() เป็นการคานวณหาคา่ tan 5.6 คาสงั่ สุ่มตวั เลข - คาสงั่ randomSeed() เป็นการกาหนดค่าเร่ิมตน้ ของฟังชน่ั random - คาสง่ั random() เป็นการสุ่มคา่ ตวั เลขระหวา่ งตวั เลขที่กาหนด

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.7 คาสงั่ บิต และไบต์ - คาสง่ั lowByte() เป็นตวั แปรของไบตต์ ่าสุด - คาสง่ั highByte() เป็นตวั แปรของไบตส์ ูงสุด - คาสง่ั bitRead() เป็นการอ่านบิตของตวั แปร - คาสง่ั bitWrite() เป็นการเขียนบิตของตวั แปร - คาสง่ั bitSet() เป็นการต้งั บิตของตวั แปรเท่ากบั 1 - คาสงั่ bitClear() เป็นการต้งั บิตของตวั แปรเท่ากบั 0 - คาสงั่ bit() เป็นการต้งั คา่ บิตตามค่าท่ีกาหนด

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.8 คาสง่ั อินเตอร์รัพทภ์ ายนอก - คาสง่ั attachInterrupt() เป็นคาสง่ั กาหนด และสร้างอินเตอร์รัพท์ - คาสงั่ detachInterrupt() เป็นคาสง่ั ปิ ดการรับอินเตอร์รัพท์ 5.9 คาสงั่ การอินเตอร์รัพท์ - คาสงั่ interrupts() เป็นการเปิ ดการใชง้ านอินเตอร์รัพท์ - คาสงั่ noInterrupts() เป็นการปิ ดการใชง้ านอินเตอร์รัพท์

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.10 คาสง่ั การติดต่อส่ือสาร - คาสง่ั Serial.begin() เป็นการกาหนดอตั ราการส่งขอ้ มูล - คาสง่ั Serial.end() เป็นการปิ ดใชง้ านการสื่อสารแบบอนุกรม - คาสง่ั Serial.available() เป็นการตรวจสอบการรับขอ้ มูลจากการสื่อสาร แบบอนุกรม - คาสงั่ Serial.read() เป็นการอ่านขอ้ มูลจากการสื่อสารแบบอนุกรมที่ เขา้ มา - คาสง่ั Serial.peek() เป็นการส่งกลบั ไบตต์ ่อไปของขอ้ มูลการสื่อสาร แบบอนุกรม

3. ภำษำซีสำหรับไมโครคอนโทรลเลอร์ Arduino 5.10 คาสงั่ การติดต่อส่ือสาร - คาสงั่ Serial.flush() เป็นการลบขอ้ มูลท้งั หมดในบฟั เฟอร์ - คาสง่ั Serial.print() เป็นการพิมพข์ อ้ มูลไปยงั พอร์ตอนุกรม - คาสงั่ Serial.println() เป็นการพิมพข์ อ้ มูลไปยงั พอร์ตอนุกรม และข้ึน บรรทดั ใหม่ - คาสง่ั Serial.write() เป็นการส่งขอ้ มูลไบตไ์ ปยงั พอร์ตอนุกรม


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook