บ1ทที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 21 11
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 2 2
บ3ทที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 21 คำนำ การเรียบเรยี งเอกสารประกอบการสอนรายวิชาอเิ ล็กทรอนิกส์และ เทคโนโลยีคอมพิวเตอร์ เป็นสว่ นหน่ึงของการจดั การเรียนการสอนในรายวิชาเทคโนโลยสี ื่อ สง่ิ พิมพ์ เรียบเรยี งโดยนิสิตหลักสตู รศิลปะศาสตรบ์ ณั ฑิต (เทคโนโลยีสอ่ื สารการศึกษา คณะศกึ ษาศาสตร์มหาวทิ ยาลัย นเรศวร) ผเู้ รยี บเรียงหวงั วา่ การเรยี บเรียงครั้งน้ีมปี ระโยชน์ตอ่ ผูส้ นใจไม่มากก็ น้อย 33
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 4 สารบญั หนา้ เรอ่ื ง 5 7 Arduino คืออะไร 9 Arduino ทาอะไรได้ ? 10 สิง่ ทท่ี าให้ Arduino น่าสนใจ ? 26 Arduino IDE วธิ ีติดต้ัง (Windows) 34 สรา้ งโปรแกรมภาษา C บน Arduino 39 ตัวอย่างการเขยี นโคด้ Arduino ไฟจราจร การควบคุมการทางานของอินพทุ และเอาตพ์ ุท 43 45 การเช่อื มต่อไมโครดอนโทรลเลอร์ Arduino กบั คยี ส์ วติ ชแ์ บบ แมทรกิ ซ์ (Keypad) คยี ส์ วิตซ์แบบแมทรกิ ซ์ (Keypad) 4
บ5ทที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 21 เซน็ เซอร์และระบบอจั ฉริยะ 47 เซน็ เซอร์วัดอณุ หภมู ิ (Temperature Sensor) 50 เซ็นเซอร์ไร้สาย (Wireless Sensor) 53 55
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 6 Arduino คอื อะไร Arduino เป็นภาษาอติ าลี อ่านวา่ อาดอุ ีโน่ (ฟงั การออกเสยี ง ได้ทีท่ ้ายบทความ) ส่วนคนท่ัวไปท่ีไม่ใชค่ นอติ าลผี มวา่ ออกเสยี ง วา่ อาดยุ โน่ กพ็ อแล้วครบั , Arduino คอื Open- Source Platform สาหรบั การสร้างต้นแบบทางอเิ ลก็ ทรอนิกส์ โดยมจี ดุ มงุ่ หมายให้ Arduino Platform เป็น Platform ทีง่ ่ายต่อ การใช้งาน, โดย Arduino Platform ประกอบไปดว้ ย 1. สว่ นท่ีเป็นฮาร์ดแวร์ (Hardware) บอรด์ อิเล็กทรอนิกส์ขนาดเล็ก ทม่ี ไี มโครคอนโทรลเลอร์ (MCU) เป็นชน้ิ สว่ นหลกั ถกู นามาประกอบร่วมกบั อุปกรณ์ อิเล็กทรอนกิ ส์อ่ืนๆ เพ่ือใหง้ ่ายต่อการใช้งาน หรอื ทเ่ี รียกกัน วา่ บอร์ด Arduino, โดยบอร์ด Arduino เองกม็ ีหลายรนุ่ ใหเ้ ลือกใช้ โดยในแตล่ ะรนุ่ อาจมคี วามแตกต่างกันในเรอ่ื งของขนาดของบอรด์ หรอื สเปค เชน่ จานวนของขารับส่ง สญั ญาณ, แรงดนั ไฟทใี่ ช้, ประสิทธิภาพ ของ MCU เป็นต้น 6
บ7ทท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 2. ส่วนทเี่ ปน็ ซอฟตแ์ วร์ (Software) ภาษา Arduino (ซง่ึ จริงๆ แล้วก็คอื ภาษา C/C++) ใช้สาหรบั เขยี น โปรแกรมควบคุม MCU Arduino IDE เป็นเคร่ืองมือสาหรับเขียนโปรแกรมดว้ ยภาษา Arduino, คอมไพลโ์ ปรแกรม (Compile) และอัปโหลดโปรแกรม ลงบอร์ด (Upload) 77
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 8 Arduino ทาอะไรได้ ? Arduino ถกู ใช้ประโยชน์ในลกั ษณะเดยี วกับ MCU คือ ใช้ ตดิ ต่อสื่อสารและควบคมุ อปุ กรณ์ไฟฟา้ อนื่ ๆ ด้วยการเขียน โปรแกรมให้กบั MCU เพื่อควบคุมการรบั สง่ สัญญาณทางไฟฟา้ ตาม เงอ่ื นไขตา่ งๆ ตวั อย่าง การประยกุ ต์ใช้ Arduino ในชีวติ ประจาวนั เช่น ระบบ เปดิ /ปดิ ไฟในบา้ นอัตโนมตั ิ, ระบบรดน้าต้นไม้อัตโนมัติ, ระบบเปิด/ ปิดประตูอัตโนมตั ิ, ระบบเครื่องซกั ผา้ หยอดเหรยี ญ หรือ ใชค้ วบคุม ความเร็ว และทิศทางการหมุนของคมุ มอเตอร์ เป็นต้น Arduino Official Board กบั Compatible Board ตา่ งกัน อยา่ งไร ? Arduino เป็นบอรด์ อิเล็กทรอนิกส์ท่ี Open-Source ฮารด์ แวร์ นั่น คือเปิดเผยแบบแปลนในการผลิต ทาใหใ้ ครๆ ก็สามารถผลิต หรือ สร้างบอร์ด Arduino ขึ้นมาจาหนา่ ยได้ (แต่มขี ้อแม้วา่ ห้ามใช้ชื่อ บอรด์ ว่า Arduino) ดังนั้นบอรด์ Arduino จึงมีผู้ผลิตออกมา จาหน่ายมากมาย โดยแบ่งประเภทของบอร์ด Arduino จาก แหล่งท่ีมาท่ตี ่างกันไดเ้ ป็น 2 ประเภท ดังนี้ 8
บ9ทที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 12 Official Board หรอื บอร์ดท่ีผลิตโดยต้นตารบั ผลิตจากประเทศ อติ าลี “บอร์ดจะถกู ผลิตดว้ ยความประณีต สวยงาม อปุ กรณ์แตล่ ะ ช้ินได้มาตรฐาน ผ่านการตรวจเชค็ ความสมบรู ณ์ของสินค้าอย่างดี กอ่ นออกจาหนา่ ย” Compatible Board หรือ บอรด์ ทเี่ ขา้ กนั ได้ (ใช้แทน Official Board ได)้ ซงึ่ ไม่ได้ถูกผลิตโดยตน้ ตารับ แต่อาจ ถูกผลติ ข้ึนมาตามแบบแปลนแปะ๊ ๆ หรืออาจผลติ ใหใ้ กลเ้ คียงกับ แบบแปลนจากตน้ ตารบั โดยอาจมีการปรับนนู่ นดิ ปรบั นี่หนอ่ ยบ้าง เพ่ือลดตน้ ทนุ หรอื เพือ่ เพมิ่ ความสามารถ บอร์ดประเภทนส้ี ่วนมาก ผลติ ทจี่ ีน คณุ ภาพใช้ได้ และราคาถูก เหมาะกบั การเอามาศึกษาใน ระดับผเู้ รม่ิ ตน้ ซึง่ ถ้าเทยี บราคากนั ในรุน่ Arduino UNO R3 ราคา ของ Official Board จะอยทู่ ี่ราวๆ 800 บาท สว่ น Compatible Board จะอยทู่ ร่ี าวๆ 200 บาท Arduino UNO R3 Compatible Board 9 9
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 10 ส่งิ ที่ทาให้ Arduino น่าสนใจ ? Arduino กาลังเป็นท่ีนิยม และเปน็ ที่สนใจ สาหรบั นัก อิเลก็ ทรอนิกสท์ ั้งมือใหม่ และมอื เก่า ทาให้เราสามารถหาอ่านคมู่ อื วิธใี ช้ วธิ ีแกป้ ญั หาตา่ งๆ ได้ง่ายบนอินเทอรเ์ นต็ Arduino พรอ้ มใช้งานทันที เพราะบอร์ด Arduino ตดิ ตั้งอุปกรณ์ จาเป็นพื้นฐานมาใหห้ มดแลว้ (ตา่ งจาก MCU เปลา่ ๆ ท่ตี อ้ งซ้อื อุปกรณ์จาเปน็ อืน่ ๆ มาติดต้ังเพม่ิ เตมิ ) Arduino สามารถเขียนโปรแกรมสัง่ งานด้วยไวยากรณภ์ าษา C/C++ ซง่ึ ง่ายสาหรับผู้ทม่ี ีพื้นฐานดา้ นการเขียนโปรแกรมอยบู่ า้ ง แล้ว แต่สาหรบั ผทู้ ่ไี ม่เคยเขยี นโปรแกรมมาก่อนเลย ก็สามารถ เริม่ ตน้ ศกึ ษา และหาหนังสืออ่านได้ไม่ยาก นอกจากนี้ยังมีไลบรารี (Library) ให้เลือกใช้มากมาย ทาให้การ เขยี นโปรแกรมทาได้ง่าย และรวดเร็วขนึ้ Arduino ราคาไมแ่ พงเกนิ ไปสาหรบั ผู้ที่ อยากจะเรม่ิ ตน้ ใชง้ าน การอัปโหลดโปรแกรมทเี่ ขียนบนคอมพิวเตอรล์ งไปที่ Arduino ก็ ทาไดโ้ ดยงา่ ย แคใ่ ช้สาย USB ตอ่ บอร์ด Arduino เข้ากบั คอมพิวเตอร์ แลว้ อปั โหลดด้วยโปรแกรม Arduino IDE เทา่ น้ันเอง 10
บ1ท1ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 12 Arduino IDE วิธีติดตงั้ (Windows) IDE (Integrated Development Environment) คือซอฟตแ์ วร์ เครือ่ งมอื สาหรับพฒั นาโปรแกรม ซึ่งมีส่ิงอานวยความสะดวกตา่ ง ๆ เชน่ RUN, Compile, DEBUG ซงึ่ มี GUI ที่ถูกออกแบบมาให้มี สภาวะแวดล้อม (Environment) เหมาะสมการพัฒนาโปรแกรม โดยหนา้ ท่หี ลกั ของ IDE คอื การเขยี นไฟล์ เปดิ ไฟล์ บันทึกไฟล์ ทดสอบการทางาน จดั เตรยี มขอ้ มลู รวมถึง จดั การ Directory สาหรับภาษานนั้ ๆ ทรี่ องรบั Arduino IDE คือซอฟตแ์ วรเ์ คร่ืองมือสาหรบั พัฒนาโปรแกรมด้วย ภาษา C / C++ สาหรับควบคุมบอร์ด Arduino และเครื่องมือต่าง ๆ ทีจ่ าเปน็ สาหรบั ใชง้ านบอร์ด Arduino เช่น Serial Monitor, Compile, Libraries ฯลฯ แตก่ ่อนอืน่ เราไปดวู ธิ ีตดิ ต้งั สาหรบั ใช้ งานกนั ก่อน 11 11
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 12 1. คน้ หาคาว่า Arduino IDE บน Google 12
บ1ท3ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 2. จากนน้ั เข้าสู่เวบ็ ไซต์ www.arduino.cc จะปรากฏลงิ้ สาหรบั ดาวโหลด ใหเ้ ลือกตามระบบปฏิบัตกิ ารที่ตอ้ งการใช้ งาน 13 13
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 14 3. กดดาวน์โหลดโดยกดท่ี JUST DOWNLOAD 14
บ1ท5ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 12 4. รอจนดาวนโ์ หลดเสรจ็ ส้ิน 15 15
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 16 5. จะไดไ้ ฟล์สาหรับตดิ ตั้งโปรแกรม Arduino IDE 16
บ1ท7ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 6. เปิดไฟล์ติดตง้ั ข้ึนมาจะปรากฏหนา้ ตา่ งสาหรับตดิ ตัง้ กด I Agree 17 17
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 18 7. กด Next เพื่อไปส่ขู น้ั ตอนถดั ไป 18
บ1ท9ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 8. เลอื กทตี่ ิดตัง้ โปรแกรมจากนัน้ กด Install 19 19
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 20 9. รอการติดตงั้ 20
บ2ท1ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 12 10. กด Install เพ่ือติดตั้ง Adafruit Industries LLC Ports 21 21
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 22 11. กด Install เพอื่ ติดต้ัง Arduino USB Driver srl 22
บ2ท3ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 21 12. กด Install เพ่ือติดตง้ั Arduino USB Driver LLC 23 23
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 24 13. รอจนแสดงคาวา่ Completed เป็นอันเสร็จสิน้ การ ติดตง้ั จากนนั้ กด Close เพ่อื ปิด 24
บ2ท5ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 12 14. จะไดไ้ อคอน Arduino บนหน้าจอ 25 25
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 26 15. ทดสอบเปิดโปรแกรมจะได้หน้าตา่ งดังรูป 26
บ2ท7ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 สรา้ งโปรแกรมภาษา C บน Arduino จะมีลักษณะแบบเดยี วกบั C ท่วั ๆไป แตส่ าหรบั ท่านท่ียังไมเ่ คยเรียนรู้การเขียนโปรแกรมภาษา ใดๆมากอ่ น ทา่ นตอ้ งทาความเข้าใจในเร่ืองตา่ งๆดังนี้ 1. ปรีโปรเซสเซอรไ์ ดเรก็ ทีฟ (Preprocessor directives) 2. สว่ นของการกาหนดคา่ (Global declarations) 3. ฟังก์ช่นั setup() และ ฟังก์ช่ัน loop() 4. การสรา้ งฟงั กช์ ัน่ และการใช้งานฟงั ก์ชัน่ (Users-defined function) 5. สว่ นอธบิ ายโปรแกรม (Progarm comments) 1. ปรีโปรเซสเซอร์ไดเรก็ ทีฟ (Preprocessor directives) โดยปกตแิ ล้วเกือบทกุ โปรแกรมต้องมี โดยส่วนน้ีจะเป็นส่วนทีค่ อม ไพลเลอรจ์ ะมีการประมวลผลและทาตามคาสงั่ กอ่ นทจี่ ะมกี าร คอมไพลโ์ ปรแกรม ซง่ึ จะเรม่ิ ต้นดว้ ยเครือ่ งหมายไดเร็กทีฟ (directive) หรอื เคร่ืองหมายสีเ่ หล่ียม # แลว้ จึงตามดว้ ยชือ่ คาสง่ั ท่ี ต้องการเรยี กใช้ หรือกาหนด โดยปกติแลว้ ส่วนนจ้ี ะอยู่ในส่วนบน 27 27
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 28 สดุ หรอื สว่ นหัวของโปรแกรม และต้องอย่นู อกฟงั ก์ชนั่ หลกั ใดๆก็ ตาม#include เปน็ คาสัง่ ท่ีใช้อ้างอิงไฟล์ภายนอก เพื่อเรียกใช้ ฟังก์ชั่น หรือตวั แปรท่ีมีการสร้างหรือกาหนดไว้ในไฟลน์ ั้น รูปแบบ การใช้งานคือ #include <ชือ่ ไฟล.์ h> ตวั อย่างเชน่ #include <Wire.h> #include <Time.h> จากตัวอยา่ ง จะเห็นวา่ ได้มีการอ้างอิงไฟล์ Wire.h และไฟล์ Time.h ซง่ึ เปน็ ไลบาร่ีพนื้ ฐานท่ีมีอยู่ใน Arduino ทาให้เราสามารถ ใชฟ้ งั ก์ช่นั เกี่ยวกบั เวลาที่ไลบาร่ี Time มีการสรา้ งไวใ้ หใ้ ช้งานได้ 28
บ2ท9ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 21 การอา้ งอิงไฟล์จากภายใน หรือการอา้ งองิ ไฟลไ์ ลบารี่ท่ีมีอยู่แล้วใน Arduino หรือเปน็ ไลบารี่ทเี่ ราเพม่ิ เข้าไปเอง จะใช้เครื่องหมาย <> ในการคร่อมชือ่ ไฟล์ไว้ เพื่อให้โปรแกรมคอมไพลเลอรเ์ ขา้ ใจวา่ ควร ไปหาไฟล์เหล่านจ้ี ากในโฟลเดอรไ์ ลบารี่ แต่หากต้องการอา้ งองิ ไฟล์ ทอ่ี ยใู่ นโฟลเดอร์โปรเจค จะต้องใช้เคร่ือหมาย \"\" คร่อมแทน ซง่ึ คอมไพลเ์ ลอรจ์ ะวิง้ ไปหาไฟล์นโี้ ดยอ้างองิ จากไฟลโ์ ปรแกรมท่ี คอมไพล์เลอร์อยู่ เช่น #include \"myFunction.h\" จากตัวอย่างด้านบน คอมไพล์เลอร์จะว้งิ ไปหาไฟล์ myFunction.h ภายในโฟลเดอร์โปรเจคทันที หากไม่พบกจ็ ะแจ้งเป็นข้อผดิ พลาด ออกมา #define เปน็ คาส่ังที่ใชใ้ นการแทนข้อความท่ีกาหนดไว้ ด้วย ขอ้ ความทก่ี าหนดไว้ ซ่งึ การใช้คาสง่ั นี้ ข้อดีคอื จะไม่มีการอ้างองิ กับ ตวั โปรแกรมเลย รปู แบบ 29 29
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 30 #define NAME VALUE ตัวอย่างเช่น #define LEDPIN 13 จากตัวอย่าง ไมว่ า่ คาว่า LEDPIN จะอยูส่ ่วนใดของโคด้ โปรแกรมก็ ตาม คอมไพลเ์ ลอรจ์ ะแทนคาวา่ LEDPIN ดว้ ยเลข 13 แทน ซงึ่ ขอ้ ดี คอื เราไม่ต้องสร้างเปน็ ตัวแปรขน้ึ มาเพือ่ เปลืองพ้นื ที่แรม และยงั ช่วยใหโ้ ปรแกรมทางานเรว็ ข้นึ อกี ด้วยเพราะซีพยี ูไมต่ ้องไปขอข้อมลู มาจากแรมหลายๆทอด 30
บ3ท1ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 2. สว่ นของการกาหนดค่า (Global declarations) สว่ นน้จี ะเปน็ สว่ นท่ีใช้ในการกาหนดชนิดตัวแปรแบบนอกฟังกช์ น่ั หรอื ประกาศฟังกช์ ัน่ เพื่อให้ฟังก์ชน่ั ทป่ี ระกาศสามารถกาหนด หรอื เรยี กใชไ้ ดจ้ ากทุกสว่ นของโปรแกรม เชน่ int pin = 13; void blink(void) ; 31 31
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 32 3. ฟังกช์ ัน่ setup() และฟังก์ชน่ั loop() ฟงั กช์ ั่น setup() และฟงั กช์ นั่ loop() เปน็ คาส่งั ที่ถกู บังคบั ใหต้ ้องมี ในทุกโปรแกรม โดยฟังกช์ ่ัน setup() จะเป็นฟงั กช์ ั่นแรกท่ีถูก เรียกใช้ นิยมใชก้ าหนดคา่ หรอื เรม่ิ ต้นใช้งานไลบาร่ตี ่างๆ เชน่ ใน ฟังกช์ นั่ setup() จะมีคาสั่ง pinMode() เพอื่ กาหนดให้ขาใดๆก็ ตามเปน็ ดิจติ อลอินพตุ หรอื เอาตพ์ ตุ ส่วนฟังกช์ ั่น loop() จะเป็น ฟังก์ชั่นที่ทางานหลังจากฟังก์ชั่น setup() ได้ทางานเสรจ็ ส้ินไปแลว้ และมกี ารวนรอบแบบไมร่ ู้จบ เมื่อฟงั กช์ ่ัน loop() งานครบตาม คาส่ังแล้ว ฟงั ก์ชัน่ loop() กจ็ ะถกู เรียกขึ้นมาใช้อีก 32
บ3ท3ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 12 ตวั อย่าง int pin = 13; void setup() { pinMode(pin, OUTPUT); } void loop() { 33 33
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 34 digitalWrite(pin, HIGH); delay(1000); digitalWrite(pin, LOW); delay(1000); } 34
บ3ท5ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 12 จากตัวอย่าง จะเหน็ วา่ มกี ารประกาศตวั แปรแบบนอกฟงั กช์ ั่น ทา ให้สามารถกาหนด หรือเรียกใช้จากในฟงั กช์ ั่นใดๆกต็ ามได้ ใน ฟังกช์ ่นั setup() ได้มกี ารกาหนดให้ขาที่ 13 เป็นดจิ ติ อลเอาตพ์ ุต และในฟงั ก์ช่นั loop() มีการกาหนดให้พอร์ต 13 มีลอจกิ เปน็ 1 และใชฟ้ ังกช์ ่ัน delay() ในการหนว่ งเวลา 1 วินาที แล้วจงึ กาหนดให้พอร์ต 13 มีสถานะลอจิกเปน็ 0 แลว้ จึงหน่วงเวลา 1 วนิ าที จบฟงั ก์ชัน่ loop() และจะเร่ิมทาฟงั ก์ช่ัน loop() ใหม่ ผลที่ ไดค้ ือไฟกระพรบิ บนบอรด์ Arduino Uno ในพอร์ตท่ี 13 ทางาน แบบไม่รจู้ บ ในทกุ ๆการทางานของฟังก์ช่ัน จะตอ้ งเร่ิมดว้ ยการกาหนดค่าที่ สง่ กลับ ตามด้วยชอื่ ฟังก์ชนั่ แล้วตามดว้ ยเครอื่ งหมายปกี กาเปดิ { และจบด้วยเคร่ืองหมายปีกกาปิด ภายในฟังกช์ นั่ หากจะเรียก ฟังก์ชนั่ ใช้งานย่อยใดๆ จะต้องมเี คร่ืองหมาเซมิโคลอ่ น ; ต่อทา้ ย เสมอ ตัวอยา่ งการเขียนโค้ด arduino ไฟจราจร 35 35
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 36 1. ตอ่ วงจรตามรูป 36
บ3ท7ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 21 2. เขียน Source code โดยบนั ทกึ ในชื่อ TrafficLight หรือจะ บันทกึ เปน็ ช่อื อื่นก็ได้ แนะนาให้ดาวน์โหลด แล้วพมิ พต์ ามนะ จะได้ เป็นการอ่าน Source code ให้เขา้ ใจไปในตัว เมื่อเสร็จแล้วก็ทา การ อัพโหลด Sketch ได้เลย 37 37
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 38 3. เมือ่ ทาตามทุกขั้นตอนอย่างถกู ต้อง จะไดผ้ ลลัพธด์ ังรปู รูปน้ี จังหวะไฟแดง 38
บ3ท9ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 12 4. รปู น้ี จังหวะไฟเหลอื ง - แดง เหลือถา้ อยากใหม้ ีแค่ไฟเหลอื ง เพียว ๆ กส็ ามารถสง่ สัญญาณ LOW ไปท่ขี า 12 ซงึ่ เปน็ ขาที่ส่ง สญั ญาณไป Led สีแดง 39 39
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 40 5. จงั หวะไฟเขียว 40
บ4ท1ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 การควบคมุ การทางานของอินพทุ และเอาตพ์ ทุ การเชือ่ มต่อไมโครคอนโทรลเลอร์ Arduino กบั หลอด LED ไมโครคอนโทรลเลอร์ Arduino Uno ท่พี อรต์ สามารถจ่ายกระแส เอาต์พุตโดยกระแสซิงค์และกระแสซอร์ส มีคา่ สงู ถึง 20 mA สามารถติดต่อและควบคมุ อุปกรณ์ภายนอกได้ด้วยตวั มันเองเช่น ควบคุมหลอดไฟฟ้าแบบ LED ขนาด 4 วัตต์แตใ่ นทางปฏบิ ตั คิ วรใช้ ไอซีบัฟเฟอร์ (IC Butter) เปน็ ตวั ขบั กระแสโดยภาคอนิ พตุ (Input) ของไอซบี ฟั เฟอร์สามารถรบั กระแสไม่สูงมากจากภาคเอาต์พตุ (Output) ของไมโครคอนโทรลเลอร์ / และถ้าภาคเอาต์พตุ ของไอซี บัฟเฟอร์เกิดการลดั วงจรสามารถขบั กระแสไดส้ ูงทภี่ าคเอาตพ์ ุตของ ไอซบี ัฟเฟอร์ (Short Circuit) ของวงจรไอซีบัฟเฟอรก์ ็จะเป็นตวั ป้องกนั ความเสียหายให้กบั ไมโครคอนโทรลเลอร์ได้ไอซบี ัฟเฟอรท์ ่ี ใช้ท่วั ไปเช่น IC 74LS245, IC ULN2003, 74HC595 เปน็ ต้น 41 41
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 42 สาหรับในบทนจ้ี ะเริ่มการต่อวงจรพ้นื ฐานโดยเปน็ การทดลองกับ หลอดไฟ LED ดังรปู ที่ 2. 2 และ 2. 3 ตามลาดับสาหรับการต่อ อปุ กรณ์อินพุตและเอาต์พตุ แบบดจิ ิตอล (Digital VO) ในวงจร อเิ ล็กทรอนิกสเ์ พือ่ ให้ทางานตามตอ้ งการน้ันการตอ่ อปุ กรณ์เหลา่ น้ี จะมีอยู่ 2 รูปแบบคือ Active Low หรือ Pull-up และ Active High หรอื Pull-down โดยการต่อวงจรของแต่ละแบบก็ตา่ งกนั และให้ค่าสัญญาณแบบดิจติ อลทตี่ ่างกนั ด้วย 42
บ4ท3ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 12 จากรปู ที่ วงจรนจี้ ะทางาน (Active) ในกรณที ส่ี ญั ญาณมีค่าตา่ ซ่งึ หมายถงึ สญั ญาณ 0 หรือต่อสายสัญญาณลง GND เช่นสวติ ซ์แบบ Active Low จะใช้ตัวตา้ นทานต่อระหวา่ งขา I / O และ Vec (Pull-up Resistor) และจะต่อสวิตซไ์ วร้ ะหวา่ งขา I / O และ GND ในกรณีไมก่ ดสวติ ซ์ไฟจาก Vcc จะไปเลีย้ งท่ีขา 10 ตลอดเวลาหรือ สัญญาณที่ไดจ้ ะมคี า่ เป็น 1 หรอื High เม่อื กดสวิตซข์ า I / O จะถูก ตอ่ ลง GND ซง่ึ จะทาให้สัญญาณทไี่ ด้รบั มีค่าเปน็ 0 หรือ Low นัน่ เองจากรูปท่ี 2. 1 (ข) วงจรนี้จะทางาน (Active) ในกรณที ่ี สญั ญาณมีค่าสงู ซึง่ หมายถึงสัญญาณ 1 หรอื ต่อสายสัญญาณกบั Vcc เช่นสวิตซ์แบบ Active High จะใช้ตัวต้านทานต่อระหว่างขา I / O และ GND (Pull-down Resistor) และจะต่อสวติ ซ์ไว้ระหว่าง ขา i/oและ Vcc ในกรณีไมก่ ดสวติ ซ์ไฟขา 1/0 จะตอ่ กบั GND ตลอดเวลาหรอื สัญญาณที่ไดจ้ ะมีค่าเป็น 0 หรอื Low เม่อื กดสวติ ซ์ ขา IO จะถกู ต่อกับ Vcc ซ่ึงจะทาใหส้ ญั ญาณท่ีได้รับมีคา่ เป็น 1 หรอื High น่ันเองดังนั้นสามารถนาวธิ กี ารตอ่ อปุ กรณ์ตา่ งๆซงึ่ อาจจะอยู่ในรูปแบบการต่อแบบ Active Low หรอื รูปแบบการตอ่ แบบ Active High มาใช้รว่ ม ในการออกแบบควบคุมการ ทางานของอนิ พุตและเอาต์พุต พอรต์ และสามารถทดลอง 43 43
บทที่ 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 44 และควบคุมอปุ กรณ์ไดห้ ลายอย่างเช่นหลอดไฟ (LED), ปุ่มกด (Pushbutton) แบบ Start / Stop หรือแบบ Toggle, หลอดไฟ LED7-Segment, คยี ์สวิตซแ์ บบแมทริกซ์ (Keypad), โมดูล LCD เป็นตน้ การเช่ือมต่อไมโครคอนโทรลเลอร์ Arduino กบั LED 7- Segment ED 7 Segment โดยทว่ั ไปจะมหี ลอด LED ตวั เลข 7 หลอดมาต่อรว่ มกนั เหมือนกบั เลข 8 ตอ่ ละตาแหน่งจะมีสญั ลกั ษณ์บอกประจาตาแหน่งคือ a, b, C, d, e, f, g และ dp (จุดทศนยิ ม) เพ่ือแสดงเปน็ ตวั เลขหลอด LED 7 Segment จะนาขาท้งั 7 หลอดมาต่อรว่ มกนั แบ่งออกเป็น 2 ลักษณะคือ 1. ต่อแบบแอโนดร่วม (Common Anode 7- Segment) 2. ต่อแบบแคโทดรว่ ม (Common Cathode 7- Segment) การต่อแบบแอโนดรว่ ม (Common Anode) จะต้อง จ่ายไฟขัว้ บวกท่ขี ารว่ มและต้องจ่ายไฟขัว้ ลบเข้าทีข่ าแคโทดส่วน การต่อแบบแคโทดร่วม (Common Cathode) จะต้องจ่ายไฟขั้ว ลบเข้าท่ขี าร่วมแลว้ จา่ ยไฟขวั้ บวกเขา้ ท่ีขาแอโนดการใช้ ไมโครคอนโทรลเลอร์ Arduino เป็นบติ เอาต์พุตควรใช้ไอซีบัฟเฟอร์ (74LS245) ต่อร่วมเพื่อขับกระแสใหห้ ลอด LED 7-Segment สวา่ ง ไดด้ ังแสดงใน 44
บ4ท5ท่ี 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 21 การเชื่อมต่อไมโครดอนโทรลเลอร์ Arduino กบั คียส์ วติ ช์ แบบแมทรกิ ซ์ (Keypad) คีย์สวิตซ์แบบแมทริกซ์ (Keypad) เมื่อนามาเชือ่ มต่อกับไมโครคอนโทรลเลอร์จะทาให้ประหยดั พอร์ต อย่างมากโดยในหัวข้อน้ีจะขอยกตวั อย่างการใช้ Keypad แบบ 4x3 ซงึ่ จะใชบ้ ติ จากไมโครคอนโทรลเลอร์เพยี ง 7 บติ เท่านั้นเอง สามารถกดตวั เลขบน Keypad ได้ทัง้ หมด 12 ปุ่มกดทั้งแนว Row และColumn ดังแสดงในรูปที่ 2. 17 ซ่งึ เป็นการต่อ Keypad 4X3 (Row and Column) โดยการอ่านค่าจะถูกตอ้ งแมน่ ยาไมว่ ่าเราจะ กด Keypad ปมุ่ ไหนก็อา่ นได้เพราะถา้ เรากด Keypad ปมุ่ ใดปมุ่ หนง่ึ จะสแกนคา่ ความสัมพันธ์ระหวา่ งคา่ บิตทอ่ี า่ นเข้ามาและค่านดิ ท่ีส่งออกนน่ั เองสาหรับฮาร์ดแวรข์ อง Keypad จะประกอบด้วย 8 Pins การใช้ Keypad 4X3 จะใช้ทง้ั หมด 7 Pins จากรปู ท่ี 2. 17 แสดง Keypad 4X3 รวม 12 ปมุ่ กดจะต้องหารหสั ประจาคียเ์ พือ่ ใช้ ในการเขียนโปรแกรมและนาไปควบคมุ อุปกรณ์ภายนอกต่อไปโดย รหัสประจาคยี ส์ ามารถหาได้ดังแสดงในตารางที่ 45 45
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 46 การเชอื่ มต่อไมโครคอนโทรลเลอร์ Arduino กับโมดูล LCD ปัจจบุ ันโมดลู LCD (Liquid Crystal Display module) ได้ ถูกนามาใชอ้ ยา่ งแพรห่ ลายในการแสดงผลตวั เลขหรอื ตัวอักษร ตลอดจนภาพเคล่ือนไหวและไดร้ บั ความนยิ มมากในการใชง้ าน ร่วมกบั ไมโครคอนโทรลเลอร์สาหรบั แสดงผลออกทางโมดูล LCD นัน้ จะตอ้ งเขยี นชดุ คาสัง่ เพ่ือควบคมุ การแสดงผลให้กับโมดูล LCD หลงั จากนัน้ จะส่งข้อมูลหรือข้อความเพื่อใหแ้ สดงผลออกทาง หนา้ จอโดยในโหมดนจ้ี ะตดิ ต่อกบั ขา ข้อมูล (Data bus) ของ LCD 8 pins (D0-D7) แบบ 8 บติ หรือ 4 Pins (D4-D7) แบบ 4 บติ นอกจากน้ัน ยงั ติดต่อกบั ขา RW สาหรับเลอื กคาสงั่ อ่านหรือเขยี นข้อมูลให้กบั LCD หรอื ติดต่อกับขา RS สาหรบั เลอื กส่งคาสง่ั หรือสง่ ข้อมูล แสดงผลใหก้ บั LCD และติดต่อกับขา E โดยจะส่งสัญญาณพลั ส์ (Pulse) เพอ่ื อีนาเบลิ (Enable) ให้ LCD ทางาน 46
บ4ท7ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทท่ี 12 เซ็นเซอร์และระบบอจั ฉริยะ ในปจั จุบันอุตสาหกรรมในหลายๆดา้ นมีการนาอุปกรณ์และระบบ อิเล็กทรอนิกสม์ าชว่ ยทาให้การผลิตเพอื่ ใหเ้ กดิ ประสิทธภิ าพและ ประสทิ ธิผลมากขนึ้ รวมท้ังไดใ้ ช้เซน็ เซอรม์ าชว่ ยทาให้เกดิ ระบบ อัจฉริยะทสี่ ามารถประเมนิ ผลและควบคุมตนเองได้ดว้ ยการสง่ และ รับขอ้ มลู ต่างๆดงั นน้ั เซ็นเซอร์จงึ ถูกนาไปใชใ้ นระบบอตั โนมัติใน แนวโน้มทเ่ี พิ่มขึน้ เน่อื งจากมีขนาดกะทัดรดั อายุการใช้งานที่ ยาวนานและความเทยี่ งตรงสูงลว้ นมสี ่วนเพ่ิมประสิทธิ์ภาพและ ความปลอดภยั ในระบบอัตโนมัตเิ ซน็ เซอรถ์ กู นาไปใชส้ าหรับการวดั ขนาดการนับการคดั เลือกและการตรวจสอบเซน็ เซอร์ช่วยแยกแยะ ขนาดของวตั ถุกาหนดตาแหน่งการแยกสีแยกรปู ร่างท่ีตา่ งกันของ ชน้ิ งานในระบบอุตสาหกรรมตา่ งๆเช่นอุตสาหกรรมชน้ิ ส่วนยาน ยนตอ์ ตุ สาหกรรมอเิ ล็กทรอนิกสอ์ ุตสาหกรรมเกษตรและอ่ืน ๆ อกี มากมายสาหรบั ระบบอจั ฉรยิ ะนน้ั เซ็นเซอรม์ ีสว่ นสาคญั อย่างมากใน การตรวจและควบคุมหรือชว่ ยเชอ่ื มตอ่ อปุ กรณเ์ ข้าหากนั ในปัจจุบนั ทไี่ ดย้ นิ กันบอ่ ยๆก็คือ IOT (Internet of Things) เช่น สมาร์ตฟารม์ (Smart Farm) ฟาร์มอัจฉรยิ ะ (Intelligent Farming, Autonomous Farming) เกษตรกรรมความแม่นยาสูง (Precision Farming Precision Agriculture) รวมไปถึงการ 47 47
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 48 บริหารจัดการน้า (Water Resources Management) ทางดา้ น การเกษตรทัง้ หมดทั้งมวลเหล่านปี้ ระกอบดว้ ยเทคโนโลยีหลกั ๆ ทางดา้ นอเิ ลก็ ทรอนกิ ส์และเซ็นเซอร์ซึ่งถือว่าเปน็ ฮาร์ดแวร์การ จัดสง่ และรบั ข้อมูลไม่ว่าจะเป็นแบบมสี าย (LAN) หรอื ไร้สาย (Wireless LAN) และการประเมนิ ผลดว้ ยโปรแกรมหรือระบบงาน (Software or Application) ซ่งึ กเ็ ป็นระบบอจั ฉริยะอย่างหน่ึง ในบทนจ้ี ะขอยกตัวอย่างการใชไ้ มโครคอนโทรเลอร์ Arduino Uno ควบคุมเซ็นเซอรช์ นิดต่าง ๆ ดังนี้ 1. อัลตราโซนิกเซ็นเซอร์ (Ultrasonic Sensor) 2. เซ็นเซอรว์ ดั อุณหภูมิ (Temperature sensor) 3. บลทู ูธโมดูลเซ็นเซอร์ (Xbee Module Sensor) 4. เซน็ เซอร์ไรส้ าย (Wireless Sensor) 5. เซน็ เซอรว์ ดั มุม (Gyroscope Sensor 6. การควบคุมดีซีมอเตอร์และเอนโค้ดเดอร์ด้วยระบบ PID 7. เพนดลู มั ผกผัน (Inverted Pendulum) 48
บ4ท9ที่ 2 คออิเมลพ็กทิวเรตออนริก์ใสนค์แชอลีวมะิตพเปทิวครเตะโอนจรโำ�ล์ใวนยันชีคีวอิตมปพริวะเตจำอ�วรั์น บทที่ 12 อลั ตราโซนิกเซ็นเซอร์ (Ultrasonic Sensor) HC SP04 เปน็ เซน็ เซอร์โมดลู สาหรบั ตรวจจับวัตถุและวดั ระยะทางแบบไม่สัมผัสมี หลักการทางานการสะทอ้ นของเสียงและการสะทอ้ นกลับมาของ เสยี งเพอ่ื นามาคานวณหาระยะทว่ี ดั ไดจ้ รงิ โดยใช้คลนื่ คันตระซึ่งเป็น คลืน่ เสยี งความถส่ี ูงเกนิ กว่าการไดย้ ินของมนุษยว์ ดั ระยะได้ตั้งแต่ 6- 400 Cm สามารถตอ่ ใช้งานกันไมโครคอนโทรลเลอร์ไดง้ า่ ยใช้ พลงั งานตา่ เหมาะกับการนาไปประยุกต์ใช้งานดา้ นระบบควบคมุ อัตโนมัติหรืองานด้านหุ่นยนต์หลกั การทางานจะเหมือนกันกบั การ ตรวจจับวตั ถุด้วยเสียงของค้างคาวโดยจะมกี ารสะท้อนของเสียง และนาเสยี งกลับมาเพ่ือนามาคานวณหาระยะที่วัดไดจ้ รงิ สาหรบั โมดูล HC-SR04 จะประกอบไปดว้ ยตัวกนั (Trig) และตัวสง่ (Echo) ของอัลตราโซนิกตัวส่งจะส่งคลื่นความถ่ีที่ 4) KHz ออกไปในอากาศ ด้วยความเร็วประมาณ 346 เมตรต่อวินาทีและตัวรับจะคอยรบั สัญญาณท่ีสะทอ้ นกลับจากวัตถเุ มือ่ ทราบความเร็วในการเคลอื่ นที่ ของคล่ืนเวลาท่ใี ชใ้ นการเดินทางไปและกลับ (t) กจ็ ะสามารถ คานวณหาระยะห่างของวตั ถุ (s) ได้จากสมการดังน้ี 49 49
บทท่ี 12 อคิอเลม็กพทิวรเอตนอริก์ใสน์แชลีวะิตเทปคระโนจโำ�ลวยันีคอมพิวเตอร์ 50 เซน็ เซอรว์ ัดอณุ หภมู ิ (Temperature Sensor) เซ็นเซอรว์ ดั อุณหภูมิ (Temperature Sensor) เป็นอปุ กรณ์ท่ีทา หนา้ ทเ่ี ปลย่ี นระดบั อณุ หภูมเิ ช่นรอ้ น-เย็นเปน็ ระดบั แรงดนั ไฟฟา้ ซ่งึ จะทาหน้าท่ีเปน็ ส่วนรับความรู้สึกของหุ่นยนต์ปัจจบุ นั กระบวนการ ต่างๆในโรงงานอตุ สาหกรรมโดยท่วั ไปแล้วจะไมส่ ามารถหลีกเลย่ี ง ได้กบั สถานการณ์ทีต่ ้องเข้าไปเก่ยี วขอ้ งกับการวดั อณุ หภูมิซึ่งจาก สภาพแวดลอ้ มท่ีแตกต่างกันในแตล่ ะโรงงานอุตสาหกรรมรวมไปถงึ ปัจจยั ต่างๆทาใหเ้ กดิ ปัญหาต่างๆตามมาเช่นอุณหภมู ิท่วี ัดไดม้ คี ่าไม่ เทย่ี งตรงอุปกรณ์ทีใ่ ช้งานมปี ัญหาชารดุ เสยี หายเรว็ เกินกวา่ ทค่ี วรจะ เป็นหรือแม้แต่การเปลยี่ นแปลงของอุณหภมู ิท่ีวัดไดม้ ีการ เปลี่ยนแปลงทร่ี วดเร็วไม่เพยี งพอทาให้ไม่สามารถตอบสนองความ ต้องการในการทางานนั้นๆได้จากปัจจยั ดังกลา่ วขา้ งตน้ จงึ ทาใหม้ ี ความจาเปน็ ตอ้ งเรียนรูเ้ พ่ือทาความรจู้ ักกบั อปุ กรณ์วดั อุณหภูมแิ ละ ทาการเลอื กใชใ้ หถ้ ูกต้องซ่งึ จะช่วยให้กระบวนการทางานตา่ งๆใน 50
Search