หลกั สตู รการอบรมพัฒนาเกษตรกรดิจิทลั
(Digital Farmer Development Training Course)
เทคโนโลยีเซนเซอร์เพ่ือการเกษตร
Sensor Technology for Smart Farming
จดั ทำโดย
อาจารย์ ดร.สุรพล วรภัทราทร และคณะ
โครงการวจิ ยั พฒั นารปู แบบการส่งเสริมเกษตรกรรุ่นใหม่ส่กู ารเป็นเกษตรกรดจิ ิทัล ฯ
มหาวิทยาลัยแมฟ่ ้าหลวง
โครงการ “การวิจัยพัฒนารปู แบบการส่งเสริมเกษตรกรรุ่นใหม่สูก่ ารเปน็ เกษตรกรดจิ ทิ ัล โดย
การใช้ Essential Fundamental Digital Farming Tools and Collaborative Blended
Learning Approach: กรณีภาคการผลิตทางการเกษตร”
1
คำนำ
หลักสูตรการอบรมพัฒนาเกษตรกรดิจทิ ัล (Digital Farmer Development Training Course) เป็น
การรวบรวมความรู้ด้านการเกษตรอัจaฉริยะ (Smart Farm) ที่เกี่ยวข้องกับเทคโนโลยีดิจิทัล เพื่อใช้อบรม
ให้กับเกษตรกรในโครงการ และเป็นเนื้อหาที่อาจใช้อบรมให้เกษตรกรรายย่อยทั่วไปที่มีความสนใจในการ
พัฒนาตนเอง การพัฒนาหลักสูตรจะมุ่งเน้นผลลัพธ์ (Outcome Based Learning : OBL) โดยองค์ความรู้
พ้นื ฐานด้านเทคโนโลยีดิจิทัลที่เก่ยี วข้องกับการเกษตร ประกอบด้วย
• ความรู้พื้นฐานเทคโนโลยีการสื่อสารเพื่อการเกษตร ( Fundamentals of Communication
Technology for Agriculture )
• เทคโนโลยเี ซนเซอร์เพอ่ื การเกษตร (Sensor Technology for Smart Farming)
• อินเตอร์เน็ตของสรรพสิ่งและการประยุกต์ใช้ในการเกษตร ( Internet of Things and Its
Applications in Smart Farming )
• สถิติพืน้ ฐานและการวิเคราะห์ทางการเกษตร ( Statistical and Analytics for Agriculture )
• ปัญญาประดิษฐ์เพื่อการวิเคราะห์ทางการเกษตร ( Artificial Intelligence for Smart Farming
Analytics )
• การเรียนรู้ของเครื่องและระบบควบคุมทางการเกษตร ( Machine Learning for Smart Farming
and Control Systems )
• ความรพู้ น้ื ฐานขอ้ มูลขนาดใหญเ่ พอ่ื การเกษตร ( Fundamentals of Big Data for Agriculture )
เพื่อให้เกษตรกรได้ศึกษาและเกิดแนวคิดในการพัฒนาฟาร์มเกษตรของตนเ องเพื่อนำไปสู่การเป็น
เกษตรกรดิจิทัลรุ่นใหม่ (Young Digital Farmer) นอกจากนั้น เนื่องจากโครงการได้มีความร่วมมือกับ
สถาบันการศึกษาในระดับอาชีวะศึกษาในพื้นที่ คือ วิทยาลัยอาชีวะศึกษาเชียงราย และวิทยาลัยเกษตร
เชียงราย ซึ่งถือเป็นแหล่งผลิตบุคลากรด้านการเกษตรและแหล่งสนับสนุนการเกษตรสมัยใหม่ที่สำคัญ ดังนั้น
ในการออกแบบหลักสูตรในโครงการนี้ จึงนอกจากจะใช้อบรมเกษตรกรในโครงการแล้ว ยังมีเป้าหมายที่จะ
นำไปใชเ้ สริมในการเรียนการสอนของสถาบนั การศกึ ษาท้ังสองแห่งดว้ ย
อาจารย์ ดร.สรุ พล วรภัทราทร
หลกั สูตรการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอรเ์ พ่ือการเกษตร อ.ดร.สรุ พล วรภทั ราทร
2
สารบญั
หนา้
คำนำ………………………………………………………………………………...…………………….….………………….........ก
สารบญั ……………………………………………………………………………...…………………………….........................ข
บทท่ี 1 ความรเู้ บ้ืองต้นของเซนเซอร.์ ...................................................................................................1
1.1 ไมโครคอนโทรลเลอร์เบื้องตน้ ………………………………………………………………………………………..1
1.2 ตระกูลของไมโครคอนโทรลเลอร์………………………………………………………………………….………..3
1.3 บอรด์ ไมโครคอนโทรลเลอร์Arduino…………………………………………….………………………………..7
แบบทดสอบความรเู้ บื้องตน้ ของเซนเซอร์.………………………….…………………………………………….…13
บทท่ี 2 การควบคุมไดโอดแปล่งแสง LED...........................................................................................16
2.1 ไดโอดเปลง่ แสง LED…………………………………………………………………………………………………..16
2.2 การต่อวงจรไดโอดเปล่งแสง LED…………………………………………………………………………………..18
2.3 การโปรแกรมไมโครคอนโทรลเลอร์ใช้งานไดโอดเปลง่ แสง LED………………………………………..19
2.4 การประยุกต์ใช้งานไดโอดเปล่งแสง LED …………………………………………………….………………..22
แบบทดสอบการควบคุมไดโอดแปลง่ แสง LED.…………………………. …………………………………….…24
บทท่ี 3 การรับข้อมูลอินพดุ ด้วยสวติ ซ์..................................................................................................27
3.1 สวติ ซ์…………………………………………………………………………………………………………..……………..27
3.2 การต่อวงจรสวิตชก์ ับไมโครคอนโทรลเลอร์……………………………………………………………………..31
3.3 โปรแกรมไมโครคอนโทรลเลอร์ใชง้ านสวติ ช์………………………………………………………………..…..33
3.4 การประยุกต์ใชง้ านสวิตชก์ ับไมโครคอนโทรลเลอร์………………………………………….………………..34
แบบทดสอบการรับข้อมูลอินพุดด้วยสวิตซ์.………………………….…………………………………………….…38
บทท่ี 4 การอ่านค่าเซ็นเซอร์แบบอนาลอ็ ก………………………………………………………………………………….…. 39
4.1 อุปกรณ์อ่านคา่ แบบอนาลอ็ ก……………………………………………………………………..…………...…….39
4.2 การตอ่ วงจรอปุ กรณ์อ่านค่าแบบอนาล็อกกับไมโครคอนโทรลเลอร์…………………………….………42
4.3 โปรแกรมไมโครคอนโทรลเลอร์ใชง้ านอุปกรณ์อา่ นค่าแบบอนาลอ็ ก…………………………………..43
4.4 การประยุกต์ใช้งานอุปกรณ์อ่านคา่ แบบอนาล็อกกบั ไมโครคอนโทรลเลอร์…………………………..47
แบบทดสอบการรับข้อมลู อนิ พดุ ด้วยสวิตซ.์ ………………………….…………………………………………….…50
บทที่ 5 การใช้งานจอแสดงผลแบบ LCD………………………………………………………………………………….…. 51
5.1 จอแสดงผลแบบ LCD……………………………………………………………………………..………………….51
หลกั สูตรการอบรมพฒั นาเกษตรกรรุน่ ใหม่: เทคโนโลยเี ซนเซอร์เพอื่ การเกษตร อ.ดร.สุรพล วรภัทราทร
3
5.2 การตอ่ วงจรจอแสดงผลแบบ LCD กับไมโครคอนโทรลเลอร์……………………….…….…….………53
5.3 โปรแกรมไมโครคอนโทรลเลอร์ใชง้ านจอแสดงผลแบบ LCD……………………….………….…….…..55
5.4 การประยุกต์ใชง้ านจอแสดงผลแบบ LCD กบั ไมโครคอนโทรลเลอร์……………….…………………..59
แบบทดสอบการใชง้ านจอแสดงผลแบบ LCD.………………………….……………………………………..….…61
บทท่ี 6 การใชง้ านอุปกรณ์กําเนิดเสียง…………………………………………………………………………………………. 62
6.1 อปุ กรณ์กําเนิดเสียง……………………………………………………………………..…………………...…….….62
6.2 การตอ่ วงจรอปุ กรณ์กาํ เนิดเสยี งกับไมโครคอนโทรลเลอร์…………………………….………………..…64
6.3 โปรแกรมไมโครคอนโทรลเลอรใ์ ชง้ านอปุ กรณก์ ําเนดิ เสียง………………………………………………..65
6.4 การประยุกต์ใช้งานอุปกรณก์ าํ เนดิ เสียงกับไมโครคอนโทรลเลอร์………………………………………..67
แบบทดสอบการใชง้ านอุปกรณ์กําเนดิ เสยี ง.………………………….………………………………………….…71
บทที่ 7 การควบคุมรเี ลย์……………………………………………………………………………………………………………. 72
7.1 รเี ลย์……………………………………………………………………..……………………………………………..….72
7.2 การตอ่ วงจรรีเลยก์ บั ไมโครคอนโทรลเลอร์ …………………………….…………………………………..…74
7.3 โปรแกรมไมโครคอนโทรลเลอร์ควบคมุ รเี ลย์…………………………………………………………………..76
7.4 การประยุกตใ์ ช้งานรเี ลย์กบั ไมโครคอนโทรลเลอร์…………………………………………………………..77
แบบทดสอบการควบคุมรเี ลย.์ ………………………….…………………………………………………………..….…78
บทท่ี 8 การใชง้ านอุปกรณ์ตรวจจับระดบั น้ำ…………………………………………………………………………………. 79
8.1 อปุ กรณ์ตรวจจบั ระดับน้ำ ……………………………………………………………………..………………..….79
8.2 การตอ่ วงจรอุปกรณ์ตรวจจับระดบั นำ้ กบั ไมโครคอนโทรลเลอร์ …………………………….……..…82
8.3 โปรแกรมไมโครคอนโทรลเลอรใ์ ชง้ านอุปกรณ์ตรวจจบั ระดับนำ้ ……………………………………..84
8.4 การประยุกต์ใชง้ านอุปกรณต์ รวจจับระดับนำ้ กับไมโครคอนโทรลเลอร์……………………………..85
แบบทดสอบการใชง้ านอปุ กรณต์ รวจจบั ระดับนำ้ .………………………….………………………………….…86
บทที่ 9 การใชง้ านการใช้งานอปุ กรณ์ตรวจวดั อณุ หภมู คิ วามช้นื ……………………………………………………. 87
9.1 อปุ กรณ์ตรวจวดั อุณหภมู ิความชื้น……………………………………………………………………………..….87
9.2 การต่อวงจรอปุ กรณ์ตรวจวัดอุณหภมู ิความช้นื กบั ไมโครคอนโทรลเลอร์ ………………….……..…90
9.3 โปรแกรมไมโครคอนโทรลเลอรใ์ ชง้ านอุปกรณต์ รวจวดั อณุ หภูมิความช้ืน…………………………..91
9.4 การประยุกต์ใชง้ านอุปกรณ์ตรวจวดั อณุ หภูมคิ วามช้ืนไมโครคอนโทรลเลอร์………………………..95
แบบทดสอบการใช้งานอุปกรณ์ตรวจวดั อุณหภูมิความชื้น.…………………………..…………….…….….…97
บทที่ 10 การวัดคา่ กรดด่างและสารอาหาร……………………………………………………………………………………. 98
10.1 อุปกรณ์วดั คา่ pH คา่ NPK ในดนิ ………………………………………………..…………….…….………..….98
10.2 การตอ่ วงจรอุปกรณ์วัดค่า pH ค่า NPK ในดินกับไมโครคอนโทรลเลอร์ ………………..….……..101
10.3 โปรแกรมไมโครคอนโทรลเลอร์ใชง้ านอปุ กรณ์วัดค่า pH คา่ NPK ในดนิ ……….………………..10.3
10.4 การประยุกต์ใชง้ านอปุ กรณว์ ดั คา่ pH ค่า NPK ในดนิ ไมโครคอนโทรลเลอร์……………………..106
หลักสูตรการอบรมพฒั นาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอรเ์ พ่ือการเกษตร อ.ดร.สุรพล วรภทั ราทร
4
แบบทดสอบอปุ กรณว์ ดั คา่ pH ค่า NPK ในดนิ ………………………….…………………………………….….…119
บทที่ 11 การประยุกตใ์ ช้เซ็นเซอร์กบั โรงงานปลูกพืช Plant Factory …………………………………………. 120
11.1 การออกแบบโครงรา่ ง Plant Factory……………………………………..……………………..……..….120
11.2 การออกแบบระบบการไหลเวยี นของน้ำสารละลายธาตุอาหาร……………….………………….…122
11.3 การออกแบบระบบปรับอากาศ……….………………………………………………………………………..124
11.4 การออกแบบระบบการให้แสง…………………………………………………………………..……………..124
11.5 การจัดทำ Plant Factory ………………………………………………………………………………..……..125
แบบทดสอบการประยกุ ต์ใชเ้ ซ็นเซอร์กับโรงงานปลูกพชื Plant Factory………………………….….…138
เอกสารอ้างองิ .......................................................................................................................................139
ภาคผนวก.............................................................................................................................................140
หลกั สูตรการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอรเ์ พ่ือการเกษตร อ.ดร.สรุ พล วรภัทราทร
1
บทท่ี 1
ความรูเ้ บอ้ื งตน้ ของเซนเซอร์
วัตถปุ ระสงค์
1. เพอ่ื ให้มคี วามรู้ความเข้าใจเก่ียวกับส่วนประกอบและโครงสร้างของไมโครคอนโทรลเลอร์
Arduino
2. เพ่ือให้สามารถนาความรู้ไปประยกุ ตใ์ นการเลือกใช้ตระกลู และภาษาของไมโครคอนโทรลเลอร์
3. เพอื่ ให้ตระหนักถงึ ความสำคัญของโครงสรา้ งและสว่ นประกอบของไมโครคอนโทรลเลอร์
Arduino
บทนำ
ไมโครคอนโทรลเลอร์ (อังกฤษ: Microcontroller มักยอ่ ว่า μC, uC หรอื MCU) คือ อุปกรณ์ควบคุม
ขนาดเล็ก ซงึ่ บรรจุความสามารถทีค่ ลา้ ยคลงึ กับระบบคอมพิวเตอร์ โดยในไมโครคอนโทรลเลอรไ์ ดร้ วมเอาซีพยี ู,
หน่วยความจำ และพอรต์ ซง่ึ เปน็ สว่ นประกอบหลักสำคัญของระบบคอมพิวเตอรเ์ ขา้ ไว้ด้วยกนั โดยทำการ
บรรจุเขา้ ไว้ในตัวถังเดียวกัน
1.1 ไมโครคอนโทรลเลอรเ์ บอื้ งต้น
ไมโครคอนโทรลเลอร์ถา้ แปลความหมายแบบตรงตัวก็คือ ระบบคอนโทรลขนาดเล็กเรยี กอีกอยา่ ง หนึ่ง
คอื เป็นระบบคอมพวิ เตอร์ขนาดเล็ก ที่สามารถนามาประยุกตใ์ ช้งานได้หลากหลาย โดยผ่านการออกแบบ วงจร
ใหเ้ หมาะกบั งานต่าง ๆ และยังสามารถโปรแกรมคาสงั่ เพ่ือควบคุมขา Input / Output เพ่อื ส่งั งานให้ไป
ควบคมุ อุปกรณ์ต่าง ๆ ได้อกี ด้วย ซงึ่ กน็ บั วา่ เปน็ ระบบท่ีสามารถนามาประยุคใช้งานได้หลากหลาย ทงั้ ทางดา้ น
Digital และ Analog ยกตัวอย่างเช่น ระบบสญั ญาณตอบรบั อัตโนมัติ, ระบบบัตรควิ , ระบบตอกบตั ร
พนักงาน และอ่นื ๆ ยงิ่ ระบบไมโครคอนโทรลเลอร์ ในยคุ ปัจจุบนั นนั้ สามารถทาการเช่อื ต่อกบั ระบบ Network
ของคอมพวิ เตอรท์ ัว่ ไปได้อีกด้วย ดงั นนั้ การส่ังงานจึงไม่ใช่แคห่ น้าแผงวงจร แต่อาจจะเป็นการสั่งงานอยู่คนละ
ซีกโลกผ่านเครอื ขา่ ยอนิ เตอร์เนต็ กไ็ ด้ โครงสร้างโดยทวั่ ไปของไมโครคอนโทรลเลอร์สามารถแบง่ ออกมาได้เป็น
5 ส่วนใหญ่ ๆ ดงั ตอ่ ไปน้ี
1. หนว่ ยประมวลผลกลางหรอื ซีพยี ู (CPU : Central Processing Unit)
2. หนว่ ยความจำ (Memory) สามารถแบ่งออกเป็น 2 ส่วน คอื หน่วยความจำทมี่ ีไว้สาหรบั เกบ็
โปรแกรมหลกั (Program Memory) เชน่ Flash Memory ลกั ษณะการทางานของหน่วยความจำนี้
เป็น หน่วยความจำท่อี า่ น-เขียนได้ดว้ ยไฟฟ้า เปรียบเสมือนฮาร์ดดิสกข์ องเครอ่ื งคอมพิวเตอร์ตัง้ โตะ๊
คอื ข้อมลู ใดๆ ทถ่ี ูกเกบ็ ไวใ้ นนจี้ ะไมส่ ูญหายไปแม้ไมม่ ไี ฟเลีย้ ง อีกส่วนหนงึ่ คอื หนว่ ยความจำข้อมลู
(Data Memory) ใชเ้ ปน็ เหมือนกบั กระดาษทดในการคำนวณของซีพียู และเป็นที่พักข้อมูลช่ัวคราว
หลกั สตู รการอบรมพฒั นาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอรเ์ พื่อการเกษตร อ.ดร.สรุ พล วรภัทราทร
2
ขณะทางาน แต่หากไม่มีไฟเลยี้ ง ในการทางานข้อมลู จะหายไปคลา้ ยกับหนว่ ยความแรม (RAM) ใน
เครือ่ งคอมพิวเตอรท์ วั่ ๆไป แตส่ าหรับ ไมโครคอนโทรลเลอร์สมัยใหม่ หน่วยความจำข้อมลู มีท้ังที่เปน็
หน่วยความจำแรม ซง่ึ ข้อมูลจะหายไปเม่ือไมม่ ี ไฟเลย้ี ง และเป็นอีอีพรอม (EEPROM : Erasable
Electrically Read-Only Memory) ซ่ึงสามารถเกบ็ ขอ้ มลู ได้แม้ไม่มไี ฟเลี้ยงก็ตาม ในอดตี เป็น
หน่วยความจำโปรแกรมแบบ EPROM หน่วยความจำทลี่ บด้วยแสง
3. สว่ นตดิ ต่อกบั อุปกรณ์ภายนอก หรือพอร์ต (Port) มี 2 ลักษณะคอื พอร์ตอนิ พุต (Input Port) และ
พอร์ตส่งสญั ญาณหรือพอร์ตเอาตพ์ ุต (Output Port) ส่วนนจ้ี ะใชใ้ นการเช่ือมต่อกบั อุปกรณภ์ ายนอก
ถอื วา่ เปน็ ส่วนทีส่ ำคัญมาก พอร์ตอินพุตรบั สญั ญาณเพ่ือนาไปประมวลผลและส่งไปแสดงผลทพ่ี อร์ต
เอาต์พุต เชน่ การตดิ สว่างของหลอดไฟ เป็นตน้
4. ชอ่ งทางเดินของสญั ญาณ หรือบสั (BUS) คือเส้นทางการแลกเปลีย่ นสัญญาณข้อมูลระหวา่ ง ซพี ยี ู
หน่วยความจำและพอรต์ เป็นลักษณะของสายสัญญาณจานวนมากอยภู่ ายในตัวไมโครคอนโทรลเลอร์
โดย แบ่งเป็นบัสข้อมลู (Data Bus) บสั แอดเดรส (Address Bus) และบัสควบคุม (Control Bus)
5. วงจรกำเนิดสัญญาณนาฬิกา นับเปน็ ส่วนประกอบทีส่ ำคัญมากอกี ส่วนหนง่ึ เนือ่ งจากการทางานท่ี
เกิดขนึ้ ในตัวไมโครคอนโทรลเลอร์ จะขน้ึ อยู่กบั การกำหนดจงั หวะ หากสัญญาณนาฬิกามีความถส่ี งู
จงั หวะ การทางานก็จะสามารถทาได้ถีข่ นึ้ สง่ ผลให้ไมโครคอนโทรลเลอรต์ วั น้ัน มคี วามเรว็ ในการ
ประมวลผลสูงตาม ไปดว้ ย การเขยี นโปรแกรมไมโครคอนโทรลเลอร์ภาษาซีถือว่าเป็นภาษาระดบั กลาง
หลกั สูตรการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอร์เพ่ือการเกษตร อ.ดร.สุรพล วรภทั ราทร
3
ภาพท่ี 1.1 ส่วนตา่ ง ๆของไมโครคอนโทรลเลอร์
(ท่มี า www.Rendhyy8.blogspot.com/2013/12/tugas-mikroprosesor.html)
1.2 ตระกลู ของไมโครคอนโทรลเลอร์
1. Z-80
ไมโครคอนโทรลเลอร์ที่นิยมใช้กัน เริ่มต้ังแต่ตัวแรกที่เป็นลักษณะของ CPU ไม่ถึงขั้นเรียกว่า
ไมโครคอนโทรลเลอร์ ก็คือ ตระกูล Z80 เป็นลกั ษณะของ CPU เลก็ ๆ ทีต่ ้องอาศยั IO ต่าง ๆ เพม่ิ เตมิ เข้า
มา มาก จึงทำใหบ้ อร์ดมีขนาดคอ่ นข้างใหญ่ จดั ได้ว่าเป็นการเร่มิ ตน้ การเรยี นรู้ที่ดีของยุคสมัยนน้ั ทำให้ได้
เรยี นรู้ ชุดคาสั่งทีเ่ ปน็ Op Code
หลักสูตรการอบรมพฒั นาเกษตรกรร่นุ ใหม่: เทคโนโลยีเซนเซอรเ์ พือ่ การเกษตร อ.ดร.สุรพล วรภทั ราทร
4
ภาพท่ี 1.2 ตวั อยา่ งการใชง้ าน Z-80 บนบอรด์ ทดลองจริง
(ทม่ี า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html)
2. MCS-51
บรษิ ัทท่ีสร้างไมโครคอนโทรลเลอร์ตระกูล MCS-51 เป็นบริษัทแรกคือบริษัท Intel ตระกลู MCS-
51 เปน็ ตระกลู ท่ีพัฒนาต่อจาก Z80 ทำใหก้ ารศึกษาเรยี นรู้ไมโครคอนโทรลเลอร์ง่ายข้ึนกว่าเดิม ไม่ว่า จะ
เป็นการเขียนโปรแกรมในลักษณะของ Assembly Code แล้วโหลดลงบอร์ดเพื่อใช้งาน ตลอดจน
สถาปัตยกรรมในการออกแบบ ไมโครคอนโทรลเลอรร์ นุ่ นี้ จะชว่ ยลดอปุ กรณร์ อบข้างลงไปไดม้ าก เหมาะที่
จะ นาไปใช้งานจริง ตวั อยา่ งการต่อใชง้ าน MCS-51 บนบอรด์ ทดลองจริง อปุ กรณ์รอบขา้ งจะน้อยกว่า Z-
80 มากทำให้ ออกแบบวงจรได้ง่ายขน้ึ มาก
ภาพที่ 1.3 ตัวอยา่ งการต่อใช้งาน MCS-51 บนบอร์ดทดลอง
(ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html)
3. PIC
บริษัท Microchip Technology เป็นผู้สร้างและผลิต PIC เป็นไมโครคอนโทรลเลอร์ยุคต่อมาที่
ได้รับความนิยมสูงอีกตระกูลหนึ่ง ตั้งแต่อดีตจนถึงปัจจุบัน คาว่า PIC ย่อมาจากคาว่า (Peripheral
Interface Controller) ไมโครคอนโทรลเลอร์ตระกูลนี้ มีการพัฒนาเทคโนโลยีขึน้ ในทุกด้าน ทำให้ได้รับ
หลักสูตรการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยเี ซนเซอรเ์ พ่ือการเกษตร อ.ดร.สุรพล วรภัทราทร
5
ความนิยมกว่า ไมโครคอนโทรลเลอร์ยุคเก่า เพราะในเรื่องของอุปกรณ์ต่อพ่วงที่มีน้อย ประกอบกับมี
หน่วยความจำ EEPROM ในตัว จึงทำให้ง่ายต่อการบันทึกและจัดเก็บข้อมูล และ PORT ต่าง ๆ ได้มีการ
latch ในตัว IC อยู่ แล้ว จึงสามารถต่อออกมาใช้งานภายนอกได้โดยตรง มีกระแสและแรงดันที่เพียงพอ
และอีกความสามารถ หนึ่ง คือสามารถโปรแกรมตัว Boot Loader เข้าไปในตัวไมโครคอนโทรลเลอร์ได้
จึงทำให้ง่ายในการโหลด โปรแกรมเข้าไปจากคอมพิวเตอร์ โดยผ่านทาง Serial Port และกดปุ่ม Reset
เพียงอย่างเดียว ไม่ต้องการ เครื่องโปรแกรม IC เพิ่มเติม อย่างที่ต้องมีกับระบบไมโครคอนโทรลเลอร์รุ่น
เก่าอยา่ ง MCS-51
ภาพท่ี 1.4 ตวั อย่างการต่อใช้งาน PIC บนบอรด์ ทดลอง
(ท่ีมา www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html)
4. AVR
AVR เปน็ ไมโครคอนโทรลเลอรต์ ระกลู หนึ่งผลติ โดยบริษัท Atmel AVR อยู่ในรปู แบบสมองกลฝงั ตัว
(Embedded System) มลี กั ษณะสถาปตั ยกรรมเปน็ แบบ RISC (Reduced Instruction Set Computing)
มีความเรว็ ในการประมวลผล 1 คาส่ังต่อ 1 สญั ญาณนาฬิกา ใช้พลงั งานไฟฟา้ ต่ำโดยบางรนุ่ ใช้ไฟเพยี ง 1.5 V
- 5.5 V เท่าน้นั และยงั มโี หมดประหยัดพลงั งานอีก 6 โหมด สำหรับ AVR เบอร์ ATmega48 เป็นตัวอยา่ งใน
การศกึ ษาคุณสมบัตดิ า้ นตา่ ง ๆ ดงั นี้
• มีหนว่ ยความจำสาหรับเก็บโปรแกรมแบบแฟลช (ROM) ขนาด 4 กิโลไบต์ สามารถเขียน-ลบได้
ประมาณ 10,000 ครั้ง
• มหี น่วยความจำข้อมูล (RAM) ขนาด 512 ไบต์
• มหี นว่ ยความจำข้อมลู อีอีพรอม (EEPROM) ขนาด 256 ไบต์ สามรถเขยี น-ลบได้ประมาณ
100,000 ครั้ง
• มพี อรต์ อนิ พุตเอาต์พุตใหใ้ ช้งานจานวน 23 ขา (PB0 ถงึ PB7, PC0 ถึง PC6, PD0 ถงึ PD7)
หลกั สูตรการอบรมพัฒนาเกษตรกรร่นุ ใหม่: เทคโนโลยเี ซนเซอรเ์ พ่ือการเกษตร อ.ดร.สรุ พล วรภทั ราทร
6
• มีความเร็วในการประมวนผลสูงสดุ 20 ล้านคาสั่งตอ่ 1 วินาทีท่คี วามถี่ 20 MHz
• มีโมดูลแปลงสญั ญาณแอนะลอ็ กเป็นดิจติ อล (Analog-to-Digital Converter) ขนาด 10 บติ จาน
วน 6 ชอ่ ง สาหรับตวั ถงั แบบ PDIP และ 8 ชอ่ งสาหรบั ตัวถังแบบ TQFP และ MLF
• มโี มดลู สร้างสญั ญาณ Pulse Width Modulator (PWM) 3 ชุด 6 ชอ่ งสัญญาณ
• มี Timer/Counters ขนาด 8 บิต 2 ตัว และ 16 บิต 1 ตัว ภาษาที่ใช้เขยี นโปรแกรม
ไมโครคอนโทรลเลอรม์ ีหลายภาษา เชน่ ภาษาเคร่อื ง , Assembly, BASIC, C เปน็ ต้น แต่ละภาษาก็มี
ขอ้ ดีขอ้ เสียแตกต่างกันไป ภาษาทเี ปน็ ท่นี ยิ มคือภาษา C เนื่องจากเขยี นง่ายแก้ไข เปลย่ี นแปลงไดง้ ่าย
โปรแกรมเขยี นภาษา C สาหรบั ไมโครคอนโทรลเลอร์ AVR เบอร์ ATmega48 นนั้ นิยมใช้ โปรแกรม MikroC
for AVR เนื่องจาเปน็ โปรแกรมทใ่ี ช้งานง่ายและมีไลบรารใี ห้มาพร้อมดว้ ย
ภาพที่ 1.5 ตัวอย่างการตอ่ ใช้งาน AVR
(ท่มี า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html)
5. Arduino
Arduino เป็นไมโครคอนโทรลเลอร์บอร์ดแบบสำเร็จรปู ในยุคปัจจุบัน ซึ่งถูกสร้างมาจาก Controller
ตระกลู ARM ของ ATMEL ขอ้ ดขี องไมโครคอนโทรลเลอร์บอรด์ คือเรื่องของ Open Source ทสี่ ามารถนา
ไป พฒั นาตอ่ เป็นอปุ กรณต์ ่าง ๆได้ และความสามารถในการเพ่ิม Boot Loader เขา้ ไปทตี่ ัว ARM จึงทำให้
การ Upload Code เข้าตัวบอร์ดสามารถทำได้ง่ายขึน้ และยังมีการพัฒนา Software ที่ใช้ในการควบคมุ
ตัวบอร์ด ของ Arduino มีลักษณะเป็นภาษา C++ ที่โปรแกรมเมอร์มีความคุ้นเคยในการใช้งาน ตัวบอรด์
สามารถนา โมดลู มาตอ่ เพ่ิม ซึ่งทาง Arduino เรยี กวา่ เปน็ shield เพอื่ เพมิ่ ความสามารถเพิม่ ขึน้
หลกั สูตรการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอร์เพ่อื การเกษตร อ.ดร.สุรพล วรภทั ราทร
7
ภาพท่ี 1.6 ไมโครคอนโทรลเลอร์ Arduino
(ทมี่ า www.Chokelive.com/blog/2013/07/Micro-Controller-Application.html)
1.3 บอร์ดไมโครคอนโทรลเลอร์ Arduino
Arduino เป็นภาษาอิตาลี โดยเป็นชื่อโครงการพัฒนาไมโครคอนโทรลเลอร์ตระกูล AVR ในรูปแบบ
Open Source คือวิธีการในการออกแบบ พัฒนา และแจกจ่ายสาหรับต้นฉบับของสินค้าหรือความรู้
โดยเฉพาะซอฟต์แวร์ โดยโอเพนซอร์ซถูกพิจารณาว่าเป็นทั้งรูปแบบหนึ่งในการออกแบบ และแผนการในการ
ดาเนินการ โอเพนซอร์ซเปิดโอกาสให้บุคคลอื่นนาเอาระบบนั้นไปพัฒนาได้ต่อไป การพัฒนามาจากโครงการ
Open Source เดิมของ AVR ที่ชื่อ Wiring โดยโครงการ Wiring ใช้ไมโครคอนโทรลเลอร์ AVR เบอร์
ATmega128 ซึ่งมีข้อจากัดหลายด้าน เช่นเป็นชิปที่มีตัวถังแบบ SMD ทำให้นามาใช้งานยากเพราะตัว
ไมโครคอนโทรลเลอร์มีขนาดเล็กเกินไป ทำให้ไม่สะดวกในการต่อใช้งานจริง มีขาอินพุทและเอ้าท์พุทจานวน
มากเกินไป ตัวบอร์ดมีขนาดใหญ่เกินไป ไม่เหมาะสมสาหรับผู้ที่เริ่มต้นเรียนรู้ด้านไมโครคอนโทรลเลอร์ ด้วย
เหตุผลข้างต้นจึงทำให้ไม่ได้รับความนิยม ระยะต่อมาทีมงาน Arduino จึงได้นาโครงการ Wiring มาพัฒนา
ใหม่โดยใช้ไมโครคอนโทรลเลอร์ AVR ขนาดเล็ก คือ ATMega8 และ ATMega168 ทำให้ได้รับความนิยม
จนถงึ ปจั จุบนั นี้ ตวั อยา่ งรายละเอียดรุ่นต่าง ๆ มีดังนี้
1. Arduino Uno R3
บอร์ด Arduino รุ่นแรกที่ผลิตออกมา มีขนาด ประมาณ 68.6x53.4 mm. เป็นบอร์ดมาตรฐานท่ี
นิยมใช้งานมากที่สุด เนื่องจากเป็นขนาดที่เหมาะสาหรับ การเริ่มต้นเรียนรู้ Arduino และมี Shields ให้
เลือกใช้งานได้มากกว่าบอร์ด Arduino รุ่นอื่นๆ ที่ออกแบบมา เฉพาะมากกว่า โดยบอร์ด Arduino Uno
ได้มีการพัฒนาเรื่อยมา ตั้งแต่ R2 R3 และรุ่นย่อยที่เปลี่ยนชิปไอซี เป็นแบบ SMD เป็นบอร์ด Arduino ที่
ได้รับความนยิ มมากท่ีสดุ เน่อื งจากราคาไม่แพง และส่วนใหญ่โปรเจค และ Library ตา่ ง ๆ ที่พัฒนาข้ึนมา
Support จะอ้างอิงกับบอร์ดนี้เป็นหลัก และข้อดีอีกอย่างคือกรณีที่ MCU เสียผู้ใช้งานสามารถซื้อมา
เปลี่ยนเองไดง้ า่ ย Arduino Uno R3 มี MCU ท่ีเป็น Package DIP
หลกั สตู รการอบรมพัฒนาเกษตรกรรุน่ ใหม่: เทคโนโลยีเซนเซอร์เพอื่ การเกษตร อ.ดร.สุรพล วรภทั ราทร
8
ภาพท่ี 1.7 ไมโครคอนโทรลเลอร์ Arduino Uno R3
(ท่มี า www.Ce.kmitl.ac.th/download.php?DOWNLOAD_ID=4307&database=subject)
ข้อมลู จำเพาะ
• ชิปไอซไี มโครคอนโทรเลอร์ ATmega328
• ใช้แรงดันไฟฟ้า 5 V
• รองรับการจ่ายแรงดนั ไฟฟ้า (ทีแ่ นะนา) 7 – 12 V
• รองรบั การจา่ ยแรงดนั ไฟฟ้า (ที่จากดั ) 6 – 20 V
• พอรต์ Digital I/O 14 พอรต์ (มี 6 พอรต์ PWM output)
• พอรต์ Analog Input6 พอรต์
• กระแสไฟทจี่ ่ายไดใ้ นแต่ละพอรต์ 40 mA
• กระแสไฟท่จี ่ายไดใ้ นพอรต์ 3.3V 50 mA
• พ้นื ทีโ่ ปรแกรมภายใน32 KB พ้นื ท่ีโปรแกรม , 500B ใช้โดย Boot Loader
• พื้นท่แี รม 2 KB
• พื้นที่หน่วยความจำถาวร (EEPROM) 1 KB
• ความถค่ี ริสตัล 16 MHz
• ขนาด 68.6 x 53.4 mm
• น้ำหนกั 25 กรัม
2. Arduino Mega 2560 R3
หลกั สตู รการอบรมพฒั นาเกษตรกรร่นุ ใหม่: เทคโนโลยีเซนเซอรเ์ พอื่ การเกษตร อ.ดร.สรุ พล วรภัทราทร
9
บอร์ด Arduino Mega 2560 จะเหมือนกับ Arduino Mega ADK ต่างกันตรงที่บนบอร์ดไม่มี USB
Host มาให้ การโปรแกรมยังต้องทาผ่านโปรโตคอล UART อยู่บนบอร์ดใช้ชิปไอซีไมโครคอนโทรเลอร์
เบอร์ ATmega2560 เป็นบอร์ด Arduino ที่ออกแบบมาสาหรับงานที่ต้องใช้ IO มากกว่า Arduino Uno
R3 เช่น งานที่ต้องการรับสัญญาณจาก Sensor หรือควบคุมมอเตอร์ Servo หลายๆตัว ทำให้ Pin IO
ของบอร์ด Arduino Uno R3 ไม่สามารถรองรับได้ ทั้งนี้บอร์ด Mega 2560 R3 ยังมีความหน่วยความจำ
แบบ Flash มากกว่า Arduino Uno R3 ทำให้สามารถเขียนโค้ดโปรแกรมเข้าไปได้มากกว่า ในความเร็ว
ของ MCU ที่ เทา่ กนั
ภาพที่ 1.8 ไมโครคอนโทรลเลอร์ Arduino Mega 2560 R3
(ทมี่ า www.Thaieasyelec.com)
ข้อมลู จำเพาะ
• ชิปไอซีไมโครคอนโทรเลอร์ ATmega2560
• ใช้แรงดันไฟฟ้า 5 V
• รองรบั การจ่ายแรงดันไฟฟา้ (ท่แี นะนา) 7 – 12 V
• รองรับการจ่ายแรงดนั ไฟฟ้า (ทจ่ี ากดั ) 6 – 20 V
• พอรต์ Digital I/O 54 พอร์ต (มี 15 พอร์ต PWM output)
• พอร์ต Analog Input16 พอรต์
• กระแสไฟฟา้ รวมที่จ่ายไดใ้ นทุกพอร์ต 40 mA
• กระแสไปที่จา่ ยได้ในพอรต์ 3.3V 50 mA
• พื้นที่โปรแกรมภายใน256 KB แต่ 8 KB ถกู ใชโ้ ดย Boot Loader
• พื้นที่แรม 8 KB
• พืน้ ท่หี น่วยความจำถาวร (EEPROM) 4 KB
• ความถค่ี ริสตัล 16 MHz
หลกั สูตรการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอร์เพ่อื การเกษตร อ.ดร.สุรพล วรภัทราทร
10
3. Arduino Mega ADK
บอร์ด Arduino Mega ADK ใช้ชิปไมโครคอนโทรเลอร์เบอร์ ATmaega2560 มีชิปไอซี USB Host
เบอร์ MAX3421e มาให้บนบอร์ด ใช้สาหรับเชื่อมต่อกับโทรศัพท์มือถือแอนดรอยผ่าน OTG มีพอร์ต
ดิจิตอล อินพุตเอาต์พุตจานวน 54 พอร์ต มีอนาล็อกอินพุตมาให้ 16 พอร์ต ทางานที่ความถี่ 16 MHz
บอร์ด Arduino Mega ADK จะแตกต่างกับบอร์ด Arduino Duo ตรงที่ชิปบนบอร์ดนั้นฉลาดไม่เท่า และ
ใช้ความถี่ ต่ำกว่า ดังนั้นจึงไม่เหมาะจะนาไปใช้กับงานคำนวณ แต่เหมาะสาหรับงานที่ใช้การเชื่อมต่อกับ
โทรศพั ท์มอื ถือ แอนดรอยมากกว่า
ภาพท่ี 1.8 ไมโครคอนโทรลเลอร์ Arduino Mega ADK
(ทมี่ า www.Thaieasyelec.com)
ข้อมลู จำเพาะ
• ชิปไอซไี มโครคอนโทรเลอร์ ATmega2560
• ใชแ้ รงดันไฟฟ้า 5 V
• รองรับการจ่ายแรงดนั ไฟฟ้า (ทแี่ นะนา) 7 – 12 V
• รองรับการจ่ายแรงดันไฟฟา้ (ทีจ่ ากดั ) 6 – 20 V
• พอร์ต Digital I/O 54 พอรต์ (มี 15 พอร์ต PWM output)
• พอร์ต Analog Input16 พอร์ต
• กระแสไฟฟ้ารวมทจ่ี ่ายได้ในทกุ พอรต์ 40 mA
• กระแสไปทีจ่ ่ายไดใ้ นพอรต์ 3.3V 50 mA
• พ้นื ทีโ่ ปรแกรมภายใน256 KB แต่ 8 KB ถกู ใชโ้ ดย Boot Loader
• พน้ื ทีแ่ รม 8 KB
• พื้นท่ีหน่วยความจำถาวร (EEPROM) 4 KB
• ความถค่ี รสิ ตลั 16 MHz
• ขนาด 101.52x53.3 mm
• นา้ หนัก 36 กรัม
หลกั สตู รการอบรมพฒั นาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอร์เพื่อการเกษตร อ.ดร.สุรพล วรภัทราทร
11
4. Arduino Leonardo
บอรด์ Arduino Leonard เป็นบอร์ดทเี่ ลือกใช้ชิปไอซีเบอร์ Atmega32u4 ที่รองรับการเชื่อมตอ่ กบั
พอรต์ USB ไดโ้ ดยตรง ทำให้บอร์ดสามารถเขียนโปรแกรมเพื่อจาลองตวั เองให้เป็นเมาส์ หรือคยี ์บอร์ดได้
ทางานทีแ่ รงดนั 5V ทำให้ไม่มีปญั หากบั เซ็นเซอร์ หรอื Shields ท่ีใชง้ านกับ Arduino Uno การทางานจะ
คล้ายกับบอรด์ Arduino Uno R3 แต่มีการเปลี่ยน MCU ตัวใหม่เป็น ATmega32U4 ซึ่งมโี มดลู พอร์ต USB
มาด้วยบนชิป (แตกตา่ งจากบอร์ด Arduino Uno R3 หรอื Arduino Mega 2560 ทีต่ ้องใชช้ ปิ
ATmega16U2 รว่ มกับ ATmega328 ในการเชอ่ื มต่อกบั พอร์ต USB) ข้อควรระวงั : เนื่องจาก MCU เป็น
คนละเบอรก์ บั Arduino Uno R3 อาจะทำใหบ้ อรด์ Shield บางตัวหรอื Library ใช้รว่ มกันกบั บอรด์
Arduino Leonardo ไม่ได้ ผู้ใช้งานตอ้ งตรวจสอบกอ่ นใช้งาน
ภาพท่ี 1.9 ไมโครคอนโทรลเลอร์ Arduino Leonardo
(ท่มี า www.Thaieasyelec.com)
ขอ้ มูลจำเพาะ
• ชปิ ไอซีไมโครคอนโทรเลอร์ Atmega32u4
• ใช้แรงดนั ไฟฟ้า 5 V
• รองรบั การจา่ ยแรงดันไฟฟา้ (ทแ่ี นะนา) 7 – 12 V
• รองรบั การจา่ ยแรงดนั ไฟฟา้ (ท่ีจากดั ) 6 – 20 V
• พอรต์ Digital I/O 20 พอร์ต (มี 7 พอร์ต PWM output)
• พอร์ต Analog Input12 พอร์ต
• กระแสไฟฟ้ารวมท่จี ่ายได้ในทุกพอร์ต 40 mA
• กระแสไปท่จี า่ ยได้ในพอรต์ 3.3V 50 mA
• พ้ืนที่โปรแกรมภายใน32 KB แต่ 4 KB ถกู ใชโ้ ดย Boot Loader
• พน้ื ท่ีแรม 2.5 KB
• พื้นทีห่ นว่ ยความจำถาวร (EEPROM) 1 KB
หลกั สูตรการอบรมพัฒนาเกษตรกรรุ่นใหม่: เทคโนโลยเี ซนเซอร์เพ่อื การเกษตร อ.ดร.สุรพล วรภทั ราทร
12
• ความถ่ีครสิ ตลั 16 MHz
• ขนาด 68.6x53.3 mm
• น้าหนกั 20 กรัม
5. Arduino Due
Duo เปน็ ภาษาอิตาลีแปลวา่ สอง เป็นรุน่ ที่เพ่ิมพอร์ตให้มากข้ึนเป็น 54 พอรต์ ดิจิตอลอินพุต เอาต์พุต
และ 12 พอร์ตแอนะล็อกอินพุต 2 พอร์ตแอนะล็อกเอาต์พุต เพิ่มพื้นที่โปรแกรมเป็น 512 KB สามารถใช้
งานพื้นที่ได้เต็มไม่มี Bootloader เนื่องจากสามารถใช้กับพอร์ต USB ได้โดยตรง มีขนาด บอร์ด
101.52x53.3 mm สามารถใช้ Shields ของ Arduino Uno ได้ แต่บางตวั จาเปน็ ต้องแก้ขาให้ ถูกต้อง จะ
เหน็ ไดว้ ่าบอร์ดได้เปล่ียนมาใช้ชปิ ไอซแี บบ SMD จึงไม่นิยมนามาใชใ้ นแบบ Standalone แตน่ ยิ มนามาใช้
ในงานที่จาเป็นต้องพื้นที่โปรแกรมมากขึ้น ทางานที่ซับซ้อนมากยิ่งขึ้น บอร์ด Arduino Duo ใช้ชิปไอซี
เบอร์ AT91SAM3X8E ซึ่งเป็นชิปไอซีที่ใช้เทคโนโลยี ARM Core สถาปัตยกรรม 32 บิต เร่งความถี่
คริสตอลขึ้นไปสูงถึง 84 MHz จึงทำให้สามารถทางานด้านการคานวน หรือการประมวลผลอัลกอริทึมได้
เร็วกว่า Arduino Uno มาก เนื่องจากชิปไอซีทางานที่แรงดัน 3.3 V ดังนั้นการนาไปใช้งานกับเซ็นเซอร์
ควรระวังไม่ให้แรงดัน 5 V ไหลเข้าบอร์ด ควรใช้วงจรแบ่งแรงดันเพื่อ ช่วยให้ลอจิกลดแรงดันลงมาให้
เหมาะสม
ภาพที่ 1.10 ไมโครคอนโทรลเลอร์ Arduino Due
(ที่มา www.Thaieasyelec.com)
เป็นบอรด์ Arduino ท่ีเปลย่ี นชิป MCU ใหม่ ซ่งึ จากเดิมเป็นตระกูล AVR เปลี่ยนเป็นเบอร์
AT91SAM3X8E (ตระกูล ARM Cortex-M3) แทน ทำให้การประมวลผลเร็วขน้ึ แต่ยงั คงรูปแบบโค้ด
โปรแกรมของ Arduino ที่ง่ายอยู่ มขี ้อควรระวังคือเนื่องจาก MCU เปน็ คนละเบอร์กับ Arduino Uno R3
อาจะทำให้บอร์ด Shield บางตัวหรือ Library ใชร้ ่วมกนั กับบอรด์ Arduino Leonardo ไม่ได้ ผู้ใชง้ าน
จาเปน็ ตอ้ งตรวจสอบก่อนใช้งาน
หลักสตู รการอบรมพฒั นาเกษตรกรร่นุ ใหม่: เทคโนโลยเี ซนเซอร์เพื่อการเกษตร อ.ดร.สุรพล วรภทั ราทร
13
ข้อมูลจำเพาะ
• ชปิ ไอซีไมโครคอนโทรเลอร์ AT91SAM3X8E
• ใชแ้ รงดันไฟฟ้า 3.3 V
• รองรบั การจ่ายแรงดนั ไฟฟ้า (ทแ่ี นะนา) 7 – 12 V
• รองรบั การจ่ายแรงดนั ไฟฟา้ (ทจ่ี ากดั ) 6 – 16 V
• พอร์ต Digital I/O 54 พอร์ต (มี 12 พอร์ต PWM Output)
• พอรต์ Analog Input2 พอร์ต
• กระแสไฟฟ้ารวมท่จี ่ายได้ในทุกพอร์ต 130 mA
• กระแสไฟทีจ่ า่ ยได้ในพอรต์ 3.3V 800 mA
• กระแสไปทีจ่ า่ ยได้ในพอร์ต 5V800 mA
• พ้นื ทีโ่ ปรแกรมภายใน512 KB พนื้ ท่โี ปรแกรม
• พ้นื ท่ีแรม 2 KB
• พื้นทหี่ น่วยความจำถาวร (EEPROM) 96 KB
• ความถคี่ รสิ ตัล 84 MHz
• ขนาด 101.52x53.3 mm
• น้าหนัก 36 กรัม
แบบทดสอบความรู้เบ้อื งต้นของเซนเซอร์
จงเลือกคำตอบโดยกากบาท () คำตอบที่ถูกท่ีสุด
1. ไมโครคอนโทรลเลอร์ (Microcontroller ) มีความหมายตรงกับข้อใด
ก. ระบบโทรทศั น์ทม่ี าประยกุ ตใ์ ช้งานได้หลากหลาย
ข. ระบบโทรศพั ทท์ ่ีมาประยุกตใ์ ชง้ านไดห้ ลากหลาย
ค. ระบบคอมพวิ เตอร์ขนาดเลก็ ที่มาประยุกต์ใช้งานได้หลากหลาย
ง. ระบบเคร่อื งเสียงทม่ี าประยุกตใ์ ชง้ านไดห้ ลากหลาย
2. ขอ้ ใดกล่าวผิด
ก. รอมมีคุณสมบัติ อ่านได้ เขยี นไมไ่ ด้
ข. หน่วยประมวลผลกลาง ปัจจุบนั อยใู่ นรูปของไอซีท่เี รียกอีกไมโครโปรเซสเซอร์
ค. อุปกรณส์ วติ ช์ ถือว่าเปน็ อปุ กรณ์อินพตุ
ง. แรมเรยี กอีกอย่างหนง่ึ วา่ หน่วยความจำโปรแกรม
3. ไมโครคอนโทรลเลอร์ขนาด 8 บติ ตระกลู ใดที่มกี ารทำงานเป็นแบบ RISC
หลกั สูตรการอบรมพัฒนาเกษตรกรรุ่นใหม่: เทคโนโลยเี ซนเซอร์เพ่อื การเกษตร อ.ดร.สุรพล วรภทั ราทร
14
ก. ตระกลู AVR
ข. ตระกูล MSC-51
ค. ตระกลู PICTURE
ง. ตระกูล BASIC STOP
4. ไมโครคอนโทรลเลอร์เบอร์ ATmega48 พอรต์ อินพุตเอาตพ์ ุตใหใ้ ช้งานจำนวน
ก. 33 ขา
ข. 23 ขา
ค. 13 ขา
ง. 3 ขา
5. ข้อใดไม่ใชค่ ุณสมบัตทิ ี่ถกู ตอ้ งของ ATmega48
ก. มีหน่วยความจำข้อมลู (RAM)
ข. มีหนว่ ยความจำสำหรับเก็บโปรแกรมแบบแฟลช (ROM)
ค. มีพอร์ตอินพุตเอาตพ์ ตุ ให้ใชง้ านจำนวน 23 ขา
ง. มี Timer/Counters ขนาด 8 บิต 5 ตัว และ 16 บิต 10 ตวั
6. ATmega48 มีหน่วยความจำขนาดเทา่ ไร
ก. รอมขนาด 8 Kbyte สามารถเขียน-ลบได้ประมาณ 10,000 ครง้ั
ข. รอมขนาด 2 Kbyte สามารถเขียน-ลบได้ประมาณ 10,000 ครงั้
ค. รอมขนาด 4 Kbyte สามารถเขยี น-ลบได้ประมาณ 10,000 คร้งั
ง. รอมขนาด 4 Kbyte สามารถเขียน-ลบได้ประมาณ 100,000 ครงั้
7. ATmega48 มโี มดลู สรา้ งสญั ญาณ Pulse width Modulator (PWM) ท้ังหมดก่แี หล่ง
ก. 4 ชดุ 12 ชอ่ งสัญญาณ
ข. 4 ชุด 8 ช่องสญั ญาณ
ค. 3 ชดุ 12 ช่องสัญญาณ
ง. 3 ชุด 6 ชอ่ งสัญญาณ
8. ARDUINO UNO R3 ขาใดมีโครงสร้างภายในรับสญั ญาณ I2C (SCA)
ก. D0
ข. C7
ค. B5
ง. A5
หลักสตู รการอบรมพฒั นาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอร์เพอื่ การเกษตร อ.ดร.สุรพล วรภทั ราทร
15
9. ขา Digital 11 ของ ARDUINO UNO R3 นอกจากจะเปน็ พอร์ตดจิ ิตอลแลว้ ยงั มหี น้าทีเ่ ปน็ ขา
ก. Capture/Compare/PWM (Pulse Width Modulation)
ข. Parallel Mode Operation
ค. SPI (SS)
ง. In-Circuit Serial Programming
10. ARDUINO UNO R3 พอรต์ ใดท่ีเหมาะสำหรบั ต่อใช้งานการสื่อสารแบบอนุกรม
ก. PORTB
ข. Analog 4
ค. PORTD
ง. Digital 0
หลกั สตู รการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอรเ์ พ่อื การเกษตร อ.ดร.สรุ พล วรภทั ราทร
16
บทท่ี 2
การควบคมุ ไดโอดแปลง่ แสง LED
วัตถปุ ระสงค์
1. เพือ่ ใหม้ ีความรู้ความเขา้ ใจเกี่ยวกับการตดิ ต้งั ซอฟตแ์ วร์ Arduino IDE
2. เพ่ือให้สามารถนำความรูไ้ ปประยกุ ต์ใชใ้ นการเขียนโปรแกรม Arduino IDE
3. เพือ่ ให้มีความรู้ความเข้าใจในการเขียนโปรแกรมไมโครคอนโทรลเลอร์ดว้ ยโปรแกรม Arduino
เพ่อื ใชง้ านไดโอดแปล่งแสง LED
บทนำ
ไดโอดเปล่งแสง (Light-Emitting Diodes: LED) เป็นไดโอดชนิดหน่ึงทสี่ ามารถเปล่งแสงไดถ้ ้าได้รบั
การไบอสั ทีถ่ ูกตอ้ ง ไดโอดเปล่งแสง หรือ LED มีประโยชนม์ ากในการใช้งานเป็นอุปกรณส์ ําหรบั แสดงผล
เบือ้ งต้น เพ่ือใช้บอกสถานะการทํางานตา่ ง ๆ การทีจ่ ะให้ไดโอดเปลง่ แสง หรือ LED มีแสงสวา่ งนน้ั จําเปน็
จะต้องมีการส่งั งานควบคุมจากไมโครคอนโทรลเลอร์ จงึ จะสามารถทาํ ให้ไดโอดเปลง่ แสง หรือ LED สอ่ งแสง
สวา่ งออกมาตามท่ีต้องการ
2.1 ไดโอดเปลง่ แสง LED
ไดโอดเปล่งแสง (Light-Emitting Diodes: LED) เป็นไดโอดชนิดหนึ่งที่สามารถเปล่งแสง ได้ถ้าได้รับ
การไบอัสที่ถูกต้อง ตัว LED จะมีหลากหลายสีให้เลือก ไม่ว่าจะเป็น สีแดง, สีเหลือง, สีเขียว, สีฟ้า และสีขาว
และก็มีบางตัวอย่าง infrared LED ที่จะให้แสงสว่างที่อยู่ในย่านที่ตาคนเรามองไม่เห็น ซึ่งจาก สัญลักษณ์ของ
LED จะไม่แสดงคุณสมบัติของสีหรอื แสงท่ีเปล่งออกมา
ภาพท่ี 2.1 แสดงสัญลักษณ์ และตาํ แหน่งขาของ LED
จากโครงสร้างของตัว LED ทั่วไปจะเห็นได้ตามรูปที่ 2.13 โดยเคสของตัว LED อาจจะ เป็นแบบใส
หรือแบบขุ่น ซึ่งโดยปกตแิ ล้วที่ตัวเคสจะไม่มีสัญลกั ษณ์หรืออะไรที่จะบอกว่าขาไหนเป็นขาไหน การ ที่เราจะรู้
ไดว้ ่าขาไหนเป็นขาใหนให้สังเกต ดงั น้ี
หลักสูตรการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอรเ์ พอื่ การเกษตร อ.ดร.สรุ พล วรภัทราทร
17
(1) ให้สังเกตดูที่ความยาวขา ซึ่งความยาวขาจะไม่เท่ากันขาที่สั้นกว่าจะเป็นขา แคโทด (Cathode)
ใชไ้ ดใ้ นกรณีท่เี ปน็ LED ใหม่ ยงั ไมเ่ คยผ่านการตัดขาเทา่ นั้น
(2) มองจากด้านล่างเคสของตัว LED ซึ่งรูปทรงจะไม่ใช้เป็นวงกลม โดยจะมีด้านหนึ่ง จะตัดเรียบไม่
โคง้ ซ่งึ ขาท่ีอยู่ฝงั่ เรยี บจะเป็นขา แคโทด (Cathode)
คุณสมบตั ขิ องไดโอดเปลง่ แสง LED
ไดโอดเปล่งแสง LED จะมีคุณสมบัติคล้ายกันมากกับ pn-unction ของไดโอดแบบทั่วไป โดยที่ตัว
LED จะมีค่าแรงดันฟอร์เวิร์ด(forward voltage: VE)ที่สูง และมีค่าแรงดันรีเวิร์สเบรคดาวน์ (reverse
breakdown voltage: VBR) ต่ํากว่าไดโอดแบบทั่วไป แรงดันฟอร์เวิร์ด (WF) จะอยู่ระหว่าง 1.4V กับ 3.6V
(ณ ที่กระแสฟอร์เวิร์ด IF = 20 mA) แรงดันรีเวิร์สเบรคดาว์น (VER) จะอยู่ระหว่าง 3V และ -10V สีของตัว
ไดโอดเปล่งแสง LED จะขึ้นอยู่กับสารที่นํามาทําตัวไดโอดเปล่งแสง LED โดยทั่วไปในการผลิตจะใช้ gallium
(Ga) คู่กับสารตัวอื่นๆ อีกหนึ่งหรือมากกว่านั้นอย่างเช่น arsenic (AS), aluminum (AI), indium (In),
phosphorus (P) bas nitrogen (N) ไดโอดเปล่งแสง LED สว่ นใหญ่จะมคี า่ กระแสฟอร์เวิรด์ ไม่เกิน 100 mA
หรืออาจจะน้อย กว่า ด้วยเหตุผลนี้เราจําเป็นที่จะต้องต้องต่อตัวทานอนุกรมกับตัวไดโอดเปล่งแสง LED เพื่อ
จาํ กัดกระแสทไ่ี หล ผ่านตวั ไดโอดเปล่งแสง LED
ภาพท่ี 2.2 แสดงขนาดของ LED โดยเปรยี บเทียบกบั เหรยี ญ
ขนาดของไดโอดเปลง่ แสง LED
ขนาดของตัวไดโอดเปล่งแสง LED ที่เห็นกันส่วนใหญ่ก็จะมีขนาด 3 มิลลิเมตร 5 มิลลิเมตร และ 10
มิลลิเมตร ซึ่งขนาดที่บอกเป็นมิลลิเมตรนี้เป็นการบอกถึงขนาดของเส้นผ่านศูนย์กลางของ ตัวเคสของ
ไดโอดเปลง่ แสง LED หมายความว่าถา้ คุณต้องการตดิ ไดโอดเปล่งแสง LED ขนาด 3 มิลลิเมตร เพอ่ื แสดงการ
ทํางานของวงจร ต้องใชส้ ว่านเจาะรูกล่องขนาด 3 มิลลิเมตร เพอื่ ใสไ่ ดโอดเปลง่ แสง LED ซง่ึ แตล่ ะ ขนาดมีการ
เลือกใชง้ านท่ีแตกตา่ งกัน ดงั น้ี
(1) ไดโอดเปล่งแสง LED ขนาด 3 มิลลิเมตร มักจะนิยมใช้เป็นสัญลักษณ์บางอย่างในวงจร เพื่อบอก
ว่าบางอย่างทาํ งานอยู่ ไม่นยิ มใช้เอาไปเพ่อื ให้ความสว่าง เพราะขนาดทเี่ ล็กและพนื้ ที่ในการสอ่ งสวา่ ง น้อย
(2) ไดโอดเปล่งแสง LED ขนาด 5 มิลลิเมตร มักจะเอาไปใช้ส่องสว่าง อย่างเช่น ไฟ กระพริบ หรือ
ป้ายไฟ ประมาณน้ี เพราะขนาดทใี่ หญแ่ ละใหค้ วามสว่างคอ่ นขา้ งมาก
หลักสตู รการอบรมพฒั นาเกษตรกรรุน่ ใหม่: เทคโนโลยีเซนเซอร์เพอ่ื การเกษตร อ.ดร.สรุ พล วรภทั ราทร
18
(3) ไดโอดเปล่งแสง LED ขนาด 10 มิลลิเมตร มักจะไม่ค่อยเห็นบ่อยนัก มีขนาดใหญ่ มักจะไม่ค่อย
เหน็ เอาไปทําหรอื ใชเ้ กย่ี วกับแสงสว่างอยา่ งขนาด 5 มลิ ลเิ มตร แต่มักใช้เปน็ สัญลกั ษณ์หรือ แสดงผลมากกวา่
2.2 การต่อวงจรไดโอดเปล่งแสง LED
การต่อไดโอดเปล่งแสง LED กับไมโครคอนโทรลเลอร์
การต่อไดโอดเปล่งแสง LED กับไมโครคอนโทรลเลอร์ จะต้องคํานึงถึงความสามารถของ
ไมโครคอนโทรลเลอรแ์ ละตัวไดโอดเปล่งแสง LED เอง ไมโครคอนโทรลเลอรส์ ว่ นใหญ่ในปัจจบุ ัน ถูกออกแบบ
ให้สามารถจ่ายกระแสให้ LED ได้โดยตรง เพื่อความประหยัดอุปกรณ์ภายนอก แต่อย่างไรก็ตาม เนื่องจาก
ความหลากหลายของ LED ในท้องตลาด เราต้องศึกษาเกี่ยวกับการต่ออุปกรณ์ภายนอกเพิ่มเต็ม เพื่อป้องกัน
ความเสียหายที่จะเกิดขึ้นกับไมโครคอนโทรลเลอร์และไดโอดเปล่งแสง LED การที่ไดโอดเปล่งแสง LED
สามารถเปล่งแสงได้ต่างกันนัน้ เพราะสร้างมาจากวัสดุท่ีมีคุณสมบัติทางอิเลก็ ทรอนกิ สท์ ีแ่ ตกตา่ งกัน ทําให้มัน
แปล่งแสงออกมาในความยาวคลื่นท่ีตา่ งกนั มีระดับพลังงานต่างกัน มันจึงมีแรงดันตกคร่อมในขณะทีท่ ํางานท่ี
แตกต่างกันด้วย ไมโครคอนโทรลเลอร์ที่เราใช้งานโดยทั่วไป มักจะมีแรงดันออกมาจากชาติตอลประมาณ 5
โวลต์ ดังนั้น การคํานวณความต้านทานท่ีจะนํามาใชเ้ พอ่ื ความปลอดภัยให้กับ LED และ ไมโครคอนโทรลเลอร์
ภาพท่ี 2.3 แสดงวงจร การต่อ LED กับไมโครคอนโทรลเลอร์
การต่อไดโอดเปล่งแสง LED กบั ไมโครคอนโทรลเลอร์ Arduino
การตอ่ วงจร กับบอรด์ ไมโครคอนโทรลเลอร์ Arduino UNO หลักการในการต่อ คือ ตอ่ ให้ แรงดนั
ขนาด 5 โวลต์ ใหไ้ หลผา่ นหลอด ไดโอดเปล่งแสง LED แลว้ ไหลลงสู่ กราวด์ หลอดไดโอดเปล่งแสง LED กจ็ ะ
สวา่ งข้นึ มา แต่เราจาํ เปน็ ต้องเพ่ิมตวั ต้านทานขนาด 220 โอหม์ เขา้ ไปในเสน้ ทางของวงจรดว้ ย เพอ่ื ตา้ นทาน
กระแสไฟฟา้ ไม่ให้ไหลผา่ นไดโอดเปล่งแสง LED มากเกินไป
หลักสตู รการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอรเ์ พ่ือการเกษตร อ.ดร.สุรพล วรภทั ราทร
19
ภาพท่ี 2.4 แสดงวงจร การต่อ LED จาํ นวน 3 ดวง กบั ไมโครคอนโทรลเลอร์ Arduino
บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO มีขาทีเ่ ปน็ แบบดิจติ อลใหใ้ ช้งานได้เบ้ืองต้นอยู่ 13 ขา คอื
ขาท่เี ปน็ digital Output ขาดจิ ิตอลของ Arduino สามารถสง่ ค่าท่ีเป็นดิจิตอลออกมาได้ โดย สัญญาณดจิ ิตอล
น้นั ถ้าอธิบายใหเ้ ข้าใจงา่ ยๆ มีอยู่ 2 รูปแบบคือ HIGH (มไี ฟ) และ LOVV (ไม่มีไฟ) หรือ 1 (มี ไฟ) และ 0 (ไม่มี
ไฟ)
ภาพที่ 2.5 แสดงวงจร การต่อ LED จํานวน 3 ดวง กบั ไมโครคอนโทรลเลอร์ Arduino
2.3 การโปรแกรมไมโครคอนโทรลเลอรใ์ ชง้ านไดโอดเปลง่ แสง LED
การเขียนโปรแกรมเพ่ือควบคุมการ ดีต-ตับ ของหลอดไดโอดเปลง่ แสง LED ถอื เป็นการเขยี น
โปรแกรมบน Arduino UNO พ้ืนฐานทง่ี ่ายท่สี ุด ทําให้ผทู้ ่ีไม่เคยเขียนโปรแกรมคอมพิวเตอรม์ ากอ่ นก็สามารถ
ทาํ ความเข้าใจได้ไม่ยาก โดยมีข้ันตอนการเขยี นโปรแกรม ท้ังนี้
1. ตอ่ วงจรไดโอดเปล่งแสง LED กบั ไมโครคอนโทรลเลอร์ Arduino ตามภาพที่ 2.5
2. เปิดโปรแกรม Arduino IDE แลว้ เขยี นโคด้ ตามภาพที่ 2.6
3. เมอ่ื เขียนเสร็จแลว้ ให้กด Verify เพื่อตรวจสอบโค้ดโปรแกรมทีเ่ ราเขียนว่าถูกต้องหรอื ไม่
หลักสูตรการอบรมพฒั นาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอร์เพ่อื การเกษตร อ.ดร.สุรพล วรภัทราทร
20
ภาพท่ี 2.6 แสดงโคด้ โปรแกรม สัง่ ให้ LED จํานวน 3 ดวง ทํางานกับไมโครคอนโทรลเลอร์ Arduino
4. จากนัน้ กด Upload เพือ่ ส่งโค้ดโปรแกรมท่ีเราเขยี นไปยังบอร์ด Arduino UNO ผา่ นทางสาย USB ถ้า
วงจรท่ีตอ่ อยู่ถกู ต้อง จะพบวา่ หลอด LED ท่ีต่อนั้นสว่าง และ กระพรบิ เรยี งกันตามลาํ ดบั (ถ้า LED ไฟ
ไม่ตดิ ใหต้ รวจสอบการต่อวงจร หรอื ลองกลบั ขัว้ LED ซง่ึ อาจจะต่อผิดอยู่)
5. เปิดโปรแกรม Arduino IDE แลว้ เขยี นโคด้ ตามภาพที่ 2.7
หลกั สูตรการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอร์เพ่อื การเกษตร อ.ดร.สุรพล วรภทั ราทร
21
ภาพที่ 2.7 แสดงโค้ดโปรแกรมสง่ั ให้ LED จํานวน 3 ดวง ทํางาน โดยใชต้ ัวแปร int
ตัวแปร (Variables) จะเปน็ ชือ่ ที่ใชใ้ นการบอกจาํ นวนหรือปริมาณ ซ่ึงสามารถที่จะทาํ การ
เปล่ียนแปลงจํานวนไดด้ ้วยโปรแกรมคอมพวิ เตอร์ การตั้งช่ือตวั แปร จะต้องต้งั ชื่อใหแ้ ตกตา่ งไปจากช่ือของ ตวั
แปรอน่ื ๆ ยกตัวอยา่ งช่ือของตัวแปร ได้แก่ x, y, peter, num of points และ Streetnum เป็นตน้ โดย ปกติ
การเขยี นโปรแกรมท่ีดี ควรจะต้ังช่ือตัวแปรให้สอดคล้องกับการทํางานหรือหนา้ ท่ีของตัวแปรน้นั ๆ เพราะ เมอ่ื
ถึงเวลาตอ้ งมาทําการปรบั ปรุงแกไ้ ขโปรแกรม จะสามารถทําได้โดยไมย่ ากนัก
ตวั แปร int เปน็ ชนิดตัวแปรท่สี ามารถแทนค่าจาํ นวนเต็มได้ท้งั บวกและลบ ดงั นน้ั เราจะ ลองใช้ ตัว
แปร int แทนขาดิจิตอลต่าง ๆ ของ บอร์ด Arduino UNO เชน่ int LED1 = 13; int คือประกาศตัว แปรเปน็
ชนดิ จาํ นวนเต็ม และใหช้ อ่ื ตวั แปรว่า LED1 และกําหนดค่าใหเ้ ป็น 13 ดว้ ย
// (เคร่ืองหมายทับสองอนั ) สง่ิ ที่พมิ พต์ ามมาในบรรทดั นัน้ จะไมถ่ กู นํามาแปลภาษาเพ่ือ อัพโหลด
ใหก้ ับบอร์ด จึงใชเ้ ขยี นอธบิ ายการทํางาน หรือ บันทึกชว่ ยจาํ ต่าง ๆ เป็นตน้
6. เมือ่ เขยี นเสร็จแล้วใหก้ ด Verify เพอื่ ตรวจสอบโคด้ โปรแกรมทเ่ี ราเขยี นวา่ ถูกต้องหรอื ไม่
หลกั สตู รการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยเี ซนเซอร์เพอ่ื การเกษตร อ.ดร.สรุ พล วรภัทราทร
22
7. จากน้นั กด Upload เพอื่ สง่ โค้ดโปรแกรมทีเ่ ราเขียนไปยังบอรด์ Arduino UNO ผ่านทางสาย USB ถ้า
วงจรท่ีตอ่ อยู่ถกู ต้อง จะพบว่าหลอด LED ท่ีต่อน้นั สว่าง และ กระพรบิ เรียงกันตามลําดบั
ข้อดีของการเขยี นโปรแกรม แบบมตี ัวแปร คือ เม่ือต้องการแก้ไขการต่อวงจร เช่น ต้องการแก้ไข วงจร
จาก ขาดจิ ติ อล จาก ขา 13 เป็น ขา 5 เมื่อเราย้ายสาย การตอ่ วงจรเรียบรอ้ ยแลว้ เรากเ็ พียงไป แก้ไข คา่ ตวั
แปร int LED1 = 13; เป็น int LED1 = 5; ซง่ึ เปน็ การแกไ้ ขเพยี งจุดเดยี ว โปรแกรมก็จะทํางานตาม ความ
ต้องการ ต่างจากการเขียนแบบแรก ซง่ึ ต้องไปแก้ทกุ จุดที่ เปน็ ขา 13 และ ยังลดความผิดพลาดในการ แก้ไข
โปรแกรมไม่ครบทุกจุดอีกด้วย
2.4 การประยกุ ตใ์ ช้งานไดโอดเปลง่ แสง LED
ไดโอดเปล่งแสง LEDไดพ้ ฒั นาจากตวั บง่ บอกสญั ญาณบนหน้าปดั อปุ กรณอ์ ิเลก็ ทรอนิกส์ มาใชเ้ ป็น ไฟ
จราจรตามสี่แยก หลังจากนัน้ หลอดไดโอดเปลง่ แสง LED ก็พฒั นาอยา่ งต่อเนื่อง มีการนําไดโอดเปลง่ แสง LED
ไปใช้ในงานอตุ สาหกรรม งานสถาปัตยกรรม งานภมู ิสถาปตั ยกรรม ไปจนถึงระดบั ผังเมอื ง
การประยกุ ตใ์ ช้งานไดโอดเปล่งแสง LED สาํ หรับงานอตุ สาหกรรม
การประยุกตใ์ ช้งานไดโอดเปล่งแสง LED สาํ หรบั งานอตุ สาหกรรม ในปัจจุบนั มีผลติ ภัณฑ์ หลาย
ประเภททใ่ี ชห้ ลอด LED ในการให้แสงสวา่ ง เช่น ไฟฉาย เคร่อื งคดิ เลข ไฟสัญญาณจราจร ป้ายสัญญาณ ต่าง ๆ
สัญญาณแสงบนอปุ กรณ์เครื่องใช้ต่าง ๆ หนา้ จอ LCD ของโทรศัพท์มือถือ ไฟหนา้ และไฟทา้ ยของรถยนต์ ไฟให้
สญั ญาณของประภาคาร โทรทศั นจ์ อ LED (LED TV) ปา้ ยโฆษณาประชาสมั พันธ์ และจอภาพยนตรข์ นาด ใหญ่
เปน็ ตน้ นอกจาก LED แล้วก็ยังมแี หล่งกาํ เนิดแสงทเี่ รียกวา่ OLED (Organic Light-Emitting Diodes) ทีเ่ ข้า
มาทดแทน LCD (Liquid Crystal Display) ซึ่งเปน็ จอแสดงผลแบบดจิ ิตอล ซง่ึ นักวจิ ัย มหาวทิ ยาลัยเคมบรดิ จ์
ประเทศองั กฤษ ค้นพบโดยบงั เอิญว่าสารกงึ่ ตัวนําบางชนิดสามารถเปลีย่ นพลงั งาน ไฟฟา้ เปน็ แสงได้เรยี กวา่
อเิ ลก็ โทรลมู นิ เิ ซนต์ ซ่ึงเปน็ สารโพลิเมอรท์ ใี่ หส้ ีต่าง ๆ เมื่อนํามาประกอบกนั และให้ พลังงานในจุดท่ีต้องการก็จะ
เปลง่ แสงประกอบกนั เปน็ ภาพและสตี ามต้องการเหมอื นจอภาพ LED
ภาพที่ 2.8 แสดงการใชง้ าน LED เป็นมาตรวดั ในรถยนต์
หลกั สตู รการอบรมพัฒนาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอร์เพ่ือการเกษตร อ.ดร.สรุ พล วรภทั ราทร
23
OLED มีความหนาเพียง 100-150 นาโนเมตร เพราะเป็นสารอินทรยี จ์ งึ สามารถประกอบ อปุ กรณ์
OLED บนวสั ดทุ ีพ่ บั งอได้ เกดิ เป็นจอภาพแบบยดื หยนุ่ (flexible display) ซ่งึ ใชพ้ ลงั งานน้อยกวา่ จอภาพบาง
แบน เบา ใหส้ คี มชดั และยืดหยุ่นได้ จากข้อดีดงั กล่าวจงึ มีการพฒั นาจอภาพท่ีไมก่ นิ พื้นที่ สามารถ บดิ งอได้โดย
ไม่ทาํ ใหจ้ อเสยี หรือภาพลม้ ในปจั จบุ ันได้มีการนาํ เทคโนโลยี OLED มาใช้กบั จอภาพคอมพิวเตอร์ โนต้ บุ๊คและ
โทรศพั ท์มอื ถอื รนุ่ 3G ทําให้มีภาพเคลอ่ื นไหวทช่ี ัดเจน
ภาพท่ี 2.9 แสดงจอภาพแบบ OLED ท่ีสามารถโคง้ งอได้
การประยุกตใ์ ช้งานไดโอดเปล่งแสง LED สาํ หรับงานสถาปัตยกรรม
การประยุกต์ใช้งานไพโอสเปล่งแสง LED สาํ หรบั งานสถาปัตยกรรม การใช้หลอด LED ภายในอาคาร
นยิ มใช้ใหก้ ารส่องสว่างเพื่อการใช้สอย สว่ นใหญ่จะเปน็ การใชห้ ลอด LED แสงสีขาวทีอ่ ุณหภมู ีสี ตา่ ง ๆ แทน
หลอดไฟที่มีอย่เู พิม่ หรอื เพือ่ การประดบั ศศ แห่ง โดยใช้หอยพ LED เพอ่ื เปลีย่ นบรรยากาศและ กระตุ้นให้เกิด
ความเร้าใจ ส่วนใหญจ่ ะใช้หลอค LED เปลย่ี นสี (colour changing LED) สแี ดง สเี ขียว และสี นำ้ เงนิ ร่วมกับ
ระบบควบคุม (Control System) ทส่ี ามารถผสมสี และทาํ ให้เกิดลวดลายต่าง ๆ ได้
ภาพท่ี 2.10 การประยุกต์ใช้งานไดโอสเปลง่ แสง LED สําหรบั งานสถาปตั ยกรรม
หลกั สตู รการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอรเ์ พ่อื การเกษตร อ.ดร.สุรพล วรภทั ราทร
24
เนอื่ งจากหลอด LED มีอายุการใชง้ านโดยเฉลีย่ มากกว่าหลอดไฟชนิดอ่นื ๆ จึงเป็น ทางเลือกในการ
ติดตง้ั ในบรเิ วณที่เขา้ ไปบํารุงรักษาไดย้ าก หรือเมื่อไม่ตอ้ งมีการเปลี่ยนหลอดไฟบ่อยๆ เช่น ฝ้าเพดานท่ีมีความ
สงู คอ่ นข้างมาก งานใต้พนื้ ที่ ดแู ลรักษายาก อีกท้ังยังสามารถทํางานได้อย่างมีประสทิ ธิภาพใน อุณหภมู ิท่ี เยน็
จดั ถึงตดิ ลบ และยังมีขนมที่ทนตอ่ การ ระเบดิ ซง่ึ สามารถใช้กับงานที่เกีย่ วข้องกับปโิ ตรเลียมด้วย สําหรบั การใช้
งานภายนอกอาคารมีทั้ง ในลักษณะของไฟประดับตาแหง่ อาหาร (facade lighting) ซง่ึ บางครงั้ ก็ ใช้เปน็ ส่ือ
โฆษณาประชาสมั พันธไ์ ปในตัว และแสงสอ่ งบรเิ วณเพ่อื ความปลอดภยั สว่ นงานภูมสิ ถาปัตยกรรม มี ทั้งการ
ประกนั ตกแตง่ สวน พน้ื ทีใ่ ชส้ อยต่าง ๆ ทางสัญจร และถนนภายในโครงการ เป็นตน้
การประยกุ ต์ใช้งานไดโอดเปลง่ แสง LED สาํ หรับงานงานในระดับผังเมือง
การประยุกต์ใช้งานไดโอสเปล่งแสง LED สาํ หรบั งานงานในระดับผังเมืองน้นั รวมไปถึงการ ส่องสว่าง
ถนน สะพาน หรือใช้ในการตกแต่งถนน สะพาน อาคารสำคัญ และอนุสาวรยี ์ ซ่งึ จะตอ้ งพิจารณาเลือกใช้
ประเภทของหลอด LED วิธีการติดตง้ั ที่เหมาะสม คํานงึ ถึงระยะการมองเห็นทีส่ ามารถสอื่ สารได้อย่าง ชดั เจน
และไมส่ ว่างเกินไปจนเกิดแสงบาดตา เป็นต้น
ภาพท่ี 2.11 แสดงการประยุกต์ใชง้ านไดโอดเปล่งแสง LED สําหรับงานงานในระดบั ผังเมือง
แบบทดสอบการควบคุมไดโอดแปล่งแสง LED
จงเลอื กคำตอบโดยกากบาท () คำตอบทถ่ี กู ทส่ี ดุ
1. LED ยอ่ มาจากอะไร
ก. Light Emoter Diodes
ข. Light Emoting Diodes
ค. Light Emitter Diodes
ง. Light Emitting Diodes
หลักสตู รการอบรมพัฒนาเกษตรกรรุ่นใหม่: เทคโนโลยเี ซนเซอร์เพอ่ื การเกษตร อ.ดร.สรุ พล วรภัทราทร
25
2. การทจ่ี ะทำให้หลอด LED ติดสวา่ งตอ้ งปน่ั ไฟลบที่ขาใด
ก. Anode
ข. Cathode
ค. Gate
ง. Source
3. การต่อเชอ่ื มต่อ LED กับบอร์ด Arduino ต้องต่อท่ขี าใด
ก. Vin
ข. A0-A5
ค. D0-D13
ง. ICSP
4. ตวั ต้านทานที่ตอ่ รว่ มกับขา LED มีประโยชนอ์ ย่างไร
ก. เพ่ือลดแรงดนั ตกครอ่ มLED
ข. เพือ่ ใหไ้ ดโอดเปลง่ แสงสวา่ งมากย่ิงข้นึ
ค. เพ่ือให้ไมโครคอนโทรลเลอร์ทํางานได้
ง. เพือ่ จาํ กดั กระแสไมใ่ ห้ไดโอดเปล่งแสงเสียหาย
5. การที่จะทาํ ให้LED ทํางานได้ต้องใชค้ าํ สงั่ ใด
ก. #include arduino.h
ข .digitalWrite (pin, HIGH)
ค. digitalread (pin, HIGH)
ง.Void loop()
6. จอ LED ชนดิ ใดเขา้ มาแทนการใชง้ านจอ LCD
ก. KLED
ข. MLED
ค. NLED
ง. OLED
หลักสูตรการอบรมพัฒนาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอรเ์ พ่อื การเกษตร อ.ดร.สรุ พล วรภทั ราทร
26
7. การปอ้ งกนั ไม่ให้ LED เสยี หายจากการทํางาน ต้องต่อกบั อปุ กรณ์ใด
ก. ไดโอด
ข. ตวั เกบ็ ประจุ
ค. ตัวต้านทาน
ง. ตวั เหนี่ยวนาํ
8. คําส่ัง digitalWrite (pin, HIGH) จะมีผลอยา่ งไร
ก. ไฟLED ตดิ สวา่ ง
ข. ไฟLED ดบั
ค. ไฟLED ตดิ กระพรบิ
ง. ไมม่ ีผลใด ๆเ กิดขึ้น
9. หากจะหน่วงเวลา 0.5 วนิ าที ตอ้ งใชค้ าํ สงั่ ใด
ก. delay (5)
ข. delay (50)
ค. delay (500)
ง. delay (5000)
10. ขอ้ ใดตอ่ ไปนีไ้ ม่ใชก่ ารนาํ เอาLED ไปประยุกตใ์ ชง้ าน
ก. ไฟจราจร
ข. ปา้ ยเตือนยามกลางคนื
ค. ป้ายไฟนักรอ้ ง
ง. ไฟแสดงสถานะหม้อหงุ ข้าวไฟฟ้า
หลักสูตรการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอร์เพื่อการเกษตร อ.ดร.สรุ พล วรภัทราทร
27
บทท่ี 3
การรับข้อมลู อินพุดด้วยสวิตซ์
วัตถปุ ระสงค์
1. เพอ่ื ใหม้ ีความรู้ความเข้าใจในการเขยี นโปรแกรมไมโครคอนโทรลเลอร์ด้วยโปรแกรม Arduino
เพอื่ ใช้งานสวติ ซ์
บทนำ
สวติ ซ์ คอื อุปกรณ์ไฟฟา้ และอเิ ล็กทรอนิกส์ท่ที ําหนา้ ทค่ี วบคุมการไหลของกระแสไฟฟ้าภายในวงจร
หรือกลา่ วง่าย ๆ คือ อุปกรณ์เปิด ปดิ กระแสไฟฟา้ ภายในวงจรไฟฟ้า และมีประโยชน์มากในการนํามาใช้งาน
รว่ มกับไมโครคอนโทรลเลอร์ ซึ่งสวติ ซจ์ ะทําหน้าทใ่ี นการสง่ั งานโดยผ่านตวั ไมโครคอนโทรลเลอร์เพอื่ ไปควบคมุ
อุปกรณผ์ า่ นทางพอรต์ อินพุต ให้อปุ กรณท์ างเอาท์พตุ หรือตัวของไมโครคอนโทรลเลอรเ์ องทาํ งานได้
3.1 สวติ ซ์
สวติ ซ์ คอื อปุ กรณ์ไฟฟ้าและอิเลก็ ทรอนิกสท์ ่ีทําหน้าที่ควบคุมการไหลของกระแสไฟฟ้า ภายในวงจร
หรอื กลา่ วงา่ ย ๆ คือ อุปกรณเ์ ปดิ ปดิ กระแสไฟฟา้ ภายในวงจรไฟฟ้า โดยมสี ญั ลักษณ์ ดังน้ี
ภาพที่ 3.1 แสดงสัญลักษณ์ของสวิตซ์
ชนิดของสวติ ซ์
สวิตซ์ท่ใี ช้ในงานอเิ ล็กทรอนิกสม์ ีหลายชนดิ เชน่ สวิตช์เลอ่ื น สวติ ชก์ ระดก สวิตซห์ มนุ สวติ ซ์กด สวิตซ์
ไมโคร สวติ ซก์ ุญแจ เปน็ ตน้ โดยมรี ายละเอยี ด ดังนี้
ภาพท่ี 3.2 แสดงสวติ ซ์เลื่อนในไฟฉาย อ.ดร.สรุ พล วรภทั ราทร
หลกั สูตรการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอรเ์ พื่อการเกษตร
28
(1) สวิตช์เลอื่ น เป็นสวติ ซช์ นิดหน่ึงทใี่ ช้เปดิ ปิด การทาํ งานของอุปกรณ์ ใชง้ านโดยการ เล่อื น การ
ควบคมุ ตดั ต่อสวิตซ์ ทําได้โดยผลกั เลื่อนสวติ ซ์ขน้ึ บนหรอื ลงล่าง การเลือ่ นสวติ ซ์ข้นึ บนเป็นการต่อ
(ON) การเล่อื นสวติ ซ์ลงล่างเปน็ การตัด (OFF) นิยมใช้เป็นอุปกรณ์เปดิ ปดิ สิง่ ของประเภทของ
เลน่ เด็ก และ เครื่องใช้ตา่ ง ๆ เชน่ นาฬกิ าปลกุ ไฟฉาย เป็นต้น
(2) สวติ ช์กระดก เป็นสวิตซ์ทใี่ ช้งานโดยการกด เม่ือต้องการเปิดสวิตซก์ ใ็ ห้กดคา้ นที่ระบุ วา่ เป็นการ
เปดิ สวติ ซล์ ง สว่ นอกี ด้านที่เหลือกจ็ ะกระดกขึ้น โดยส่วนใหญแ่ ล้วจะมตี ัวอักษรระบกุ ารทํางานบน
ตวั สวิตซ์ เชน่ เปิด ปิด On-OFF เราจะพบเหน็ การใช้สวิตซ์กระดกนี้กบั หลอดไฟ ปล้ักราง หรอื
เครือ่ งใช้ไฟฟ้า ต่าง ๆ
ภาพที่ 3.2 แสดงสวติ ซ์กระดก
(3) สวิตซก์ ด เป็นสวิทตซท์ ี่ใช้งานโดยการกดเปิด ปิด ในปุม่ เดยี วกนั คอื กดป่มุ ที่อยู่ ส่วนกลางสวติ ซ์
กดปมุ่ สวติ ซห์ น่งึ ครั้งสวิตซ์ต่อ (ON) และเม่ือกดปุ่มสวิตซ์อีกหนึง่ คร้ังสวิตซต์ ดั (OFF) การ ทํางาน
เปน็ เช่นนต้ี ลอดเวลา แต่สวติ ซ์แบบกดบางแบบอาจเป็นชนิดกดติดปล่อยดบั (Momentary) คือ
ขณะ กดปุ่มสวติ ซเ์ ปน็ การต่อ (ON) เมื่อปลอ่ ยมือออกจากปุม่ สวติ ซเ์ ปน็ การตดั (OFF) ทนั ที เชน่
ป่มุ ปดิ เปิด โทรทศั น์ รโี มท คอมพิวเตอร์
ภาพท่ี 3.3 แสดงสวิตซก์ ดติดกดดับ อ.ดร.สรุ พล วรภัทราทร
หลกั สตู รการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอร์เพอ่ื การเกษตร
29
ภาพท่ี 3.4 แสดงสวติ ซ์กดติดปลอ่ ยดบั
(4) สวิตซแ์ บบกา้ นยาว เป็นสวติ ซท์ ีเ่ วลาใช้งานต้องโยกก้านสวิตซ์ไปมาโดยมีกา้ นสวิตซ์ โยกยนื่ ยาว
ออกมาจากตวั สวิตซ์ การควบคมุ ตัดต่อสวิตซ์ ทําได้โดยโยกกา้ นสวิตซใ์ หข้ ้ึนบนหรือลงลา่ ง ในการ
โยกก้านสวิตซ์ขึ้นมักจะเป็นการต่อ (ON) และโยกก้านสวติ ซ์ลงมักจะเปน็ การตดั (OFF)
ภาพที่ 3.5 แสดงสวิตซแ์ บบก้านยาว
(5) สวิตชแ์ บบหมนุ สวิตซแ์ บบหมนุ (Rotary Switch) หรอื เรยี กว่าสวิตซแ์ บบเลอื กคา่ (Selector
Switch) เปน็ สวิตซท์ ต่ี ้องหมุนกา้ นสวิตซไ์ ปโดยรอบเป็นวงกลม สามารถเลือกตําแหนง่ การตดั ต่อ
ได้ หลายตําแหน่ง มีหนา้ สมั ผัสสวติ ซ์ให้เลอื กต่อมากหลายตําแหน่ง เช่น 2, 3, 4 หรอื 5 ตาํ แหนง่
เปน็ ตน้
ภาพท่ี 3.6 แสดงสวิตซแ์ บบหมุน อ.ดร.สุรพล วรภทั ราทร
หลกั สูตรการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอร์เพือ่ การเกษตร
30
(6) สวิตซแ์ บบไมโคร เปน็ สวิตซ์แบบไมโคร (MicroSwitch) คือสวติ ซ์แบบกดชนดิ กดติด ปลอ่ ยดับ
นัน่ เอง แต่เปน็ สวิตซ์ที่สามารถใช้แรงจํานวนน้อยๆ กดปุ่มสวิตซ์ได ก้านสวิตซ์แบบไมโครสวติ ซ์มี
ด้วยกันหลายแบบ อาจเป็นปุ่มกดเฉยๆ หรืออาจมีกา้ นแบบโยกไดม้ ากดปมุ่ สวติ ซ์อกี ทหี่ นงึ่ การ
ควบคมุ ตัดต่อ สวิตซ์ ทาํ ได้โดยกดปุม่ สวิตซห์ รอื กดก้านคนั โยกเป็นการต่อ (ON) และเมอ่ื ปลอ่ ยมือ
ออกจากปุ่มหรอื กา้ นคนั โยกเปน็ การตัด (OFF)
ภาพที่ 3.7 แสดงสวิตซ์แบบไมโคร
(7) สวติ ซแ์ บบดิพ สวิตซแ์ บบดิพ (DIP Switch) คาํ วา่ ดพิ (DIP) มาจากคําเตม็ วา่ ดูอัล อินไลน์แพกเกจ
(Dual Inline Package) เปน็ สวติ ซ์ขนาดเล็กใช้งานรว่ มกับวงจรอเิ ล็กทรอนกิ สท์ ่สี ร้างข้ึนในรูปชพี
(Chip) ท่ีมีขนาดเล็กๆ หรือใช้งานกบั ไอซี (C = Integrated Circuit ลักษณะสวิตซส์ ามารถตัดหรือ
ตอ่ วงจรได้ การควบคุมตัดต่อสวิตช์แบบดฟิ จะตอ้ งใช้ปลายมปากกาหรือปลายดนิ สอในการปรับ
เลือ่ นสวติ ช์ สวติ ช์แบบดฟิ มักถกู ตดิ ตง้ั บนแผ่นวงจรพมิ พ์ (Printed Cricuit Board) ใช้กับกระแส
ไม่เกิน 30mA ท่ีแรงดนั 30 VDC
ภาพท่ี 3.8 แสดงสวิตชแ์ บบดิพ
หลกั การทาํ งานของสวติ ซ์
หลักการทํางานของสวิตช์ โดยส่วนประกอบพืน้ ฐานของสวิตซ์ จะมีส่วนที่เรยี กว่า หนา้ สัมผัส อยู่
ภายในซ่ึงคล้ายกบั สะพานเชอื่ มใหก้ ระแสไฟฟ้าไหลในวงจรไฟฟ้าได้ สวติ ชท์ าํ หนา้ ที่เปิดปิดวงจรไฟฟ้า ทําให้
หลกั สตู รการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยเี ซนเซอร์เพื่อการเกษตร อ.ดร.สุรพล วรภทั ราทร
31
วงจรไฟฟ้าเกดิ การทาํ งานอยู่ 2 ลกั ษณะคอื วงจรเปดิ และวงจรปดิ วงจรเป็น คอื ลกั ษณะท่ี หน้าสมั ผสั ของสวิตช์
ไม่เช่อื มต่อกันทาํ ให้กระแสไฟฟ้าไมส่ ามารถไหลไปในวงจรได้ และวงจรปิด คือ การที่ หนา้ สัมผัสของสวติ ช์
เช่อื มต่อกนั ทําให้กระแสไฟฟ้าไหลในวงจรได้วงจรเปิด หน้าสมั ผัสไม่เชื่อมต่อกัน กระแสไฟฟ้าไมส่ ามารถไหลใน
วงจรใต้ ทาํ ใหอ้ ุปกรณ์ ไฟฟา้ ไม่ทํางาน แตเ่ รามักจะเรยี กกันว่าเป็นการปิดสวติ ซ์ ซึง่ หมายถงึ การปิดการทาํ งาน
ของอุปกรณไ์ ฟฟ้า น่นั เอง
ภาพที่ 3.9 แสดงสัญลักษณ์สวิตชใ์ นวงจรเปิด
วงจรปดิ หน้าสมั ผสั เชอ่ื มตอ่ กัน กระแสไฟฟ้าสามารถไหลในวงจรได้ ทําใหอ้ ุปกรณ์ไฟฟ้า ทํางาน แต่
เรามกั จะเรียกกนั ว่าเป็นการเปดิ สวติ ช์ ซงึ่ หมายถงึ การเปิดการทาํ งานของอปุ กรณ์ไฟฟ้า
ภาพที่ 3.10 แสดงสัญลกั ษณ์สวติ ชใ์ นวงจรปดิ
สวติ ช์มหี ลายรูปแบบ ซ่งึ แตล่ ะรูปแบบจะถกู ออกแบบและสรา้ งมาเพอ่ื การใช้งานใน ลักษณะท่ี
แตกต่างกันไป นอกจากนแ้ี ล้วสวิตช์บางประเภทยงั บอกคุณลักษณะการทนกระแสไฟฟ้าและ แรงดันไฟฟ้าอีก
ด้วย ดังนั้นเพอื่ ให้เกิดประสทิ ธิภาพในการใชง้ านสงู สุด จึงควรเลือกใชส้ วติ ชใ์ หเ้ หมาะสมกับ วัตถุประสงค์ของ
การใชง้ าน และควรศึกษาคุณลกั ษณะเฉพาะของสวิตช์แต่ละรปู แบบให้เข้าใจก่อนตัดสนิ ใจ เลอื กใช้
3.2 การตอ่ วงจรสวทิ ช์กบั ไมโครคอนโทรลเลอร์
บอร์ด Arduino มี Digital I/O PINS สาํ หรับใช้งาน ซ่ึงคําว่า IVO หมายถงึ Input และ Output น่นั
หมายความว่า นอกจาก Pins เหลา่ นีจ้ ะสามารถเป็น Output เพ่ือไปควบคมุ อุปกรณ์ตา่ ง ๆไดแ้ ลว้ มันยัง
สามารถใชเ้ ป็นตัว Input หรอื ตัวรบั สัญญาณทางไฟฟ้าต่าง ๆ เพื่อใชค้ วบคุมการทํางานของวงจรได้อกี ดว้ ย
ในการติดต่อรบั ค่าจากสวิทช์ เพอื่ ใหไ้ มโครคอนโทรลเลอร์กระทําการบางอยา่ งให้เรา ในการตอ่ วงจร
หากเราต้องการทจ่ี ะรบั ค่าสภาวะ ON-OFF จากการเปิด ปดิ สวทิ ซ์แลว้ เราสามารถที่จะต่อสวิทช์เข้ากับ
ไมโครคอนโทรลเลอร์ โดยมวี งจรการเชอ่ื มต่อ 2 แบบ ใหเ้ ราเลอื ก ซงึ่ ทง้ั สองวงจรน้ี ในแงข่ องอุปกรณแ์ ลว้ ใช้
จํานวนอปุ กรณ์เทา่ กนั หรอื เหมือนกัน แต่ลักษณะการต่อวงจรไมเ่ หมือนกนั และให้ค่าสัญญาณทางดจิ ิตอล
ตา่ งกนั
หลักสูตรการอบรมพัฒนาเกษตรกรร่นุ ใหม่: เทคโนโลยีเซนเซอร์เพอื่ การเกษตร อ.ดร.สุรพล วรภทั ราทร
32
การตอ่ แบบ Active High
ในการต่อสวติ ช์แบบ Active High ในสภาวะทหี่ นา้ สัมผัส ของสวิทช์ไม่ได้เช่ือมต่อกัน หรือ สวทิ ซไ์ มไ่ ด้
ถกู กดไว้ ทางฝัง่ ไมโครคอนโทรลเลอรจ์ ะไดร้ บั สภาวะ เป็น LOW หรือเป็น Logic 0 แตเ่ มอื่ สวิทชถ์ กู กระตนุ้
หรือหนา้ สมั ผสั ของสวทิ ช์ เชอ่ื มต่อกนั จะทําให้เกิดกระแสไฟฟ้าไหล และเกิดแรงดันทีข่ าอนิ พตุ ของ
ไมโครคอนโทรลเลอร์ ทําให้ท่ีขาของไมโครคอนโทรลเลอรไ์ ด้รับสภาวะเป็น High หรอื เป็น Logic 1
ภาพที่ 3.11 แสดงการต่อวงจรสวิตช์แบบ Active High
การตอ่ แบบ Active Low
ในการต่อวงจรต่อสวติ ช์แบบ Active Low ตาํ แหน่งของสวิทชจ์ ะตรงกันขา้ มกับการต่อ แบบแรก ทขี่ า
อินพุตของไมโครคอนโทรลเลอรจ์ ะไดร้ ับสภาวะตรงกนั ขา้ มกบั แบบแรก คือ เมอื่ สวิทช์ไม่ได้รบั การกระตนุ้ หรอื
หนา้ สัมผสั ยังไม่ได้สมั ผสั กนั นั้น ทข่ี าอินพุตของไมโครคอนโทรลเลอร์จะไดร้ ับสภาวะ High หรือ Logic 1 แต่เม่อื
สวิทชไ์ ดร้ ับการกระตุ้น หรือหนา้ สัมผัสเชื่อมต่อกันแล้ว จะทํากระแสจากที่เคยไหลเข้า ไมโครคอนโทรลเลอร์
ไหลลงไปทต่ี าํ แหน่งกราวด์แทน ทาํ ใหท้ ขี่ าอินพุตของไมโครคอนโทรลเลอร์ได้รับสภาวะ Low หรือ Logic 0
ภาพที่ 3.12 แสดงการต่อวงจรสวิตชแ์ บบ Active Low
หลักสูตรการอบรมพฒั นาเกษตรกรรุน่ ใหม่: เทคโนโลยีเซนเซอร์เพื่อการเกษตร อ.ดร.สรุ พล วรภทั ราทร
33
การตอ่ วงจรสวิตซ์กบั ไมโครคอนโทรลเลอร์ Arduino
ในการต่อวงจรสวติ ช์เพ่ือใช้งานกบั ไมโครคอนโทรลเลอร์ Arduino โดยการนําปมุ่ Button มาควบคุม
ไฟ LED คือ วงจรทีม่ ีทงั้ Input และ Output แบบ Digital โดยเราจะทาํ วงจรทใ่ี ช้ Input Pin ของ Arduino
มารบั ค่าการกดปุ่ม แลว้ นําค่าน้ันไปควบคุม LED อีกทโี ดยใช้ Output Pin โดยเราจะใชว้ งจรแบบ Pu!-Down
เพื่อกาํ หนดให้ LED ตดิ เม่ือกดปมุ่ เทา่ นั้น มีคําทจ่ี าํ เป็นต้องใช้ 2 คาํ คอื
Digital หมายถึง สญั ญาณทางไฟฟ้าประเภทหนง่ึ ท่ีมีค่าการทํางาน 2 คา่ คือ 1 และ 0 ซ่งึ 1 หมายถึง
on (HIGH) และ 0 หมายถึง off (LOW) สัญญาณดิจิตอลนั้นสามารถนําไปใชป้ ระโยชน์ไดม้ ากมาย และมีความ
แม่นยาํ
Digital Input หมายถงึ Digital Pins ของ Arduino เปน็ ตัวรับค่าสัญญาณ คือ การที่เรา ให้ Pins นนั้
ๆ เป็นตัว Input โดยค่าท่ี Arduino อา่ นได้จะมอี ยู่ 2 ค่า คือ HIGH และ LOW ขึน้ อยู่กับ Pin นนั้ มสี ญั ญาณ
หรอื กระแสไฟฟา้ เข้ามาหรือไม่
การตอ่ วงจรน้ี เปน็ วงจรแบบ Pull-Down โดยต่อปุ่ม Button เข้ากบั ไฟ 5 V และมีตัว ต้านทานคา่
ตั้งแต่ 5K - 20KQ ในทีน่ ี้ใช้ 10K2 ทาํ หน้าทเี่ ป็น Pull-Down Resistor และใช้ Digital PIN 2 เปน็ ตวั Input
รบั ค่าการกดปุม่ ส่วนตัว Output คือ Digital PIN 13 ต่อเข้ากับ LED โดยมีตัวต้านทาน 4700 ชว่ ยจํากัด
กระแส ป้องกนั กระแสเกิน
ภาพท่ี 3.13 แสดงการต่อวงจรสวิตช์กับไมโครคอนโทรลเลอร์
3.3 โปรแกรมไมโครคอนโทรลเลอร์ใชง้ านสวิตช์
ในการเขียนโปรแกรมไมโครคอนโทรลเลอร์ใชง้ านสวติ ชโ์ ดยขาพอรต์ ของ Arduino Uno จะถูก
กําหนดเป็นอินพุตตั้งแต่เร่มิ ต้น จงึ ไม่จาํ เป็นต้องใช้ฟงั ก์ชน่ั pinMode () ในการกําหนดใหเ้ ป็นอนิ พุต ขาพอรต์ ท่ี
ถูกกําหนดเป็นอินพุตจะมีสถานะเปน็ อิมพีแดนซ์สูง ทาํ ใหม้ คี วามต้องการกระแสไฟฟา้ จากอุปกรณท์ ่ีต้องการ
อา่ นค่าอินพุตนอ้ ยมาก ทําใหไ้ ม่สามารถรับหรือจา่ ยกระแสใหก้ บั วงจรภายนอกได้ ขาที่เปน็ อนิ พุตนไี้ ปใชง้ าน
บางประเภท เช่นสรา้ งตวั ตรวจจับการสมั ผัสท่ีอาศยั การวัดค่าความจุไฟฟ้า สาํ หรับขาอนิ พตุ เม่ือไม่มีอินพุต
หลกั สตู รการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอรเ์ พอื่ การเกษตร อ.ดร.สรุ พล วรภัทราทร
34
ปอ้ นจะต้องกําหนดค่าแรงดนั ใหแ้ น่นอน ทําได้โดยตอ่ ตัวต้านทานพลอู ัป (Pu-up Resistor) โดยต่อขาของตัว
ตา้ นทานขาหน่ึงไปยังไฟเล้ียง หรือตอ่ พลดู าวน์ (Pull-down) ซึ่งต่อขาหน่งึ ของตวั ต้านทานจากขาพอร์ตลง
กราวด์ คา่ ตัวต้านทานท่ใี ช้ทวั่ ไปคือ 10kΩ
Arduino Uno มขี าพอร์ตดิจิตอลทีก่ ําหนดใหเ้ ปน็ อนิ พตุ หรือเอาต์พุตจํานวน 13 ขา ถ้าตอ้ งการ
กําหนดเป็นอนิ พุตต้องกําหนดด้วยฟงั กช์ ั่น pinMode และอา่ นคา่ อินพตุ ไดจ้ ากฟงั กช์ ัน่ digitalRead ซงึ่ มี
รูปแบบดงั น้ี
digitalRead (pin);
เม่อื pin คือ หมายเลขขาทต่ี ้องการอา่ นค่าสถานะ เมื่อฟังกช์ ่นั ทํางานคา่ เป็น LOW (คา่ เปน็ “0”) หรอื
HIGH (คา่ เป็น “1”) ต้งั โปรแกรมตัวอยา่ ง
ภาพที่ 3.14 แสดงโปรแกรมตวั อย่างการใช้งานสวิตชก์ บั ไมโครคอนโทรลเลอร์ Arduino
3.4 การประยกุ ตใ์ ช้งานสวิตชก์ ับไมโครคอนโทรลเลอร์
การนําสวติ ชไ์ ปใชง้ านกบั ไมโครคอนโทรลเลอร์จะสามารถนําไปใชใ้ นการควบคุมเป็น 2 ลกั ษณะ คือ
การนําไปใชง้ านในการส่งั เพ่ือปดิ หรอื เปิด อปุ กรณ์ทเ่ี ราต้องการ และนําไปใช้ในการควบคุมอุปกรณ์ เช่นการ
หลักสูตรการอบรมพฒั นาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอร์เพ่ือการเกษตร อ.ดร.สุรพล วรภทั ราทร
35
ควบคมุ การหมนุ ของมอเตอร์ การควบคุมทิศทางของไฟกระพรบิ เป็นต้น โดยมีเทคนิคการนาํ สวิตช์ไปใช้งาน
ดงั น้ี
การประยกุ ต์ใช้งานสวติ ช์กับไมโครคอนโทรลเลอร์ Arduino โดยไม่ใช้ตัวตา้ นทาน
ในการใช้งานสวิตชก์ ับไมโครคอนโทรลเลอร์ Arduino โดยไม่ใช้ตวั ต้านทาน ซงึ่ โดยปกติ แลว้ Arduino
มโี หมดสําหรับรับค่า Input 2 โหมด คือ INPUT และ INPUT_PULLUP ในโคด้ ใช้คําส่ัง INPUT PULLUP มคี าํ
วา่ PULLUP แสดงวา่ เปน็ แบบ pull up แล้วตัวต้านทานท่ีต่อภายนอกจะหายไป โดย ใชต้ วั ต้านทานทม่ี ีอยู่ใน
วงจร Arduino มาใชแ้ ทน เราเรยี กวา่ internal put up โหมดนช้ี ่วยให้เราสะดวกไม่ ต้องต่อตวั ต้านทานเพิ่ม
ประหยัดอุปกรณ์ไปได้ แตถ่ ้าต่อกับเซนเซอร์อืน่ ๆ ท่มี ีการตอ่ PULL UP หรอื PULL DOWN ในวงจรของ
เซนเซอรม์ าแล้ว ก็ใหเ้ ซตเป็นโหมด INPUT ธรรมดาตามนี้ pinMode (PIN,INPUT);
ภาพท่ี 3.15 แสดงวงจรสวิตช์กบั ไมโครคอนโทรลเลอร์ Arduino แบบไมต่ ้องตอ่ ตวั ต้านทานทีข่ า INPUT
หลักสตู รการอบรมพัฒนาเกษตรกรรุน่ ใหม่: เทคโนโลยีเซนเซอร์เพอ่ื การเกษตร อ.ดร.สุรพล วรภัทราทร
36
ภาพที่ 3.16 แสดงโปรแกรมการใชง้ านสวติ ช์กับไมโครคอนโทรลเลอร์ Arduino โดยใช้คาํ ส่งั PULLUP
การแก้ปญั หาการอา่ นค่าจากการใช้งานสวิตซ์ ด้วยวธิ กี ารแก้ debounce
ปัญหาการอ่านค่าจากสวิตช์ ทส่ี วิตช์ ตอนกดปมุ่ หน้าสัมผสั ของสวติ ชจ์ ะไมแ่ นบสนิททนั ที ทําให้สถานะ
เป็น 0 หรือ 1 ภายในเสยี้ ววนิ าที ซึ่งโปรแกรมเราสามารถอ่านคา่ ได้ทัน จะเห็นว่าจากกราฟ จะมี สถานะ 0 และ
1 ซง่ึ เกดิ จากหน้าสัมผัสสวิตชไ์ ม่แนบสนิททันที ก่อนจะเป็นสถานะ 1 ตามท่ีเราต้องการ ส่งผล คือ เกดิ การ
สง่ั งานท่ผี ดิ พลาด เช่น ต้องการกดสวิตช์ 1 ครงั้ แต่กลับกลายเป็น 2 หรือ 3 คร้งั ทําใหไ้ มโครคอนโทรลเลอร์รบั
คา่ และนาํ ไปสง่ั งานผิดพลาด เราเรยี กปัญหานีว้ า่ debounce ซึ่งสามารถแก้ไดง้ ่าย ๆ โดยใชค้ าํ ส่งั delay โดย
หนว่ งเวลาที่ 0.1 วนิ าที ตามตัวอยา่ งโค้ดดังต่อไปน้ี
ภาพที่ 3.17 แสดงแสดงกราฟการกดสวติ ช์ใน 1 ครง้ั
หลกั สูตรการอบรมพัฒนาเกษตรกรร่นุ ใหม่: เทคโนโลยเี ซนเซอร์เพอ่ื การเกษตร อ.ดร.สรุ พล วรภัทราทร
37
ภาพท่ี 3.18 แสดงโปรแกรมการแก้ปัญหาการอา่ นค่าจากการใช้งานสวติ ซ์ด้วยวิธีแก้ debounce
ตัวแปร debounceDelay เป็นวธิ แี ก้ ท่ีใช้งานได้จริง แต่มผี ลเสีย คือ โปรแกรมจะ ค่อนขา้ งซบั ซอ้ น
เม่ือนาํ ไปใช้งานจริง อาจจะทาํ ใหห้ ลงตาํ แหนง่ ของโปรแกรมได้ แต่หากไมอ่ ยากเขียนโค้ด สามารถแกท้ าง
hardware โดยใส่ตวั เก็บประจคุ า่ น้อยๆ เช่นค่า 0.1uf คร่อมระหวา่ งขาปมุ่ กดก็ได้ เมอื่ กด สวติ ชไ์ ฟจะไหลเขา้
ตวั เก็บประจกุ ่อน เมื่อประจุเต็มถงึ จะไหลไปท่ีสวิตช์ ซึ่งตัวเกบ็ ประจุสามารถจ่ายไฟใหใ้ น ระหวา่ งช่วงเสย้ี ว
วนิ าทีทเี่ กิดปัญหาได้เพียงพอ จึงแก้ปญั หาน้ีได้ แต่กจ็ ะเป็นการเพิ่มอุปกรณใ์ หว้ งจรเราด้วย จงึ มักไมน่ ยิ ม
หลักสตู รการอบรมพัฒนาเกษตรกรร่นุ ใหม่: เทคโนโลยีเซนเซอรเ์ พือ่ การเกษตร อ.ดร.สุรพล วรภทั ราทร
38
แบบทดสอบการรบั ข้อมูลอินพดุ ด้วยสวิตซ์
1.) จงยกตวั อยา่ งประเภทของสวติ ช์
2.) จงอธบิ ายหลักการทำงานของสวิตซ์
3.) จงวาดแบบการตอ่ สวติ ซแ์ บบ Active High
4.) จงอธบิ ายการตอ่ วงจรสวติ ซก์ บั ไปโครคอนโทรเลอร์
5.) จงอธิบายการแก้ปัญหาการอ่านคา่ จากการใช้สวิตซ์แบบ debounce
หลักสูตรการอบรมพฒั นาเกษตรกรรุน่ ใหม่: เทคโนโลยเี ซนเซอรเ์ พื่อการเกษตร อ.ดร.สรุ พล วรภัทราทร
39
บทที่ 4
การอา่ นค่าเซน็ เซอรแ์ บบอนาล็อก
วัตถุประสงค์
1. เพ่อื ให้มีความรู้ความเขา้ ใจในการเขียนโปรแกรมไมโครคอนโทรลเลอรด์ ้วยโปรแกรม Arduino
เพื่อ ใชง้ านอุปกรณอ์ ่านค่าแบบอนาลอ็ ก
บทนำ
อุปกรณ์อ่านค่าแบบอนาลอ็ ก เปน็ อปุ กรณ์อินพุตท่ีใหค้ ่าสญั ญาณเอาตพ์ ุต ออกมาเปน็ สญั ญาณ
อนาล็อก หรือเปน็ สัญญาณทางไฟฟา้ แบบต่อเน่ือง มขี นาดของสญั ญาณไม่คงที่ มกี ารเปลยี่ นแปลงขนาดของ
สญั ญาณแบบคอ่ ยเปน็ ค่อยไป และสามารถจา่ ยแรงดันไดท้ ง้ั แต่ 0 โวลต์ ถงึ 5 โวลต์ หรือมากกว่านน้ั ซง่ึ อปุ กรณ์
ลักษณะนีม้ คี วามจําเปน็ ในการใชง้ านกับไมโครคอนโทรลเลอรเ์ ป็นอยา่ งมาก เนื่องจากยังมีความจําเปน็ ที่
จะต้องใช้งานอปุ กรณ์ลักษณะนี้ เพ่อื ใช้ในการควบคุม ตรวจวัด หรือทดสอบระบบต่าง ๆ
4.1 อปุ กรณอ์ ่านค่าแบบอนาล็อก
สัญญาณอนาล็อก (Analog Signal) หมายถึง สัญญาณข้อมลู แบบต่อเน่ือง (Continuouse Data) มี
ขนาดของสัญญาณไม่คงที่ มีการเปล่ยี นแปลงขนาดของสัญญาณแบบคอ่ ยเปน็ ค่อยไป มีลักษณะเปน็ เสน้ โคง้
ต่อเน่อื งกันไป โดยการส่งสญั ญาณแบบอนาล็อกจะถกู รบกวนใหม้ ีการแปลความหมาย ผดิ พลาดได้งา่ ย เชน่
สญั ญาณเสียงในสายโทรศัพท์ เป็นต้น โดยสัญญาณแบบ Analog จะเป็นสัญญาณ แบบตอ่ เน่ืองที่ทุกๆ คา่
เปลีย่ นแปลงไปของระดบั สญั ญาณจะมีความหมาย การส่งสญั ญาณแบบ Analog จะถูก รบกวนใหม้ กี ารแปล
ความหมายผิดพลาดไดง้ ่ายกว่า เนื่องจาก ค่าทุกคา่ ถูกนํามาใชง้ านนนั้ เอง ซงึ่ สญั ญาณแบบ อนาลอ็ กนจี้ ะเปน็
สัญญาณทสี่ ือ่ กลาง ในการส่ือสาร ส่วนมากใช้อยู่ เชน่ สญั ญาณเสียงในสายโทรศัพท์ สญั ญาณ ทางไฟฟา้
กระแสสลับ แรงดนั ไฟฟ้า เป็นตน้
อปุ กรณ์อ่านค่าแบบอนาลอ็ ก จึงหมายถึง อปุ กรณ์อินพุตทีใ่ ห้ค่าสญั ญาณเอาต์พุต ออกมา เป็น
สัญญาณอนาล็อกคือ เปน็ สญั ญาณไฟฟ้าแบบต่อเน่อื ง มีขนาดของสัญญาณไม่คงที่ มีการเปลยี่ นแปลง ขนาด
ของสัญญาณแบบคอ่ ยเป็นค่อยไป และสามารถจา่ ยแรงดนั ได้ท้งั แต่ 0 โวลต์ ถงึ 5 โวลต์ หรือมากกว่านนั้ ซงึ่
อุปกรณ์เหลา่ นเ้ี มอ่ื นํามาต่อกับไมโครคอนโทรลเลอรจ์ ะต้องมกี ารอินเตอร์เฟส หรือมีการแปลงสัญญาณจาก
สัญญาณอนาล็อก ให้เป็นสัญญาณดจิ ิตอลก่อน จึงจะนํามาใช้งานกับไมโครคอนโทรลเลอร์ได้
ภาพที่ 4.1 แสดงสัญญาณอนาล็อก (Analog Signal)
หลกั สูตรการอบรมพฒั นาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอรเ์ พ่อื การเกษตร อ.ดร.สรุ พล วรภทั ราทร
40
ชนดิ ของอปุ กรณ์อุปกรณ์อา่ นคา่ แบบอนาลอ็ กท่ใี ช้กบั ไมโครคอนโทรลเลอร์ มหี ลายตวั ที่ นิยมนาํ มาใช้
งาน ซ่งึ ประเดน็ หลักที่สําคัญที่จาํ แนกเก่ยี วกับอนิ พุตแบบอนาลอ็ ก หรือดจิ ิตอล คอื อุปกรณต์ วั นั้น เมอื่ นาํ มาต่อ
ใชง้ านแล้วใหส้ ญั ญาณเอาต์พุตแบบใด หากมีแรงดนั ไฟฟ้าตั้งแต่ 0 ถึง 5 โวลต์ หรอื มากกว่านนั้ จะ เป็นอปุ กรณ์
แบบอนาล็อก ซงึ่ ไมโครคอนโทรลเลอรบ์ างชนดิ ไม่สามารถรบั คา่ อนาลอ็ กได้จําเป็นจะต้องมีวงจร แปลงจาก
อนาล็อกเปน็ ดจิ ติ อลก่อน และถ้าอปุ กรณท์ ี่ใหแ้ รงดนั ออกมาแค่ 2 คา่ คือ 0 โวลต์ และ 5 โวลต์ จะ เปน็ อุปกรณ์
แบบดจิ ิตอล โดยอปุ กรณท์ เ่ี ป็นอนาลอ็ กที่นยิ มนํามาใช้งาน มีดังน้ี
(1) ตัวต้านทานชนดิ ปรบั ค่าไดแ้ บบแกนหมนุ (Variable Resister) : VR ตัวตา้ นทาน ชนิดนีเ้ ป็นตวั
ต้านทานแบบหมนุ แกน (Potentiometer) เม่อื หมนุ แกนจะทําให้ค่าความตา้ นทานเกดิ การ
เปลย่ี นแปลง จาก 0 โอหม์ ไปจนถึงค่าทสี่ ูงสดุ ท่รี ะบุไว้บนตวั ตา้ นทานปรบั ค่าได้ ตวั ตา้ นทานปรบั
ค่าได้แบบนี้ หรือทีเ่ ราเรยี กกันทั่วไปวา่ โวลลมุ่ (Volume) ทเ่ี รียกเชน่ นี้ก็เพราะวา่ ส่วนใหญ่พบเจอ
ในเคร่ืองขยายเสียงแลว้ เรยี กกนั จนติดปาก ความจริงมใี หเ้ ห็นกันมากมาย ไมเ่ ฉพาะในเคร่ือง
ขยายเสยี ง เครื่องมือวัดกใ็ ช้กัน โทรทศั น์ รนุ่ เก่าๆ เครื่องคมุ แสง สี เครอ่ื งจ่ายไฟสําหรบั
ห้องทดลอง เป็นตน้ จะมจี ําหนา่ ยอยู่ 3 ชนดิ ใหญ่ๆ คอื แบบ A หรอื แบบลอ็ ก (Log) คา่ จะ
เปล่ียนแปลงอย่างรวดเร็วในตอนปลาย แบบ B หรือแบบลเิ นียร์ (Linear) ค่าจะ เปลย่ี นแปลงแบบ
สม่ำเสมอแต่ตน้ จนปลาย และแบบ C ชนดิ นี้จะตรงข้ามกับแบบ A คือค่าจะเปล่ียนแปลง อยา่ ง
รวดเรว็ ในตอนตน้
ภาพที่ 4.2 แสดงสัญลักษณ์ตัวตา้ นทานชนดิ ปรบั คา่ ได้
ภาพท่ี 4.3 แสดงตัวต้านทานชนิดปรับคา่ ได้แบบแกนหมุน
(2) ตัวต้านทานชนดิ ปรบั ค่าไดแ้ บบทริม (Trimmer) ตวั ตา้ นทานแบบทริมนี้ มีลกั ษณ์ การทาํ งาน
เหมอื นกนั กบั ตวั ต้านทานชนดิ ปรบั คา่ ได้แบบแกนหมนุ แต่การปรบั คา่ จะต้องใชไ้ ขควงในการปรบั
เน่อื งจากการใชง้ านแบบทริมนสี้ ่วนใหญจ่ ะใชก้ บั งานที่ไม่ต้องการให้เกิดการเปล่ียนคา่ โดยไมต่ ้ังใจ
เชน่ ในงาน อตุ สาหกรรม ทางการทหาร และงานควบคุม เป็นต้น
หลกั สตู รการอบรมพัฒนาเกษตรกรรนุ่ ใหม่: เทคโนโลยเี ซนเซอร์เพอ่ื การเกษตร อ.ดร.สุรพล วรภทั ราทร
41
ภาพที่ 7.4 แสดงตัวต้านทานชนิดปรับคา่ ไดแ้ บบทรมิ
(3) ตวั ตา้ นทานชนดิ เปลย่ี นค่าตามแสง (Light Dependent Resistor) ; LDR เป็น ตัวตา้ นทานทคี่ า่
ความต้านทาน จะเปล่ยี นไปตามความเขม้ ของแสงที่ตกกระทบ ลงบนตัวต้านทาน บางคร้งั
เรยี กวา่ โฟโตวีซสี เตอร์ (Photo Resistor) หรือโฟโตคอนดคั เตอร์ (Photo Conductor) เป็นตวั
ต้านทานท่ที ํา มาจากสารก่งึ ตวั นาํ (Semiconductor) ประเภทแคดเมียมซัลไฟด์ (Cds :
Cadmium Sulfide) หรือแคดเมยี่ ม ซิลินายส์ (CdSe : Cadmium Selenide) ซึ่งท้งั สองตัวนกี้ ็
เปน็ สารประเภทก่ึงตวั นํา เอามาฉาบลงบนแผ่นเซรา มิกท่ใี ช้เปน็ ฐานรองแล้วต่อขาจากสารทฉ่ี าบ
ไว้ออกมาใช้งานลกั ษณะโครงสร้างของลักษณะของตวั ตา้ นทานไว ตัวตา้ นทานชนิดเปล่ียนคา่ ตาม
แสงจะถูกนาํ มาประยุกตใ์ ชเ้ ป็นสว่ นประกอบของวงจร ของเครอ่ื งมอื ชนดิ ตา่ ง ๆ เชน่ เครอื่ งปิด
และเปิดไฟถนนอัตโนมตั ิ ทําเปน็ เครอ่ื งมอื วัดแสงในงานถ่ายภาพ เครื่องนับจํานวน เปน็ ต้น
ภาพท่ี 4.5 แสดงโครงสร้าง และสัญลษั ณ์ตวั ตา้ นทานชนดิ เปล่ียนค่าตามแสง
(4) ตัวตรวจจบั ที่ให้สญั ญาณเปน็ อนาลอ็ ก (Analog Sensor) เปน็ ตัวตรวจจบั หรือ เปน็ ชุดโมดูลทีใ่ ห้
สัญญาเอาต์พตุ ออกมาเป็นแบบอนาลอ็ ก เช่น เซนเซอร์ตรวจจับโลหะ ชดุ โมดลู อา่ นคา่ แสง
สะทอ้ นจากอินฟราเรด สวติ ช์แบบพอกฟนิ ิตี้ เปน็ ต้น
ภาพท่ี 4.6 แสดงสวิตชแ์ บบพอกฟินิต้ี
หลกั สตู รการอบรมพัฒนาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอร์เพือ่ การเกษตร อ.ดร.สุรพล วรภัทราทร
42
ภาพที่ 7.7 แสดงโมดลุ อุปกรณ์ตรวจจบั เส้นขาว-ดาํ
4.2 การตอ่ วงจรอุปกรณอ์ า่ นค่าแบบอนาลอ็ กกับไมโครคอนโทรลเลอร์
การต่อวงจรอปุ กรณ์อา่ นคา่ แบบอนาลอ็ กกบั ไมโครคอนโทรลเลอร์ Arduino ซึ่งสญั ญาณอนาล็อก คือ
สญั ญาณท่ีมีความต่อเนอ่ื งและขนาดของสญั ญาณมีการเปลี่ยนแปลงไปตามเวลา วธิ กี ารอ่านค่าอนาลอ็ ก ของ
Arduino Uno มขี าทีส่ ามารถอา่ นค่า Analog ได้ทงั้ หมด 6 ขา คือ ขา AO - A5 โดยจะใช้อปุ กรณ์อย่าง หนึ่งที่
ตัวมนั สามารถส่งค่าอนาล็อกออกมา คอื Variable Resistor (VR) VR คือ ตัวต้านทานชนดิ หน่งึ ซง่ึ มี
ความสามารถปรบั ค่าความตา้ นทานได้ สามารถนํามาต่อวงจรเพ่อื อา่ นค่าอนาล็อกได้
การต่อวงจร VR น้ันจะเห็นวา่ ขาซา้ ยสดุ ของ VR เอาไปต่อกับ Ground และขาขวาสดุ ของ VR ตอ่ กบั
ไฟ +5V ทัง้ สองขาที่กลา่ วมาน้ันสามรถทจี่ ะสลับการเช่ือมต่อได้ สามารถจะเอา Ground ไปต่อทางขาขวา สุด
กไ็ ด้ แลว้ ก็ต่อไฟ +5V ให้กบั ขาทางซ้ายสดุ ก็ทาํ ได้เชน่ กัน การใชง้ านได้เหมือนกัน แต่ขาท่ี VR สง่ สญั ญาณ
อนาลอ็ ก ออกมา ตอ้ งเป็นขากลางเท่านั้น
ภาพท่ี 7.8 แสดงการต่อวงจรตัวต้านทานปรับคา่ ไดเ้ พื่ออ่านคา่ แบบอนาลอ็ กกับไมโครคอนโทรลเลอร์
หลักสูตรการอบรมพัฒนาเกษตรกรรุ่นใหม่: เทคโนโลยีเซนเซอรเ์ พื่อการเกษตร อ.ดร.สุรพล วรภัทราทร
43
4.3 โปรแกรมไมโครคอนโทรลเลอร์ใชง้ านอุปกรณ์อา่ นค่าแบบอนาล็อก
การส่อื สารผา่ นพอร์ตอนุกรม
การสือ่ สารผ่านพอรต์ อนกุ รม ใชส้ ําหรับสื่อสารข้อมูลระหวา่ งฮารด์ แวร์ Arduino กบั คอมพวิ เตอร์
หรอื อุปกรณ์อื่นๆ โดยจะแบง่ พอร์ตสาํ หรับเช่อื มต่อออกเป็น 2 ส่วนคือ สว่ นแรกตดิ ต่อพอรต์ อนุกรมเสมือน
(Virtual Com Port) จากการทํางานของสว่ นเชื่อมต่อพอร์ต USB ฟังกช์ นั ท่ีใช้คือ Serial อกี สว่ นหนง่ึ คือ ขา
พอร์ตส่ือสารข้อมูลอนุกรมโดยใชข้ า 0 (RXD) และ 1 (TxD) ฟังก์ชันของ Arduino ที่ใชค้ ือ Serial 1 ดังน้ันเมอ่ื
เลอื กใช้งานเป็นขาพอร์ตส่ือสารข้อมูลอนุกรมแล้วจะไมส่ ามารถใชข้ าพอรต์ 0 และ 1 เปน็ พอรต์ ดจิ ติ อลได้
การใช้งาน UART เพ่ือติดต่อกับคอมพิวเตอร์ บอรด์ Arduino ตดิ ตอ่ กบั คอมพิวเตอรเ์ พื่อ สือ่ สารข้อมูล
อนกุ รมผ่านพอร์ต USB โดยใชพ้ อร์ตอนุกรมเสมือน หรือ Virtual COM Port ท่เี กดิ ขนึ้ จากการ ทํางานของส่วน
เชอ่ื มต่อพอร์ต USB ของไมโครคอนโทรลเลอร์ ATmega32u4 และไดรเวอร์ โดยปกตแิ ลว้ จะ เช่ือมต่อพอรต์
อนกุ รมเสมือนผา่ นทางพอร์ต USB เพื่อตดิ ต่อกับคอมพวิ เตอรใ์ นการอปั โหลดโปรแกรมเปน็ หลัก แต่สามารถ
นํามาใช้รบั สง่ ข้อมูลจากโปรแกรมของผใู้ ช้งานกับคอมพิวเตอรไ์ ด้
ฟังกช์ ั่นทีเ่ ก่ยี วขอ้ งกบั การรบั สง่ ข้อมูลผ่านพอร์ตอนุกรม ArduinoIDE มีฟังกช์ ั่นเกยี่ วกบั การรบั สง่
ขอ้ มูลผ่านพอร์ตอนกุ รมมาพร้อมใช้งาน ดงั นี้
(1) Serial, begin(Speed) ใชก้ าํ หนดอตั ราเรว็ ของการถ่ายทอดข้อมลู หรืออตั ราบอด หรอื บอดเรต
(2) Serial. available() ใชต้ รวจสอบวา่ มขี อ้ มลู ดา้ นรบั หรอื ไม่โดยคนื ค่าเป็น int ตาม จาํ นวนไบต์
ข้อมลู ที่รบั เข้า
(3) Serial. read(data) ใช้อา่ นคา่ ข้อมลู จากพอร์ตอนุกรม
(4) Serial. write(data) ใชเ้ ขียนขอ้ มลู ไบตไ์ ปยังพอรต์ อนกุ รม
(5) Serial, flush() ใช้ลา้ งบัฟเฟอร์ท้งั ดา้ นรับและส่ง
(6) Serial.print(data) ใชส้ ง่ ขอ้ มลู ออกพอรต์ อนุกรม
(7) Serial. println(data) ใชส้ ง่ ขอ้ มูลออกพอร์ตอนกุ รมพร้อมกับขนึ้ บรรทัดใหม่
ในการเขียนโปรแกรมส่งข้อมูลออกพอรต์ อนุกรมเริม่ ต้นด้วยการใชฟ้ งั กช์ ัน Serial begin() เพ่ือสั่งเปดิ
พอร์ตอนุกรมและกาํ หนดอตั ราถ่ายทอดข้อมูลท่ีใช้ในการสื่อสารขอ้ มลู หรอื อัตราบอด มี รูปแบบการเขยี น
โปรแกรมดงั นี้
Serial. begin(speed);
เมือ่ speed คือ อัตราบอดมีคา่ 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800,
38400,57600 หรือ 115200 บติ ต่อวนิ าที ปกติทีใ่ ช้คือ 9600
หลกั สตู รการอบรมพัฒนาเกษตรกรร่นุ ใหม่: เทคโนโลยีเซนเซอรเ์ พื่อการเกษตร อ.ดร.สรุ พล วรภทั ราทร
44
หลังจากเปดิ พอร์ต เม่ือตอ้ งการส่งขอ้ มูลให้ใช้ฟงั ก์ชัน่ Serial print() หรือ Serial println() ฟังก์ชนั่ ท้ัง
สองตัวทางานใหผ้ ลคลา้ ยกัน ต่างกันเม่ือ Serial println() ส่งข้อมูลแลว้ จะขนึ้ บรรทัดใหม่ ให้อัตโนมัติฟังกช์ ั่น
Serial. print) และ Serial println() มีรูปแบบดงั น้ี
Serial. print(b,FORMAT); ou Serial. println(b,FORMAT);
โดยที่ 5 คอื ค่าตวั แปรประเภทเลขจํานวนเต็มที่ต้องการส่งออกทางพอร์ตอนุกรม ถ้าไม่ ระบุรปู แบบจะ
พิมพอ์ อกเปน็ รหสั ASCI ของค่าตวั แปร
FORMAT เป็นรปู แบบของการพิมพ์มี DEC (เลขฐานสิบ), HEX (เลขฐานสิบหก), OCT (เลขฐานแปด)
และ BIN (เลขฐานสอง) ตงั้ โปรแกรมต่อไปนี้
ภาพท่ี 7.9 แสดงโปรแกรมทดสอบการส่งข้อมูลออกพอรต์ อนุกรมเสมอื น ผ่านทางพอรต์ USB
โปรแกรมทดลองส่งข้อมูลออกพอร์ตอนุกรม โดยสง่ ข้อความและค่าของตัวแปรในการ ทดลองส่งค่าตวั
แปร จะมีการกาํ หนดรปู แบบหรือ FORMAT ของคําส่ัง Serial print) ไว้หลายๆ แบบในการ ทดสอบการทางาน
โปรแกรม Arduino IDE จะมหี นา้ ต่าง Serial Monitor เพอ่ื อํานวยความสะดวกในการรับ และส่งข้อมูลผ่าน
พอรต์ อนุกรม ซึง่ จะใช้พ้นื ท่ีร่วมกบั พน้ื ที่แสดงข้อมลู (Text area) ซงึ่ อยู่ทางด้านลา่ งของ หน้าต่างโปรแกรม
Arduino การเปดิ หน้าตา่ งน้ีทําได้โดยคลิกทีป่ มุ่ Serial Monitor หลังจากที่อัปโหลด โปรแกรมไปยังบอร์ด
Arduino
หลกั สตู รการอบรมพฒั นาเกษตรกรรนุ่ ใหม่: เทคโนโลยีเซนเซอรเ์ พอื่ การเกษตร อ.ดร.สรุ พล วรภทั ราทร