Elecrtonics-Book

Page 1

แบบเรียน การเรียนรู้อิเล็กทรอนิกส์เพื่อสร้างสรรค์ สิ่งประดิษฐ์ทางวิทยาศาสตร์และเทคโนโลยี สําหรับการศึกษาขั้นพื้นฐาน

การเรียนรู้อิเล็กทรอนิกส์พนื้ ฐานและเขียนโปรแกรมด้วย Arduino



คํานํา

อิเล็กทรอนิกส์ (Electronics) เป็นพื้นฐานที่สําคัญในการพัฒนาเทคโนโลยีในหลายๆ ด้าน โดยเฉพาะอย่างยิ่ง เทคโนโลยีทางด้านคอมพิวเตอร์ การสื่อสาร และสารสนเทศ อิเล็กทรอนิกส์ได้เข้ามามี บทบาทอย่างมากในชีวิตประจําวันของเรา อุปกรณ์เครื่องใช้ไฟฟ้าต่างๆ หลายชนิดที่พบเห็นได้รอบตัวเรา มี แผงวงจรอิเล็กทรอนิกส์อยู่ภายและเป็นส่วนประกอบที่สําคัญ การเรียนรู้และทําความเข้าใจเกี่ยวกับอุปกรณ์และวงจรอิเล็กทรอนิกส์พนื้ ฐาน จึงเป็นสิ่งสําคัญ และ จะช่วยให้เรามีความรู้ความเข้าใจเทคโนโลยีในหลายด้านๆ ที่อาศัยอิเล็กทรอนิกส์เป็นพื้นฐานสําคัญได้ดียิ่งขึ้น ความรู้และทักษะทางด้านอิเล็กทรอนิกส์สามารถนําไปประยุกต์ใช้ในชีวิตประจําวันได้ เช่น สร้างสิ่งประดิษฐ์ที่ เป็นประโยชน์ได้ หรือเป็นส่วนหนึ่งของความรู้และทักษะสําหรับการศึกษาในระดับที่สูงขึ้นไป ซึ่งเกี่ยวข้องกับ วิทยาศาสตร์และเทคโนโลยี รวมทั้งการนําไปประกอบอาชีพ หรือเรียนรู้เพื่อเป็นทํางานอดิเรกก็ได้ เพราะเป็น งานที่ต้องใช้ความคิดสร้างสรรค์และมีความท้าทาย และทําให้เกิดความสนุกในการเรียนรู้ได้เช่นกัน การเรียนรู้ทางด้านอิเล็กทรอนิกส์ มิใช่จํากัดอยู่แค่การนําอุปกรณ์หรือชิ้นส่วนอิเล็กทรอนิกส์ต่างๆ มา ต่อกันเป็นวงจรเท่านั้น แต่ในปัจจุบันยังรวมไปถึงการเขียนโปรแกรม เพื่อกําหนดพฤติกรรมการทํางานให้ ไมโครคอนโทรลเลอร์ ซึ่งเป็นไอซีหรือวงจรรวมประเภทหนึ่ง และนํามาใช้ควบคุมการทํางานของส่วนอื่นใน วงจรอิเล็กทรอนิกส์ ดังนั้นจึงกล่าวได้ว่า การเรียนรู้อิเล็กทรอนิกส์เกี่ยวข้องกับสองส่วนที่สําคัญคือ ฮาร์ดแวร์ซึ่ง หมายถึง แผงวงจรอิเล็กทรอนิกส์และส่วนประกอบต่างๆ และซอฟต์แวร์ซึ่งหมายถึง การเขียนโปรแกรม สําหรับไมโครคอนโทรลเลอร์ ซึ่งเป็นส่วนหนึ่งของวงจรอิเล็กทรอนิกส์ ในปัจจุบัน มีตัวเลือกมากมายสําหรับนํามาใช้เป็นสื่อในการเรียนรู้ทางด้านอิเล็กทรอนิกส์ ทั้งด้าน ฮาร์ดแวร์และซอฟต์แวร์ดังที่กล่าวไป ตัวเลือกหนึ่งที่น่าสนใจคือ Arduino (http://arduino.cc) ซึ่งครอบคลุม ฮาร์ดแวร์และซอฟต์แวร์ที่เปิดโอกาสให้ใครก็ได้ สามารถนําไปสร้างหรือพัฒนาต่อยอดได้ รวมถึงการเผยแพร่ ผลงานต่อไป และกําลังได้รับความนิยมและใช้งานกันอย่างแพร่หลายทั่วโลก เอกสารนี้ครอบคลุมเนื้อหาทีเ่ กี่ยวกับการกับเรียนรู้อิเล็กทรอนิกส์เบื้องต้น โดยใช้ Arduino เป็น สื่อกลางในการเรียนรู้ โดยมีกลุ่มเป้าหมายเป็นเยาวชนในระดับมัธยมศึกษาหรือสูงกว่า และผู้ทสี่ นใจทัว่ ไป และ หวังว่า ผู้เรียนจะได้รับความรู้ ทักษะ และความสนุก และเกิดความคิดสร้างสรรค์ที่จะนําไปทดลองด้วยตนเอง คณะผู้เรียบเรียง มีนาคม 2555



สารบัญ บทที่ 1 ความรู้พื้นฐานทางไฟฟ้า

1

1.1 พลังงานไฟฟ้า

2

1.2 แหล่งพลังงานไฟฟ้า

3

1.3 ประจุไฟฟ้า

3

1.4 กระแสไฟฟ้า

4

1.5 แรงดันและความต่างศักย์ไฟฟ้า

4

1.6 ความต้านทานทางไฟฟ้า

5

1.7 กําลังไฟฟ้า

6

1.8 พหุคูณสําหรับหน่วยวัด

6

1.9 ผังวงจรและสัญลักษณ์ของอุปกรณ์ในวงจร

7

1.10 ทฤษฎีวงจรไฟฟ้าพื้นฐาน

11

1.11 อุปกรณ์และเครื่องมือพื้นฐานสําหรับงานอิเล็กทรอนิกส์

15

1.12 การใช้งานมัลติมิเตอร์แบบเข็ม

26

1.13 การใช้งานมัลติมิเตอร์แบบดิจิทัล

34

1.14 การอ่านค่าแถบสีของตัวต้านทาน

40

1.15 การต่อตัวต้านทาน

42

1.16 สัญญาณทางไฟฟ้า

43

1.17 ระบบสมองกลฝังตัว

44

ใบมอบหมายงานที่ 1.1

47

ใบมอบหมายงานที่ 1.2

51

ใบมอบหมายงานที่ 1.3

55


บทที่ 2 ความรู้พื้นฐานเกี่ยวกับ Arduino

65

2.1 แนะนํา Arduino

66

2.2 ฮาร์ดแวร์สําหรับ Arduino

67

2.3 โปรแกรมพัฒนาสําหรับ Arduino

74

2.4 ขั้นตอนในการติดตั้งโปรแกรมพัฒนาสําหรับ Arduino

76

2.5 ขั้นตอนในการทดลองใช้งานซอฟต์แวร์ Arduino IDE

76

2.6 ขั้นตอนการติดตั้งไดร์เวอร์อุปกรณ์ USB สําหรับบอร์ด Arduino Uno

79

2.7 แหล่งข้อมูลอ้างอิงหรือศึกษาเพิ่มเติม

83

ใบมอบหมายงานที่ 2.1

85

ใบมอบหมายงานที่ 2.2

91

ใบมอบหมายงานที่ 2.3

99

บทที่ 3 การใช้งานขาอินพุต-เอาต์พุตของบอร์ด Arduino

105

3.1 ประเภทของสัญญาณไฟฟ้า

106

3.2 ขาอินพุตและเอาต์พุตของบอร์ด Arduino

108

3.3 การใช้งานขาดิจิทัลเป็นเอาต์พุต

110

3.4 การใช้งานขาอินพุตแบบแอนะล็อก

111

3.5 การใช้ตัวต้านทานปรับค่าได้สร้างสัญญาณแอนะล็อก

113

3.6 การใช้งานขาดิจิทัลเป็นเอาต์พุตเพื่อสร้างสัญญาณ PWM

114

3.7 การใช้ปุ่มกดสร้างสัญญาณดิจิทัลเป็นอินพุต

115

3.8 รูปแบบการเขียนโค้ดสําหรับ Arduino

117

3.9 คําสั่งสําหรับการใช้งานขาของบอร์ด Arduino

120

3.10 ตัวอย่างโค้ดสาธิตการใช้ขาดิจิทัล

122

ใบมอบหมายงานที่ 3.1

125

ใบมอบหมายงานที่ 3.2

131


ใบมอบหมายงานที่ 3.3

135

ใบมอบหมายงานที่ 3.4

139

ใบมอบหมายงานที่ 3.5

143

บทที่ 4 การต่อวงจรอิเล็กทรอนิกส์ภาคเอาต์พุตสําหรับ Arduino

147

4.1 การใช้งานอุปกรณ์โหลดกระแสสูงในวงจร

148

4.2 ทรานซิสเตอร์แบบรอยต่อคู่

149

4.3 มอสเฟต

159

4.4 รีเลย์

163

4.5 อุปกรณ์เชื่อมต่อทางแสง

165

4.6 ไอซีขับมอเตอร์กระแสตรง

171

4.7 การใช้งานเซอร์โวมอเตอร์

175

4.8 การเขียนโค้ด Arduino เพื่อเลือกทําหรือทําขั้นตอนซ้ําตามเงื่อนไข

179

ใบมอบหมายงานที่ 4.1

187

ใบมอบหมายงานที่ 4.2

191

ใบมอบหมายงานที่ 4.3

195

ใบมอบหมายงานที่ 4.4

199

บทที่ 5 การใช้งานเซนเซอร์ร่วมกับบอร์ด Arduino

203

5.1 ความสําคัญของวงจรภาคอินพุตและเซนเซอร์

204

5.2 เซนเซอร์และทรานสดิวเซอร์

204

5.3 สวิตช์สัมผัส

205

5.4 ตัวต้านทานไวแสง

206

5.5 เทอร์มิสเตอร์

207

5.6 ไอซีวัดอุณหภูมิ

214


5.7 เซนเซอร์แสงอินฟราเรด

218

5.8 โมดูลตรวจจับความเคลื่อนไหวด้วยแสงอินฟราเรด

229

5.9 โมดูลวัดระยะห่างด้วยแสงอินฟราเรด

232

5.10 โมดูลวัดระยะทางด้วยคลื่นอัลตราโซนิก

236

ใบมอบหมายงานที่ 5.1

243

ใบมอบหมายงานที่ 5.2

247

ใบมอบหมายงานที่ 5.3

251

บรรณานุกรม

255

**************


บทที่ 1 ความรู้พื้นฐานทางไฟฟ้า สาระการเรียนรู้ การเรียนรู้ทางด้านอิเล็กทรอนิกส์ ต้องอาศัยความรู้พื้นฐานทางไฟฟ้า เริ่มต้นตั้งแต่พลังงานไฟฟ้าคือ อะไร เกี่ยวข้องอย่างไรกับกระแสไฟฟ้าและการเคลื่อนที่ของอนุภาค เช่น อิเล็กตรอน แหล่งทีม่ าของไฟฟ้า ประเภทของไฟฟ้า เช่น ไฟฟ้ากระแสตรงและไฟฟ้ากระแสสลับ ปริมาณทางไฟฟ้าต่างๆ เช่น กระแสไฟฟ้า แรงดันไฟฟ้า และความต้านทาน ทฤษฎีพนื้ ฐานทางไฟฟ้า เช่น กฎของโอห์ม กฎของเคอร์ชอฟฟ์ การอ่านค่า ความต้านทานจากแถบสี การวัดปริมาณทางไฟฟ้าโดยใช้เครื่องมือวัด เช่น มัลติมิเตอร์ทั้งแบบเข็ม (แอนะล็อก) และแบบตัวเลข (ดิจิทัล) อุปกรณ์พื้นฐานสําหรับงานอิเล็กทรอนิกส์ เช่น ตัวต้านทาน ตัวเก็บประจุ ไดโอด ไดโอดเปล่งแสง สวิตช์เลื่อน เป็นต้น การใช้งานแผงต่อวงจร การวาดและทําความเข้าใจผังวงจรไฟฟ้า และ สัญลักษณ์ทางไฟฟ้าของอุปกรณ์ที่พบเห็นได้บ่อย

จุดประสงค์การเรียนรู้           

ยกตัวอย่างแหล่งที่มาของพลังงานไฟฟ้าได้ อธิบายถึงความแตกต่างระหว่างไฟฟ้ากระแสตรงและกระแสสลับได้ ระบุค่าความต้านทานจากแถบสีของตัวต้านทานได้ อธิบายถึงกฎของโอห์ม และคํานวณแรงดันและกระแสในวงจร ตามกฎของของเคอร์ชอฟฟ์ได้ ใช้มัลติมิเตอร์ในการวัดกระแส หรือแรงดันไฟฟ้าในวงจรได้ ยกตัวอย่างสัญลักษณ์ทางไฟฟ้าของอุปกรณ์อิเล็กทรอนิกส์พื้นฐานได้ อ่านผังวงจรไฟฟ้า และต่อวงจรอิเล็กทรอนิกส์พื้นฐานตามผังวงจรได้ อธิบายถึงหลักการทํางานเบื้องต้นของไดโอดและไดโอดเปล่งแสงได้ อธิบายถึงหลักการทํางานของวงจรแบ่งแรงดันได้ อธิบายถึงความสําคัญของระบบสมองกลฝังตัว และการประยุกต์ใช้งานไมโครคอนโทรลเลอร์ได้ ต่อวงจรตามผังวงจรบนแผงต่อวงจร เช่น วงจรควบคุมแรงดันคงที่ โดยใช้ไอซี 7805 ได้

1


1.1 พลังงานไฟฟ้า พลังงานไฟฟ้า (Electrical Energy) เป็นพลังงานรูปหนึ่งที่มีความสัมพันธ์กับชีวิตประจําวันของเรา อย่างมาก สามารถทําให้เกิดกระแสไฟฟ้า (Current) ในสิ่งที่นําไฟฟ้าได้หรือที่เรียกว่า ตัวนําไฟฟ้า (Conductor) เช่น ลวดทองแดง กระแสไฟฟ้าในลวดตัวนํานี้ เกิดจากการเคลื่อนของอนุภาคอิสระที่มีประจุ ไฟฟ้าเป็นลบที่เรียกว่า อิเล็กตรอน (Electron) ซึ่งมีขนาดเล็ก มองด้วยตาเปล่าไม่เห็น เมื่อมีความแตกต่างของ พลังงานไฟฟ้าระหว่างจุดสองจุด จะทําให้มีกระแสไฟฟ้าไหลจากจุดที่มรี ะดับพลังงานไฟฟ้าสูง (ศักย์ไฟฟ้าสูง) ไปยังจุดที่มีระดับพลังงานต่ํากว่า (ศักย์ไฟฟ้าต่ํา) และจะไม่มีกระแสไฟฟ้าไหลเมื่อศักย์ไฟฟ้าทั้งสองจุดเท่ากัน เพื่อให้ง่ายต่อการทําความเข้าใจ การไหลของกระแสไฟฟ้าสามารถเปรียบเทียบได้กับการไหลของ กระแสน้ําที่เราสามารถมองเห็นการเปลี่ยนแปลงได้ด้วยตาเปล่า สมมุติว่า มีถังเก็บน้ําอยู่หนึ่งถังและมีท่อ ระบายน้ําออกทางด้านล่าง สามารถควบคุมการไหลออกของน้ําในถังด้วยก๊อกน้ํา และปล่อยน้ําให้ไหลออกไป ตามท่อเพื่อไปหมุนกังหันน้ําที่อยู่ด้านล่าง การที่น้ําในถังไหลออกจากถังได้เนื่องจากมีความต่างศักย์ ทําให้น้ํา สามารถไหลจากที่สูงลงสู่ที่ตา่ํ กว่า พลังงานศักย์นี้จะถูกนําไปใช้ในการเปลี่ยนเป็นพลังงานจลน์ โดยหมุนกังหัน น้ํา ถ้าจะทําให้กังหันน้ําหมุนและทํางานอย่างต่อเนื่อง ก็จําเป็นต้องมีการสูบน้ําเข้าไปใส่ไว้ในถังอย่างต่อเนื่อง เช่น โดยใช้ป้มั น้ํา เพื่อไม่ให้นา้ํ หมดไปจากถัง ทําให้เกิดความต่างศักย์ระหว่างจุดที่อยู่สูงกับจุดที่อยู่ต่ํากว่า เมื่อ มีการทํางานอย่างต่อเนื่อง ทําให้มีน้ําไหลเวียนครบวงจร กังหันน้ําก็หมุนได้ตลอดเวลาด้วยพลังงานน้ํา ถ้า ต้องการหยุดการจ่ายน้ํา ก็ให้ปิดก๊อกน้ํา และจะทําให้กงั หันหยุดหมุนเพราะกังหันจะไม่ได้พลังงานจากน้ําอีก ต่อไป จากตัวอย่างการทํางานของกังหันน้ําดังที่ได้กล่าวไปข้างต้น สามารถนําไปเปรียบเทียบได้กับอุปกรณ์ที่ ใช้พลังงานไฟฟ้า ซึ่งจะเห็นได้ว่า กระแสน้ําที่ไหลเปรียบได้กับกระแสไฟฟ้าในวงจร ปั้มน้ําเปรียบได้กับ แหล่งกําเนิดไฟฟ้า เช่น แบตเตอรี่ที่ทําให้เกิดความต่างศักย์ไฟฟ้าหรือแรงดันไฟฟ้า ท่อน้ําเปรียบได้กับลวด ตัวนํา ก๊อกน้ําเปรียบได้กับสวิตช์เปิด-ปิด กังหันน้ําเปรียบได้กับหลอดไฟ ซึ่งเป็นตัวแปลงพลังงานจากรูปหนึ่ง ไปเป็นอีกรูปหนึ่ง พลังงานไฟฟ้าสามารถเปลี่ยนเป็นพลังงานรูปอื่นได้ เครื่องใช้ไฟฟ้า (Electrical Appliances) ก็เป็น อุปกรณ์ที่ทําหน้าที่แปลงพลังงานไฟฟ้าให้เป็นพลังงานรูปอื่นๆ เช่น พลังงานความร้อน พลังงานกล พลังงาน แสง และพลังงานเสียง เป็นต้น ตัวอย่างของเครื่องใช้ไฟฟ้าประเภทให้พลังงานความร้อน ได้แก่ เตารีด เตา ไฟฟ้า หม้อหุงข้าวไฟฟ้า เครื่องต้มน้ําไฟฟ้า ฯลฯ เครื่องใช้ไฟฟ้าบางประเภท สามารถแปลงพลังงานไฟฟ้าเป็นพลังงานอื่นได้หลายๆ รูปแบบพร้อมกัน เช่น โทรทัศน์สามารถแปลงพลังงานไฟฟ้าเป็นพลังงานแสงและเสียงพร้อมกัน เครื่องใช้ไฟฟ้าต่างๆ ได้รับ พลังงานจากการไหลของกระแสไฟฟ้าที่ครบวงจร โดยเริ่มต้นที่แหล่งกําเนิดไฟฟ้า ต่อไปยังเครื่องใช้ไฟฟ้า ผ่าน ลวดตัวนําหรือสายไฟ ก่อนย้อนกลับสู่แหล่งกําเนิดไฟฟ้า ดังนั้นจึงกล่าวได้ว่า วงจรไฟฟ้าประกอบด้วย แหล่งกําเนิดไฟฟ้า หรือแหล่งจ่ายกระแส ลวดตัวนํา และอุปกรณ์ที่ใช้ไฟฟ้า เช่น หลอดไฟ 2


ไฟฟ้าแบ่งได้เป็นสองประเภทหลักคือ  ไฟฟ้ากระแสสลับ (AC: Alternating Current) เป็นไฟฟ้าที่มีทิศทางการไหลที่สลับไปมาอยู่ ตลอดเวลา ด้วยความถี่คงที่ ตัวอย่างเช่น ไฟฟ้าตามบ้านจะเป็นไฟฟ้ากระแสสลับ วัดแรงดันได้ 220 โวลต์ (RMS) มีความถี่ 50Hz และมีลกั ษณะเป็นรูปคลื่นไซน์ (Sine Wave) โดยทั่วไปในการ ผลิตและส่งพลังงานไฟฟ้าจากแหล่งกําเนิด เช่น โรงงานไฟฟ้า ไปยังจุดอื่นที่ไกลออกไป จะนิยมใช้ อุปกรณ์ที่เรียกว่า หม้อแปลงไฟฟ้า (Transformer) เพื่อแปลงระดับแรงดันที่ต้นทาง ให้สูงขึ้น หลายเท่า ก่อนที่จะถูกแปลงระดับให้ต่ําลงที่ปลายทาง และจะทําได้ง่ายถ้าใช้ไฟฟ้ากระแสสลับ ดังนั้นไฟฟ้าที่ใช้ตามบ้านเรือนจึงเป็นไฟฟ้ากระแสสลับ  ไฟฟ้ากระแสตรง (DC: Direct Current) เป็นไฟฟ้าที่มีทิศทางการไหลเพียงทิศทางเดียว เช่น จาก ขั้วบวกของแบตเตอรี่ ผ่านอุปกรณ์ไฟฟ้า แล้วกลับไปยังขั้วลบของแบตเตอรี่อีกครั้ง

1.2 แหล่งพลังงานไฟฟ้า แหล่งพลังงานไฟฟ้ามีอยู่หลายประเภท และสามารถสร้างพลังงานไฟฟ้าได้หลายวิธี เช่น o เกิดจากปฏิกิริยาเคมี เช่น แบตเตอรี่ (Battery) เซลล์เชื้อเพลิง (Fuel Cell) เป็นต้น o เกิดจากการเปลี่ยนพลังงานแสงอาทิตย์หรือแสงสว่าง ให้เป็นพลังงานไฟฟ้า เช่น เซลล์แสงอาทิตย์ (Solar Cell) o เกิดจากการเหนี่ยวนําของแม่เหล็กในเครื่องกําเนิดไฟฟ้า หรือ ไดนาโม (Dynamo) ซึ่งเป็นอุปกรณ์ที่ ทําหน้าที่เปลี่ยนแปลงพลังงานกล เช่น จากพลังงานลม น้ํา หรือ ไอน้าํ มาเป็นพลังงานไฟฟ้า โดย อาศัยการเหนี่ยวนําของแม่เหล็ก ตามหลักการของนักวิทยาศาสตร์ชาวอังกฤษชื่อ ไมเคิล ฟาราเดย์ (Michael Faraday) เมื่อขดลวดตัวนําเคลื่อนที่ตัดสนามแม่เหล็ก หรือเมื่อสนามแม่เหล็กที่ผ่านขดลวด ตัวนํานี้เกิดการเปลี่ยนแปลง จะก่อให้เกิดกระแสไฟฟ้าเหนี่ยวนํา o แหล่งกําเนิดไฟฟ้าจากสิ่งมีชีวิต เช่น ปลาไหลไฟฟ้า

1.3 ประจุไฟฟ้า ประจุไฟฟ้า (Electric Charge) เป็นคุณสมบัติพื้นฐานหนึ่งของอนุภาคที่เล็กกว่าอะตอม เช่น อิเล็กตรอน และโปรตอน เป็นต้น แบ่งออกได้เป็นสองประเภทคือ ประจุบวกและประจุลบ อิเล็กตรอนมีค่า ประจุเป็นลบในขณะที่โปรตอนมีค่าประจุเป็นบวก ค่าประจุไฟฟ้าของวัตถุใดๆ มีค่าเท่ากับผลรวมสุทธิของ ประจุไฟฟ้าของอนุภาคที่เป็นองค์ประกอบ อะตอมสามารถมีค่าประจุไฟฟ้าเป็นบวกหรือลบได้ถ้ามีจํานวนของ อิเล็กตรอนไม่เท่ากับโปรตอน ประจุไฟฟ้ามีความสําคัญต่อการทํางานของวงจรไฟฟ้าและอิเล็กทรอนิกส์ เพราะว่าการเคลื่อนที่ของประจุไฟฟ้าไปในทิศทางใดทิศทางหนึ่งในช่วงเวลาหนึ่ง จะทําให้เกิดกระแสไฟฟ้า 3


ประจุไฟฟ้ามีหน่วยวัดในระบบเอสไอ (SI) เป็น คูลอมบ์ (Coulomb) และใช้สญ ั ลักษณ์แทนเป็น C โดยนิยามแล้ว หนึ่งคูลอมบ์ หมายถึง ปริมาณประจุไฟฟ้าสุทธิที่วิ่งผ่านพื้นที่ตัดขวางของตัวนําที่มีกระแสไหล ผ่าน 1 แอมแปร์ต่อวินาที

1.4 กระแสไฟฟ้า กระแสไฟฟ้า (Electric Current) คือ การเคลื่อนที่ของประจุไฟฟ้าในทิศทางใดทิศทางหนึ่ง กระแสไฟฟ้าเกิดขึ้นได้จากการเคลื่อนที่ของอนุภาคที่เล็กกว่าอะตอม เช่น อิเล็กตรอน และ ไอออน (อะตอมที่มี ประจุไฟฟ้าสุทธิเป็นบวกหรือลบ) เป็นต้น แต่ในทางไฟฟ้า เช่น ในวงจรอิเล็กทรอนิกส์ ส่วนใหญ่แล้ว กระแสไฟฟ้าจะเกิดจากการไหลของอิเล็กตรอนผ่านตัวนําและอุปกรณ์ตา่ งๆในวงจร หรือสามารถกล่าวได้ว่า กระแสไฟฟ้าคือ ปริมาณประจุไฟฟ้าที่เคลื่อนตัวในทิศทางเดียวกันในวงจรไฟฟ้าต่อหน่วยวินาที มีหน่วยวัดใน ระบบเอสไอเป็น แอมแปร์ (Ampere) และใช้สัญลักษณ์แทนเป็น A ในวงจรไฟฟ้า การเคลื่อนตัวของประจุไฟฟ้า เช่น อิเล็กตรอน เป็นการป้อนพลังงานให้แก่อุปกรณ์ ไฟฟ้าในวงจร ตัวอย่างเช่น ถ้ามีกระแสไหลผ่านตัวต้านทาน พลังงานไฟฟ้าจะถูกแปลงเป็นพลังงานความร้อน ถ้ามีกระแสไหลผ่านหลอดไฟ พลังงานไฟฟ้าจะถูกแปลงเป็นพลังงานความร้อนและพลังงานแสง เป็นต้น

1.5 แรงดันและความต่างศักย์ไฟฟ้า ความต่างศักย์ไฟฟ้า (Electric Potential Difference) คือ ความแตกต่างของพลังงานไฟฟ้าระหว่าง จุดสองจุด ทําให้เกิดสนามไฟฟ้า และมีหน่วยวัดเป็น โวลต์ (Volt) ในระบบเอสไอ และใช้สัญลักษณ์แทนเป็น V จุดที่มีพลังงานไฟฟ้าสูงกว่าจะมีศักย์ไฟฟ้าสูงกว่า ในขณะที่จุดที่มีพลังงานไฟฟ้าต่ํากว่า จะมีศักย์ไฟฟ้าต่ํากว่า ภายใต้สนามไฟฟ้าที่มีความต่างศักย์นี้ จะให้ประจุไฟฟ้าสามารถเคลื่อนที่ได้เพราะมีแรงมากระทําต่อประจุ ไฟฟ้า และทําให้เกิดการไหลของกระแสไฟฟ้า ในทางไฟฟ้า แรงดันไฟฟ้า (Voltage) หมายถึง ความต่าง ศักย์ไฟฟ้าที่ทําให้อิเล็กตรอนสามารถเคลื่อนที่ในวงจรไฟฟ้าได้ เช่น ในลวดตัวนํา และมีหน่วยวัดเป็น โวลต์ (Volt) ถ้าไม่มีความต่างศักย์ไฟฟ้าระหว่างจุดสองจุด (ความต่างศักย์ไฟฟ้าเป็นศูนย์) หรือแรงดันไฟฟ้าเป็นศูนย์ ก็จะไม่ทําให้เกิดการไหลของกระแสไฟฟ้า แหล่งที่มาของแรงดันไฟฟ้าหรือที่เรียกว่า แหล่งกําเนิดไฟฟ้า ซึ่งทํา ให้เกิดแรงขับเคลื่อนทางไฟฟ้าและทําให้อิเล็กตรอนเคลื่อนที่ได้ในวงจรไฟฟ้า ได้แก่ เซลล์แบตเตอรี่ (Battery Cell) ไดนาโม (Dynamo) และเซลล์แสงอาทิตย์ (Solar Cell) เป็นต้น

4


ในการวัดความต่างศักย์หรือแรงดันไฟฟ้าในวงจรอิเล็กทรอนิกส์ จะมีการกําหนดจุดอ้างอิงขึ้นมาใน วงจร โดยสมมุติให้จุดอ้างอิงร่วมนี้ (Common Reference Point) มีศกั ย์ไฟฟ้าเป็นศูนย์ (0 V) และเรียกว่า กราวด์ (Ground) ใช้คําย่อว่า GND หรืออาจจะหมายถึง จุดหรือเส้นทางร่วมกันที่กระแสในวงจรจะไหลมา รวมกัน (Common Return Path) และไหลกลับไปยังแหล่งพลังงานไฟฟ้าที่ทําให้เกิดแรงขับเคลื่อนทางไฟฟ้า วงจรอิเล็กทรอนิกส์ต้องอาศัย แรงดันไฟเลี้ยง (Supply Voltage) เป็นแหล่งพลังงานไฟฟ้า ทําให้มี กระแสไหลในวงจรได้ (และมีการแปลงรูปพลังงานเกิดขึ้น) โดยทั่วไปแล้ว แรงดันไฟเลี้ยงจะเป็นแรงดันไฟฟ้า กระแสตรงและเป็นแรงดันไฟฟ้าที่มีระดับคงที่ วงจรอิเล็กทรอนิกส์บางวงจรอาจต้องการแรงดันไฟเลี้ยงคงที่ เท่ากับ +5V ในการทํางาน ในขณะที่บางวงจรต้องการไฟเลี้ยงคงที่เท่ากับ +3.3V บางวงจรอาจจะใช้แรงดัน ระดับอื่นอีกได้ เช่น +9V และ +12V เป็นต้น การป้อนแรงดันไฟเลี้ยงที่ไม่ถูกต้องให้วงจรอิเล็กทรอนิกส์ เช่น ต่อสลับขั้ว (ระหว่างขั้วบวกและขั้วลบ) หรือใช้แรงดันไฟฟ้าที่สูงเกินกว่าที่กําหนดไว้ อาจจะทําให้วงจรเสียหาย ได้ ดังนั้นจึงควรระมัดระวังเป็นพิเศษในการป้อนหรือจ่ายไฟเลี้ยงให้วงจรอิเล็กทรอนิกส์

1.6 ความต้านทานทางไฟฟ้า ความต้านทานทางไฟฟ้า (Electric Resistance) เป็นคุณสมบัติของวัตถุที่จะต้านการเคลื่อนที่ของ ประจุไฟฟ้า หรือการไหลของกระแสไฟฟ้า ความต้านทานมีหน่วยวัดเป็น โอห์ม (Ohm) และใช้สัญลักษณ์แทน เป็น Ω วัตถุที่มีค่าความต้านทานต่ําก็จะนําไฟฟ้าได้ดี หรือยอมให้กระแสไฟฟ้าไหลผ่านได้ง่าย เรียกว่า ตัวนํา ไฟฟ้า (Conductor) เช่น โลหะ เป็นต้น ในทางตรงกันข้าม วัตถุที่มีความต้านทานสูงจะย่อมให้กระแสไฟฟ้า ไหลผ่านได้น้อย ฉนวนไฟฟ้า (Insulator) คือ วัตถุหรือสสารที่มีสภาพต้านทาน (Resistivity) หรือสมบัติของสสารที่ไม่ ยอมให้กระแสไฟฟ้าไหลผ่านได้ง่ายหรือไม่ยอมให้ผ่านเลย ตัวอย่างของวัสดุที่เป็นฉนวน เช่น ยาง แก้ว พลาสติก กระเบื้อง เป็นต้น เนื่องจากวัสดุเหล่านี้ มีอิเล็กตรอนอิสระในปริมาณที่น้อยมากเมื่อเปรียบเทียบกับ ตัวนําที่เป็นโลหะ จึงไม่นําไฟฟ้าหรือนําไฟฟ้าได้ไม่ดี วัสดุที่เป็นฉนวนต่างชนิดกัน ย่อมมีสภาพต้านทานไฟฟ้า ต่างกัน ในเอกสารนี้ ถ้าระบุว่าจุดสองจุดเชื่อมต่อกันทางไฟฟ้า ก็หมายความว่า จุดสองจุดนี้เชื่อมต่อกันด้วย ลวดตัวนําและมีความต้านทานระหว่างจุดสองจุดต่ํามากๆ หรือนําไฟฟ้าได้ดีมาก และในทางปฏิบัติให้ถือว่า ระหว่างจุดทั้งสอง มีความต้านทานเป็นศูนย์โอห์ม

5


1.7 กําลังไฟฟ้า กําลังไฟฟ้า (Electric Power) คือ พลังงานไฟฟ้าที่ใช้ไปในหนึ่งหน่วยวินาที (จูลต่อวินาที) หรือ หมายถึง อัตราการเปลี่ยนแปลงพลังงานไฟฟ้า มีหน่วยวัดเป็น วัตต์ (Watt) และใช้สัญลักษณ์แทนเป็น W ในทางไฟฟ้า กําลังไฟฟ้าขณะใดขณะหนึ่งของอุปกรณ์เครื่องใช้ไฟฟ้า สามารถคํานวณได้จาก ผลคูณของ แรงดันไฟฟ้า (โวลต์) กับกระแสไฟฟ้าที่ไหลผ่าน (แอมแปร์) ในขณะนั้น ตัวอย่างเช่น ถ้ามีแรงดันตกคร่อมที่ตัว ต้านทาน 100Ω เท่ากับ 5V และมีกระแสไหลผ่านในขณะนั้นเท่ากับ 50mA ก็จะคํานวณกําลังไฟฟ้าได้เท่ากับ 0.25 วัตต์

1.8 พหุคูณสําหรับหน่วยวัด ในการระบุปริมาณทางไฟฟ้าพร้อมหน่วยวัด มักจะนิยมใช้ คํานําหน้า (Prefix) สําหรับชื่อหน่วยการวัด เพื่อระบุตัวพหุคูณ (ตัวคูณทีเ่ ป็นเลขสิบยกกําลังบวกหรือลบ) โดยแบ่งเป็นพหุคูณย่อย (เลขสิบยกกําลังที่เป็น ลบซึ่งเป็นตัวคูณที่มีค่าน้อยกว่า 1) และพหุคูณใหญ่ (เลขสิบยกกําลังที่เป็นบวกซึ่งเป็นตัวคูณที่มีค่ามากกว่า 1) ตามตารางที่ 1.1 และ 1.2 ตามลําดับ

ค่า 10–1 10–2 10–3 10–6 10–9 10–12 10–15 10–18 10–21 10–24

สัญลักษณ์ d (deci) c (centi) m (milli) μ (micro) n (nano) p (pico) f (femto) a (atto) z (zepto) y (yocto)

ชื่อ เดซิเซนติมิลลิไมโครนาโนพิโกเฟมโตอัตโตเซปโตยอกโต-

ตารางที่ 1.1: ตารางแสดงพหุคณ ู ย่อยสําหรับหน่วยวัด

6


ค่า 101 102 103 106 109 1012 1015 1018 1021 1024

สัญลักษณ์ da (deka) h (hecto) k (kilo) M (Mega) G (Giga) T (Tera) P (Peta) E (Exa) Z (Zetta) Y (Yotta)

ชื่อ เดคาเฮกโตกิโลเมกะจิกะเทระเพตะเอกซะเซตตะยอตตะ-

ตารางที่ 1.2: ตารางแสดงพหุคณ ู ใหญ่สําหรับหน่วยวัด

ตัวอย่างในการใช้งานพหุคูณย่อยและพหุคูณใหญ่สําหรับปริมาณกระแสไฟฟ้า แรงดันไฟฟ้า และความ ต้านทานทางไฟฟ้า มีดังนี้       

กระแส 1 มิลลิแอมแปร์ (mA) มีค่าเท่ากับ 10-3 (หนึ่งในหนึ่งพัน) แอมแปร์ กระแส 1 ไมโครแอมแปร์ (μA) มีค่าเท่ากับ 10-6 (หนึ่งในหนึ่งล้าน) แอมแปร์ กระแส 50 มิลลิแอมแปร์ (mA) มีค่าเท่ากับ 0.05 แอมแปร์ แรงดันไฟฟ้า 150 มิลลิโวลต์ (mV) มีค่าเท่ากับ 0.15 โวลต์ แรงดันไฟฟ้า 1.1 กิโลโวลต์ (kV) มีค่าเท่ากับ 1,100 โวลต์ ความต้านทาน 1 กิโลโอห์ม (kΩ) มีค่าเท่ากับ 103 (หนึ่งพัน) โอห์ม ความต้านทาน 1 เมกกะโอห์ม (MΩ) มีค่าเท่ากับ 106 (หนึ่งล้าน) โอห์ม

1.9 ผังวงจรและสัญลักษณ์ของอุปกรณ์ในวงจร ผังวงจร (Schematic) หรือเรียกว่า แบบแผนภาพวงจร (Circuit Diagram) คือ ภาพกราฟิกที่ใช้แสดง ถึงส่วนประกอบต่างๆของวงจรไฟฟ้าและอิเล็กทรอนิกส์ รวมถึงการเชื่อมต่อกันทางไฟฟ้าระหว่างขาหรือจุด เชื่อมต่อของอุปกรณ์ต่างๆเหล่านั้น โดยใช้สญ ั ลักษณ์แทนภาพเหมือนจริงของอุปกรณ์ รูปที่ 1.1 แสดงตัวอย่าง ของสัญลักษณ์ทางไฟฟ้าสําหรับอุปกรณ์อิเล็กทรอนิกส์ที่พบเห็นได้บ่อย และอ้างอิงตามที่มีการใช้งานโดย โปรแกรมชื่อ Eagle ของบริษัท CadSoft สําหรับการออกแบบวงจรอิเล็กทรอนิกส์ 7


รูปที่ 1.2 แสดงผังวงจรของวงจรอิเล็กทรอนิกส์ที่ประกอบด้วยแบตเตอรี่ 3V (โดยนําแบตเตอรี่ 1.5V สองก้อน มาต่ออนุกรมกัน) ตัวต้านทาน 330 โอห์ม และไดโอดเปล่งแสง (LED) ทําให้มีกระแสไหลครบวงจรได้ โดยทั่วไปแล้วในการทํางานของวงจรอิเล็กทรอนิกส์จะต้องมีแรงดันไฟเลี้ยงที่คงที่ รูปที่ 1.3 แสดงผังวงจรที่มี การใช้สัญลักษณ์ VCC สําหรับแรงดันไฟเลี้ยงคงที่และเป็นบวก (เช่น +5V) และสัญลักษณ์ GND ซึ่งเป็น จุดอ้างอิงในวงจรและมีศักย์ไฟฟ้าเป็น 0V สําหรับใช้เปรียบเทียบกับจุดอื่นๆ ในวงจร และจุดนี้มักถูกเรียกว่า กราวด์ร่วม (Common Ground) ในการป้อนแรงดันไฟเลี้ยง จะใช้ขั้วต่อสองขั้ว JP1 (เช่น อุปกรณ์ที่เรียกว่า Pin Header แบบ 2 ขา) เพื่อต่อขั้วบวกและขั้วลบจากแหล่งจ่ายภายนอก ทําให้ครบวงจรและมีกระแสไหล

รูปที่ 1.1: ตัวอย่างสัญลักษณ์ของอุปกรณ์อิเล็กทรอนิกส์

8


รูปที่ 1.2: ตัวอย่างผังวงจรที่ประกอบด้วยแบตเตอรี่ ตัวต้านทาน และไดโอดเปล่งแสง

รูปที่ 1.3: ตัวอย่างผังวงจรที่มีการใช้สัญลักษณ์ VCC และ GND

ในการวาดผังวงจร เส้นตรง (วาดในแนวตั้งหรือแนวนอนเท่านั้น หรือนํามาต่อกัน) หมายถึง ลวดตัวนํา เพื่อบ่งบอกการเชื่อมต่อทางไฟฟ้า ถ้ามีเส้นตรงแนวนอนมาเชื่อมต่อกับเส้นตรงในแนวตั้ง ในลักษณะที่เป็น “สามแยก” หรือ “สี่แยก” และต้องการให้เชื่อมต่อกันทางไฟฟ้า จะต้องวาดจุดวงกลมที่จุดสัมผัสหรือจุดตัด ดังกล่าว (Junction Point) แต่ถ้าไม่มีจุดวงกลม จะหมายถึง การไม่เชื่อมต่อกันทางไฟฟ้า (No Connection)

9


รูปที่ 1.4 แสดงตัวอย่างผังวงจรของวงจรควบคุมแรงดันโดยใช้ไอซี 7805 (IC1) ซึ่งมีสามขา (IN OUT และ GND) วงจรนี้รับแรงดันอินพุตจากแหล่งจ่ายอื่น เช่น แบตเตอรี่ 9V โดยต่อเข้าที่ขั้วต่อสองขา (JP1) ขา 1 ของ JP1 ต่อกับขั้วลบของแบตเตอรี่ และขา 2 ต่อกับขั้วบวกของแบตเตอรี่ ใช้สวิตช์เลื่อน (S1) ในการเปิด-ปิด การจ่ายไฟเลี้ยงภายนอกให้ไอซีควบคุมแรงดัน IC1 และส่วนอื่นของวงจร ไดโอด (D1) เบอร์ 1N4001 บังคับ ทิศทางการไหลของกระแสไปยังขา IN ของไอซี IC1 (ในกรณีที่ต่อแบตเตอรี่กลับขั้ว วงจรนี้จะไม่ทํางาน)

รูปที่ 1.4: ตัวอย่างวงจรควบคุมแรงดันโดยใช้ไอซี 7805

แรงดันคงที่ +5V จะได้ที่ขา OUT ของไอซี IC1 และมีการต่อไดโอดเปล่งแสง LED1 และตัวต้านทาน R1 ไว้เพื่อแสดงสถานะทํางานของวงจร (เมื่อเปิดสวิตช์ S1 จะทําให้ LED1 สว่าง) ในวงจรยังมีการต่อตัวเก็บ ประจุ ทั้งแบบมีขั้ว (Polarized Capacitor) ได้แก่ C1 และ C2 (มีความจุ 100 และ 10 ไมโครฟารัด ตามลําดับ) และแบบไม่มีขั้ว (Nonpolarized Capacitor) ได้แก่ C3 (มีความจุ 100 นาโนฟารัด หรือ 0.1 ไมโครฟารัด) ซึ่งการต่อตัวเก็บประจุในลักษณะนี้ จะช่วยลดผลกระทบที่มีต่อระดับแรงดัน เช่น ในกรณีที่ แรงดันไฟเลี้ยงจากภายนอก อาจจะไม่คงที่ในบางช่วงเวลา ตัวเก็บประจุเหล่านี้ สามารถทําหน้าที่เป็น แหล่งจ่าย และสามารถจ่ายกระแสได้ชั่วคราวในช่วงเวลาสั้นๆ ได้ และทําให้ระดับของแรงดันไม่เปลี่ยนแปลง อย่างรวดเร็ว

10


1.10 ทฤษฎีวงจรไฟฟ้าพื้นฐาน ในการวิเคราะห์การทํางานของวงจรไฟฟ้า-อิเล็กทรอนิกส์ ต้องอาศัยทฤษฎีทางไฟฟ้าต่างๆ และที่เป็น พื้นฐานได้แก่ กฎของโอห์ม และกฎของเคอร์ชอฟฟ์

1. กฎของโอห์ม (Ohm’s Law) กฎของโอห์ม แสดงความสัมพันธ์เชิงเส้นระหว่าง แรงดันไฟฟ้าหรือความต่างศักย์ไฟฟ้า (V) และ กระแสไฟฟ้า (I) ที่ไหลผ่านตัวนําไฟฟ้าในขณะเวลาใดเวลาหนึ่ง และสัดส่วนคงที่ของความสัมพันธ์แบบเชิงเส้น นี้ (เมื่ออุณหภูมิไม่มีการเปลีย่ นแปลง) ก็คือ ความต้านทาน ความสัมพันธ์นี้ถูกค้นพบโดยนักฟิสิกส์ชาวเยอรมัน ชื่อ จอร์จ ไซมอน โอห์ม (George Simon Ohm) และสามารถเขียนให้อยู่ในรูปสมการได้ดังนี้

V=I*R I=V/R R=V/I

จากกฎของโอห์ม สามารถกล่าวได้ว่า เมื่อกําหนดให้ความต้านทานคงที่ ถ้าแรงดันไฟฟ้าเพิ่มสูงขึ้นจะ ทําให้มีกระแสไฟฟ้าไหลผ่านตัวนําในปริมาณที่มากขึ้น หรือในทางตรงกันข้าม ถ้าแรงดันไฟฟ้าลดต่ําลงจะทําให้ มีกระแสไฟฟ้าไหลผ่านตัวนําในปริมาณที่นอ้ ยลง และเมื่อกําหนดให้แรงดันไฟฟ้ามีค่าคงที่ ถ้าเพิ่มหรือลดค่า ความต้านทาน จะทําให้มีปริมาณกระแสไหลผ่านลวดตัวนํา ลดลงหรือสูงขึ้นตามลําดับ ถ้าลวดตัวนําหรืออุปกรณ์ในวงจรไฟฟ้า มีค่าความต้านทานต่ํามาก จะทําให้มีกระแสไหลผ่านลวด ตัวนําได้ในปริมาณมาก ก่อให้เกิดการสูญเสียกําลังไฟฟ้าที่สูงมาก ซึ่งจะถูกแปลงให้เป็นความร้อน และทําให้ เกิดความเสียหายต่อวงจรได้ ดังนั้นการเชื่อมต่อจุดสองจุดที่มีศักย์ไฟฟ้าด้วยตัวนําที่มีความต้านทานต่ํามากๆ จะนําไปสู่ “การลัดวงจร” นั่นเอง ซึ่งควรหลีกเลี่ยงและป้องกันไม่ให้เกิดขึ้น เพราะจะก่อให้เกิดความเสียหาย ต่อวงจรและอุปกรณ์ไฟฟ้าที่ใช้งานได้

11


จากกฎของโอห์ม กําลังไฟฟ้าของตัวต้านทาน (พลังงานไฟฟ้าที่ถูกแปลงและสูญเสียไปในรูปของ พลังงานความร้อน) สามารถคํานวณหาได้จากสมการต่อไปนี้ P=V*I P = (I * R) * R = I2 * R P = V * (V / R) = V2/ R

ตัวอย่างเช่น ถ้าป้อนไฟเลี้ยง +5V ให้ตัวต้านทาน 100Ω จะมีกระแสไหลตามกฎของโอห์มเท่ากับ 5V/100Ω = 50mA หรือ 0.05A และคิดเป็นกําลังไฟฟ้าได้เท่ากับ P = 5V * 0.05A = 0.25W แต่ถ้าลดความ ต้านทานให้น้อยลงเป็น 10Ω จะทําให้มกี ระแสไหลเท่ากับ 5V/10Ω = 500mA หรือ 0.5A และใช้กําลังไฟฟ้า เท่ากับ P = 5V * 0.5A = 2.5W หรือกล่าวได้ว่า ถ้าป้อนแรงดันไฟฟ้าคงที่ และลดค่าความต้านทานลง จะทํา ให้มีกระแสไหลผ่านตัวต้านทานมากขึ้นและใช้กําลังไฟฟ้ามากขึ้น กําลังไฟฟ้าที่มากขึ้นจะทําให้เกิดความร้อนที่ ตัวต้านทานมากขึ้น ถ้าตัวต้านทานที่เลือกใช้ไม่สามารถทนความร้อนในระดับดังกล่าวได้ ก็จะส่งผลให้เกิดความ เสียหายต่ออุปกรณ์ ดังนั้นในการเลือกใช้ตัวต้านทาน นอกจากค่าความต้านทานที่ต้องการแล้ว จะต้องเลือก ตามกําลังไฟฟ้าสูงสุดที่ทนได้ เช่น 0.25W 0.5W 5W และ 10W ตามลําดับ รูปที่ 1.5 แสดงตัวอย่างของตัว ต้านทานแตกต่างกันไปตามกําลังไฟฟ้าที่ทนได้ (และมีขนาดของอุปกรณ์ที่แตกต่างกันไป)

รูปที่ 1.5: ตัวอย่างตัวต้านทานแบบคงที่ขนาดต่างๆ

12


2. กฎของเคอร์ชอฟฟ์ (Kirchhoff’s Laws) สามารถแบ่งเป็นสองข้อคือ กฎกระแสไฟฟ้า และ กฎแรงดันไฟฟ้า  กฎกระแสไฟฟ้าของเคอร์ชอฟฟ์นี้ กล่าวไว้ว่า “ณ จุดใดๆ ในวงจรไฟฟ้า ผลรวมทางพีชคณิตของ กระแสไฟฟ้าทีไ่ หลเข้าและกระแสไฟฟ้าที่ไหลออกมีค่าเท่ากับศูนย์” หรือสามารถกล่าวอีกนัยหนึ่ง ได้ว่า “ณ จุดใดๆ ในวงจรไฟฟ้า ผลรวมของกระแสที่ไหลเข้า จะมีค่าเท่ากับผลรวมของกระแสที่ ไหลออก”  กฎแรงดันไฟฟ้าของเคอร์ชอฟฟ์นี้ กล่าวไว้ว่า “ในวงจรไฟฟ้าที่ครบวงจรใดๆ ผลรวมทางพีชคณิต ของแรงดันไฟฟ้ามีค่าเท่ากับศูนย์” หรือกล่าวได้อีกว่า “ในวงจรไฟฟ้าที่ครบวงจรใดๆ ผลรวมทาง พีชคณิตของแรงดันไฟฟ้าที่ตกคร่อมที่อุปกรณ์แต่ละตัว จะเท่ากับแรงดันที่แหล่งจ่าย”

ในรูปที่ 1.6 แสดงตัวอย่างของกระแส I1 ที่ไหลจากจุด 1 เข้าไปยังจุด C และกระแส I2 และ I3 ที่ไหล ออกจากจุด C ไปยังจุด 2 และ 3 ตามลําดับ ตามกฎกระแสไฟฟ้าของเคอร์ชอฟฟ์ สามารถเขียนความสัมพันธ์ ของปริมาณกระแสได้ดังนี้ I1 = I2 + I3

รูปที่ 1.6: ตัวอย่างการไหลของกระแสในทิศทางเข้าและออกจากจุดเชื่อมต่อ C ในวงจร

รูปที่ 1.7 แสดงตัวอย่างการวัดแรงดันตกคร่อมที่ตัวต้านทาน R1 และ R2 ซึ่งถูกนํามาต่อกันแบบ อนุกรมร่วมกับแหล่งจ่ายซึ่งเป็นแบตเตอรี่ ตามกฎแรงดันไฟฟ้าของเคอร์ชอฟฟ์ สามารถกล่าวได้ว่า แรงดัน ของแบตเตอรี่ Vbat จะเท่ากับผลรวมของแรงดันตกคร่อมที่ R1 และ R2 (Vbat = V1 + V2) และการวัดแรงดัน ตกคร่อม V1 และ V2 สามารถทําได้โดยใช้เครื่องมือวัดที่เรียกว่า โวลต์มิเตอร์ (Voltmeter) ในวงจรตามรูปที่ 1.7 กระแสที่ไหลจากขั้วบวกของแบตเตอรี่ BAT1 ผ่านตัวต้านทาน R1 จะต้อง เท่ากับกระแสที่ไหลผ่านตัวต้านทาน R2 ไปยังขั้วลบของแบตเตอรี่ เพราะว่าในวงจรมีเพียงเส้นทางเดียวที่ กระแสจะไหลได้ (ในวงจรไม่มีจุดแยกหรือจุดรวมของเส้นทางที่กระแสไหล) และสามารถวัดปริมาณกระแสนี้ได้ โดยใช้เครื่องมือวัดที่เรียกว่า แอมมิเตอร์ (Ammeter) 13


รูปที่ 1.7: ตัวอย่างวงจรไฟฟ้าและการวัดแรงดันตกคร่อมที่ตัวต้านทานแต่ละตัว

วงจรในรูปที่ 1.8 ประกอบด้วยแบตเตอรี่ BAT1 และตัวต้านทาน R1 และ R2 ที่ต่อขนานกัน และถ้า กําหนดให้ I1 เป็นกระแสที่ไหลผ่าน R1 และ I2 เป็นกระแสที่ไหลผ่าน R2 สามารถสรุปความสัมพันธ์ได้ดังนี้  ผลรวมของกระแส I1 และ I2 จะเท่ากับ I3 ซึ่งเป็นกระแสที่ได้จากแบตเตอรี่  ถ้าวัดแรงดันตกคร่อมที่ R1 และที่ R2 จะได้ค่าที่เท่ากัน และเท่ากับแรงดันของแบตเตอรี่ Vbat  สามารถคํานวณกระแส I1 และ I2 ได้ดังนี้ I1 = Vbat / R1 และ I2 = Vbat / R2

รูปที่ 1.8: ตัวอย่างการวัดกระแสในวงจรและแรงดันตกคร่อมที่ตัวต้านทานสองตัวที่ต่อขนานกัน

14


1.11 อุปกรณ์และเครื่องมือพื้นฐานสําหรับงานอิเล็กทรอนิกส์ ในงานทางด้านอิเล็กทรอนิกส์มีเครื่องมือทางช่างที่ใช้งานอยู่หลายประเภท แต่ที่จะกล่าวถึงในเอกสาร นี้และจําเป็นต่อการฝึกปฏิบัติและทดลองต่อวงจรบนแผงต่อวงจร (ไม่เน้นการบัดกรี) ได้แก่ คีมตัด คีมปากแบน หรือปากจิ้งจก คีมปอกลวดสายไฟ ลวดสายไฟในการต่อวงจร แผงต่อวงจร และ มัลติมิเตอร์ 1. เครื่องมือช่างประเภทคีม (Pliers) อุปกรณ์ประเภทคีมสําหรับงานอิเล็กทรอนิกส์ที่สําคัญและใช้งานบ่อย ได้แก่  คีมตัด (Cutting Pliers) ใช้สาํ หรับตัดลวดสายไฟ หรือตัดขาอุปกรณ์ เป็นต้น  คีมปากแบน หรือหรือปากจิ้งจก (Flat Nose Pliers) ตามรูปที่ 1.9 ใช้สาํ หรับหยิบจับ พับงอ ขาอุปกรณ์หรือลวดสายไฟ เป็นต้น  คีมปอกสายไฟ (Wire Strippers) ตามรูปที่ 1.10 ใช้ในการปอกฉนวนของสายไฟออก  คีมปอกสายไฟอัตโนมัติ (Automatic Wire Strippers) ตามรูปที่ 1.11 ใช้ในการปอกฉนวน ของสายไฟออกโดยใช้แรงน้อยกว่าคีมปอกสายไฟแบบธรรมดา

รูปที่ 1.9: ตัวอย่างคีมตัดและคีมปากแบน

15


รูปที่ 1.10: ตัวอย่างคีมปอกสายไฟ

รูปที่ 1.11: ตัวอย่างคีมปอกสายไฟอัตโนมัติ

16


2. ลวดสายไฟ (Jumper Wires) ในการต่อวงจรอิเล็กทรอนิกส์บนแผงต่อวงจร จะนิยมใช้ลวดสายไฟแกนเดียว ขนาด เบอร์ 24 ตาม มาตรฐานอเมริกา (American Wire Gauge) หรือเรียกย่อๆว่า 24 AWG (หรืออาจจะใช้เบอร์ 22 AWG แทน ก็ได้ซึ่งมีขนาดใหญ่กว่า 24 AWG เล็กน้อย) ลวดสายไฟในลักษณะนี้ จะมีจําหน่ายเป็นขด (เช่น ยาว 100 ฟุต) มีให้เลือกหลายสี เช่น แดง ดํา ขาว เหลือง และเขียว เป็นต้น (ตามตัวอย่างในรูปที่ 1.12)

ขั้นตอนแรกในการเตรียมอุปกรณ์ก่อนนําไปใช้งานคือ การนําลวดสายไฟมาตัดตามขนาดความยาวที่ ต้องการ แล้วจึงปอกฉนวนที่ปลายทั้งสองออกก่อน (ประมาณ 8-10 มิลมิเมตร) โดยใช้คีมปอกสายไฟแบบ ธรรมดา หรือแบบอัตโนมัติ รูปที่ 1.13 - 1.16 แสดงขั้นตอนการเตรียมลวดสายไฟขนาด 22 AWG สําหรับใช้ ในการต่อวงจร

รูปที่ 1.12: ลวดสายไฟขนาด 22 AWG (ประมาณ 0.65 mm2) สําหรับใช้งานกับแผงต่อวงจร

17


รูปที่ 1.13: สาธิตการตัดลวดสายไฟด้วยคีมตัด

รูปที่ 1.14: สาธิตการปอกฉนวนของลวดสายไฟด้วยคีมปลอกสายไฟแบบอัตโนมัติ

18


รูปที่ 1.15: ตัวอย่างลวดสายไฟที่ปลอกฉนวนทั้งสองด้านออกและดัดให้โค้งงอพร้อมนําไปใช้งาน

รูปที่ 1.16: ตัวอย่างลวดสายไฟหลากสีและความยาวต่างๆที่ได้จัดเตรียมไว้ใช้งาน

19


3. แผงต่อวงจร (Breadboard) แผงต่อวงจร หรือเรียกว่า เบรดบอร์ด (Breadboard) เป็นอุปกรณ์สําหรับในการต่อวงจรไฟฟ้าและ อิเล็กทรอนิกส์ มีลักษณะเป็นแผงสี่เหลี่ยม มีรูเสียบขาอุปกรณ์ (หรือเรียกว่า จุดเชื่อมต่อสัญญาณ) อยู่จํานวน มากสําหรับเสียบขาอุปกรณ์อิเล็กทอนิกส์ (ตามตัวอย่างในรูปที่ 1.17) ในการจัดเรียงรูเสียบขาอุปกรณ์ใน แนวนอนตามยาว จะมีอยู่สองแถวหรือหนึ่งคู่ แบ่งเป็นด้านบนและด้านล่างอย่างละคู่ รูเสียบขาอุปกรณ์ที่อยู่ใน แนวนอนแถวเดียวกันตามยาวนี้ จะเชื่อมต่อถึงกันทางไฟฟ้าและใช้สําหรับต่อกับไฟเลี้ยง (ขั้วบวกและขั้วลบ)

รูปที่ 1.17: ตัวอย่างแผงต่อวงจรขนาดยาวและขนาดสั้น

ให้สังเกตว่า แผงต่อวงจรบางอันจะมีเส้นตรงสีแดงและสีนา้ํ เงินในแนวนอนไว้เพื่อบ่งบอกว่า รูเสียบขา อุปกรณ์ตามแนวสีแดงจะใช้สําหรับต่อกับไฟขั้วบวก และรูเสียบขาอุปกรณ์ตามแนวสีน้ําเงินจะใช้สําหรับต่อกับ ขั้วลบ ถ้าต้องการเชื่อมต่อแถวของรูเสียบขาอุปกรณ์สําหรับไฟเลี้ยงคู่บนและคู่ล่างเข้าด้วยกัน ก็สามารถทําได้ โดยใช้ลวดสายไฟเชื่อมต่อถึงกัน ตามรูปที่ 1.18 และ 1.19

20


สําหรับรูเสียบขาอุปกรณ์ในแถวแนวตั้ง จะมีเพียงแถวละ 5 รู ซึ่งเชื่อมต่อกันทางไฟฟ้าโดยลวดโลหะที่ อยู่ด้านหลัง และมีตัวหนังสือเขียนกํากับไว้ด้านข้างคือ a-e (แถวแนวตั้งด้านล่าง) และ f-j (แถวแนวตั้งด้านบน) ตามลําดับ นอกจากนั้น ยังมีตัวเลขเขียนกํากับไว้ที่แถวแนวตั้งของแต่ละแถวด้วย เช่น มีหมายเลขแถว 1-30 สําหรับแผงต่อวงจรแบบสั้น ดังนั้นในการอ้างอิงหรือระบุตําแหน่งของรูเสียบขาอุปกรณ์ใดๆ ของแผงต่อวงจร สามารถระบุหมายเลขของแถวและตัวหนังสือของรูเสียบขาอุปกรณ์ในแถวดังกล่าวได้ สมมุติว่า ต้องการจะ เชื่อมต่อที่ตําแหน่ง 2a กับ 6b ด้วยลวดตัวนํา จะทําให้เกิดการเชื่อมต่อทางไฟฟ้าของรูเสียบขาอุปกรณ์ทั้งสอง แถว (จํานวน 10 รู) คือ 2a – 2e และ 6a – 6e เป็นต้น

รูปที่ 1.18: สายไฟสําหรับเชื่อมต่อไฟเลี้ยงและกราวนด์ด้านบนและด้านล่างของเบรดบอร์ด

รูปที่ 1.20 แสดงตัวอย่างการเสียบขาอุปกรณ์ เช่น ไดโอดเปล่งแสง (LED) และตัวต้านทาน 330Ω ที่ นํามาต่ออนุกรมกัน และลวดสายไฟ (ใช้สําหรับป้อนไฟเลี้ยง) ลงบนแผงต่อวงจร รูปที่ 1.21 แสดงตัวอย่างการ จ่ายไฟเลี้ยงให้วงจรบนแผงต่อวงจรโดยใช้แบตเตอรี่ขนาด AA 2 ก้อน (2 x 1.5V) ต่ออนุกรมกัน

21


รูปที่ 1.19: การใช้สายไฟเชื่อมต่อรางคู่สําหรับไฟเลี้ยง (ขั้วบวกและขั้วลบ)

รูปที่ 1.20: ตัวอย่างการเสียบขาอุปกรณ์และลวดสายไฟบนแผงต่อวงจร

22


รูปที่ 1.21: เมื่อจ่ายไฟเลี้ยงจากแบตเตอรี่ให้วงจรบนแผงต่อวงจร

ในการเรียนรู้การต่อวงจรอิเล็กทรอนิกส์บนแผงต่อวงจร (เบรดบอร์ด) มีซอฟต์แวร์ที่ช่วยในการวาง แผนการต่อวงจร ตัวอย่างเช่น โปรแกรม Fritzing (URL: http://fritzing.org/) ซึ่งเป็นซอฟต์แวร์ประเภท Open Source สามารถใช้งานได้กับหลายระบบปฏิบัติการ (Windows / Linux / Mac OS X) และสามารถ ดาวน์โหลดมาใช้ได้ฟรี ประโยชน์ของการใช้โปรแกรมประเภทนี้ที่เห็นได้ชัดคือ การฝึกต่อวงจรบนเบรดบอร์ด ได้เสมือนจริง มีอุปกรณ์อเิ ล็กทรอนิกส์พนื้ ฐานให้เลือกใช้ได้หลายชนิด (รวมถึงบอร์ดไมโครคอนโทรลเลอร์ Arduino อีกด้วย) หลังจากที่ผู้เรียนได้มคี วามชํานาญในการฝึกต่อวงจรแบบเสมือนนี้แล้ว เมื่อไปทดลองต่อ วงจรจริง จะช่วยลดเวลาและความผิดพลาดในการต่อวงจรได้ การใช้โปรแกรม Fritzing ฝึกต่อวงจรบนเบรดบอร์ดนั้น มีอยู่สองมุมมองที่สําคัญในการเรียนรู้ คือ มุมมองทางกายภาพของวงจรบนเบรดบอร์ด (Breadboard View) และมุมมองของผังวงจร (Schematic) ซึ่ง ทั้งสองมุมมองจะต้องมีความสัมพันธ์และหมายถึงวงจรเดียวกัน โดยปรกติแล้วการฝึกต่อวงจรโดยใช้โปรแกรม Fritzing จะเริ่มต้นในมุมมองของเบรดบอร์ด เมื่อต่อวงจรโดยครบถ้วนแล้ว ก็จะไปพิจารณาดูวงจรในมุมมอง ของผังวงจร เพื่อตรวจสอบความถูกต้องในการออกแบบ รูปที่ 1.22 แสดงหน้าต่างหลักของโปรแกรม Fritzing ในมุมมองเบรดบอร์ด และรูปที่ 1.23 แสดงมุมมองของผังวงจรสําหรับวงจรเดียวกัน ซึ่งเป็นการต่อบอร์ด ไมโครคอนโทรลเลอร์ Arduino กับวงจรอิเล็กทรอนิกส์บนเบรดบอร์ด ที่ประกอบด้วยไดโอดเปล่งแสงและตัว ต้านทานอย่างละหนึ่งตัว

23


รูปที่ 1.22: หน้าต่างหลักของโปรแกรม Fritzing ในมุมมองเบรดบอร์ดของวงจร

รูปที่ 1.23: หน้าต่างหลักของโปรแกรม Fritzing ในมุมมองผังวงจร (Schematic View)

24


4. มัลติมิเตอร์ (Multimeter) มัลติมิเตอร์เป็นเครื่องมือวัดทางไฟฟ้าที่สําคัญและใช้งานบ่อยสําหรับการทดลองทางไฟฟ้า ใช้ในการ วัดปริมาณทางไฟฟ้าได้หลายแบบ เช่น โอห์มมิเตอร์ (Ohmmeter) สําหรับวัดความต้านทาน โวลต์มิเตอร์ (Voltmeter) สําหรับวัดความต่างศักย์ไฟฟ้าหรือแรงดันไฟฟ้า และแอมมิเตอร์ (Ammeter) สําหรับวัดปริมาณ กระแสที่ไหลในวงจรไฟฟ้า เป็นต้น และสามารถเลือกช่วงหรือย่านการวัดค่าได้ มัลติมิเตอร์ แบ่งออกเป็นสองประเภทคร่าวๆ ได้แก่ มัลติมิเตอร์แบบเข็ม (Analog Multimeter) ซึง่ ใช้เข็มชี้บนสเกลในการวัดค่า (ตามตัวอย่างในรูปที่ 1.24) และ มัลติมิเตอร์แบบดิจิทัล (Digital Multimeter) ซึ่งสามารถแสดงค่าเป็นตัวเลขได้ เช่น 4 ตําแหน่ง (ตามตัวอย่างในรูปที่ 1.25) สามารถปรับย่านการวัดได้โดย อัตโนมัติ ทําให้สะดวกในการใช้งานและอ่านค่า

คําแนะนํา: ควรศึกษาวิธีการใช้งาน รายละเอียดทางเทคนิค ข้อจํากัดและข้อควรระวังในการใช้ งานมัลติมิเตอร์ จากคู่มือการใช้งาน ให้เข้าใจก่อนเริ่มต้นใช้งาน

รูปที่ 1.24: ตัวอย่างมัลติมิเตอร์แบบเข็มชี้ (MITSUMI YX-360TR Multimeter)

25


รูปที่ 1.25: ตัวอย่างมัลติมิเตอร์แบบดิจิทัล (SANWA CD770 Digital Multimeter)

1.12 การใช้งานมัลติมิเตอร์แบบเข็ม โดยทั่วไปแล้ว มัลติมิเตอร์แบบเข็ม (ตามตัวอย่างในรูปที่ 1.26) มีสวิตช์แบบหมุนเพื่อเลือกว่า จะใช้ เครื่องวัดปริมาณใด และมีส่วนแสดงผลทีเ่ ป็นหน้าปัดพร้อมสเกลและเข็มชี้ในการวัดปริมาณไฟฟ้าแบบต่างๆ (ตามตัวอย่างในรูปที่ 1.27 และ 1.28) เช่น ความต้านทาน (Ω) ความต่างศักย์สําหรับไฟฟ้ากระแสตรง (DC Voltage) ความต่างศักย์สําหรับไฟฟ้ากระแสสลับ (AC Voltage) ปริมาณกระแสสําหรับไฟฟ้ากระแสตรง (DC Current) เป็นต้น แต่สําหรับงานทางด้านอิเล็กทรอนิกส์พื้นฐานแล้ว มัลติมิเตอร์จะถูกนํามาใช้วัดความ ต้านทาน แรงดันและกระแสสําหรับไฟฟ้ากระแสตรง เป็นส่วนใหญ่

26


รูปที่ 1.26: ตัวอย่างมัลติมิเตอร์แบบเข็มพร้อมสายวัดขั้วบวกและลบ

รูปที่ 1.27: ตัวอย่างสวิตช์เลือกรูปแบบและย่านการวัดของมัลติมิเตอร์แบบเข็ม

27


รูปที่ 1.28: ตัวอย่างหน้าปัดแสดงสเกลในการวัดของมัลติมิเตอร์แบบเข็ม

1. การวัดค่าความต้านทาน ในการวัดค่าความต้านทานโดยใช้มัลติมิเตอร์ จะต้องเลือกรูปแบบการวัดเป็น โอห์มมิเตอร์ และมี ขั้นตอนในการวัดค่าความต้านทาน โดยใช้มลั ติมิเตอร์แบบเข็ม ดังนี้ 1) เสียบสายวัดขั้วบวก (+) และลบ (COM) ให้ถูกต้อง 2) หมุนสวิตช์เพื่อเลือกปริมาณทีจ่ ะวัดและช่วงการวัดค่า 3) ปรับการชี้ศูนย์ (หมุนที่ปุ่ม OΩADJ) และในการเปลี่ยนย่านวัดของโอห์มทุกย่าน จะต้องทําการ ปรับการชี้ศูนย์ใหม่ทุกครั้ง 4) ใช้ปลายของหัววัดขั้วบวกและขั้วลบ เพื่อวัดความต้านทานระหว่างจุดสองจุด 5) อ่านค่าจากสเกลการวัดตามตําแหน่งที่เข็มชี้

ข้อควรระวัง: ไม่ควรวัดค่าความต้านทานของตัวต้านทานในวงจรไฟฟ้า เพราะอาจจะทําให้วัดค่า ความต้านทานได้ไม่ถูกต้อง เพราะตัวต้านทานนั้นอาจจะต่อร่วมอยู่กับอุปกรณ์อื่นๆ ในวงจร เช่น ต่อ แบบขนานกัน และไม่ควรทําการวัดในขณะที่มีแรงดันตกคร่อมที่ตัวต้านทาน เพราะจะทําให้มัลติมิเตอร์เสียได้ 28


รูปที่ 1.29: สัมผัสปลายหัววัดทั้งสองแล้วปรับชดเชยให้ได้ศูนย์โอห์ม (เลือกย่านวัดที่ x10)

รูปที่ 1.30: ตัวอย่างการวัดค่าความต้านทานของตัวต้านทาน 150Ω (เลือกย่านวัดที่ x10)

29


ในการวัดค่าความต้านทาน จะต้องเลือกย่านการวัดให้เหมาะสม มัลติมิเตอร์แบบเข็มที่นํามาใช้เป็น ตัวอย่าง มีย่านการวัด 4 ช่วงการวัด ได้แก่    

x1 x 10 x 1k x 10k

ซึ่งจะอ่านค่าได้ในช่วง 0 ถึง 2kΩ ซึ่งจะอ่านค่าได้ในช่วง 0 ถึง 20kΩ ซึ่งจะอ่านค่าได้ในช่วง 0 ถึง 2MΩ ซึ่งจะอ่านค่าได้ในช่วง 0 ถึง 20MΩ

2. การวัดแรงดันหรือความต่างศักย์ไฟฟ้า ในการวัดแรงดันตกคร่อม (Voltage Drop) ที่ตัวต้านทาน หรือระหว่างจุดสองจุดใดๆ ในวงจร โดย ใช้มัลติมิเตอร์ จะต้องเลือกรูปแบบการวัดเป็นโวลต์มิเตอร์ และต่อแบบขนานในวงจร มัลติมิเตอร์แบบเข็มที่ได้ เลือกมาเป็นตัวอย่าง มีย่านการวัดแรงดัน (ไฟฟ้ากระแสตรง หรือ DCV) ทั้งหมด 7 ช่วง ให้เลือก ดังนี้       

0 – 0.1 V 0–0.5 V 0–2.5 V 0–10 V 0–50 V 0–250 V 0–1000 V

(อ่านค่าจากสเกล 0 – 10) (อ่านค่าจากสเกล 0–50) (อ่านค่าจากสเกล 0–250) (อ่านค่าจากสเกล 0–10) (อ่านค่าจากสเกล 0–50) (อ่านค่าจากสเกล 0–250) (อ่านค่าจากสเกล 0–10)

รูปที่ 1.31 แสดงตัวอย่างการวัดแรงดันตกคร่อมของตัวต้านทานสองตัว (330Ω และ 220Ω) ที่ต่อ อนุกรมกัน และป้อนไฟเลี้ยงคงที่ +5V โดยเลือกย่านการวัด DC 0–10V และรูปที่ 1.32 แสดงตัวอย่างการวัด แรงดันตกคร่อมเฉพาะที่ตัวต้านทาน 220Ω โดยเลือกย่านการวัด DC 0–10V เช่นกัน

มัลติมิเตอร์แบบเข็มตามตัวอย่าง มีความแม่นหรือความถูกต้อง (Accuracy) ในการวัดแรงดันไฟฟ้า อยู่ในช่วง ±3% เมื่อเทียบกับค่าสูงสุดของสเกลหรือย่านการวัด เช่น ถ้าเลือกย่านการวัด DC 0–10V จะมี ความแม่นอยู่ในขอบเขต ±0.3V (= 10V * 3/100) เป็นต้น

30


รูปที่ 1.31: วัดแรงดันตกคร่อมที่ตัวต้านทานสองตัวอนุกรมกัน (อ่านค่าได้ประมาณ 5V และเลือกย่านวัด DC 0–10V)

รูปที่ 1.32: วัดแรงดันตกคร่อมที่ตัวต้านทาน 220Ω (อ่านได้ประมาณ 2V และเลือกย่านวัด DC 0–10V)

31


3. การวัดกระแสไฟฟ้า ในการวัดปริมาณกระแสที่ไหลในวงจรโดยใช้มัลติมิเตอร์ จะต้องเลือกรูปแบบการวัดเป็นแอมมิเตอร์ และให้ต่อแบบอนุกรมในวงจร เพื่อให้มีกระแสไหลผ่านตัวแอมมิเตอร์ มัลติมิเตอร์แบบเข็มที่ได้เลือกมาเป็น ตัวอย่างนี้ มีย่านการวัดปริมาณกระแสตรง (DCA) 4 ช่วง ให้เลือก ดังนี้    

0–50 μA 0–2.5 mA 0–25 mA 0–0.25 A

(อ่านค่าจากสเกล 0–50) (อ่านค่าจากสเกล 0–250) (อ่านค่าจากสเกล 0–250) (อ่านค่าจากสเกล 0–250)

มัลติมิเตอร์แบบเข็มตามตัวอย่าง มีความแม่นหรือความถูกต้อง (Accuracy) ในการวัดปริมาณ กระแสไฟฟ้า อยู่ในช่วง ±3% เมื่อเทียบกับค่าสูงสุดของสเกลหรือย่านการวัด เช่น ถ้าเลือกย่านการวัดแบบ DCmA ในช่วง 0–25mA จะมีความแม่นอยูใ่ นขอบเขต ±0.75mA (= 25mA * 3/100) เป็นต้น

รูปที่ 1.33 แสดงตัวอย่างการวัดกระแสทีไ่ หลผ่านตัวต้านทานขนาด 220 โอห์ม โดยป้อนไฟเลี้ยงที่ จุดเชื่อมต่อในแนวนอน แถบสีแดง (ขั้วบวก) และสีน้ําเงิน (ขั้วลบ) ซึ่งเป็นแรงดันไฟเลี้ยงกระแสตรงที่ +5V และรูปที่ 1.34 แสดงตัวอย่างการวัดกระแสที่ไหลผ่านตัวต้านทานขนาด 1k โอห์ม ใช้แรงดันไฟฟ้าที่ +5V เป็น ไฟเลี้ยง และเลือกย่านการวัดแบบ DCmA ในช่วง 0–25mA

ข้อสังเกต: ในการวัดปริมาณกระแส จะทําให้เกิดแรงดันตกคร่อมที่ตัวต้านทานภายในของมัลติมิเตอร์ ได้ (เช่น อยู่ในช่วงประมาณ 150–250mV) ทั้งนี้ก็ขึ้นอยู่กับมัลติมิเตอร์เข็มที่เลือกใช้งาน ดังนั้นจะต้อง นํามาพิจารณาด้วยเพราะมีผลต่อความถูกต้องของค่าที่วัดได้

32


รูปที่ 1.33: วัดกระแสที่ไหลผ่านตัวต้านทาน 220Ω (อ่านได้ประมาณ 21.5 mA, ใช้ย่านการวัด DC 0–25 mA)

รูปที่ 1.34: วัดกระแสที่ไหลผ่านตัวต้านทาน 1kΩ (อ่านได้ประมาณ 5 mA, ใช้ย่านการวัด DC 0–25 mA)

33


1.13 การใช้งานมัลติมิเตอร์แบบดิจิทลั มัลติมิเตอร์แบบดิจิทัล มีสวิตช์หมุนเลือกรูปแบบและย่านการวัด มีจอภาพ LCD แสดงผลเป็นตัวเลข เช่น 4 ตําแหน่ง (Digits) มีสายวัดสองเส้นสําหรับขั้วบวก (สีแดง) และขั้วลบ (สีดํา) และมีช่องเสียบสายวัดอยู่ 3 ช่อง ช่องแรกคือ COM สําหรับเสียบสายขั้วลบ ช่องที่สองสําหรับใช้เสียบสายขั้วบวกในกรณีที่วดั ปริมาณที่ ไม่ใช่กระแสไฟฟ้า (ตามตัวอย่างในรูปที่ 1.35) เช่น วัดค่าความต้านทาน วัดแรงดันไฟฟ้า (ไฟฟ้ากระแสตรง และกระแสสลับ) ตรวจสอบการเชื่อมต่อถึงกันทางไฟฟ้า (Continuity Test) และตรวจสอบทิศทางของไดโอด (Diode Test) เป็นต้น และช่องที่สามสําหรับเสียบสายขั้วบวกเมื่อต้องการวัดปริมาณกระแสไฟฟ้า (ตาม ตัวอย่างในรูปที่ 1.36) การใช้งานมัลติมิเตอร์ที่ต้องมีการเสียบสายวัดขั้วบวก แยกกรณีกันระหว่างการวัดปริมาณกระแส และ การวัดปริมาณอื่นที่ไม่ใช่กระแส อาจทําให้เกิดความไม่สะดวกในการใช้งาน เพราะผู้ใช้ต้องเปลี่ยนตําแหน่งการ เสียบสายขั้วบวกไปมา ในกรณีที่ต้องมีการวัดแรงดันและกระแสบ่อยครั้ง บางครั้งผู้ใช้ก็อาจจะลืมเปลี่ยน ตําแหน่งการเสียบสายขั้วบวกให้ถูกต้องตามชนิดของการวัด

รูปที่ 1.35: ตัวอย่างการเสียบสายวัดสําหรับการวัดที่ไม่ใช่กระแสไฟฟ้า (เช่น วัดความต้านทาน)

34


รูปที่ 1.36: ตัวอย่างการเสียบสายวัดสําหรับการวัดกระแสไฟฟ้า (ในระดับ mA หรือ μA)

1. การวัดค่าความต้านทาน การวัดค่าความต้านทานของตัวต้านทาน จะต้องไม่วัดในวงจร หรือในขณะที่มกี ระแสไหลผ่านตัว ต้านทาน (หรือมีแรงดันตกคร่อมที่ขาของตัวต้านทาน) ในการวัดค่าความต้านทานโดยใช้มัลติมิเตอร์แบบดิจิทัล ให้หมุนสวิตช์ไปที่ย่านการวัดแบบโอห์มมิเตอร์ (มีสัญลักษณ์ Ω เขียนกํากับอยู่) รูปที่ 1.37 และ 1.38 แสดง ตัวอย่างการวัดค่าความต้านทานของตัวต้านทาน 220Ω และ 10kΩ ตามลําดับ ข้อดีของการใช้มัลติมิเตอร์แบบ ดิจิทัลคือ สามารถอ่านค่าได้ง่าย มีความแม่นสูง (โดยทั่วไปแล้ว ไม่เกิน ±1%) และสามารถปรับช่วงการวัดได้ โดยอัตโนมัติ (Auto Ranging)

35


รูปที่ 1.37: วัดค่าความต้านทาน 220Ω บนแผงต่อวงจรด้วยมัลติมิเตอร์ดิจิทัล

รูปที่ 1.38: วัดค่าความต้านทาน 10kΩ บนแผงต่อวงจรด้วยมัลติมิเตอร์ดิจิทัล

36


2. การวัดแรงดันหรือความต่างศักย์ไฟฟ้า การวัดแรงดันไฟฟ้าหรือความต่างศักย์ไฟฟ้าระหว่างสองจุดในวงจร จะต้องหมุนสวิตช์เลือกการวัดให้ เป็นแบบโวลต์มิเตอร์ (มีสัญลักษณ์ V เขียนกํากับไว้) และในการวัดแรงดันตกคร่อมที่ตัวต้านทานจะต้องใช้ ปลายของสายวัดขั้วบวกและลบขนานกับตัวต้านทาน รูปที่ 1.39 แสดงตัวอย่างการวัดแรงดันตกคร่อมที่ตัว ต้านทานสองตัว 330Ω และ 220Ω ต่ออนุกรมกัน และได้ป้อนไฟเลี้ยง +5V ให้ครบวงจร ดังนั้นจึงมีกระแสไหล ผ่านตัวต้านทานทั้งสอง และทําให้เกิดความต่างศักย์ตกคร่อมที่ตัวต้านทานแต่ละตัว รูปที่ 1.40 และ 1.41 แสดงตัวอย่างการวัดแรงดันตกคร่อมที่ตัวต้านทาน 220Ω และ 330Ω ตามลําดับ

3. การวัดกระแสไฟฟ้า ในการวัดปริมาณกระแสในวงจรโดยใช้มัลติมิเตอร์ เลือกรูปแบบการวัดเป็นแอมมิเตอร์ และต่อแบบ อนุกรมในวงจรเพื่อให้มีกระแสไหลผ่านตัวแอมมิเตอร์ ก่อนใช้งานมัลติมิเตอร์แบบดิจิทัล จะต้องตรวจสอบ ดูก่อนว่า สายวัดขั้วบวก (สีแดง) อยู่ที่ช่องเสียบสําหรับการวัดกระแสหรือไม่ รูปที่ 1.42 แสดงตัวอย่างการวัด กระแสที่ไหลผ่านตัวต้านทาน 330Ω แรงดันไฟเลี้ยง +5V และรูปที่ 1.43 แสดงตัวอย่างการวัดกระแสในวงจร เมื่อต่อตัวต้านทาน 330Ω และ 220Ω ขนานกัน และใช้ไฟเลี้ยง +5V

รูปที่ 1.39: วัดแรงดันตกคร่อมที่ตัวต้านทานสองตัว 330Ω และ 220Ω ต่ออนุกรมกัน

37


รูปที่ 1.40: วัดแรงดันตกคร่อมที่ตัวต้านทาน 220Ω ในวงจร

รูปที่ 1.41: วัดแรงดันตกคร่อมที่ตัวต้านทาน 330Ω ในวงจร

38


รูปที่ 1.42: วัดกระแสที่ไหลผ่านตัวต้านทาน 330Ω ในวงจรที่มีไฟเลี้ยง +5V

รูปที่ 1.43: วัดกระแสในวงจร เมื่อต่อตัวต้านทาน 330Ω และ 220Ω ขนานกัน

39


1.14 การอ่านค่าแถบสีของตัวต้านทาน ตัวต้านทานแบบมี 4 แถบสีนั้น (ดังรูปที่ 1.44) เป็นแบบที่นิยมใช้มากที่สุด โดยจะมีแถบสี 4 เส้น รอบตัวต้านทาน โดยค่าตัวเลขของ 2 แถบแรก จะเป็นค่าสองหลักแรกของความต้านทาน แถบที่ 3 เป็นตัวคูณ และแถบที่ 4 เป็นค่าขอบเขต (เปอร์เซ็นต์) ความผิดพลาด (Tolerance) ซึ่งมีค่าเป็น 5%, 10%, หรือ 20% ตารางที่ 1.3 แสดงค่าของรหัสสีของตัวต้านทานตามมาตรฐาน EIA และตารางที่ 1.4 แสดงตัวอย่างการอ่านค่า จากแถบสีของตัวต้านทานค่าต่างๆ

รูปที่ 1.44: แถบสีของตัวต้านทานคงที่

แถบสีที่ 1 แถบสีที่ 2 แถบสีที่ 3 แถบสีที่ 4

ใช้แสดงตัวเลขหลักที่หนึ่ง และจะไม่เป็นสีดํา ใช้แสดงตัวเลขหลักที่สอง เป็นตัวคูณสําหรับตัวเลขสองหลักแรก ใช้แสดงค่าความผิดพลาด (เป็นเปอร์เซ็นต์)

ตารางที่ 1.3: ค่าของรหัสสีตามมาตรฐาน EIA

สี ดํา น้ําตาล แดง ส้ม เหลือง เขียว น้ําเงิน

แถบ 1 (ตัวเลขที่ 1) 0 1 2 3 4 5 6

แถบ 2 (ตัวเลขที่ 2) 0 1 2 3 4 5 6 40

แถบ 3 (ตัวคูณ) 1 10 100 1,000 10,000 100,000 1,000,000

แถบ 4 (ค่าความผิดพลาด) ±1% ±2% ±3% ±4% -


ม่วง

7

7

10,000,000

-

เทา

8

8

100,000,000

-

ขาว

9

9

1,000,000,000

-

ทอง

-

-

0.1

±5%

เงิน ไม่มีสี

-

-

0.01

±10% ±20%

ตารางที่ 1.4: ตัวอย่างการอ่านค่าแถบสี (+/-5% ความผิดพลาด)

ความต้านทาน (Ω)

แถบที่ 1

แถบที่ 2

แถบที่ 3

แถบที่ 4

อ่านค่า

1

น้ําตาล

ดํา

ทอง

ทอง

10 x 10-1

10

น้ําตาล

ดํา

ดํา

ทอง

10 x 100

47

เหลือง

ม่วง

ดํา

ทอง

47 x 100

100

น้ําตาล

ดํา

น้ําตาล

ทอง

10 x 101

150

น้ําตาล

เขียว

น้ําตาล

ทอง

15 x 101

330

ส้ม

ส้ม

น้ําตาล

ทอง

33 x 101

470

เหลือง

ม่วง

น้ําตาล

ทอง

47 x 101

1k

น้ําตาล

ดํา

แดง

ทอง

10 x 102

2.2k

แดง

แดง

แดง

ทอง

22 x 102

4.7k

เหลือง

ม่วง

แดง

ทอง

47 x 102

10k

น้ําตาล

ดํา

ส้ม

ทอง

10 x 103

20k

แดง

ดํา

ส้ม

ทอง

20 x 103

56k

เขียว

น้ําเงิน

ส้ม

ทอง

56 x 103

41


1.15 การต่อตัวต้านทาน การต่อตัวต้านทานมีอยู่สองรูปแบบหลัก คือ การต่อตัวต้านทานแบบอนุกรม และการต่อตัวต้านทาน แบบขนาน และยังสามารถต่อตัวต้านทานหลายตัวแบบผสมที่ได้จากการนํามาต่อแบบอนุกรมหรือแบบขนาน 1. การต่อแบบอนุกรม (Series) การต่อตัวต้านทานแบบอนุกรม เป็นการนําปลายด้านหนึ่งของตัวต้านทานแต่ละตัว มาต่อกับอีกตัว หนึ่ง ดังรูปที่ 1.45 ส่วนปลายที่เหลือทั้งสองด้าน ก็นําไปต่อใช้งานในวงจรได้

รูปที่ 1.45: ตัวอย่างการต่อตัวต้านทานแบบอนุกรม

การต่อตัวต้านทานแบบอนุกรมนี้ จะทําให้ค่าความต้านทานโดยรวมเพิ่มขึ้น และมีค่าเท่ากับค่าของตัว ต้านทานทุกตัวรวมกัน การหาค่าความต้านทานรวม Rtotal แบบอนุกรม สามารถเขียนเป็นสมการได้ดังนี้ Rtotal = R1 + R2 + R3 + … + Rn เมื่อ

(1-7)

Rtotal หมายถึงค่าความต้านทานรวมเมื่อวัดที่ปลายทั้งสองด้าน R1, R2, R3, …, Rn หมายถึงค่าความต้านทานของแต่ละตัว

ถ้านําปลายทั้งสองไปต่อเข้ากับแบตเตอรี่หรือแหล่งจ่ายแรงดันคงที่ Vs จะทําให้มีกระแสไหล และ กระแสที่ไหลทีผ่ ่านตัวต้านทานแต่ละตัวจะมีปริมาณเท่ากัน ซึ่งเท่ากับ Vs / Rtotal และผลรวมของแรงดันตก คร่อมที่ตัวต้านทานแต่ละตัว จะเท่ากับแรงดันของแหล่งจ่าย

42


2. การต่อแบบขนาน (Parallel) การต่อตัวต้านทานแบบขนาน เป็นการนําตัวต้านทานแต่ละตัว มาต่อคร่อมขนานกันทุกตัว ตามรูปที่ 1.46 และมีจุดต่อคร่อมร่วมกัน 2 จุด

รูปที่ 1.46: ตัวอย่างการต่อตัวต้านทานแบบขนาน

การต่อตัวต้านทานแบบนี้ ทําให้ค่าความต้านทานรวมระหว่างจุดต่อคร่อมร่วมกัน มีคา่ ลดลง และการ หาค่าความต้านทานรวม Rtotal แบบขนาน สามารถเขียนเป็นสมการได้ดังนี้ 1/Rtotal = 1/R1 +1/R2 + 1/R3 + … + 1/Rn เมื่อ

(1-8)

Rtotal หมายถึงค่าความต้านทานรวม เมื่อวัดที่ปลายทั้งสองด้าน R1, R2, R3, …, Rn หมายถึงค่าความต้านทานของแต่ละตัว

ถ้านําปลายทั้งสองของตัวต้านทานที่ต่อขนานกัน ไปต่อเข้ากับแบตเตอรี่ หรือแหล่งจ่ายแรงดันคงที่ Vs จะทําให้เกิดแรงดันตกคร่อมที่ตัวต้านทานแต่ละตัวซึ่งเท่ากับแรงดันของแหล่งจ่าย และมีกระแสไหลผ่านตัว ต้านทานแต่ละตัวเท่ากับ Vs/R1, Vs/R2, …, Vs/Rn ตามลําดับ

1.16 สัญญาณทางไฟฟ้า วงจรอิเล็กทรอนิกส์ เกี่ยวข้องกับการควบคุมการไหลของอิเล็กตรอน หรือกระแสในวงจรไฟฟ้า เช่น ทิศทางและปริมาณกระแสที่ไหล การเปลีย่ นแปลงของกระแสนี้ ยังเกีย่ วข้องกับแรงดันไฟฟ้าในวงจรอีกด้วย ในทางวิศวกรรมไฟฟ้า การเปลี่ยนแปลงใช้เชิงเวลาของปริมาณทางไฟฟ้าในวงจร เช่น กระแส และ แรงดัน คือ 43


สิ่งที่เรียกว่า สัญญาณไฟฟ้า (Electrical Signals) หรือกล่าวอีกในนัยว่า วงจรอิเล็กทรอนิกส์เกี่ยวข้องกับการ ประมวลผลสัญญาณทางไฟฟ้า และนําไปใช้ในการควบคุมการทํางานอุปกรณ์อิเล็กทรอนิกส์ต่างๆ สัญญาณทางไฟฟ้า แบ่งได้เป็นสองประเภทหลักคือ  สัญญาณแอนะล็อก (Analog Signals) เป็นสัญญาณแบบต่อเนื่อง โดยทั่วไปในทางไฟฟ้าจะ หมายถึง แรงดันไฟฟ้าที่อยู่ในช่วงที่กําหนด และจะเป็นค่าใดๆ ก็ได้ ตัวอย่างของสัญญาณแบบ แอนะล็อก ได้แก่ สัญญาณไฟฟ้าที่ได้จากไมโครโฟนเมื่อมีเสียงพูด  สัญญาณดิจิทลั (Digital Signals) เป็นสัญญาณที่ถูกสร้างขึ้นมา โดยทั่วไปในทางไฟฟ้าจะหมายถึง แรงดันไฟฟ้าที่แบ่งได้เป็นสองระดับเท่านั้น คือ ระดับต่ํา (Low) และ ระดับสูง (High) สัญญาณ ประเภทนี้ เกี่ยวข้องกับการทํางานของคอมพิวเตอร์ที่ใช้งานทั่วไปในปัจจุบัน

1.17 ระบบสมองกลฝังตัว ระบบสมองกลฝังตัว (Embedded System) เป็นระบบคอมพิวเตอร์ชนิดหนึ่งที่ฝังตัวอยู่ในอุปกรณ์ อิเล็กทรอนิกส์และเครื่องใช้ไฟฟ้าต่างๆ เพื่อควบคุมการทํางานของอุปกรณ์เหล่านั้น องค์ประกอบที่สําคัญและ เป็น “สมองกล” ของระบบ คือ ไมโครคอนโทรลเลอร์ (Microcontroller) ที่มีลักษณะเป็นชิปหรือไอซีขนาด เล็ก และภายในมีการบรรจุโปรแกรมไว้ในหน่วยความจํา เพื่อทําหน้าที่ควบคุมการทํางานของฮาร์ดแวร์ส่วน ต่างๆ และเชื่อมต่อกับอุปกรณ์ที่อยู่ภายนอก ดังนั้นจึงกล่าวได้ว่า ระบบสมองกลฝังตัวเป็นการนําฮาร์ดแวร์และ ซอฟต์แวร์มารวมไว้ในชิปเดียวกัน รูปที่ 1.47 แสดงตัวอย่างของชิปไมโครคอนโทรลเลอร์ที่มีตัวถังแบบต่างๆ นอกเหนือจากไมโครคอนโทรลเลอร์แล้ว ยังต้องมีชิ้นส่วนอิเล็กทรอนิกส์อื่นๆ อีกหลายชนิดที่นํามา ประกอบรวมกัน ให้เป็นวงจรอิเล็กทรอนิกส์อยู่บนแผงวงจร หรือที่เรียกกันว่า แผ่นวงจรพิมพ์ (Printed Circuit Board: PCB) ตัวอย่างของอุปกรณ์อิเล็กทรอนิกส์ที่พบเห็นได้บ่อยในระบบสมองกลฝังตัว เช่น ตัว ต้านทาน ตัวเก็บประจุ สวิตช์ ปุ่มกด ไดโอด ไดโอดเปล่งแสง ทรานซิสเตอร์ ไอซีควบคุมแรงดัน ไอซีประเภท ต่างๆ เป็นต้น การใช้งานไมโครคอนโทรลเลอร์ ต้องอาศัยการเขียนโปรแกรมในภาษาคอมพิวเตอร์ระดับสูง (High-Level Programming Language) เช่น ภาษาซี ซึ่งเป็นภาษาที่มีการใช้งานกันอย่างแพร่หลาย ดังนั้น สามารถกล่าวได้ว่า “การเรียนรู้ทางด้านระบบสมองกลฝังตัวเพื่อนําไปใช้งานได้จริง ผู้เรียนจําเป็นต้องเรียนรู้ทั้ง ด้านฮาร์ดแวร์ เช่น ความรู้เกี่ยวกับอิเล็กทรอนิกส์ และด้านซอฟต์แวร์ เช่น การเขียนโปรแกรมโดยใช้ ภาษาคอมพิวเตอร์ เป็นต้น”

44


รูปที่ 1.47: ตัวอย่างชิปไมโครคอนโทรลเลอร์ที่มีตัวถังแบบต่างๆ

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

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

*****************************

45


46


ใบมอบหมายงานที่ 1.1 การวัดปริมาณทางไฟฟ้าด้วยมัลติมิเตอร์ วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด  เข้าใจและมีทักษะในการวัดปริมาณทางไฟฟ้า ด้วยมัลติมิเตอร์ เช่น ความต้านทาน และแรงดันตก คร่อมที่ขาทั้งสองของตัวต้านทานในวงจร เป็นต้น  ฝึกวิเคราะห์วงจรไฟฟ้าเบื้องต้น และเปรียบเทียบกับผลการทดลองที่ได้

รายการอุปกรณ์     

แผงต่อวงจร (เบรดบอร์ด) ตัวต้านทาน 150Ω ตัวต้านทาน 1kΩ สายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 ตัว 2 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. วัดค่าความต้านทานของตัวต้านทาน R1 R2 R3 แต่ละตัว (โดยยังไม่นําไปต่อบนเบรดบอร์ด) แล้วจด บันทึกลงในตารางที่ 1.1.1 เลือก R1=150Ω, R2=R3=1kΩ โดยอ่านค่าตามแถบสีของตัวต้านทาน 2. ต่อตัวต้านทาน R2 และ R3 ขนานกัน แล้วนําไปต่ออนุกรมกับตัวต้านทาน R1 ดังรูปที่ 1.1.1 3. วัดค่าความต้านทานระหว่าง 2 จุด ตามรูปที่ 1.1.2 เพื่อวัดค่าความต้านทานของ R2 และ R3 ที่ต่อ ขนานกัน (R2||R3) บนเบรดบอร์ด โดยใช้มัลติมิเตอร์ (เลือกวัดแบบโอห์มมิเตอร์) แล้วจดบันทึกค่าที่ได้ ลงในตารางที่ 1.1.2 4. วัดค่าความต้านทานระหว่าง 2 จุด ตามรูปที่ 1.1.3 เพื่อวัดค่าความต้านทานโดยรวมที่ได้จากการต่อ ตัวต้านทานทั้งสามตัว (R1 + (R2||R3)) โดยใช้มัลติมิเตอร์ (เลือกวัดแบบโอห์มมิเตอร์) แล้วจดบันทึก ค่าที่ได้ลงในตารางที่ 1.1.2 47


รูปที่ 1.1.1: ตัวอย่างการต่อตัวต้านทาน R1 R2 และ R3 บนเบรดบอร์ด

รูปที่ 1.1.2: วัดค่าความต้านทานของ R2 และ R3 ที่ต่อขนานกันบนเบรดบอร์ด

48


รูปที่ 1.1.3: วัดค่าความต้านทานรวม (R1 ต่ออนุกรมกับ R2 และ R3 ที่ต่อขนานกันบนเบรดบอร์ด)

ตัวต้านทาน R1 R2 R3

ค่าความต้านทานที่วัดได้ (Ω)

ตารางที่ 1.1.1

การวัดความต้านทาน R2 || R3 R1 + (R2 || R3)

ค่าความต้านทานที่วัดได้ (Ω)

ตารางที่ 1.1.2

49


วิเคราะห์และสรุปผลการทดลอง 1. จงเขียนสูตรคํานวณค่าความต้านทานรวมของการต่อ R2 || R3 และคํานวณค่าที่ได้ โดยการแทนค่า ของความต้านทาน R2 และ R3 ตามที่วัดได้ในตารางที่ 1.1.1 ลงในสูตรการคํานวณดังกล่าว และ อธิบายว่าผลลัพธ์ที่ได้มีค่าใกล้เคียงหรือแตกต่างจากค่าความต้านทานรวมในตารางที่ 1.1.2 อย่างไร …………………………………………………………………………………………………………………………………………... …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… 2. จงเขียนสูตรคํานวณค่าความต้านทานรวมของการต่อ R1 + (R2 || R3) และคํานวณค่าที่ได้ โดยการ แทนค่า R1 R2 และ R3 ตามที่วัดได้ในตารางที่ 1.1.1 ลงในสูตรการคํานวณดังกล่าว และอธิบายว่า ผลลัพธ์ที่ได้มีคา่ ใกล้เคียงหรือแตกต่างจากค่าความต้านทานรวมในตารางที่ 1.1.2 อย่างไร …………………………………………………………………………………………………………………………………………... …………………………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………………………

*******************

50


ใบมอบหมายงานที่ 1.2 การวัดปริมาณกระแสไฟฟ้าในวงจรด้วยมัลติมิเตอร์ วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด  เข้าใจและมีทักษะในการวัดปริมาณทางไฟฟ้าด้วยมัลติมิเตอร์ เช่น กระแสไฟฟ้าที่ไหลผ่านตัวต้านทาน ในวงจร  ฝึกวิเคราะห์วงจรไฟฟ้าเบื้องต้น และเปรียบเทียบกับผลการทดลองที่ได้

รายการอุปกรณ์      

แผงต่อวงจร (เบรดบอร์ด) ตัวต้านทาน 150Ω ตัวต้านทาน 1kΩ แบตเตอรี่ 9V พร้อมสายต่อขั้ว สายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 ตัว 2 ตัว 1 ชุด 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. ต่อตัวต้านทานทั้งสามตัวบนเบรดบอร์ด และต่อแบตเตอรี่ 9V เพื่อจ่ายกระแสให้วงจร ตามผัง วงจรไฟฟ้าในรูปที่ 1.2.1 และรูปที่ 1.2.2 แสดงตัวอย่างการต่อวงจรบนเบรดบอร์ด 2. วัดกระแส I2 ที่ไหลผ่าน R2 ตามรูปที่ 1.2.3 โดยใช้มัลติมิเตอร์ (ใช้เป็นแอมมิเตอร์) แล้วจดบันทึกค่าที่ ได้ลงในตารางที่ 1.2.1 และรูปที่ 1.2.4 แสดงตัวอย่างการวัดกระแสในวงจรบนเบรดบอร์ด 3. วัดกระแส I3 ที่ไหลผ่าน R3 ตามรูปที่ 1.2.5 โดยใช้มัลติมิเตอร์ (ใช้เป็นแอมมิเตอร์) แล้วจดบันทึกค่าที่ ได้ลงในตารางที่ 1.2.1 4. วัดกระแส I1 ที่ไหลผ่าน R1 ตามรูปที่ 1.2.6 โดยใช้มัลติมิเตอร์ (ใช้เป็นแอมมิเตอร์) แล้วจดบันทึกค่าที่ ได้ลงในตารางที่ 1.2.1 51


รูปที่ 1.2.1: ผังวงจรที่ประกอบด้วยตัวต้านทาน 3 ตัว และแบตเตอรี่

รูปที่ 1.2.2: ตัวอย่างการวางแผนการต่อวงจรบนเบรดบอร์ด

รูปที่ 1.2.3: วัดกระแสที่ไหลผ่าน R2 ด้วยแอมมิเตอร์

52


รูปที่ 1.2.4: วัดกระแสที่ไหลผ่าน R2 บนเบรดบอร์ด ด้วยแอมมิเตอร์

รูปที่ 1.2.5: วัดกระแสที่ไหลผ่าน R3 ด้วยแอมมิเตอร์

53


รูปที่ 1.2.6: วัดกระแสที่ไหลผ่าน R1 ด้วยแอมมิเตอร์

กระแสไฟฟ้า I1 I2 I3

ปริมาณกระแสไฟฟ้าที่วัดได้ (mA)

ตารางที่ 1.2.1

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า กระแส I1 ที่ไหลผ่านตัวต้านทาน R1 …………….……….. (มากกว่า / น้อยกว่า / เท่ากับ) กระแส I2 ที่ไหลผ่านตัวต้านทาน R2 และกระแส I3 ที่ไหลผ่านตัวต้านทาน R3 2. กระแส I1 มีปริมาณ …………..…………………. (ใกล้เคียงหรือเท่ากับ / แตกต่างอย่างเห็นได้ชัดจาก) ผลรวมของปริมาณของกระแส I2 และ I3 ทีว่ ัดได้ 3. กระแส I2 และ I3 ตามที่วัดได้ มีปริมาณ ……………….………………. (ใกล้เคียงหรือเท่ากัน / แตกต่าง อย่างเห็นได้ชัด)

*******************

54


ใบมอบหมายงานที่ 1.3 การต่อวงจรไอซีควบคุมแรงดันคงที่ วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด  เข้าใจและมีทักษะในการวัดปริมาณทางไฟฟ้าด้วยมัลติมิเตอร์ เช่น แรงดันตกคร่อมระหว่างสองจุดใน วงจร และกระแสไฟฟ้า  เข้าใจหลักการทํางานเบื้องต้นของวงจรควบคุมแรงดันคงที่ อ่านผังวงจรและต่อวงจรโดยใช้ไอซีเบอร์ 7805

รายการอุปกรณ์            

แผงต่อวงจร (เบรดบอร์ด) ไอซีควบคุมแรงดัน 7805 ตัวเก็บประจุแบบมีขั้ว 100uF ตัวเก็บประจุแบบมีขั้ว 10uF ตัวเก็บประจุแบบไม่มีขั้ว 100nF ตัวต้านทาน 470Ω หรือ 330Ω ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ไดโอด 1N4001 สวิตช์เลื่อนแบบ 3 ขา แบตเตอรี่ 9V พร้อมสายต่อขั้ว สายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ชุด 1 ชุด 1 เครื่อง

55


รูปที่ 1.3.1: แสดงตัวอย่างอุปกรณ์ในการทดลอง

แนะนําการใช้งานอุปกรณ์อิเล็กทรอนิกส์ ตัวเก็บประจุแบบมีขั้ว (Polarized Capacitor): ในการทดลอง สามารถเลือกใช้ตัวเก็บประจุแบบ อิเล็กโทรไลติก (Electrolytic Capacitor) และเวลาใช้งานต้องต่อขั้วให้ถูกต้อง เพราะว่ามีขั้วที่แน่นอนพิมพ์ติด ไว้ด้านข้างตัวถังที่มีลักษณะเป็นทรงกระบอก และให้สังเกตว่า ขาที่ยาวจะเป็นขั้วบวก และขาที่สนั้ จะเป็นขั้ว ลบ ตัวถังจะมีขนาดที่แตกต่างกันไปตามค่าความจุ ตัวเก็บประจุแบบไม่มีขั้ว (Non-polarized Capacitor): ในการทดลองจะเลือกใช้ตัวเก็บประจุ แบบแผ่นฟิลม์ (Film Capacitor) ซึ่งทําจากวัสดุสังเคราะห์ เช่น โพลีเอสเตอร์ (Polyester) หรือ โพลีโพรพิลีน (Polypropylene) ซึ่งมีค่าความจุคงที่ และมีให้เลือกได้ในช่วงประมาณ 1 นาโนฟารัด (nF) ถึง 1 ไมโครฟารัด (μF) ตัวเก็บประจุแบบไม่มีขวั้ อีกชนิดหนึ่งคือ ตัวเก็บประจุแบบเซรามิค (Ceramic Capacitor) มีลกั ษณะกลม แบน และสามารถเลือกใช้แทนตัวเก็บประจุแบบแผ่นฟิลม์ ได้

56


ไดโอด (Diode): เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ทําจากสารกึ่งตัวนํา (Semiconductor) มีขั้วสองขั้วคือ แอโนด (Anode หรือใช้ชื่อย่อ A) และแคโทด (Cathode หรือใช้ชื่อย่อ K) และให้สังเกตว่า ในด้านที่มีแถบ หรือเส้นสีขาวอยู่บนตัวอุปกรณ์จะเป็นขาแคโทด ไดโอดมีคุณสมบัติทสี่ าํ คัญข้อหนึ่งคือ ยอมให้กระแสไหลผ่าน เมื่อมีแรงดันตกคร่อมที่ขั้วแอโนดกับแคโทดมากพอ (เรียกว่า Forward Voltage) โดยทั่วไปแล้ว อยู่ที่ประมาณ 0.7 โวลต์ แต่ถ้าต่อกลับขั้ว จะไม่ยอมให้กระแสไหลผ่าน ดังนั้นจึงสามารถนํามาใช้บังคับหรือกําหนดทิศ ทางการไหลของกระแสในวงจรได้ ไดโอดเปล่งแสง (LED): เป็นอุปกรณ์อิเล็กทรอนิกส์ทมี่ ีสองขั้วคือ แอโนด (Anode) และแคโทด (Cathode) เช่นเดียวกับไดโอด และใช้สญ ั ลักษณ์ทางไฟฟ้าที่คล้ายกัน แต่เปล่งแสงออกมาได้เมื่อได้รับพลังงาน ไฟฟ้า และให้สังเกตว่า ขายาวจะเป็นขั้วแอโนด (A) และขาสั้นจะเป็นขั้วแคโทด (K) เมื่อมีแรงดันตกคร่อม ระหว่างขาแอโนดและแคโทดมากพอ (ในช่วง 1.8V ถึง 2.5V แล้วแต่ชนิดของอุปกรณ์) จะทําให้เกิดกระแสไหล ผ่าน จากขั้วแอโนดไปยังขั้วแคโทดและเกิดการเปล่งแสงที่มองเห็นได้ด้วยตาเปล่า ดังนั้นจึงเป็นที่มาของชื่อ อุปกรณ์ชนิดนี้ และมักเรียกชื่ออุปกรณ์ชนิดนี้อย่างย่อว่า เอลอีดี (LED: Light Emitting Diode) โดยทั่วไป แล้ว จะให้แสงเพียงสีใดสีหนึ่ง เช่น สีแดง สีเขียว เป็นต้น ความสว่างของแสงที่เปล่งออกมา จะขึ้นอยู่กับ ปริมาณกระแสที่ไหล โดยทั่วไป ไดโอดเปล่งแสงมีให้เลือกหลายขนาด โดยวัดจากเส้นผ่าศูนย์กลาง เช่น ขนาด 3 มม. และ 5 มม. เป็นต้น ปริมาณของกระแสที่ไหลผ่านตัวอุปกรณ์ควรจะอยู่ในช่วง 5mA ถึง 20 mA แต่ถ้ามี กระแสไหลในปริมาณมากกว่านี้ อาจจะทําให้อายุการใช้งานสั้นลง หรือทําให้อุปกรณ์เสียหายได้ ดังนั้นในการ ใช้งาน มักจะต่อตัวต้านทานไว้ด้วยแบบอนุกรม เพื่อป้องกันกระแสไหลผ่านที่มากเกินไป สวิตช์เลื่อน (Slide Switch): เป็นสวิตช์ไฟฟ้าที่มีสามขา นํามาใช้เป็นสวิตช์เปิดปิดในวงจรได้ การ เลื่อนสวิตช์ไปทางข้างใดข้างหนึ่ง จะเป็นการกําหนดการเชื่อมต่อระหว่างขาสองขา เช่น ระหว่างขาซ้ายกับขา กลาง หรือระหว่างขาขวากับขากลาง ไอซีควบคุมแรงดัน (Voltage Regulator): เลือกใช้ไอซีควบคุมแรงดันแบบเชิงเส้น (Linear Voltage Regulator) เบอร์ 7805 (ใช้ตัวถังแบบ TO-220) ซึ่งมีสามขาคือ ขา IN GND OUT ตามลําดับ ขา IN เป็นขาที่รับแรงดันไฟเลี้ยงเป็นอินพุต โดยทั่วไปแล้วจะอยู่ในช่วง 7 ถึง 12 โวลต์ (หรือแรงดันขาเข้าต้อง มากกว่าแรงดันออกประมาณ 2 โวลต์เป็นอย่างน้อย) และขา OUT จะได้แรงดันคงที่ 5 โวลต์ สามารถนําไป จ่ายกระแสให้วงจรที่ทํางานด้วยไฟเลี้ยง 5 โวลต์คงที่ได้ ข้อควรระวังในการใช้งานอย่างหนึ่งคือ ไม่ควรให้ไอซี จ่ายกระแสสูงเกิน 500 mA และควรมีแผ่นระบายความร้อน (Heatsink) ยึดติดกับตัวถังของไอซีด้วย เพื่อช่วย ระบายความร้อนที่เกิดขึ้น

57


รูปที่ 1.3.2: ตัวอย่างตัวเก็บประจุขนาด 100nF (ไม่มีขั้ว) 10uF และ 100 uF (มีขั้ว) ตามลําดับ

รูปที่ 1.3.3: ตัวอย่างไดโอด เบอร์ 1N4001 (จากซ้ายไปขวาเป็นขาแอโนดและขาแคโทด)

รูปที่ 1.3.4: ตัวอย่างไดโอดเปล่งแสง ขนาด 5 มม. สีแดงและสีเขียว ตามลําดับ

58


รูปที่ 1.3.5: ตัวอย่างไอซี 7805 แบบสามขา IN GND OUT (เรียงจากซ้ายไปขวาเมื่อมองด้านหน้า)

รูปที่ 1.3.6: ตัวอย่างสวิตช์เลื่อนแบบสามขา

รูปที่ 1.3.7: รูปร่างและขาของอุปกรณ์อิเล็กทรอนิกส์ต่างๆ

59


ขั้นตอนการทดลอง 1. ต่อวงจรบนเบรดบอร์ด ตามผังวงจรในรูปที่ 1.3.8 (ลองศึกษาและทําความเข้าใจตัวอย่างการวาง แผนการต่อวงจรตามรูปที่ 1.3.10) 2. วัดแรงดันของแบตเตอรี่ 9V ที่ใช้ แล้วบันทึกค่าลงในตารางที่ 1.3.1 3. วัดแรงดันที่ขาอินพุต (IN) และขาเอาต์พุต (OUT) ของไอซี 7805 เทียบกับขา GND โดยใช้มัลติมิเตอร์ (โวลต์มิเตอร์) ตามรูปที่ 1.3.9 แล้วจดบันทึกค่าที่ได้ลงในตารางที่ 1.3.1 (รูปที่ 1.3.11 และ 1.3.12 แสดงตัวอย่างการวัดแรงดันที่ขา IN เทียบกับ GND และแรงดันที่ขา OUT เทียบกับ GND ของไอซี 7805 ตามลําดับ โดยใช้มัลติมิเตอร์) 4. ต่อวงจรบนเบรดบอร์ดเพิ่มเติม (มีไดโอด 1N4001) ตามผังวงจรในรูปที่ 1.3.13 (รูปที่ 1.3.14 แสดง ตัวอย่างการวางแผนการต่อวงจรบนเบรดบอร์ด) และทดลองเลื่อนสวิตช์เปิดปิด 5. วัดแรงดันที่ขาอินพุต (IN) และขาเอาต์พุต (OUT) ของไอซี 7805 เทียบกับขา GND โดยใช้มัลติมิเตอร์ (โวลต์มิเตอร์) เมื่อไดโอดเปล่งแสงสว่าง แล้วจดบันทึกค่าที่ได้ลงในตารางที่ 1.3.1 6. วัดกระแสที่ไหลผ่านตัวไดโอดเปล่งแสง (LED1) โดยใช้มัลติมิเตอร์ (แอมมิเตอร์) แล้วบันทึกค่าที่วัดได้ 7. ทดลองต่อแบตเตอรี่ 9V กลับขั้ว (กลับทิศทางขั้วบวกขั้วลบ) แล้วสังเกตผล

รูปที่ 1.3.8: ผังวงจรสําหรับการต่อวงจรควบคุมแรงดันคงที่โดยใช้ไอซี 7805

รูปที่ 1.3.9: วัดแรงดันอินพุต (ขา IN) และแรงดันเอาต์พุต (ขา OUT) ของไอซี 7805

60


รูปที่ 1.3.10: ตัวอย่างการวางแผนต่อวงจรควบคุมแรงดันบนเบรดบอร์ด

รูปที่ 1.3.11: ตัวอย่างการต่อวงจรและวัดแรงดันอินพุตของไอซี 7805 บนแผงต่อวงจร

61


รูปที่ 1.3.12: ตัวอย่างการต่อวงจรและวัดแรงดันเอาต์พุตของไอซี 7805 บนแผงต่อวงจร

รูปที่ 1.3.13: ผังวงจรสําหรับการต่อวงจรควบคุมแรงดันคงที่โดยใช้ไอซี 7805 และมีสวิตช์เปิดปิด

62


รูปที่ 1.3.14: ตัวอย่างการวางแผนต่อวงจรควบคุมแรงดันบนแผงต่อวงจร

วงจร ไม่มีไดโอด 1N4001 มีไดโอด 1N4001

แรงดันที่ขา IN (V)

แรงดันที่ขา OUT (V)

ตารางที่ 1.3.1

รูปที่ 1.3.15: ตัวอย่างการต่อวงจรควบคุมแรงดัน (ไม่มีไดโอดและสวิตช์เปิดปิด) บนเบรดบอร์ด

63


รูปที่ 1.3.16: ตัวอย่างการต่อวงจรควบคุมแรงดัน (มีไดโอดและสวิตช์เปิดปิด) บนเบรดบอร์ด

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ถ้าใช้แบตเตอรี่ 9V ป้อนเป็นอินพุต ในวงจรทั้งสองแบบ (วงจรที่ไม่มี และ วงจร ที่มีไดโอด 1N4001) แรงดันที่วัดได้ที่ขา IN ของไอซี 7805 จะ ……………..…………… (ไม่ต่างกัน / แตกต่างกัน) และแรงดันที่วัดได้ที่ขา OUT ของไอซี 7805 จะ …….……................... (คงที่และเท่ากัน / แตกต่างกัน) 2. ถ้าต่อแบตเตอรี่ 9V กลับขั้ว (กลับทิศทางขั้วบวกขั้วลบ) เมื่อเปิดสวิตช์เพื่อจ่ายกระแส จะทําให้วงจร ……………..…………….. (ทํางานได้เหมือนเดิม / ไม่ทํางาน) และทําให้ไดโอดเปล่งแสง ……..………….……. (มีแสงสว่าง / ไม่ติด) 3. ถ้าไดโอดเปล่งแสงในวงจร มีแสงสว่าง กระแสที่ไหลผ่าน LED1 จะวัดได้ประมาณ ………………. mA

*******************

64


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

จุดประสงค์การเรียนรู้           

ระบุสิ่งที่จําเป็นในการเรียนรูแ้ ละใช้งานบอร์ด Arduino ได้ ยกตัวอย่างข้อควรระวังในการใช้งานบอร์ด Arduino ได้ อธิบายถึงขั้นตอนต่างๆ ในการเขียนโปรแกรมสําหรับบอร์ด Arduino โดยใช้ Arduino IDE ได้ สร้าง Arduino Sketch ใหม่ และเขียนโค้ดตามตัวอย่างได้ อธิบายถึงความหมายของคําว่า อินพุตและเอาต์พุตได้ จําแนกประเภทของขาต่างๆ บนบอร์ด Arduino เช่น ขาดิจิทัลและขาแอนะล็อกได้ ยกตัวอย่างประเด็นที่สําคัญในการเลือกใช้บอร์ด Arduino ได้ ยกตัวอย่างวิธีการป้อนแรงดันไฟเลี้ยงคงที่ให้บอร์ด Arduino ได้ อ่านผังวงจรอิเล็กทรอนิกส์พนื้ ฐานตามตัวอย่างที่ให้ และต่อวงจรบนเบรดบอร์ดได้ เชื่อมต่อขาสัญญาณบนบอร์ด Arduino ไปยังจุดต่างๆ ของวงจรบนเบรดบอร์ดตามผังวงจรได้ ต่อวงจรโดยใช้ไดโอดเปล่งแสง ตัวต้านทาน เพื่อแสดงสถานะจากเอาต์พุตของบอร์ด Arduino ได้

65


2.1 แนะนํา Arduino Arduino (เป็นคําในภาษาอิตาลี ซึ่งน่าจะออกเสียงว่า “อาร์-ดู-อี-โน่” หรือ “อาร์-ดุย-โน่”) เป็น แนวคิดในการสร้างสิ่งที่เรียกว่า แพลตฟอร์ม (Platform) ซึ่งประกอบด้วยฮาร์ดแวร์และซอฟต์แวร์สาํ หรับการ เชื่อมต่อคอมพิวเตอร์กับสิ่งแวดล้อมทางกายภาพและรวมถึงผู้ใช้ด้วย (หรือที่เรียกว่า Physical Computing) แนวคิดนี้เกิดจากกลุ่มนักพัฒนา ในสถานศึกษาระดับบัณฑิตศึกษาแห่งหนึ่งที่มีชื่อว่า Interaction Design Institute ในเมืองอีเวรี (Ivrea) ซึ่งอยู่ทางตะวันตกเฉียงเหนือของประเทศอิตาลี เริ่มต้นเผยแพร่ผลงานในราวปี ค.ศ. 2005 โดยมีวัตถุประสงค์คือ การสร้างฮาร์ดแวร์และซอฟต์แวร์ทเี่ ป็น Open Source (เปิดเผยโค้ด ต้นฉบับ ผังวงจรสําหรับบอร์ดไมโครคอนโทรลเลอร์ และเอกสารรายละเอียดอื่นๆ เช่น คู่มือการใช้งาน โค้ด ตัวอย่าง) ภายใต้เงื่อนไขที่กําหนดรูปแบบการนําไปเผยแพร่และพัฒนาต่อได้ เหมาะสําหรับผู้ที่ต้องการสร้าง อุปกรณ์อิเล็กทรอนิกส์เป็นต้นแบบ (Electronics Prototyping) และนําไปสูก่ ารนําเสนอผลงาน และ แลกเปลี่ยนความคิดอย่างเสรีในวงกว้าง บอร์ดไมโครคอนโทรลเลอร์ (Microcontroller Board) เป็นฮาร์ดแวร์ที่สําคัญในการสร้างอุปกรณ์ อิเล็กทรอนิกส์ที่เป็นต้นแบบ บอร์ดไมโครคอนโทรลเลอร์ Arduino ถูกออกแบบมาให้ใช้งานได้ง่าย มีราคาไม่ แพง และนําไปเชื่อมต่อกับอุปกรณ์อื่นๆ ได้ เช่น วงจรอิเล็กทรอนิกส์ในรูปแบบต่างๆ และมีซอฟต์แวร์ในการ พัฒนาโปรแกรมสําหรับบอร์ดไมโครคอนโทรลเลอร์ Arduino อีกด้วย ในปัจจุบันมีผใู้ ช้ Arduino เพิ่มขึ้นเป็นจํานวนมากจากทั่วโลก ทั้งในสถานศึกษาและนอกสถานศึกษา และมีการพัฒนาบอร์ดไมโครคอนโทรลเลอร์ตามรูปแบบของ Arduino ออกมาให้เลือกใช้อย่างหลากหลาย รวมถึงฮาร์ดแวร์ในรูปแบบต่างๆ ที่สามารถนํามาใช้งานร่วมกับบอร์ดไมโครคอนโทรลเลอร์ Arduino ได้อีกเป็น จํานวนมาก และที่เว็บไซต์ของ Arduino (URL: http://arduino.cc/) มีข้อมูลต่างๆ ที่น่าสนใจ และเป็น ประโยชน์ต่อผู้ที่สนใจเกี่ยวกับ Arduino ให้ศึกษาเพิ่มเติม ในการเริ่มต้นศึกษาการใช้งาน Arduino มีสงิ่ ที่จําเป็น ดังนี้  ฮาร์ดแวร์สําหรับ Arduino ซึ่งก็หมายถึง บอร์ดไมโครคอนโทรลเลอร์ Arduino พร้อมสาย เชื่อมต่อพอร์ต USB รวมถึงอุปกรณ์เสริมอื่นๆสําหรับ Arduino (หรือที่เรียกกันโดยทั่วไปว่า Arduino Shields) และแหล่งจ่ายไฟเลี้ยงจากภายนอก (ถ้ามี)  ซอฟต์แวร์พัฒนาโปรแกรมสําหรับ Arduino ด้วยภาษา C (มักเรียกกันโดยทั่วไปว่า Ardiuno C) บนเครื่องคอมพิวเตอร์ของผู้ใช้  ชุดทดลองต่อวงจรอิเล็กทรอนิกส์ เช่น แผงต่อวงจร (หรือที่เรียกว่า เบรดบอร์ด) ลวดสายไฟ สําหรับต่อวงจรบนเบรดบอร์ด (Hook / Jumper Wires) และอุปกรณ์อิเล็กทรอนิกส์ต่างๆ เช่น ตัวต้านทาน ไดโอดเปล่งแสง ทรานซิสเตอร์ ไอซีชนิดต่างๆ เป็นต้น (ตามตัวอย่างในรูปที่ 2.1)  เครื่องมือวัด เช่น มัลติมิเตอร์สําหรับปริมาณทางไฟฟ้า เช่น แรงดัน กระแส หรือความต้านทาน 66


รูปที่ 2.1: ตัวอย่างบอร์ด Arduino และอุปกรณ์อิเล็กทรอนิกส์อื่นๆ สําหรับทดลองต่อวงจร

2.2 ฮาร์ดแวร์สําหรับ Arduino ไมโครคอนโทรลเลอร์ (Microcontroller หรือมักใช้คําย่อว่า MCU) ก็คือ อุปกรณ์อิเล็กทรอนิกส์ ที่ทาํ หน้าที่เป็นหน่วยประมวลผลหลักตามคําสั่งของโปรแกรม ทํางานได้เสมือนคอมพิวเตอร์ขนาดเล็ก ผู้ใช้สามารถ เขียนโปรแกรมเพื่อกําหนดให้ไมโครคอนโทรลเลอร์มีพฤติกรรมในการทํางานตามต้องการได้ หรือปรับเปลี่ยน แก้ไขใหม่ได้ และยังสามารถเปลี่ยนโปรแกรมของตัว MCU ใหม่ได้หลายครั้ง โปรแกรมหรือซอฟต์แวร์ทถี่ ูกใส่ไว้ ในหน่วยความจําของไมโครคอนโทรลเลอร์ มักจะถูกเรียกว่า เฟิร์มแวร์ (Firmware) บอร์ด Arduino ทุกบอร์ด มีไมโครคอนโทรลเลอร์เป็นองค์ประกอบที่สําคัญ โดยส่วนใหญ่แล้ว จะเป็น ไมโครคอนโทรลเลอร์ขนาด 8 บิต (ประมวลผลข้อมูลพื้นฐานทีละ 8 บิต) ในตระกูล AVR ของบริษัท Atmel และบนบอร์ด Arduino ยังมีจุดเชื่อมต่อสัญญาณจากขาต่างๆ ของไมโครคอนโทรลเลอร์ มีลักษณะเป็นรูเสียบ เรียงเป็นแถวยาว และมีระยะห่างเท่ากับ 2.54 มิลลิเมตร (หรือที่เรียกว่า Female Header) เพื่อนําไปเชื่อมต่อ กับวงจรอิเล็กทรอนิกส์อื่นๆ ที่อยู่ภายนอกได้

67


ในการใช้งานบอร์ด Arduino จําเป็นต้องมีอุปกรณ์อื่นๆ มาต่อเพิ่มเติม เช่น เซนเซอร์ (Sensors) ซึง่ เป็นอุปกรณ์ที่แปลงพลังงานรูปอื่น ให้เป็นพลังงานไฟฟ้าในรูปคลื่นสัญญาณไฟฟ้า (ซึ่งหมายถึง ระดับของ แรงดันไฟฟ้าที่เปลี่ยนแปลงได้ตามเวลา) และอุปกรณ์ทางไฟฟ้าอื่นๆ เช่น ปุ่มกด หลอดไฟ มอเตอร์ไฟฟ้า เป็น ต้น โดยต่อผ่านวงจรอิเล็กทรอนิกส์ที่เหมาะสม ดังนั้นเมือ่ นําบอร์ดไมโครคอนโทรลเลอร์ Arduino มาเชื่อมต่อ กับอุปกรณ์อิเล็กทรอนิกส์อนื่ ๆ ก็สามารถทําให้เกิดความหลากหลายในการนําไปประยุกต์ใช้งานได้ ในปัจจุบันมีบอร์ดตามรูปแบบของ Arduino ให้เลือกใช้ได้อย่างหลากหลาย จากผู้ผลิตและนักพัฒนา ทั่วโลก ซึ่งก็รวมถึงประเทศไทยด้วย ตัวอย่างบอร์ดไมโครคอนโทรลเลอร์สําหรับ Arduino ที่ได้มีการรวบรวม ไว้ สามารถดูได้ที่เว็บไซต์ของ Arduino (URL: http://arduino.cc/en/Main/Hardware) รูปที่ 2.2-2.4 แสดงตัวอย่างบอร์ด Arduino Uno และ Arduino Mega (เป็นตัวอย่างบอร์ดที่นําเข้าจากต่างประเทศ) และ บอร์ด ESL Arduino (พัฒนาโดยทีมวิจัย ห้องปฏิบัติการระบบสมองกลฝังตัว ภาควิชาวิศวกรรมไฟฟ้าและ คอมพิวเตอร์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ เพื่อใช้ในการเรียนการสอน) ตามลําดับ

รูปที่ 2.2: บอร์ด Arduino Uno

68


รูปที่ 2.3: บอร์ด Arduino Mega 2560

รูปที่ 2.4: บอร์ด ESL-Arduino

69


ชิปไมโครคอนโทรลเลอร์ที่นยิ มนํามาใช้สําหรับบอร์ด Arduino ได้แก่ เบอร์ ATmega168 / 328 / 1280 และ 2560 ของบริษัท Atmel ซึ่งมีขนาดหน่วยความจําและจํานวนขาที่แตกต่างกัน ภายในชิป ไมโครคอนโทรลเลอร์เหล่านี้ จะต้องมีการบันทึกซอฟต์แวร์ที่เรียกว่า Arduino Bootloader ไว้ใน หน่วยความจําภายในแล้ว (ซึ่งแตกต่างกันไปตามรายละเอียดของบอร์ด Arduino และชิปที่ใช้) ซึง่ จะทําให้ ซอฟต์แวร์ Arduino IDE บนเครื่องคอมพิวเตอร์ สามารถติดต่อสื่อสารกับบอร์ด Arduino ผ่านทางพอร์ต USB หรือพอร์ตอนุกรมได้ (โดยอาศัยวงจรหรืออุปกรณ์ที่ทําหน้าที่แปลงพอร์ต USB ให้เป็นพอร์ตอนุกรม) สามารถ อัพโหลดโปรแกรมสําหรับบอร์ด Arduino ได้ตามต้องการ นอกเหนือจากนั้น Arduino Bootloader ยังเป็นตัวกําหนดว่า ขาใดของไมโครคอนโทรลเลอร์ จะถูก ใช้เป็นขาอินพุต-เอาต์พุตแบบดิจิทัล (Digital I/O Pins) และเป็นขาอินพุตแบบแอนะล็อก (Analog Input Pins) และจะต้องเลือกใช้ความถี่เท่าใดสําหรับการทํางานของ MCU เป็นต้น โดยทั่วไปบอร์ด Arduino จะมีขา ดิจิทัลอย่างน้อย 14 ขา (D0 - D13) และขาแอนะล็อกอีกอย่างน้อย 6 ขา (A0 - A5) ขาดิจิทัลจะใช้สําหรับสัญญาณทางไฟฟ้าแบบดิจิทัล (Digital Signals) เช่น เพื่อรับสัญญาณเข้ามาใน กรณีที่เป็นอินพุต (Input) หรือ ใช้สําหรับสร้างสัญญาณออกไปในกรณีที่เป็นเอาต์พุต (Output) และแยกได้ เป็นสองกรณีคือ ระดับต่ํา (Low) และ ระดับสูง (High) โดยแบ่งตามระดับของแรงดันที่วัดได้ ถ้าเป็นระดับต่ํา ก็หมายถึง แรงดันที่ใกล้เคียงหรือสูงกว่า 0V (หรือ GND) เพียงเล็กน้อย แต่ถ้าเป็นระดับสูง ก็หมายถึง แรงดันที่ ใกล้เคียงหรือต่ํากว่า VCC (เช่น +5V) เพียงเล็กน้อย เป็นต้น ข้อควรระวังในการใช้ขาดิจิทัลของ ไมโครคอนโทรลเลอร์ เช่น ไม่ควรต่อกับวงจรอื่นที่มีแรงดันสูงเกิน +5V หรือจ่ายกระแสให้วงจรหรืออุปกรณ์ อื่นในปริมาณมาก (โดยทั่วไป ไม่ควรให้แต่ละขาจ่ายกระแสเกิน 30mA อย่างต่อเนื่อง) ขาแอนะล็อกจะใช้สําหรับสัญญาณทางไฟฟ้าแบบแอนะล็อก (Analog Signals) ซึ่งแตกต่างจาก สัญญาณแบบดิจิทัล สัญญาณแอนะล็อก หมายถึง แรงดันในระดับใดๆ ก็ได้ที่อยูใ่ นช่วงระหว่าง 0V (หรือ GND) ถึง VCC (เช่น +5V) หรือแรงดันอื่นที่ใช้อ้างอิง (Reference Voltage)

ในการเลือกใช้บอร์ด Arduino มีประเด็นที่สําคัญ ในการพิจารณาดังนี้  ชิปไมโครคอนโทรลเลอร์ทใี่ ช้ เช่น เบอร์ของชิปที่เลือกใช้ (Part Number) ความจุของ หน่วยความจําสําหรับโปรแกรม (Program Memory) และสําหรับข้อมูล (Data Memory) ตัวถัง (Package) และจํานวนขาที่ใช้เป็นอินพุต-เอาต์พุตได้ (Number of I/O Pins)  ระดับแรงดันไฟเลี้ยงสําหรับชิปไมโครคอนโทรลเลอร์ เช่น +5V หรือ +3.3V  แหล่งจ่ายไฟเลีย้ ง เช่น จากพอร์ต USB หรือจากแหล่งจ่ายอื่นภายนอก (ถ้าใช้แรงดันไฟเลี้ยงที่สูง กว่า +5V จะต้องมีวงจรแปลงระดับแรงดันด้วย)  ความถี่ของสัญญาณนาฬิกาในการทํางานของไมโครคอนโทรลเลอร์ เช่น 8MHz หรือ 16MHz 70


 การเชื่อมต่อผ่านพอร์ต USB ของคอมพิวเตอร์ได้ เช่น มีวงจรแปลงพอร์ต USB ให้เป็นพอร์ต อนุกรม (USB-to-Serial Converter) อยู่บนบอร์ด Arduino แล้ว แต่ถ้าไม่มี จะต้องมี อุปกรณ์เสริมทีท่ ําหน้าที่ดังกล่าว จึงจะใช้งานได้  คอนเนคเตอร์ (Connector) สําหรับเชื่อมต่อพอร์ต USB เช่น Type B หรือ Mini-B  ราคา แหล่งจําหน่าย และการจัดซื้อ

บอร์ดไมโครคอนโทรลเลอร์ Arduino ถือว่าเป็นวงจรอิเล็กทรอนิกส์ประเภทหนึ่ง จําเป็นต้องมีไฟเลี้ยง (Power Supply) หรือแหล่งจ่ายไฟในการทํางาน ซึ่งมีอยู่สองตัวเลือกคือ เลือกใช้ไฟเลี้ยงจากพอร์ต USB ของ เครื่องคอมพิวเตอร์ ผ่านทางสาย USB ซึ่งจะมีแรงดันที่ +5VDC (ไฟเลี้ยงกระแสตรง) และเลือกใช้ไฟเลี้ยงจาก แหล่งจ่ายไฟเลีย้ งภายนอก (เรียกว่า External Power Supply) ซึ่งอาจจะได้จากอุปกรณ์แปลงและควบคุม ระดับแรงดันให้คงที่ เพื่อให้ได้ไฟเลี้ยงกระแสตรง +5VDC (หรือแรงดันไฟเลี้ยง +3.3VDC ซึ่งขึ้นอยู่กับบอร์ด Arduino ที่ใช้) หรืออาจจะมีวงจรในส่วนนี้รวมไว้อยู่บนบอร์ด Arduino แล้วก็ได้ รูปที่ 2.5 เป็นตัวอย่างการเชื่อมต่อระหว่างคอมพิวเตอร์กับบอร์ด Arduino ผ่านพอร์ต USB และข้อดี ของการใช้แรงดันไฟเลี้ยงจากพอร์ต USB คือ ความสะดวกในการใช้งาน และไม่จําเป็นต้องใช้อุปกรณ์อื่น แต่มี ข้อจํากัดในการจ่ายกระแส (เช่น ได้อย่างน้อย 100mA ต่อหนึ่งพอร์ต แต่ไม่เกิน 500mA หรืออาจจะต่ํากว่า นั้น) แต่ถ้าเลือกใช้แหล่งจ่ายภายนอก จะสามารถจ่ายกระแสในระดับที่สูงกว่าได้ (ซึ่งจําเป็นในกรณีที่ต้องการ ต่อวงจรอิเล็กทรอนิกส์ เพือ่ ใช้งานร่วมกับบอร์ด Arduino และอาจจะต้องใช้กระแสในปริมาณที่มากกว่าที่ พอร์ต USB จะจ่ายให้ได้) หรืออีกกรณีหนึ่งคือ การใช้แบตเตอรี่ เช่น แบตเตอรี่แบบก้อนที่มีแรงดันกระแสตรง +9V เพื่อจ่ายกระแสให้บอร์ด Arduino โดยจะต้องเชื่อมต่อผ่านวงจรแปลงและควบคุมระดับแรงดันให้เป็น +5VDC ดังนั้นก่อนเริ่มต้นใช้งานบอร์ด Arduino และจะเลือกใช้แหล่งจ่ายไฟเลี้ยงให้แก่บอร์ด โปรดศึกษาจาก คู่มือหรือเอกสารประกอบสําหรับบอร์ดที่ได้เลือกใช้งาน เพื่อหลีกเลี่ยงปัญหาการใช้งานที่ไม่ถูกต้อง หรือทําให้ เกิดความเสียหายแก่อุปกรณ์ได้ การใช้งานผ่านพอร์ต USB และเป็นแหล่งจ่ายไฟเลี้ยงให้บอร์ด Arduino มีข้อควรระวังคือ ไม่ควรให้ เกิดการจ่ายกระแสเกินหรือเกิดการลัดวงจร (เช่น มีการเชื่อมต่อระหว่าง +5VDC กับ GND โดยตรง) โดยปรกติแล้ว พอร์ต USB ของเครื่องคอมพิวเตอร์ จะมีวงจรป้องกันการจ่ายกระแสเกิน และในกรณีที่เกิดการ จ่ายกระแสเกิน จะทําให้พอร์ต USB ของคอมพิวเตอร์ หยุดการทํางานชั่วคราว เพื่อป้องกันความเสียหาย ข้อสังเกต: บอร์ด Arduino แบ่งได้เป็นสองกลุ่มหลัก โดยแบ่งตามระดับแรงดันไฟเลี้ยงของ ไมโครคอนโทรลเลอร์บนบอร์ดคือ บอร์ดที่ใช้แรงดันไฟเลี้ยง +5VDC และบอร์ดที่ใช้แรงดันไฟเลี้ยง +3.3VDC แต่ในเอกสารนี้จะกล่าวถึงบอร์ดที่ใช้แรงดันไฟเลี้ยงที่ +5VDC เท่านั้น

71


รูปที่ 2.5: ตัวอย่างการเชื่อมต่อบอร์ด Arduino กับคอมพิวเตอร์ผ่านพอร์ต USB

รูปที่ 2.6 แสดงตัวอย่างอุปกรณ์แปลงแรงดันไฟฟ้ากระแสสลับ (ไม่เกิน 230VAC) ให้เป็นแรงดัน กระแสตรงที่ประมาณ +9VDC ซึ่งเป็นการแปลงแรงดันไฟฟ้าแบบ AC ไปเป็นแบบ DC เพื่อป้อนให้กับบอร์ด Arduino Uno ซึ่งบอร์ดนี้ได้รวมวงจรแปลงแรงดันไฟเลี้ยงกระแสตรง ในช่วง +7 ถึง +12VDC ให้เป็น +5VDC ไว้แล้วสําหรับวงจรอิเล็กทรอนิกส์ที่อยู่บนบอร์ด รูปที่ 2.7 แสดงการต่อวงจรโดยใช้ไอซี 7805 บนเบรดบอร์ด เพื่อแปลงแรงดันจากแบตเตอรี่ +9VDC ให้เป็น +5VDC ซึ่งเป็นการแปลงแรงดันไฟฟ้าแบบ DC ไปเป็น DC ให้ได้แรงดันต่ําลง แล้วนําไปป้อนให้บอร์ด ESL-Arduino ซึ่งเป็นตัวอย่างของบอร์ดที่ไม่มีวงจรแปลงแรงดันกระแสตรง จากระดับที่สูงกว่าให้เป็น +5VDC ในการต่อวงจรบนเบรดบอร์ดและเชื่อมต่อกับบอร์ด Arduino มีข้อแนะนําในการปฏิบัติดังนี้  ตรวจสอบความถูกต้องของวงจรบนเบรดบอร์ดทุกครั้ง ก่อนนําไปเชื่อมต่อกับบอร์ด Arduino  ควรวางแผนการต่อวงจรก่อนต่อวงจรบนเบรดบอร์ด เพื่อหลีกเลี่ยงความผิดพลาดที่อาจจะเกิดขึ้น และช่วยลดเวลาในการต่อวงจร  ไม่ควรแก้ไขวงจรบนเบรดบอร์ด ในขณะทีม่ กี ารป้อนไฟเลี้ยงและเชื่อมต่อกับบอร์ด Arduino  ระวังมิให้ VCC และ GND เชื่อมต่อกันโดยตรง หรือใช้ลวดสายไฟเสียบสลับขั้ว

72


รูปที่ 2.6: ตัวอย่างอุปกรณ์ AC-DC Adapter เป็นแหล่งจ่ายไฟเลี้ยงกระแสตรงสําหรับบอร์ด Arduino Uno

รูปที่ 2.7: ตัวอย่างการจ่ายไฟเลี้ยง +5VDC ให้บอร์ด ESL-Arduino จาก Battery 9V โดยใช้ไอซี 7805

73


2.3 โปรแกรมพัฒนาสําหรับ Arduino ในการพัฒนาโปรแกรมสําหรับบอร์ดไมโครคอนโทรลเลอร์ Arduino จะใช้ซอฟต์แวร์ที่มีชื่อว่า Arduino Development Environment (โดยทั่วไปแล้ว จะเรียกซอฟต์แวร์ในประเภทนี้ว่า IDE: Integrated Development Environment) ซึ่งสามารถดาวน์โหลดมาใช้ได้ฟรี และมีให้เลือกหลายเวอร์ชันสําหรับ ระบบปฏิบัติการต่างๆ ซอฟต์แวร์นี้ได้ถูกพัฒนาขึ้นโดยใช้ซอฟต์แวร์ประเภท Open Source ที่มีชื่อว่า Processing (URL: http://processing.org/) เป็นพื้นฐานในการพัฒนา รูปที่ 2.8 แสดงหน้าต่างหลักของซอฟต์แวร์ Arduino IDE (เวอร์ชัน 1.0 สําหรับระบบปฏิบัติการ Windows 7) ซึ่งมีแถบเมนูคําสั่ง รวมถึงปุ่มกดที่เป็นสัญลักษณ์กราฟิกในการทําคําสั่งต่างๆ ทําให้สะดวกใน การใช้งานสําหรับผู้ใช้

รูปที่ 2.8: ตัวอย่างหน้าต่างหลัก (Main Window) ของซอฟต์แวร์ Arduino IDE

74


Arduino ใช้ภาษาโปรแกรมระดับสูง (High-Level Programming Language) ในการเขียนโค้ด (Coding) ที่ประกอบด้วยคําสั่งต่างๆ ตามโครงสร้างของภาษาคอมพิวเตอร์ระดับสูง และมีพื้นฐานมาจากภาษา C/C++ เช่น การใช้ตัวแปรในการเก็บข้อมูล ชนิดของข้อมูล ฟังก์ชัน นิพจน์ ประโยคคําสั่งพื้นฐาน เป็นต้น และ เพื่อให้ง่ายต่อการใช้งานจึงได้มีการสร้างคําสั่งต่างๆ หรือที่เรียกว่า ฟังก์ชัน (Functions) ที่เกี่ยวข้องกับการ ทํางานของไมโครคอนโทรลเลอร์ไว้ให้แล้ว ผู้เขียนโปรแกรมสามารถเรียกใช้คําสั่งเหล่านี้ได้อย่างสะดวก และไม่ จําเป็นต้องรู้รายละเอียดเชิงเทคนิคของไมโครคอนโทรลเลอร์มากนัก (สามารถศึกษาเพิ่มเติมได้ที่เว็บไซต์ http://www.arduino.cc/en/Reference/HomePage) อย่างไรก็ตาม ถ้าผู้เรียนมีประสบการณ์ในการเขียนโปรแกรมภาษา C/C++ มาบ้างแล้ว การเริ่มต้น เขียนโปรแกรมสําหรับ Arduino จึงไม่ใช่สิ่งที่ยาก การเขียนโปรแกรมด้วยภาษา Arduino C/C++ จะเริ่มต้น ด้วยการเขียนโค้ด (Coding) โดยใช้ซอฟต์แวร์ Arduino Development Environment (Arduino IDE) โปรแกรมแต่ละโปรแกรมสําหรับ Arduino จะถูกเรียกว่า Sketch จากนั้นจะต้องทําขั้นตอนในการตรวจความ ถูกต้องของโค้ดต้นฉบับ (Source Code) แล้วจึงแปลงโค้ดต้นฉบับให้อยู่ในรูปของไฟล์โปรแกรมสําหรับนําไป บันทึกลงในหน่วยความจําภายในไมโครคอนโทรลเลอร์ได้ ขนาดของไฟล์โปรแกรมที่ได้จะต้องไม่ใหญ่เกินความ จุของหน่วยความจําของไมโครคอนโทรลเลอร์ เช่น 16 หรือ 32 กิโลไบต์ (KB) เป็นต้น

รูปที่ 2.9: ตัวอย่างรายชื่อของบอร์ด Arduino ที่ใช้งานร่วมกับ Arduino IDE ได้

75


ขั้นตอนในการแปลงโค้ดต้นฉบับ เรียกว่า คอมไพล์ (Compile) โดยอาศัยสิ่งที่เรียกว่า ตัวแปลภาษา (Compiler) สําหรับภาษาซี ซึ่งเป็นส่วนหนึ่งของซอฟต์แวร์ Arduino IDE ขั้นตอนที่โปรแกรมอุปกรณ์ซึ่งก็คือ ไมโครคอนโทรลเลอร์บนบอร์ด Arduino ด้วยไฟล์โปรแกรมที่ได้จากการคอมไพล์ เรียกว่า อัพโหลด (Upload) โดยผ่านทางสาย USB หรือพอร์ตอนุกรม ในขั้นตอนอัพโหลดนี้ ซอฟต์แวร์ Arduino IDE จะติดต่อสื่อสารกับ Arduino Bootloader ที่อยู่ภายในไมโครคอนโทรลเลอร์ เพื่อทําการบันทึกโปรแกรมใหม่ลงในหน่วยความจํา และผูใ้ ช้สามารถเลือกบอร์ด Arduino ได้จากรายการที่มีอยู่ใน Arduino IDE จากเมนูคําสั่ง Tools> Board รูปที่ 2.9 แสดงรายชื่อของบอร์ด Arduino ที่สามารถใช้งานร่วมกับซอฟต์แวร์ Arduino IDE ได้

2.4 ขั้นตอนในการติดตั้งโปรแกรมพัฒนาสําหรับ Arduino ซอฟต์แวร์ Arduino Development Environment มีให้ดาวน์โหลดได้ฟรีจากเว็บไซต์ของ Arduino http://www.arduino.cc/en/Main/Software และเลือกได้ตามระบบปฏิบัติการ (OS: Operating System) ดังนี้ Microsoft Windows, Linux และ Mac OS X และจะขอกล่าวถึงขั้นตอนการลงโปรแกรม Arduino เวอร์ชัน 1.0 สําหรับระบบปฏิบัติการวินโดวส์ Windows 7 และสิ่งที่จาํ เป็นในการใช้งานโปรแกรม Arduino IDE จะต้องมีการติดตั้ง Java Runtime Environment (JRE) ไว้ในเครื่องคอมพิวเตอร์แล้ว เพราะซอฟต์แวร์ Arduino ถูกพัฒนาโดยใช้ภาษาจาวา (Java)

ขั้นตอนในการติดตั้งโปรแกรม Arduino สําหรับระบบปฏิบัติการ Windows 7 มีดังนี้ 1) ดาวน์โหลดโปรแกรม Arduino สําหรับระบบปฏิบัติการวินโดวส์ ชื่อ “arduino-1.0-windows.zip” ซึ่งเป็นไฟล์แบบ .ZIP 2) ติดตั้งโปรแกรมโดยการแตกไฟล์ .ZIP ดังกล่าว ลงในโฟลเดอร์ (Folder) ที่ต้องการ 3) ในโฟลเดอร์ ทีไ่ ด้ติดตั้งไฟล์ต่างๆของ Arduino จะมีไฟล์ชื่อ “arduino.exe” ให้เรียกไฟล์นี้เพื่อใช้งาน (เพื่อความสะดวก สามารถสร้าง Shortcut สําหรับไฟล์ดังกล่าวไว้ใน Desktop ได้)

2.5 ขั้นตอนในการทดลองใช้งานซอฟต์แวร์ Arduino IDE เอกสารในส่วนนี้ จะกล่าวถึงการทดลองใช้งานซอฟต์แวร์ Arduio IDE โดยทําตามขั้นตอนดังนี้ 1) เมื่อเรียกโปรแกรมให้ทํางานจะปรากฏหน้าต่างหลักของ Arduino IDE ตามตัวอย่างในรูปที่ 2.10 2) เชื่อมต่อบอร์ด Arduino กับเครื่องคอมพิวเตอร์ที่ใช้งาน ผ่านพอร์ต USB 3) ในกรณีที่ถามหา Device Driver ให้เลือกค้นหาไฟล์สําหรับไดร์เวอร์ในโฟลเดอร์ของ Arduino 76


4) 5) 6) 7)

เลือกบอร์ด Arduino ที่จะใช้งาน ตามที่มีอยู่ในรายการ เลือกหมายเลขพอร์ตอนุกรม (Serial Port) ให้ตรงกับพอร์ตที่กําลังเชื่อมต่ออยู่กับบอร์ด Arduino เปิดตัวอย่าง Sketch ใน File> Sketchbook> Examples> Digital> Blink ตามรูปที่ 2.11 ทําขั้นตอน Verify/Compile (ตรวจสอบความถูกต้องของโค้ด และแปลงโค้ดให้เป็นไฟล์โปรแกรม สําหรับบอร์ด Arduino) ตามรูปที่ 2.12 และขนาดของโปรแกรมที่ได้ (ในหน่วยเป็นไบต์) จะปรากฏใน บรรทัดที่เริ่มต้นด้วยข้อความว่า “Binary sketch size:” 8) ทําขั้นตอน Upload เพื่อบันทึกโปรแกรมลงในตัวไมโครคอนโทรลเลอร์ ตามรูปที่ 2.13 (ถ้าใช้บอร์ด Arduino Uno เมื่อทําขั้นตอนนี้สําเร็จแล้ว LED บนบอร์ด จะกระพริบ)

รูปที่ 2.10: ทดลองเปิด Sketch ตัวอย่างชื่อ Blink ที่มาพร้อมกับ Arduino IDE

77


รูปที่ 2.11: หน้าต่างแสดงโค้ดของ Sketch “Blink” ที่นํามาเป็นตัวอย่าง

รูปที่ 2.12: เมื่อทําขั้นตอน Verify/Compile ได้สําเร็จแล้ว จะปรากฏข้อความว่า “Done Compiling”

78


รูปที่ 2.13: แสดงขั้นตอน Upload โปรแกรมลงบอร์ด Arduino ได้สําเร็จแล้ว

2.6 ขั้นตอนการติดตั้งไดร์เวอร์อุปกรณ์ USB สําหรับบอร์ด Arduino Uno เอกสารในส่วนนี้ จะกล่าวถึงขั้นตอนในการติดตั้งไดร์เวอร์อุปกรณ์ (Device Driver) ที่ทําให้ใช้พอร์ต อนุกรมผ่านทางพอร์ต USB ได้ ภายใต้ระบบปฏิบัติการ Microsoft Windows 7 เพื่อใช้งานร่วมกับบอร์ด Arduino Uno (ในกรณีที่ใช้บอร์ดที่ไม่ใช่ Arduino Uno และจําเป็นต้องติดตั้งไดร์เวอร์อุปกรณ์ ก็มีขั้นตอนใน การติดตั้งเหมือนกัน) 1) ต่อสาย USB ระหว่างบอร์ด Arduino Uno และเครื่องคอมพิวเตอร์ที่พอร์ต USB 2) ทําคําสั่ง “arduino.exe” เพื่อเรียกโปรแกรม Arduino IDE เพื่อใช้งาน 3) ดูท่เี มนูคําสั่ง Tools> Serial Port จะเห็นว่า ยังไม่พบพอร์ตอนุกรม (Serial Port) ที่ไม่สามารถ เลือกใช้ได้กับบอร์ด Arduino Uno (ตามรูปที่ 2.14) 4) ไปที่ Device Manager (สําหรับ Windows 7) เพื่อดูรายการอุปกรณ์ของคอมพิวเตอร์ ซึ่งจะเห็น ว่า ระบบยังไม่รู้จักบอร์ด Arduino Uno (ตามรูปที่ 2.15) 5) ให้ทําขั้นตอน Update Driver Software (ตามรูปที่ 2.16) แล้วเข้าสู่กระบวนการติดตั้งไดร์เวอร์ 6) ให้เลือกค้นหาไฟล์สําหรับไดร์เวอร์ เพื่อทําการค้นหาในโฟลเดอร์ดังกล่าวทั้งหมด (ตามรูปที่ 2.17) ในตัวอย่างเป็นการระบุชื่อโฟลเดอร์ของซอฟต์แวร์ Arduino 7) เมื่อติดตั้งไดร์เวอร์ได้แล้ว (รูปที่ 2.18) จะปรากฏชื่อบอร์ด Arduino Uno พร้อมชื่อพอร์ตอนุกรม (เช่น COM4 ตามตัวอย่างในรูปที่ 2.19 และ 2.20) 79


รูปที่ 2.14: ในหน้าต่างของ Device Manager (Windows 7) แสดงอุปกรณ์ชื่อ Arduino Uno ที่ยังไม่พร้อมใช้งาน (จะต้องติดตั้งไดร์เวอร์อุปกรณ์ก่อนใช้งาน)

รูปที่ 2.15: ทําการติดตั้งหรืออัพเดท Device Driver (Windows 7) สําหรับบอร์ด Arduino Uno

80


รูปที่ 2.16: เลือกค้นหา Driver Software ในคอมพิวเตอร์โดยเจาะจง

รูปที่ 2.17: ระบุชื่อโฟลเดอร์ เพื่อให้ระบบค้นหาไฟล์สําหรับไดร์เวอร์อุปกรณ์

81


รูปที่ 2.18: หน้าต่างแสดงข้อความให้ผู้ใช้ทราบเมื่อได้ติดตั้งไดร์เวอร์อุปกรณ์แล้ว

รูปที่ 2.19: เมื่อติดตั้งไดร์เวอร์ได้แล้ว จะปรากฏชื่อพอร์ตอนุกรม (เช่น COM4) สําหรับ Arduino Uno

82


รูปที่ 2.20: ในหน้าต่างของ Arduino IDE จะปรากฏชื่อพอร์ตอนุกรม (COM4 ตามตัวอย่าง)

2.7 แหล่งข้อมูลอ้างอิงหรือศึกษาเพิ่มเติม  เว็บไซต์ของ Arduino URL: http://www.arduino.cc/

 ข้อมูลเกี่ยวกับซอฟต์แวร์ Arduino IDE URL: http://arduino.cc/en/Main/Software

 แหล่งรวบรวมตัวอย่างบอร์ด Arduino URL: http://arduino.cc/en/Main/Hardware

 แนะนําการใช้งาน Arduino URL: http://arduino.cc/en/Tutorial/HomePage

 แหล่งรวบรวมและอ้างอิงคําสั่งต่างๆ ของ Arduino URL: http://www.arduino.cc/en/Reference/HomePage

 การติดตั้งและใช้งาน Arduino กับระบบปฏิบัติการ Ubuntu 11.x URL: http://arduino.cc/playground/Linux/Ubuntu

83


สรุปเนื้อหา ในบทนี้ได้กล่าวถึง ซอฟต์แวร์และฮาร์ดแวร์ที่เกี่ยวข้องกับ Arduino การติดตั้งและใช้งานซอฟต์แวร์ Arduino IDE และขั้นตอนในการเขียนโปรแกรม การติดตั้งไดร์เวอร์เพื่อเชื่อมต่อผ่านพอร์ต USB แนะนํา ตัวอย่างของบอร์ด Arduino ที่เลือกใช้งานได้ ประเด็นที่สําคัญในการเลือกใช้บอร์ด Arduino ได้ การจําแนก ประเภทของขาต่างๆ ของบอร์ด Arduino เช่น ขาดิจิทัลและขาแอนะล็อก ในบทต่อไปจะกล่าวถึง การเริ่มต้น เขียนโค้ดในภาษา Arduino C/C++ รูปแบบการเขียนโปรแกรม และคําสั่งพื้นฐานที่เกี่ยวข้องกับการใช้งานขา อินพุต-เอาต์พุตของบอร์ด Arduino

*****************************

84


ใบมอบหมายงานที่ 2.1 วงจรไดโอดเปล่งแสงสําหรับแสดงสถานะ วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด  เข้าใจและมีทักษะในการวัดปริมาณทางไฟฟ้าด้วยมัลติมิเตอร์ เช่น แรงดันตกคร่อม และกระแสไฟฟ้า ในวงจร เป็นต้น  เข้าใจหลักการทํางานเบื้องต้นของไดโอดเปล่งแสงและนํามาใช้ในวงจรเพื่อแสดงสถานะติดหรือดับ

รายการอุปกรณ์      

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ตัวต้านทาน 220Ω 330Ω และ 470Ω อย่างละ ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 3 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. วัดค่าความต้านทานของตัวต้านทานทั้งสามตัว R1 (220Ω) R2 (330Ω) และ R3 (470Ω) ก่อนนําไป ต่อในวงจร แล้วจดบันทึกค่าลงในตารางที่ 2.1.1 2. ต่อวงจรบนเบรดบอร์ด โดยใช้ตัวต้านทาน ไดโอดเปล่งแสง และอุปกรณ์อื่นๆ ตามตัวอย่างในรูปที่ 2.1.1 และให้ได้ตามผังวงจรในรูปที่ 2.1.2 แต่ยังไม่ต้องป้อนแรงดันไฟเลี้ยง VCC และ GND ให้วงจร 3. วัดแรงดันตกคร่อมที่ขา +5V และ GND ของบอร์ด Arduino (ใช้บอร์ดที่ทํางานได้สําหรับแรงดัน +5V เท่านั้น) โดยใช้มัลติมเิ ตอร์ (เลือกย่านการวัดเป็นโวลต์มิเตอร์) และตรวจสอบดูว่า ได้แรงดัน ประมาณ 5 โวลต์ หรือไม่

85


 ในกรณีที่ไม่เลือกใช้แรงดันไฟเลี้ยงคงที่ +5V จากบอร์ด Arduino ให้ใช้แหล่งจ่ายแรงดันคงที่ ภายนอก +5V แทนได้ (หรือจะต่อวงจรโดยใช้ไอซี 7805 ก็ได้) 4. ใช้ลวดสายไฟหนึ่งเส้น เชื่อมต่อขา +5V จากบอร์ด Arduino ไปยังจุด VCC ของวงจรบนเบรดบอร์ด (ตามตัวอย่างในรูปที่ 2.1.3) 5. ใช้ลวดสายไฟอีกเส้น เชื่อมต่อขา GND จากบอร์ด Arduino ไปยังจุด GND ของวงจรบนเบรดบอร์ด (ตามตัวอย่างในรูปที่ 2.1.3) 6. วัดแรงดันตกคร่อมที่ไดโอดเปล่งแสง LED1 LED2 และ LED3 แต่ละตัวในวงจร โดยใช้มัลติมิเตอร์ (เลือกย่านการวัดเป็นโวลต์มิเตอร์) วัดที่ขาแอโนด (A) และแคโทด (K) ตามตัวอย่างในรูปที่ 2.1.4 แล้ว จดบันทึกลงค่าที่ได้ในตารางที่ 2.1.2 7. วัดปริมาณกระแสที่ไหลผ่านตัวไดโอดเปล่งแสง LED1 LED2 และ LED3 แต่ละตัวในวงจร ในทิศทาง ที่ไหลจากขาแอโนด (A) ไปยังขาแคโทด (K) ตามตัวอย่างในรูปที่ 2.1.5 โดยใช้มัลติมิเตอร์ (เลือกย่าน การวัดเป็นแอมมิเตอร์) แล้วจดบันทึกค่าที่ได้ลงในตารางที่ 2.1.2

รูปที่ 2.1.1: ตัวอย่างอุปกรณ์ในการต่อทดลอง

86


รูปที่ 2.1.2: ผังวงจรสําหรับต่อทดลองบนเบรดบอร์ด

รูปที่ 2.1.3: ตัวอย่างการป้อนแรงดันไฟเลี้ยงจากบอร์ด Arduino ไปยังวงจรบนเบรดบอร์ด

รูปที่ 2.1.4: ตัวอย่างการวัดแรงดันตกคร่อมที่ขั้วทั้งสองของ LED1

87


รูปที่ 2.1.5: ตัวอย่างการวัดกระแสที่ไหลผ่าน LED1

ตัวต้านทาน R1 R2 R3

ความต้านทานที่วัดได้ (Ω)

ตารางที่ 2.1.1

ไดโอดเปล่งแสง LED1 LED2 LED3

กระแสที่ไหลผ่าน (mA)

แรงดันตกคร่อม (V)

ตารางที่ 2.1.2

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า กระแสที่ไหลผ่านไดโอดเปล่งแสงแต่ละตัว (I1 I2 I3 สําหรับ LED1 LED2 LED3 ตามลําดับ) มีปริมาณที่แตกต่างกัน เรียงตามลําดับจากน้อยไปมากได้ดังนี้................................ 2. เมื่อนําทั้งสามกรณีมาเปรียบเทียบกัน ไดโอดเปล่งแสงที่ให้แสงสว่างมากที่สุด จะมีปริมาณกระแสไหล ผ่าน ………………………………. (มากที่สุด / น้อยที่สุด) 3. แรงดันตกคร่อมที่ไดโอดเปล่งแสงแต่ละตัว (LED1 LED2 LED3) ตามทีว่ ัดได้จริงจากการทดลอง จะ อยู่ในช่วงต่ําสุดและสูงสุดดังนี้ ………………………………….. 88


4. จงแสดงให้เห็นว่า ปริมาณทางไฟฟ้าต่างๆ ที่วัดได้จากการทดลอง สําหรับ LED1 LED2 LED3 แต่ละ ตัวนั้น เป็นไปตามสมการหรือความสัมพันธ์ต่อไปนี้หรือไม่

I = (VCC – VF) / R I VF R VCC

หมายถึง กระแสที่ไหลผ่านตัวไดโอดเปล่งแสงและตัวต้านทานที่ต่ออนุกรมกัน หมายถึง แรงดันตกคร่อมที่ตัวไดโอดเปล่งแสงที่วัดได้ หมายถึง ความต้านทานที่ต่ออนุกรมอยู่กับไดโอดเปล่งแสง หมายถึง แรงดันไฟเลี้ยงคงที่ (+5V) เมื่อเทียบกับ GND

******************************

89


90


ใบมอบหมายงานที่ 2.2 การควบคุมไดโอดเปล่งแสงสองสีด้วยบอร์ด Arduino วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด  เข้าใจหลักการทํางานเบื้องต้นของไดโอดเปล่งแสง และควบคุมการทํางานของไดโอดเปล่งแสงเพื่อ กําหนดสถานะ “ติด/ดับ” ด้วยบอร์ด Arduino  เข้าใจและปฏิบัติตามขั้นตอนการเขียนโปรแกรมโดยใช้ Arduino IDE และสามารถสร้างโปรแกรม สําหรับบอร์ด Arduino เพื่อนําไปทดสอบการทํางานร่วมกับวงจรบนเบรดบอร์ดได้

รายการอุปกรณ์       

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ไดโอดเปล่งแสงสีแดง (Red) ขนาด 5 มม. ไดโอดเปล่งแสงสีเขียว (Green) ขนาด 5 มม. ตัวต้านทาน 330Ω สวิตช์เลื่อนแบบสามขา ลวดสายไฟสําหรับต่อวงจร

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 2 ตัว 1 ตัว 1 ชุด

ขั้นตอนการทดลอง 1. ต่อวงจรบนเบรดบอร์ด ตามผังวงจรในรูปที่ 2.2.1 (แต่ยังไม่ต้องป้อนแรงดันไฟเลี้ยง VCC และ GND) 2. ต่อขา +5V และขา GND จากบอร์ด Arduino ไปยัง VCC และ GND ของวงจรบนเบรดบอร์ด ตามลําดับ โดยใช้ลวดสายไฟสองเส้น (ระวังการต่อสลับขั้วทั้งสอง) 3. สังเกตสถานะ “ติด/ดับ” ของไดโอดเปล่งแสง ทั้งสีแดงและสีเขียว แล้วจดบันทึกผลสถานะ “ติด/ ดับ” ของไดโอดเปล่งแสงทั้งสอง ลงในตารางที่ 2.2.1

91


4. เชื่อมต่อด้วยลวดสายไฟจากจุด IN ไปยัง GND ในวงจรบนเบรดบอร์ด สังเกตแล้วจดบันทึกผลสถานะ “ติด/ดับ” ของไดโอดเปล่งแสงทั้งสอง ลงในตารางที่ 2.2.1 หลังจากนั้น ให้ดึงลวดสายไฟออก (จะต้องไม่มีการเชื่อมต่อทางไฟฟ้าระหว่างจุด IN และจุด GND) 5. เชื่อมต่อด้วยลวดสายไฟจากจุด IN ไปยัง VCC ในวงจรบนเบรดบอร์ด สังเกตแล้วจดบันทึกผลสถานะ “ติด/ดับ” ของไดโอดเปล่งแสงทั้งสอง ลงในตารางที่ 2.2.2 หลังจากนั้น ให้ดึงลวดสายไฟออก (จะต้องไม่มีการเชื่อมต่อทางไฟฟ้าระหว่างจุด IN และจุด VCC) 6. ต่อสวิตช์เลื่อนแบบสามขา (S1) ตามผังวงจรในรูปที่ 2.2.2 และ 2.2.3 จากนั้นให้ทดลองเลื่อน ตําแหน่งของสวิตช์ไปมาหลายๆ ครั้ง แล้วสังเกตการเปลี่ยนแปลงที่ไดโอดเปล่งแสงทั้งสอง จากนั้นให้ ถอดสวิตช์ออกจากวงจร 7. เปิดโปรแกรม Arduino IDE แล้วทําขั้นตอนย่อยดังนี้ 7.1 สร้าง Sketch ขึ้นมาใหม่ แล้วบันทึกไฟล์โดยใช้ชื่อ “sketch_lab2_2” 7.2 เขียนโค้ดสําหรับบอร์ด Arduino ตามตัวอย่างที่ให้ในรูปที่ 2.2.4 สําหรับ Sketch ที่ได้สร้าง ขึ้นมาใหม่ ให้ถูกต้องและครบถ้วน แล้วบันทึกลงไฟล์ (Save) 7.3 ทําขั้นตอนตรวจสอบโค้ด (Verify) ถ้าพบปัญหา ให้แก้ไขโค้ดให้ถูกต้องตามตัวอย่าง 7.4 ในกรณีที่ยังไม่ได้เชื่อมต่อ ให้เชื่อมต่อบอร์ด Arduino กับคอมพิวเตอร์ด้วยสาย USB และ เลือกหมายเลขพอร์ตให้ถูกต้อง 7.5 ทําขั้นตอนอัพโหลด (Upload) เพื่อใส่โปรแกรมที่ได้ลงในไมโครคอนโทรลเลอร์ที่อยูบ่ นบอร์ด Arduino จากนั้นไมโครคอนโทรลเลอร์จะเริ่มต้นทํางานด้วยโปรแกรมใหม่ 8. เชื่อมต่อขา D5 จากบอร์ด Arduino ไปยังจุด IN ของวงจรบนเบรดบอร์ด รวมทั้งไฟเลี้ยง +5VC และ GND ตามผังวงจรในรูปที่ 2.2.5 และ 2.2.6 แล้วสังเกตการเปลี่ยนแปลงที่ไดโอดเปล่งแสงทั้งสอง

รูปที่ 2.2.1: ผังวงจรสําหรับต่อทดลองบนเบรดบอร์ด

92


รูปที่ 2.2.2: ตัวอย่างการเชื่อมต่อสวิตช์เลื่อนแบบสามขากับวงจรบนเบรดบอร์ด

รูปที่ 2.2.3: ผังวงจรแสดงการเชือ่ มต่อสวิตช์เลื่อนแบบสามขา

93


// Arduino Code for Lab 2.2 const byte D5_PIN = 5; int DELAY_MS = 500; void setup() { pinMode( D5_PIN, OUTPUT ); } void loop() { digitalWrite( D5_PIN, HIGH ); delay( DELAY_MS ); digitalWrite( D5_PIN, LOW ); delay( DELAY_MS ); }

รูปที่ 2.2.4: ตัวอย่างโค้ดสําหรับ Arduino เพื่อสร้างสัญญาณเอาต์พุตที่ขา D5

รูปที่ 2.2.5: ตัวอย่างการเชื่อมต่อขา D5 ไปยังวงจรบนเบรดบอร์ด (รวมทั้ง +5V และ GND ด้วย)

94


รูปที่ 2.2.6: ผังวงจรแสดงการเชือ่ มต่อระหว่างบอร์ด Arduino และวงจรบนเบรดบอร์ด

รูปที่ 2.2.7: ตัวอย่างอุปกรณ์ในการทดลอง

95


รูปที่ 2.2.8: ตัวอย่างการต่อวงจรบนเบรดบอร์ด (กรณีที่ใช้สวิตช์เลื่อนแบบสามขา)

รูปที่ 2.2.9: ตัวอย่างการต่อวงจรบนเบรดบอร์ด (กรณีที่ใช้สัญญาณเอาต์พุต D5 จากบอร์ด Arduino)

96


การเชื่อมต่อทีจ่ ุด IN

สถานะของ LED1 สีเขียว (ติด/ดับ)

สถานะของ LED2 สีแดง (ติด/ดับ)

ยังไม่มีการเชื่อมต่อใดๆ เชื่อมต่อกับ GND เชื่อมต่อกับ VCC (+5V) ตารางที่ 2.2.1

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า เมื่อไม่มีการเชื่อมต่อจุด IN ในวงจร ไดโอดเปล่งแสงสีแดงจะ ….……………… (ติด/ดับ) และ ไดโอดเปล่งแสงสีเขียวจะ …………..……… (ติด/ดับ) 2. จงระบุสถานะ “ติด/ดับ” ของไดโอดเปล่งแสงสีเขียวและสีแดง เมื่อใช้สวิตช์เลื่อนสามขาในวงจร (อธิบายพฤติกรรมการทํางาน เมื่อเลื่อนตําแหน่งสวิตช์ไปมา) ………………………………………………… ……………………………………………………………………………………………………………….………………………. ……………………………………………………………………………………………………………………………..………… 3. จงระบุสถานะ “ติด/ดับ” ของไดโอดเปล่งแสงสีเขียวและสีแดง เมื่อเชื่อมต่อขา D5 จากบอร์ด Arduino (เมื่อใช้โปรแกรมตามโค้ดตัวอย่าง) …………………………………………..………………………….. ………………………………………………………………………………………………………………………………….…… 4. การใช้บอร์ด Arduino ที่ทํางานตามโค้ดตัวอย่าง เพื่อควบคุมการเปลี่ยนสถานะ “ติด/ดับ” ของ ไดโอดเปล่งแสงในวงจร ให้ผลเหมือนหรือต่างจากการใช้สวิตช์เลื่อนอย่างไร จงอธิบาย ………….. ……………………………………………………………………………………………………………………………………... ………………………………………………………………………………………………………………………………………

******************************

97


98


ใบมอบหมายงานที่ 2.3 การควบคุมไดโอดเปล่งแสงสามดวงด้วยบอร์ด Arduino วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด  เข้าใจหลักการทํางานเบื้องต้นของไดโอดเปล่งแสง และควบคุมการทํางานของไดโอดเปล่งแสงหลาย ดวง เพื่อกําหนดสถานะ “ติด/ดับ” ด้วยบอร์ด Arduino  เข้าใจและปฏิบัติตามขั้นตอนการเขียนโปรแกรมโดยใช้ Arduino IDE และสามารถสร้างโปรแกรม สําหรับบอร์ด Arduino เพื่อนําไปทดสอบการทํางานร่วมกับวงจรบนเบรดบอร์ดได้

รายการอุปกรณ์     

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ตัวต้านทาน 330Ω ลวดสายไฟสําหรับต่อวงจร

1 อัน 1 บอร์ด 3 ตัว 3 ตัว 1 ชุด

ขั้นตอนการทดลอง 1. เปิดโปรแกรม Arduino IDE แล้วทําขั้นตอนย่อยดังนี้ เพื่อเขียนโค้ดสําหรับบอร์ด Arduino 1.1 สร้าง Sketch ขึ้นมาใหม่ แล้วบันทึกไฟล์โดยใช้ชื่อ “sketch_lab2_3” 1.2 เขียนโปรแกรมสําหรับบอร์ด Arduino ตามโค้ดตัวอย่างที่ 2.3.1 สําหรับ Sketch ที่ได้สร้าง ขึ้นมาใหม่ ให้ถูกต้องและครบถ้วน แล้วบันทึกลงไฟล์ (Save) 1.3 ทําขั้นตอนตรวจสอบโค้ด (Verify) ถ้าพบปัญหา ให้แก้ไขโค้ดให้ถูกต้องตามตัวอย่าง 1.4 ในกรณีที่ยังไม่ได้เชื่อมต่อ ให้เชื่อมต่อบอร์ด Arduino กับคอมพิวเตอร์ด้วยสาย USB และ เลือกหมายเลขพอร์ตให้ถูกต้อง

99


1.5 ทําขั้นตอนอัพโหลด (Upload) เพื่อใส่โปรแกรมที่ได้ลงในไมโครคอนโทรลเลอร์ที่อยูบ่ นบอร์ด Arduino จากนั้นไมโครคอนโทรลเลอร์จะเริ่มต้นทํางานโดยใช้โปรแกรมใหม่ 2. ต่อวงจรบนเบรดบอร์ด โดยใช้อุปกรณ์ตามตัวอย่างในรูปที่ 2.3.1 และให้ได้ตามผังวงจรในรูปที่ 2.3.2 แต่ยังไม่ต้องต่อ +5V และ GND จากบอร์ด Arduino ไปยังวงจรบนเบรดบอร์ด 3. เชื่อมต่อเฉพาะขา GND จากบอร์ด Arduino ไปยัง GND ของวงจรบนเบรดบอร์ด โดยใช้ลวดสายไฟ หนึ่งเส้น ตามตัวอย่างที่ 2.3.3 (สําหรับวงจรในการทดลองนี้ ไม่จําเป็นต้องใช้ +5V จากบอร์ด Arduino เพื่อป้อนให้วงจรบนเบรดบอร์ด) แล้วสังเกตการเปลี่ยนแปลงทีไ่ ดโอดเปล่งแสงแต่ละดวง

// Arduino Code for Lab 2.3 const byte D5_PIN = 5; const byte D6_PIN = 6; const byte D7_PIN = 7; byte count = 0; void setup() { pinMode( D5_PIN, OUTPUT ); pinMode( D6_PIN, OUTPUT ); pinMode( D7_PIN, OUTPUT ); } void loop() { count++; digitalWrite( D5_PIN, (count > 63) ); digitalWrite( D6_PIN, (count > 127) ); digitalWrite( D7_PIN, (count > 191) ); delay( 10 ); }

โค้ดตัวอย่างที่ 2.3.1: โค้ดสําหรับ Arduino เพื่อสร้างสัญญาณออกที่ขา D5 D6 D7

100


รูปที่ 2.3.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 2.3.2: ผังวงจรในการต่อวงจรสําหรับการทดลอง

101


รูปที่ 2.3.3: แสดงตัวอย่างการวางแผนต่อวงจรบนเบรดบอร์ดและบอร์ด Arduino

รูปที่ 2.3.4: ตัวอย่างการต่อวงจรบนเบรดบอร์ดและเชื่อมต่อกับบอร์ด Arduino

102


วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ไดโอดเปล่งแสงทั้งสามดวงในวงจร มีลักษณะและลําดับการ “ติด/ดับ” ดังนี้ (ให้อธิบายตามที่ได้สังเกตเห็น) …………….…………………………………………………………………... ……………………………………….…………………………………………………………………………………………….. …………………………………………………………………………………………………………………………………….. 2. จากการสังเกต สามารถสรุปได้ว่า สถานะของการ “ติด/ดับ” ของไดโอดเปล่งแสงทั้งสามมีอยู่ ...................... กรณีที่แตกต่างกัน ตามตารางต่อไปนี้ LED1 (ติด/ดับ)

LED2 (ติด/ดับ)

LED3 (ติด/ดับ)

ตารางที่ 2.3.1

******************************

103


104


บทที่ 3 การใช้งานขาอินพุต-เอาต์พุตของบอร์ด Arduino สาระการเรียนรู้ บอร์ด Arduino มีขาต่างๆ สําหรับนําไปเชื่อมต่อกับวงจรภายนอกได้ด้วยสัญญาณทางไฟฟ้า ซึ่งแบ่ง ได้เป็นสองประเภทคือ สัญญาณดิจิทัลและแอนะล็อก โดยใช้เป็นสัญญาณอินพุตหรือเอาต์พุต ตามทิศทางของ สัญญาณที่เข้าหรือออกจากไมโครคอนโทรลเลอร์ ผู้ใช้สามารถเขียนโปรแกรมควบคุมการทํางานของขาต่างๆ ของบอร์ด Arduino ได้โดยใช้คําสั่งที่ได้มีการจัดทําไว้แล้วโดยทีมพัฒนา Arduino ดังนั้นการเรียนรู้และเข้าใจ ประเภทของสัญญาณไฟฟ้า การเชื่อมต่อขาสัญญาณต่างๆ บนบอร์ด Arduino ข้อควรระวังในการใช้งาน และ การใช้คําสั่งที่เกี่ยวข้องกับขาสัญญาณต่างๆ ในภาษา Arduino C/C++ จึงเป็นสิ่งสําคัญ

จุดประสงค์การเรียนรู้             

อธิบายถึงความแตกต่างระหว่างสัญญาณดิจิทัลและสัญญาณแอนะล็อกได้ ระบุขาต่างๆ ของบอร์ด Arduino แยกตามลักษณะการใช้งานได้ อธิบายถึงความแตกต่างระหว่างการจ่ายกระแสและการรับกระแสของขาดิจิทัล-เอาต์พุตได้ อธิบายถึงลักษณะของสัญญาณแบบ PWM (Pulse Width Modulation) ได้ อธิบายถึงการใช้ปุ่มกด เพื่อสร้างสัญญาณดิจิทัลได้ อธิบายถึงการใช้ตัวต้านทานปรับค่าได้ เพื่อสร้างสัญญาณแอนะล็อกได้ อธิบายถึงการแปลงจากแอนะล็อกเป็นดิจิทัล สําหรับการอ่านค่าที่ขาแอนะล็อกได้ ยกตัวอย่างข้อควรระวังในการเชื่อมต่อขาของบอร์ด Arduino กับวงจรภายนอกได้ เขียนโค้ดในภาษา Arduino C/C++ ตามโครงสร้างพื้นฐานได้ อธิบายถึงความหมายและการทํางานของฟังก์ชัน setup() และ loop() ได้ ใช้คําสั่งในการอ่านค่าจากขาดิจิทัล-อินพุต หรือเขียนค่าให้ขาดิจิทัล-เอาต์พุตได้ ใช้คําสั่งในการอ่านค่าที่เป็นข้อมูลดิจิทัล จากขาแอนะล็อก-อินพุตได้ ใช้คําสั่งในการสร้างสัญญาณแบบ PWM ได้

105


3.1 ประเภทของสัญญาณไฟฟ้า สัญญาณไฟฟ้าแบ่งออกได้เป็นสองประเภทหลักคือ สัญญาณแอนะล็อก (Analog Signals) และ สัญญาณดิจิทลั (Digital Signals) รูปที่ 3.1 แสดงตัวอย่างของสัญญาณแอนะล็อกจากอุปกรณ์ที่เรียกว่า เซนเซอร์ (Sensors) ประเภทต่างๆ ซึ่งทําหน้าที่แปลงพลังงานรูปอื่นให้เป็นปริมาณทางไฟฟ้า เช่น เซนเซอร์วัด ความเข้มแสง เซนเซอร์วัดอุณหภูมิ เซนเซอร์วัดระดับน้ําในถังบรรจุ และเซนเซอร์วัดความเร็วลม หรือ ความเร็วรอบในการหมุนของกังหันลม เป็นต้น เซนเซอร์เหล่านี้เป็นตัวอย่างของอุปกรณ์อิเล็กทรอนิกส์ที่สร้าง สัญญาณเอาต์พุตแบบแอนะล็อกได้ ซึ่งหมายถึงแรงดันไฟฟ้าที่เปลี่ยนแปลงค่าได้ตามเวลา และเป็นสัญญาณที่ ต่อเนื่อง แต่ระดับแรงดันที่ได้จะต้องอยู่ในช่วงแรงดันต่ําสุดและสูงสุดตามที่กําหนดไว้ เช่น ในช่วงระหว่าง GND (0V) ถึง VCC (+5V) ซึ่งเป็นแรงดันไฟเลี้ยงที่เป็นบวกของอุปกรณ์เซนเซอร์ แต่ทั้งนี้ก็ขึ้นอยู่กับอุปกรณ์ เซนเซอร์แต่ละชนิดที่ได้เลือกใช้งาน

รูปที่ 3.1: ตัวอย่างสัญญาณไฟฟ้าแบบแอนะล็อกที่ได้จากปริมาณทางกายภาพ

เมื่อกล่าวโดยทั่วไป สัญญาณแอนะล็อก เป็นสัญญาณทีต่ ่อเนื่องและเปลี่ยนแปลงได้ตามเวลา แต่มคี ่า หรือที่เรียกว่า แอมพลิจูด (Amplitude) อยู่ในช่วงแรงดันที่กําหนดไว้ และแตกต่างจากสัญญาณดิจทิ ัลที่มีการ แบ่งแรงดันไฟฟ้าเป็นสองช่วงเท่านั้นที่สามารถใช้งานได้คือ ช่วงระดับต่ํา (LOW) และช่วงระดับสูง (HIGH) 106


เมื่ออ่านค่าของสัญญาณดิจิทลั หนึ่งช่องที่ขาอินพุตของไมโครคอนโทรลเลอร์ที่เวลาใดๆ จะได้ค่าทาง ลอจิก (Logical Value) เป็น ‘0’ (หรือ LOW) หรือ ‘1’ (หรือ HIGH) อย่างใดอย่างหนึ่ง และถือว่าเป็นข้อมูล ขนาดหนึ่งบิต (Bit) แต่ถา้ เป็นการอ่านค่าของสัญญาณแอนะล็อกทีข่ าอินพุต จะต้องมีขั้นตอนในการแปลง ระดับแรงดันไฟฟ้าขณะเวลานั้น ให้เป็นข้อมูลดิจิทัล ซึ่งจะได้เป็นข้อมูลขนาดหลายบิต (ได้ค่าเป็นเลขจํานวน เต็ม เช่น ขนาด 10 บิต ที่มคี ่าอยู่ในช่วง 0 ถึง 1023) ก่อนนําไปประมวลผลต่อไปโดยไมโครคอนโทรลเลอร์ และเรียกขั้นตอนนี้ว่า การแปลงจากแอนะล็อกเป็นดิจิทัล (ADC: Analog-to-Digital Conversion) รูปที่ 3.2 แสดงตัวอย่างของรูปคลื่นสัญญาณดิจิทัล ซึ่งแรงดันไฟฟ้าอยู่ในระดับต่ําหรือระดับสูงอย่าง ใดอย่างหนึ่ง และในบางขณะเวลาจะมีการเปลี่ยนระดับ (Level Transition) อย่างรวดเร็ว จากระดับต่ําไปสูง (LOW-to-HIGH Transition) หรือจากระดับสูงไปต่ํา (HIGH-to-LOW Transition) โดยทั่วไปแล้ว สัญญาณไฟฟ้าอาจจะได้รับผลกระทบ หรือถูกรบกวนจากปัจจัยภายนอกซึ่งเกิดขึ้นได้ตามธรรมชาติ และส่งผล ให้สญ ั ญาณมีระดับแรงดันไม่คงที่ (แอมพลิจูดของสัญญาณไฟฟ้ามีการเปลี่ยนแปลงไม่คงที่ตลอดเวลา) แต่ถ้า สัญญาณรบกวน (Noise) มีผลกระทบไม่มาก และแม้ว่าแอมพลิจูดของสัญญาณไฟฟ้าจะมีการเปลี่ยนแปลง บ้าง แต่ถ้ายังคงอยู่ในช่วงที่กําหนด ก็จะไม่ทําให้เกิดความผิดพลาดในการอ่านค่าเพื่อนําไปประมวลผลต่อไป

รูปที่ 3.2: ตัวอย่างรูปคลื่นของสัญญาณดิจิทัล (กรณีที่ไม่มีและมีสัญญาณรบกวนเล็กน้อย)

107


3.2 ขาอินพุตและเอาต์พตุ ของบอร์ด Arduino ขาที่ตัวถังของไมโครคอนโทรลเลอร์ มีไว้สําหรับเชื่อมต่อกับอุปกรณ์ หรือวงจรอิเล็กทรอนิกส์ภายนอก เช่น เพื่อการรับส่งข้อมูลหรือควบคุมวงจรอื่นด้วยสัญญาณไฟฟ้า และจําแนกได้ตามประเภทของสัญญาณทาง ไฟฟ้าเป็นสองประเภท คือ ขาดิจิทัล และขาแอนะล็อก นอกจากนั้นยังจําแนกได้อีกตามทิศทางของสัญญาณ คือ ขาอินพุต (ทิศทางของสัญญาณเข้าสูต่ ัวชิป) และขาเอาต์พุต (ทิศทางของสัญญาณออกจากตัวชิป) ตาม ตัวอย่างในรูปที่ 3.3

รูปที่ 3.3: รูปแบบของสัญญาณไฟฟ้าอินพุตหรือเอาต์พุตสําหรับไมโครคอนโทรลเลอร์

โดยทั่วไปแล้ว ขาของไมโครคอนโทรลเลอร์จํานวนหนึ่ง จะถูกใช้เป็นขาดิจิทัลหรือขาแอนะล็อกได้ ซึ่ง ขึ้นอยู่กับการกําหนดรูปแบบการใช้งานเมื่อเขียนโปรแกรม ส่วนขาอีกจํานวนหนึ่ง จะใช้เป็นขาดิจิทัลได้เท่านั้น และยังมีขาอื่นๆ ทีใ่ ช้เฉพาะงานหรือวัตถุประสงค์ และไม่สามารถใช้เป็นขาอินพุตหรือเอาต์พุตได้ เช่น ขา สําหรับป้อนแรงดันไฟเลี้ยงคงที่ VCC และขา GND ให้ตัวชิป สําหรับรายละเอียดเกี่ยวกับการใช้ขาต่างๆ จะต้องศึกษาจากเอกสารที่ให้ข้อมูลเชิงเทคนิคเกี่ยวกับไมโครคอนโทรลเลอร์ที่ได้เลือกใช้ หรือที่เรียกว่า ดาต้า ชีท (Datasheet) ของผู้ผลิต สามารถสืบค้นได้ทางอินเทอร์เน็ต และดาวน์โหลดได้ฟรีจากเว็บไซต์ของผู้ผลิต ข้อควรระวังในการเชื่อมต่อขาไมโครคอนโทรลเลอร์ทสี่ ําคัญคือ การหลีกเลี่ยงการป้อนสัญญาณไฟฟ้า ที่มีแรงดันต่ํากว่า 0V (แรงดันเป็นลบ) หรือสูงกว่า +5V (ในกรณีทใี่ ช้แรงดันไฟเลี้ยงคงที่ VCC เท่ากับ +5V) เพราะอาจจะทําให้เกิดความเสียหายแก่อปุ กรณ์ได้ รูปที่ 3.4 แสดงตัวอย่างสัญญาณไฟฟ้าที่มีแรงดันเหมาะสม (ด้านซ้ายมือ) และไม่เหมาะสม (ด้านขวามือ) สําหรับขาอินพุตของไมโครคอนโทรลเลอร์

108


รูปที่ 3.4: ตัวอย่างสัญญาณไฟฟ้าที่มีแรงดันเหมาะสมและไม่เหมาะสมสําหรับขาอินพุต

เพื่อให้ง่ายต่อการใช้งาน ผู้พัฒนาบอร์ด Arduino ได้กําหนดรูปแบบการใช้งานของขาหรือจุดเชื่อมต่อ สัญญาณไว้แล้ว (สังเกตดูได้ที่ด้านบนของบอร์ด Arduino จะมีตัวหนังสือเขียนกํากับเอาไว้อย่างชัดเจน) แบ่ง ได้เป็นกลุ่มต่างๆ ดังนี้ (อ้างอิงตามบอร์ด Arduino Uno)  ขาอินพุต-เอาต์พุตแบบดิจิทัล โดยตั้งชื่อเป็น D0-D13 (รวม 14 ขา) บางขาของขาดิจิทัลนี้ จะใช้ สําหรับสร้างสัญญาณเอาต์พุตแบบ PWM (Pulse Width Modulation) และบางขาจะใช้ เชื่อมต่อกับคอมพิวเตอร์แบบอนุกรม (ขา Rx และ Tx ซึ่งตรงกับขาดิจิทัลหมายเลข 0 และ 1)  ขาอินพุตแบบแอนะล็อก โดยตั้งชื่อเป็น A0-A5 (รวม 6 ขา) และขาแรงดันอ้างอิง (AREF)  ขาแรงดันไฟเลี้ยงคงที่ +5V +3.3V และ GND และสามารถนําไปป้อนให้วงจรอื่นได้ (ใช้เป็น แรงดันไฟเลี้ยง)  ขา ICSP (In-Circuit Serial Programming) 6 ขา สําหรับอัพโหลดโปรแกรม Arduino Bootloader ลงในตัวชิปไมโครคอนโทรลเลอร์  ขา SCL และ SDA สําหรับเชื่อมต่อกับไอซีบางประเภท ตามรูปแบบที่เรียกว่า I2C หรือ Two Wire Interface (TWI)

อย่างไรก็ตาม ในการทดลองใช้งานบอร์ด Arduino และเชื่อมต่อกับวงจรบนเบรดบอร์ด จะใช้เพียงขา ไฟเลี้ยงคงที่ +5V และ GND ขาดิจิทัล และขาแอนะล็อกอินพุตเท่านั้น ขาสําหรับ ICSP ไม่จําเป็นต้องใช้ (ยกเว้นแต่ในกรณีที่ต้องการอัพเดท Bootloader ให้บอร์ด Arduino ใหม่อีกครั้ง) 109


3.3 การใช้งานขาดิจิทัลเป็นเอาต์พตุ เมื่อขาดิจิทัลของไมโครคอนโทรลเลอร์ได้ถูกกําหนดให้เป็นเอาต์พุต และนําไปต่อกับวงจรภายนอก อาจจะมีการจ่ายกระแส (Current Source) หรือ รับกระแส (Current Sink) เกิดขึ้นได้ ทั้งนี้ก็ขึ้นอยู่กับสถานะ ทางลอจิก (LOW หรือ HIGH) ที่ขาเอาต์พุตในขณะนั้นด้วย ถ้าสถานะของเอาต์พุตเป็นลอจิก LOW จะได้ แรงดันประมาณ 0V (GND ของวงจร) และได้แรงดันประมาณ +5V ถ้าสถานะของเอาต์พุตเป็นลอจิก HIGH ข้อควรระวังในการใช้งานขาดิจิทัลเป็นเอาต์พุต คือ หลีกเลี่ยงการจ่ายกระแสหรือรับกระแสในปริมาณ ที่สูงเกินกว่าระดับที่ทนได้ ขาดิจิทัลบนบอร์ด Arduino จะทนกระแสสูงสุดได้ไม่เกิน 40mA โดยประมาณ (สําหรับชิปในตระกูล ATmega-AVR ของบริษัท Atmel Corp.) ถ้ามีกระแสไหลผ่านขาแต่ละขามากเกินไป จะส่งผลให้ระดับแรงดันที่ขาเอาต์พุตไม่ถูกต้อง หรือทําให้เกิดความเสียหายแก่ตัวชิปได้ รูปที่ 3.5 แสดงตัวอย่างการใช้ขาดิจิทัลของไมโครคอนโทรลเลอร์เป็นเอาต์พุต ต่อกับตัวต้านทาน (R) และไดโอดเปล่งแสง (LED) แบบอนุกรมกัน และต่อไปยังจุด GND เมื่อขาเอาต์พุตมีสถานะทางลอจิกเป็น HIGH ระดับแรงดันที่ได้จะใกล้เคียงแรงดันไฟเลี้ยงที่เป็นบวก VCC (+5V) จึงทําให้เกิดกระแสไหลจากขา เอาต์พุตนั้นผ่านตัวต้านทานและไดโอดเปล่งแสงไปยังจุด GND เนื่องจากมีความต่างศักย์ที่มากพอระหว่างขา เอาต์พุตของไมโครคอนโทรลเลอร์และจุด GND ของวงจร และส่งผลให้ไดโอดเปล่งแสงอยู่ในสถานะ “ติด” (ON) แต่ถ้าสถานะทางลอจิกเป็น LOW ระดับแรงดันที่ได้จะใกล้เคียง 0V และเมื่อเปรียบเทียบกับจุด GND ความต่างศักย์ระหว่างจุดสองจึงใกล้เคียงหรือเท่ากับศูนย์ ส่งผลให้ไดโอดเปล่งแสงอยู่ในสถานะ “ดับ” (OFF)

รูปที่ 3.5: การใช้ขาดิจิทัลเป็นเอาต์พุตและเกิดการจ่ายกระแสออกจากขาดิจิทัล

110


รูปที่ 3.6 แสดงตัวอย่างการใช้ขาดิจิทัลของไมโครคอนโทรลเลอร์เป็นเอาต์พุต ต่อกับตัวต้านทาน (R) และไดโอดเปล่งแสง (LED) แบบอนุกรมกัน และต่อไปยังแรงดันไฟเลี้ยงบวกคงที่ (+5V) และให้สังเกตว่า รูปแบบการต่อวงจรมีความแตกต่างจากในรูปที่ 3.5 เมื่อขาเอาต์พุตมีสถานะทางลอจิกเป็น LOW ระดับแรงดัน ที่ได้จะใกล้เคียง GND (หรือ 0V) ซึ่งต่ํากว่าแรงดันไฟเลี้ยง +5V จึงส่งผลให้มีกระแสไหล จากแรงดันไฟเลี้ยง คงที่ +5V ผ่านไดโอดเปล่งแสงและตัวต้านทาน เข้าไปยังขาเอาต์พุต ทําให้ไดโอดเปล่งแสงอยู่ในสถานะ “ติด” (ON) แต่ถ้าขาเอาต์พุตมีสถานะทางลอจิกเป็น HIGH ระดับแรงดันที่ขาได้จะใกล้เคียง +5V และความต่างศักย์ ระหว่างจุดสองจุดจึงเป็นศูนย์ (หรือใกล้เคียงศูนย์) ส่งผลให้ไม่มีกระแสไหล และไดโอดเปล่งแสงอยู่ในสถานะ “ดับ” (OFF)

รูปที่ 3.6: การใช้ขาดิจิทัลเป็นเอาต์พุตและเกิดการรับกระแสเข้าสู่ขาดิจิทัล

3.4 การใช้งานขาอินพุตแบบแอนะล็อก ในการแปลงระดับแรงดันไฟฟ้าที่ขาแอนะล็อก-อินพุตของไมโครคอนโทรลเลอร์ ให้เป็นข้อมูลดิจิทลั จะได้ค่าเป็นเลขจํานวนเต็ม และเพื่อให้ง่ายต่อการทําความเข้าใจ สมมุติว่า แรงดันไฟฟ้าอยู่ในช่วง 0V ถึง +5V ถูกแบ่งได้เป็น 4 ช่วงที่เท่ากัน ค่าที่ได้จากการแปลงระดับแรงดันให้เป็นเลขจํานวนเต็ม จะมีเพียง 4 ค่าที่ เป็นไปได้ ตั้งแต่ 0 ถึง 3 (ตามรูปที่ 3.7 และ 3.8) และความละเอียดในการแปลงเท่ากับ +5V/4 = 1.25V แต่ ถ้าแบ่งได้มากขึ้นเป็น 8 ช่วง จะได้ความละเอียดในการแปลงเท่ากับ +5V/8 = 0.625V และอ่านค่าที่เป็นไปได้ จะมีจํานวนมากขึ้น ซึ่งเป็นเลขจํานวนเต็มแต่ตั้ง 0 ถึง 7 (ตามรูปที่ 3.9) สําหรับบอร์ด Arduino โดยทั่วไป แรงดันในช่วง 0V ถึง +5V จะถูกแบ่งได้ถึง 1024 ช่วงหรือระดับ และค่าที่ได้จากการแปลง จะเป็นเลขจํานวนเต็ม อยู่ระหว่าง 0 ถึง 1023 และความละเอียดในการแปลง (ADC Resolution) จะเท่ากับ 5V/1024 = 4.883mV (มิลลิโวลต์) โดยประมาณ หรือกล่าวได้ว่า การแปลงจาก สัญญาณแอนะล็อกเป็นข้อมูลดิจิทัลสําหรับบอร์ด Arduino มีความละเอียดเท่ากับ 10 บิต ดังนั้นจึงสามารถ 111


วัดและเปรียบเทียบระดับของแรงดันอินพุตได้ละเอียดมากขึ้น การแปลงจากสัญญาณแอนะล็อกให้เป็นข้อมูล ดิจิทัล (เลขจํานวนเต็ม) สําหรับบอร์ด Arduino จะใช้เวลาประมาณ 100 ไมโครวินาที (microsecond) ต่อ หนึ่งครั้ง โดยประมาณ

รูปที่ 3.7: การแบ่งระดับของแรงดันออกเป็น 4 ช่วงที่เท่ากัน

รูปที่ 3.8: ความสัมพันธ์ระหว่างช่วงของแรงดัน (V) 4 ช่วง และค่าที่อ่านได้ (Value)

รูปที่ 3.9: การแบ่งระดับของแรงดันออกเป็น 8 ช่วงที่เท่ากัน

112


3.5 การใช้ตวั ต้านทานปรับค่าได้สร้างสัญญาณแอนะล็อก ตัวต้านทานปรับค่าได้ (Trimpot หรือ Potentiometer) เป็นอุปกรณ์อิเล็กทรอนิกส์ที่นํามาต่อวงจร เพื่อสร้างสัญญาณแอนะล็อก แล้วนําไปป้อนให้ขาแอนะล็อก-อินพุตของไมโครคอนโทรลเลอร์ได้ โดยทั่วไปแล้ว ตัวต้านทานปรับค่าได้ จะมีอยู่สามขา (กําหนดหมายเลขขาเป็น 1 2 3 ตามลําดับ) ในการต่อตัวต้านทานปรับค่าได้สามขา เพื่อสร้างสัญญาณแอนะล็อกและปรับระดับแรงดันได้ จะใช้ขา ที่อยู่ด้านนอกสองขา (ขา 1 และขา 3) ต่อกับแรงดันไฟเลี้ยง VCC (เช่น +5V) และ GND ตามลําดับ ขาตรง กลาง (ขา 2) จะได้แรงดันปรับค่าได้ในช่วง 0V ถึง +5V และนําไปป้อนให้แก่บอร์ด Arduino ที่ขาแอนะล็อกอินพุตได้ตามวงจรในรูปที่ 3.10 จุด Vx เป็นจุดที่นําไปเชื่อมต่อกับขาแอนะล็อก-อินพุตใดๆ ของบอร์ด Arduino ได้ และระดับแรงดันที่วัดได้ จะอยู่ในช่วง 0V ถึง +5V ทั้งนี้ขึ้นอยู่กับการปรับหมุนที่ปุ่มของตัว ต้านทานปรับค่าได้ R1

รูปที่ 3.10: การใช้ตัวต้านทานปรับค่าได้แบบสาม เพื่อสร้างสัญญาณแอนะล็อก

ในการเลือกใช้ค่าความต้านทาน ควรจะให้มีค่าความต้านทานไม่ต่ํากว่า 10kΩ เพื่อจํากัดปริมาณ กระแสที่ไหลจากแรงดันคงที่ +5V ผ่านตัวต้านทานไปยัง GND ของวงจร ให้อยู่ในระดับต่ํา รูปที่ 3.11 แสดง ตัวอย่างตัวต้านทานปรับค่าได้แบบสามขาในรูปลักษณ์ต่างๆ เมื่อวัดค่าความต้านทานระหว่างขา 1 และขา 3 จะได้ค่าความต้านทานคงที่เสมอ และค่าความต้านทานที่นิยมใช้กัน ได้แก่ 10kΩ 20kΩ หรือ 100kΩ แต่ถ้าวัด ความต้านทานระหว่างขา 1 และ 2 หรือ ระหว่างขา 2 และ 3 จะได้ค่าที่เปลี่ยนแปลงได้ตามการหมุนปรับที่ ปุ่มบริเวณด้านบนของตัวต้านทาน ตัวต้านทานปรับค่าได้ แบ่งได้เป็นสองแบบตามจํานวนการหมุนรอบในการ ปรับหมุนค่าจากต่ําสุดไปยังสูงสุด คือ หมุนได้รอบเดียว (Single-Turn) และหมุนได้หลายรอบ (Multi-Turn) ซึ่งแบบที่สองนีจ้ ะมีความละเอียดในการปรับมากกว่าแบบแรก

113


รูปที่ 3.11: ตัวอย่างตัวต้านทานปรับค่าได้แบบสามขา

3.6 การใช้งานขาดิจิทัลเป็นเอาต์พตุ เพื่อสร้างสัญญาณ PWM ไมโครคอนโทรลเลอร์โดยส่วนใหญ่ รวมถึงทีอ่ ยู่บนบอร์ด Arduino จะไม่มีขาสําหรับใช้เป็นเอาต์พุตที่ สร้างสัญญาณแอนะล็อกได้โดยตรง ถ้าจะสร้างสัญญาณแอนะล็อก จําเป็นต้องมีไอซีหรือวงจรที่นาํ มาต่อเพิ่ม เพื่อทํางานร่วมกับไมโครคอนโทรลเลอร์ในการแปลงข้อมูลดิจิทัลให้เป็นสัญญาณเอาต์พุต-แอนะล็อก ผู้พัฒนา บอร์ด Arduino ได้เลือกใช้วิธีการสร้างสัญญาณในรูปแบบที่เรียกว่า PWM (Pulse Width Modulation) ออก ทางขาเอาต์พุตดิจิทัล (เฉพาะบางขาเท่านั้น) แทนการสร้างสัญญาณแอนะล็อก ด้านบนของบอร์ด Arduino จะมีตัวหนังสือเขียนกํากับไว้ว่า ขาดิจิทัลใดสามารถใช้เป็นขาแบบ PWM ได้ (สําหรับบอร์ด Arduino ที่ใช้ชิป ATmega 168 หรือ 328P ขาที่สร้างสัญญาณ PWM ได้คือ ขาดิจิทัล หมายเลข 3, 5, 6, 9, 10 และ 11) เมื่อนําไปใช้งาน สัญญาณเอาต์พุต PWM จะให้ผลเหมือนการสร้าง สัญญาณแอนะล็อกที่ปรับเปลีย่ นระดับแรงดันได้ (แต่ทั้งนี้กข็ ึ้นอยู่กับวงจรและอุปกรณ์ทนี่ ํามาต่อใช้งาน) สัญญาณแบบ PWM เป็นสัญญาณดิจิทลั แบบมีคาบ (Periodic Signal) และมีความถี่คงที่ (ความถี่ ของสัญญาณ PWM อยู่ที่ประมาณ 490 Hz สําหรับบอร์ด Arduino) แต่สามารถปรับความกว้างของพัลส์ (Pulse Width) ซึ่งหมายถึง ช่วงระยะเวลาที่สัญญาณอยู่ในระดับ HIGH ในแต่ละลูกคลื่นได้ โดยนิยามแล้ว อัตราส่วนของระยะเวลาที่สัญญาณอยู่ในระดับ HIGH ต่อคาบเวลาของลูกคลื่น เรียกว่า Duty Cycle ซึ่งมีค่า ได้ตั้งแต่ 0 ถึง 100 เมื่อคํานวณเป็นเปอร์เซ็นต์แล้ว

114


รูปที่ 3.12 แสดงตัวอย่างรูปคลื่นของสัญญาณ PWM ที่มคี ่า Duty Cycle ที่ 10% 50% และ 90% ตามลําดับ สัญญาณแบบ PWM สามารถนําไปใช้ควบคุมการทํางานของอุปกรณ์อื่นได้ เช่น การปรับความสว่าง ของหลอด LED การปรับความเร็วในการหมุนของมอเตอร์ไฟฟ้ากระแสตรง (DC Motor) และการควบคุม ตําแหน่งเชิงมุมของเซอร์โวมอเตอร์ (Servo Motor) เป็นต้น

รูปที่ 3.12: รูปคลื่นสัญญาณแบบ PWM ที่มีความกว้างของพัลส์ (Pulse Width) แตกต่างกัน

3.7 การใช้ปมุ่ กดสร้างสัญญาณดิจิทลั เป็นอินพุต เมื่อนําปุ่มกด (Push Button) หรือสวิตช์ (Switch) มาต่อกับตัวต้านทาน จะสามารถสร้างสัญญาณ ดิจิทัลแล้วนําไปป้อนเป็นอินพุตให้ขาดิจิทัลของไมโครคอนโทรลเลอร์ได้ ซึ่งจะได้ลอจิก LOW หรือ HIGH ตาม สถานะของปุ่มกดหรือสวิตช์ รูปที่ 3.13 แสดงตัวอย่างของปุ่มกดแบบสี่ขา (เรียกว่า Tactile Switch) ซึ่งแบ่ง ออกเป็นขาสองคู่ ขาคู่เดียวกันจะเชื่อมต่อถึงกันทางไฟฟ้า แต่ขาต่างคู่กันจะไม่เชื่อมต่อกันทางไฟฟ้าจนกว่าจะ มีการกดปุ่มค้างไว้ (ควรตรวจสอบให้แน่ใจ ก่อนต่อปุ่มกดแบบสี่ขาเพื่อใช้งาน) ปุ่มกดหรือสวิตช์ (อาจจะเป็นแบบโยก กด หรือเลื่อน เพื่อเปลี่ยนตําแหน่ง) มีหลายประเภท เช่น ปุ่มที่ กดแล้วปล่อยจะกลับสู่ตําแหน่งเดิมโดยอัตโนมัติ และปุ่มที่กดแล้วปล่อยจะเปลี่ยนตําแหน่งและคงไว้ แต่ถ้ากด อีกครั้งจึงจะกลับสู่ตําแหน่งเดิม (เรียกว่า Toggle Button/Switch) ปุ่มกดและสวิตช์มีหลายรูปแบบและขนาด ที่แตกต่างกัน กระแสและแรงดันสูงสุดที่ทนได้ ซึ่งก็ขึ้นอยู่กับลักษณะของการนําไปใช้งาน การต่อวงจรที่ใช้ปุ่มกดหรือสวิตช์ แบ่งได้เป็นสองกรณีคือ กรณีที่กดปุ่มแล้วได้ลอจิก LOW และ กรณี ที่กดปุ่มแล้วได้ลอจิก HIGH จุด Vx ของวงจรในรูปที่ 3.14 หรือ 3.15 สามารถนําไปเชื่อมต่อกับขาดิจิทัลอินพุตบนบอร์ด Arduino ได้ ขาดิจิทัลที่ถูกกําหนดให้เป็นอินพุต จะมีค่าความต้านทานสูงมาก (ในระดับ เมกกะโอห์ม) ดังนั้น เมื่อระดับแรงดันที่ขาดิจิทัลอยู่ในระดับ HIGH เช่น +5V กระแสไหลไหลเข้าที่ขาดิจิทัล จะ อยู่ในระดับต่ํามาก

115


รูปที่ 3.13: ตัวอย่างปุ่มกดแบบสี่ขา

ในรูปที่ 3.14 เมื่อกดปุ่มหรือสวิตช์ (PB1) ทําให้ขาทั้งสองจุดเชื่อมต่อกันทางไฟฟ้าและทําให้จุด Vx เชื่อมต่อกับ GND ของวงจร ดังนั้นจึงได้ลอจิก LOW แต่ถ้าปล่อยและไม่ได้กดปุ่ม จะทําให้จุด Vx เชื่อมต่อกับ แรงดันไฟเลี้ยง +5V ผ่านตัวต้านทาน R1 และได้ลอจิก HIGH ในวงจรนี้ R1 เป็นตัวต้านทานที่ช่วยทําให้ระดับ แรงดันที่จุด Vx เท่ากับ +5V (ทําหน้าที่เป็นตัวต้านทานแบบ Pull-up) เมื่อยังไม่กดปุ่ม

รูปที่ 3.14: การต่อวงจรปุ่มกดแบบที่ 1 (กดปุ่มได้ลอจิก LOW)

แต่ถ้าต่อวงจรในทางตรงกันข้าม ตามรูปที่ 3.15 เมื่อกดปุ่มหรือสวิตช์ PB1 ทําให้ขาทั้งสองจุดเชื่อมต่อ กันทางไฟฟ้าและทําให้จุด Vx เชื่อมต่อกับ +5V ของวงจร ดังนั้นจึงได้ลอจิก HIGH แต่ถ้าปล่อยและไม่ได้กดปุ่ม จะทําให้จุด Vx เชื่อมต่อกับ GND ผ่านตัวต้านทาน R1 และได้ลอจิก LOW ในวงจรนี้ R1 เป็นตัวต้านทานที่ ช่วยทําให้ระดับแรงดันที่จุด Vx เท่ากับ GND (ทําหน้าที่เป็นตัวต้านทานแบบ Pull-down) เมื่อยังไม่กดปุ่ม 116


รูปที่ 3.15: การต่อวงจรปุ่มกดแบบที่ 2 (กดปุ่มได้ลอจิก HIGH)

3.8 รูปแบบการเขียนโค้ดสําหรับ Arduino โดยทั่วไปแล้ว การเขียนโค้ดหรือโปรแกรมสําหรับบอร์ด Arduino จะเกี่ยวข้องกับการใช้งานขาต่างๆ บนบอร์ด Arduino เป็นส่วนใหญ่ ผู้ที่พฒ ั นา Arduino ได้กําหนดรูปแบบหรือโครงสร้างในการเขียนโค้ด สําหรับ Arduino ที่ง่ายต่อการทําความเข้าใจ โดยแบ่งโค้ดออกได้เป็นสามส่วนหลัก ตามรูปที่ 3.16 ซึ่งได้แก่ 1. ส่วนที่ประกาศใช้ (Declarations) สําหรับค่าคงที่และตัวแปรภายนอก ก่อนที่จะนําไปใช้ในส่วน ต่างๆ ของโค้ดต่อไป 2. ส่วนที่เป็นฟังก์ชัน setup() { … } 3. ส่วนที่เป็นฟังก์ชัน loop() { … }

ค่าคงที่ (Constants) หมายถึง การประกาศใช้สัญลักษณ์หรือชื่อในภาษาอังกฤษที่ไม่ซ้ํากัน เพื่อใช้เก็บ ค่าคงที่ไว้ในหน่วยความจําของไมโครคอนโทรลเลอร์ ตามชนิดของข้อมูลที่กําหนดไว้ จะต้องเป็นค่าเดิมและไม่ สามารถเปลี่ยนค่าใหม่ได้ ตัวแปรภายนอก (Global Variables) เป็นตัวแปรที่ใช้งานได้ทั่วไปในโค้ดเมื่อได้ประกาศใช้ไว้ตอนต้น ของโค้ดแล้ว ตัวแปร หมายถึง การประกาศใช้สัญลักษณ์หรือชื่อในภาษาอังกฤษที่ไม่ซ้ํากัน เพื่อใช้เก็บข้อมูล หรือค่าต่างๆ ในหน่วยความจํา ตามชนิดของข้อมูลที่กําหนดไว้ ตัวแปรสามารถถูกกําหนดให้มีค่าใหม่ได้ซึ่ง แตกต่างจากค่าคงที่ ในการประกาศใช้ค่าคงที่ จะต้องเขียนคําว่า const ไว้ข้างหน้า แต่ถ้าเป็นตัวแปรภายนอก ไม่ต้องเขียนคํานี้กํากับไว้

117


รูปที่ 3.16: แสดงโครงสร้างของโค้ดสําหรับ Arduino แบ่งได้เป็นสามส่วนหลัก

ชนิดข้อมูล (Data Types) เป็นการระบุว่า ตัวแปรหรือค่าคงที่แต่ละตัว จะต้องเก็บข้อมูลแบบใด เช่น เลขจํานวนเต็ม เลขทศนิยม หรือค่าทางลอจิก เป็นต้น ตัวอย่างของชนิดข้อมูลทีใ่ ช้งานได้ เช่น    

byte ใช้สําหรับข้อมูลที่เป็นเลขจํานวนเต็มได้ตั้งแต่

0 ถึง 255 int ใช้สําหรับข้อมูลที่เป็นเลขจํานวนเต็มได้ตั้งแต่ -32768 ถึง +32767 long ใช้สําหรับข้อมูลที่เป็นเลขจํานวนเต็มได้ตั้งแต่ -2,147,483,648 ถึง 2,147,483,647 float ใช้สําหรับข้อมูลที่เป็นเลขทศนิยม เป็นค่าที่เป็นบวกหรือลบในช่วงที่กว้างกว่าชนิดข้อมูล แบบ byte และ int และเป็นเลขทศนิยมได้ด้วย แต่มีความละเอียดเพียง 6-7 ตําแหน่งหลังจุด ทศนิยมในเลขฐานสิบ  boolean ใช้สาํ หรับข้อมูลที่เป็นค่าทางลอจิก true (จริง) หรือ false (เท็จ) เท่านั้น

การประกาศใช้ค่าคงที่และตัวแปรภายนอกมีรูปแบบเหมือนกัน แต่ต่างกันตรงที่การเขียนคําว่า const กํากับไว้ข้างหน้าสําหรับค่าคงที่ และในการประกาศใช้ตัวแปร ไม่จําเป็นต้องกําหนดค่าเริ่มต้นเป็นตัวเลข (หรือ ที่เรียกว่า ข้อมูลค่าคงที)่ เหมือนในกรณีของค่าคงที่ รูปที่ 3.17 แสดงรูปแบบของประโยคและตัวอย่างการ ประกาศใช้ค่าคงที่และตัวแปรภายนอกพร้อมค่าเริ่มต้น (ค่าเริ่มต้น จะถูกเขียนไว้ตามหลังเครื่องหมาย = เพื่อ กําหนดค่าให้ค่าคงที่หรือตัวแปรแต่ละตัว) และใช้สัญลักษณ์ ; (Semicolon) แบ่งแยกแต่ละประโยค

118


รูปที่ 3.17: รูปแบบและตัวอย่างการประกาศใช้คา่ คงที่และตัวแปร

ฟังก์ชัน (Functions) เป็นส่วนที่สําคัญของภาษา C/C++ ประกอบด้วยประโยคคําสั่ง (Statements) ต่างๆ หลายคําสั่ง ตามลําดับของการกระทํา หรืออาจกล่าวได้ว่า ฟังก์ชัน หมายถึง ชื่อเรียกสําหรับกลุ่มของ ประโยคคําสั่งตามลําดับตามที่เขียนไว้ภายในฟังก์ชัน (ใช้สญ ั ลักษณ์ ; แบ่งแยกแต่ละประโยค) และเมื่อฟังก์ชัน ถูก “เรียกใช้” ประโยคคําสั่งต่างๆ ของฟังก์ชัน จะถูกกระทําไปทีละคําสัง่ ตามลําดับ ในการเขียนโค้ดสําหรับ Arduino จะมีฟังก์ชันพื้นฐานที่สําคัญสองฟังก์ชัน คือ setup() และ loop() ผู้เขียนโปรแกรมจะต้องเขียนประโยคคําสั่งต่างๆ ในแต่ละฟังก์ชันเอง โดยเขียนอยู่ระหว่างวงเล็บปีกกาคู่ { … } (Curly Brackets) เพื่อกําหนดพฤติกรรมการทํางานของโปรแกรม 

setup()

เป็นฟังก์ชันที่จะถูกเรียกใช้เป็นฟังก์ชันแรกและครั้งเดียวโดยอัตโนมัติ เมื่อโปรแกรมเริ่ม

ทํางาน 

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

loop()

สิ่งหนึ่งที่สําคัญในการเขียนโค้ด คือ คําอธิบายโค้ด (Code Comment) เพื่ออธิบายการทํางานของ โค้ดในส่วนต่างๆ และทําให้ง่ายขึ้นต่อการทําความเข้าใจ การเขียนคําอธิบายโค้ดในภาษา Arduino C/C++ จะ ใช้สัญลักษณ์ // (Double Slash) นําหน้าข้อความที่เป็นคําอธิบายแต่ต้องอยู่ถัดในบรรทัดเดียวกัน หรือที่ เรียกว่า คําอธิบายโค้ดแบบบรรทัดเดียว (Single-Line Comment) แต่ถา้ ต้องการจะเขียนคําอธิบายโค้ดหลาย บรรทัดต่อเนื่องกัน ให้เขียนข้อความอยู่ระหว่างสัญลักษณ์ /* … */ 119


สิ่งที่ควรรู้อีกประการหนึ่งคือ ภาษา Arduino C/C++ เป็นภาษาคอมพิวเตอร์ที่แยกแยะความ แตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในภาษาอังกฤษ (Case-Sensitive Language) ดังนั้นในการ เขียนโค้ด ควรระวังในเรื่องนี้

3.9 คําสั่งสําหรับการใช้งานขาของบอร์ด Arduino ในการใช้งานขาต่างๆ บนบอร์ด Arduino จะต้องกําหนดก่อนว่า จะใช้ขาใด เพื่อทํางานในลักษณะใด โดยเรียกใช้คําสั่งหรือที่เรียกว่า “ฟังก์ชัน” สําหรับการเขียนโค้ดในภาษา Arduino ตารางที่ 3.1 แสดงรูปแบบ การใช้คําสั่ง pinMode() เพื่อกําหนดทิศทางของขาดิจิทัล ให้เป็นอินพุตหรือเอาต์พุต ตารางที่ 3.2 แสดง รูปแบบการใช้คําสั่ง digitalRead() และ digitalWrite() เพื่ออ่านหรือเขียนค่าที่ขาดิจิทัล และตารางที่ 3.3 แสดงรูปแบบการใช้คําสั่ง analogRead() เพื่ออ่านค่าจากขาแอนะล็อก-อินพุตแล้วแปลงให้เป็นเลขจํานวน เต็ม รวมถึงคําสั่ง analogWrite() เพื่อสร้างสัญญาณแบบ PWM ที่ปรับค่า Duty Cycle ได้ ออกทางขา ดิจิทัล-เอาต์พุต (ใช้แทนการสร้างสัญญาณแอนะล็อกเป็นเอาต์พุต)

รูปแบบของคําสั่ง pinMode( pin, INPUT )

pinMode( pin, OUTPUT )

คําอธิบาย คําสั่งที่กําหนดให้ขาดิจิทัลตามหมายเลขที่เลือกเป็นอินพุต ในการเรียกใช้คําสั่งนี้ ต้องกําหนดค่าให้ pin ซึ่งหมายถึง หมายเลขของขาที่เลือกใช้ได้ (เลขจํานวนเต็ม เช่น 0-13) และ INPUT เป็นค่าคงที่ หมายถึง ใช้เป็นอินพุต หมายเหตุ: เมื่อเริ่มต้น ขาดิจทิ ัล จะถูกกําหนดให้เป็นอินพุต โดยอัตโนมัติ คําสั่งที่กําหนดให้ขาดิจิทัลตามหมายเลขที่เลือกเป็นเอาต์พุต ในการเรียกใช้คําสั่งนี้ ต้องกําหนดค่าให้ pin ซึ่งหมายถึง หมายเลขของขาที่เลือกใช้ได้ (เลขจํานวนเต็ม เช่น 0-13) และ OUTPUT เป็นค่าคงที่ หมายถึง ใช้เป็นเอาต์พุต

ตารางที่ 3.1: คําสั่งกําหนดทิศทางขาดิจิทัลของบอร์ด Arduino

120


รูปแบบของคําสั่ง digitalRead( pin )

digitalWrite( pin, value )

คําอธิบาย คําสั่งอ่านค่าจากขาดิจิทัลที่ถกู ใช้เป็นอินพุต ตามหมายเลข ขาที่กําหนด ในการเรียกใช้คําสั่งนี้ ต้องกําหนดค่าให้ pin ซึ่งหมายถึง หมายเลขของขาที่เลือกใช้ได้ (เลขจํานวนเต็ม เช่น 0-13) ที่ถูกกําหนดให้เป็นอินพุตแล้ว และเมื่อเรียก คําสั่งนี้ จะได้ข้อมูลค่าคงที่ HIGH (ระดับสูง) และ LOW (ระดับต่ํา) คําสั่งเขียนค่าให้ขาดิจิทัลที่ถกู ใช้เป็นเอาต์พุต ตามหมายเลข ขาที่กําหนด ในการเรียกใช้คําสั่งนี้ ต้องกําหนดค่าให้ pin ซึ่งหมายถึง หมายเลขของขาที่เลือกใช้ได้ (เลขจํานวนเต็ม เช่น 0-13) และถูกกําหนดให้เป็นขาเอาต์พุตแล้ว และ value ซึ่งหมายถึง ค่าที่ใช้เป็นเอาต์พุต ซึ่งได้แก่ HIGH (ระดับสูง) หรือ LOW (ระดับต่ํา)

ตารางที่ 3.2: คําสั่งในการอ่านหรือเขียนค่าสําหรับขาดิจิทัลของบอร์ด Arduino

รูปแบบของคําสั่ง analogRead( pin )

analogWrite( pin, value )

คําอธิบาย คําสั่งที่อ่านค่าจากขาแอนะล็อก-อินพุต แล้วแปลงให้เป็น ข้อมูลที่เป็นเลขจํานวนเต็ม ในการเรียกใช้คําสั่งนี้ ต้อง กําหนดค่าให้ pin ซึ่งหมายถึง หมายเลขของขาแอนะล็อกอินพุต (เช่น 0-5 หรือ A0-A5) และคําสัง่ นี้จะให้ค่าที่อยู่ ระหว่าง 0-1023 ในการเรียกใช้แต่ละครั้ง คําสั่งที่เขียนค่าออกทางดิจิทัล-เอาต์พุต แต่สร้างเป็น สัญญาณ PWM ในการเรียกใช้คําสั่งนี้ ต้องกําหนดค่าให้ pin ซึ่งหมายถึง หมายเลขของขาดิจิทัลที่สร้างสัญญาณ PWM และ value ซึ่งเป็นเลขจํานวนเต็ม ในช่วง 0 ถึง 255 เพื่อระบุค่า Duty Cycle ของสัญญาณ PWM ตาม อัตราส่วนเชิงเส้น เช่น ตัวเลข 0 หมายถึง 0%, 127 หมายถึง 50% และ 255 หมายถึง 100% Duty Cycle

ตารางที่ 3.3: คําสั่งในการใช้งานขาแอนะล็อกและขาสัญญาณแบบ PWM ของบอร์ด Arduino

121


3.10 ตัวอย่างโค้ดสาธิตการใช้ขาดิจทิ ัล โค้ดตัวอย่างที่ 3.1 สําหรับบอร์ด Arduino มีพฤติกรรมการทํางานดังนี้ เริ่มต้นด้วยการกําหนดให้ขา ดิจิทัลหมายเลข 5 เป็นขาเอาต์พุต โดยใช้คําสั่ง pinMode() ตามประโยคคําสั่งในฟังก์ชัน setup() จากนั้น เมื่อเข้าสู่ฟังก์ชัน loop() จะเขียนค่า HIGH ออกทางขาดิจิทัลหมายเลข 5 โดยใช้คําสัง่ digitalWrite() และ รอเวลาให้ผ่านไปประมาณ 1000 มิลลิวินาที โดยใช้คําสั่ง delay() จากนั้นจะเขียนค่า LOW ออกทางขาดิจิทัล 5 และรอเวลาอีก 1000 มิลลิวินาที เมื่อได้ทําคําสั่งสุดท้ายแล้ว จะวนกลับไปทําคําสั่งในฟังก์ชัน loop() ซ้ํา เมื่อได้ทําขั้นตอน “อัพโหลด” โปรแกรมนีล้ งบอร์ด Arduino โดยใช้ซอฟต์แวร์ Arduino IDE แล้ว และเชื่อมต่อขาดิจิทัลหมายเลข 5 กับวงจร LED บนเบรดบอร์ด จะทําให้ LED “ติด” และ “ดับ” สลับไปมา โดยเว้นระยะห่างประมาณ 1 วินาที แต่ถ้าต้องการให้ LED กระพริบในอัตราที่เร็วขึ้น ก็ให้ลดระยะเวลาสําหรับ คําสั่ง delay() ให้น้อยลง

โค้ดตัวอย่างที่ 3.1: สร้างสัญญาณเอาต์พุตที่ขาดิจิทัล 5

โค้ดตัวอย่างที่ 3.2 สําหรับบอร์ด Arduino มีพฤติกรรมการทํางานดังนี้ เริ่มต้นด้วยการทํางานของ ฟังก์ชัน setup() กําหนดให้ขาดิจิทัลหมายเลข 3 ให้เป็นอินพุต และขาดิจิทัลหมายเลข 5 ให้เป็นเอาต์พุต โดย ใช้คําสั่ง pinMode() และคําสั่งในฟังก์ชัน loop() เริ่มต้นด้วยการอ่านค่าจากขาดิจิทัล-อินพุต โดยใช้คําสั่ง digitalRead() และนําค่าที่ได้ไปเก็บไว้ในตัวแปรชื่อ value ค่าของตัวแปรนี้จะถูกใช้เป็นค่าทางลอจิกที่ขา ดิจิทัล-เอาต์พุต โดยคําสั่ง digitalWrite() จากนั้นให้วนกลับไปทําคําสั่งต่างๆ ในฟังก์ชัน loop() ซ้ํา

122


โค้ดตัวอย่างที่ 3.2: อ่านค่าและเขียนค่าที่ขาดิจิทัล 3 และ 5 ตามลําดับ

ในการทดลองโค้ดตัวอย่างที่ 3.2 สามารถใช้ปุ่มกด นํามาต่อวงจรเพื่อสร้างสัญญาณดิจทิ ัลเป็นอินพุต (ขาดิจิทัลหมายเลข 3) และใช้ไดโอดเปล่งแสงต่ออนุกรมกับตัวต้านทาน 330Ω เพื่อแสดงสถานะทางลอจิกเป็น เอาต์พุต (ขาดิจิทัลหมายเลข 5) ได้ โค้ดตัวอย่างที่ 3.3 สําหรับบอร์ด Arduino มีพฤติกรรมการทํางานดังนี้ เริ่มต้นด้วยการทํางานของ ฟังก์ชัน setup() กําหนดให้ขาดิจิทัลหมายเลข 5 ให้เป็นเอาต์พุต โดยใช้คําสั่ง pinMode() และเลือกใช้แรงดัน อ้างอิงสําหรับการแปลงจากแอนะล็อกเป็นดิจิทัลโดยใช้คาํ สั่ง analogReference() และใช้ค่าคงที่ DEFAULT ซึ่งหมายถึง การเลือกใช้ VCC (+5V) เป็นแรงดันอ้างอิง ภายในฟังก์ชัน loop() คําสั่งแรกคือ การอ่านค่าจากขาแอนะล็อก-อินพุต โดยเรียกใช้ฟังก์ชัน analogRead() และได้ข้อมูลเป็นเลขจํานวนเต็ม ในช่วง 0 ถึง 1023 เก็บไว้ในตัวแปร value คําสัง่ ถัดไปคือ การสร้างสัญญาณ PWM ออกทางขาเอาต์พุตหมายเลข 5 โดยเรียกใช้ฟังก์ชัน analogWrite() ในการ กําหนดค่า Duty Cycle ให้สญ ั ญาณ PWM จะใช้ค่าของตัวแปร value หารด้วย 4 เพื่อให้ได้ค่าอยู่ในช่วง 0 ถึง 255 จากนั้นให้วนกลับไปทําคําสั่งต่างๆ ในฟังก์ชัน loop() ซ้ํา ในการทดลองโค้ดตัวอย่างที่ 3.3 สามารถใช้ตัวต้านทานปรับค่าได้ นํามาสร้างสัญญาณแอนะล็อกเพื่อ ป้อนเป็นอินพุต (ขา A0) และใช้ไดโอดเปล่งแสงต่ออนุกรมกับตัวต้านทาน 330Ω เพื่อต่อกับขาดิจิทัล-เอาต์พุต (ขาดิจิทัลหมายเลข 5) แสดงสถานะเอาต์พุต เมื่อหมุนปรับค่าของตัวต้านทาน จะทําให้แรงดันทีไ่ ด้เปลี่ยนไป และส่งผลให้ความสว่างของไดโอดเปล่งแสงเปลี่ยนตามไปด้วย

123


โค้ดตัวอย่างที่ 3.3: อ่านค่าจากขาแอนะล็อก-อินพุต A0 และสร้างสัญญาณ PWM ที่ขาดิจิทัล 5

เมื่อผู้เรียนได้ทําความเข้าใจคําสั่งต่างๆ ในเบื้องต้นแล้ว ก็ควรจะได้ทดลองเขียนโปรแกรมสําหรับ บอร์ด Arduino และต่อวงจรอิเล็กทรอนิกส์ทั้งภาคอินพุตและภาคเอาต์พุต ทั้งนี้ก็เพื่อให้มีทักษะในการปฏิบัติ และสามารถต่อวงจรได้ด้วยตนเอง สังเกตและทําความเข้าใจพฤติกรรมการทํางานของโปรแกรมสําหรับบอร์ด Arduino ที่ตอบสนองต่อสัญญาณอินพุตและการเปลี่ยนแปลงที่เอาต์พุต

สรุปเนื้อหา บทนี้ได้กล่าวถึง รูปแบบการเขียนโค้ด Arduino คําสั่งพื้นฐานเกี่ยวกับการอ่านหรือเขียนค่าของขา ดิจิทัล การสร้างสัญญาณแบบ PWM เป็นเอาต์พุต การอ่านค่าจากสัญญาณที่ขาอินพุต-แอนะล็อก และรูปแบบ การต่อวงจรปุ่มกดเป็นอินพุตแบบดิจิทัล และวงจรปรับแรงดันได้เป็นอินพุตแบบแอนะล็อก บทต่อไปจะ กล่าวถึง ตัวอย่างอุปกรณ์และวงจรอิเล็กทรอนิกส์ภาคเอาต์พุตที่ใช้งานร่วมกับบอร์ด Arduino ได้

***********************************

124


ใบมอบหมายงานที่ 3.1 การต่อปุ่มกดเป็นอินพุตแบบดิจิทัล วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ฝึกต่อวงจรสําหรับสร้างสัญญาณดิจิทัลโดยใช้ปุ่มกดเป็นอินพุตให้บอร์ด Arduino  เห็นความแตกต่างระหว่างการต่อวงจรปุ่มและตัวต้านทานแบบ Pull-Down และ Pull-Up

รายการอุปกรณ์        

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ปุ่มกดแบบ 4 ขา ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ตัวต้านทาน 330Ω ตัวต้านทาน 10kΩ ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab3_1” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 3.1.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 3.1.1 และต่อวงจรตามผังวงจรในรูปที่ 3.1.2 (โดยใช้ปุ่มกดและ ตัวต้านทานแบบ Pull-Down) แต่ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด

125


4. 5.

6. 7.

8. 9.

Arduino แล้วตรวจสอบความถูกต้องของวงจรในเบื้องต้น (รูปที่ 3.1.3 แสดงตัวอย่างการต่อวงจร บนเบรดบอร์ด แต่ไม่จําเป็นต้องต่อวงจรตามตัวอย่าง ให้ลองวางแผนการต่อวงจรด้วยตนเอง) เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด กดปุ่ม S1 ค้างไว้ แล้วสังเกตผลการทํางานของ LED1 ที่ต่อกับขา D5 และใช้มัลติมิเตอร์วัดแรงดัน เทียบกับ GND ของวงจร ที่ขาปุ่มกดข้างที่ต่อกับขาดิจิทัล D3 เมื่อกดและไม่กดปุ่ม แล้วบันทึกผลการ ทดลองลงในตารางที่ 3.1.1 ดึงลวดสายไฟที่เชื่อมต่อไฟเลี้ยง (+5V และ GND) ระหว่างบอร์ด Arduino และเบรดบอร์ดออก ต่อวงจรบนเบรดบอร์ดตามผังวงจรในรูปที่ 3.1.4 (โดยใช้ปุ่มกดและตัวต้านทานแบบ Pull-Up) แต่ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความ ถูกต้องของวงจรในเบื้องต้น (รูปที่ 3.1.5 แสดงตัวอย่างการต่อวงจรบนเบรดบอร์ด) เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด กดปุ่ม S1 ค้างไว้ แล้วสังเกตผลการทํางานของ LED1 ที่ต่อกับขาดิจิทัล D5 และใช้มลั ติมิเตอร์วัด แรงดันเทียบกับ GND ของวงจร ที่ขาปุ่มกดข้างที่ต่อกับขาดิจิทัล D3 เมื่อกดและไม่กดปุ่ม แล้วบันทึก ผลการทดลองลงในตารางที่ 3.1.2

โค้ดตัวอย่างที่ 3.1.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

126


รูปที่ 3.1.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 3.1.2: ผังวงจรสําหรับการต่อวงจรปุ่มกดและตัวต้านทานแบบ Pull-Down

127


รูปที่ 3.1.3: ตัวอย่างการต่อวงจรบนเบรดบอร์ด (ปุ่มกดและตัวต้านทานแบบ Pull-Down)

รูปที่ 3.1.4: ผังวงจรสําหรับการต่อปุ่มกดและตัวต้านทานแบบ Pull-Up

128


รูปที่ 3.1.5: ตัวอย่างการต่อวงจรบนเบรดบอร์ด (ปุ่มกดและตัวต้านทานแบบ Pull-Up)

สถานะของปุม่ กด S1

แรงดันที่ขา D3 (โวลต์)

สถานะของ LED (ติด/ดับ)

กดปุ่มค้างไว้ ไม่กดปุ่ม ตารางที่ 3.1.1: บันทึกผลการทดลองสําหรับการต่อวงจรปุ่มกดและตัวต้านทานแบบ Pull-Down

สถานะของปุม่ กด S1

แรงดันที่ขา D3 (โวลต์)

สถานะของ LED (ติด/ดับ)

กดปุ่มค้างไว้ ไม่กดปุ่ม ตารางที่ 3.1.2: บันทึกผลการทดลองสําหรับการต่อวงจรปุ่มกดและตัวต้านทานแบบ Pull-Up

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ในการต่อปุ่มกดและตัวต้านทานแบบ Pull-Up เมื่อกดปุ่มค้างไว้ จะทําให้ LED …………………. (ติด / ดับ) แต่ถ้าไม่กดปุ่ม จะทําให้ LED ……………….. (ติด / ดับ) และเมื่อเปรียบเทียบ กับกรณีที่ต่อปุ่มกดและตัวต้านทานแบบ Pull-Down จะให้ผล ………………………….. (เหมือนกัน / ตรงข้ามกัน) 129


2. ในการต่อปุ่มกดและตัวต้านทานแบบ Pull-Up เมื่อกดปุ่มค้างไว้ แรงดันที่ขาดิจิทัล D3 จะเท่ากับ ………………. โวลต์ แต่ถ้าปล่อย (ไม่กดปุ่ม) จะได้เท่ากับ …………………. โวลต์ 3. ในการต่อปุ่มกดและตัวต้านทานแบบ Pull-Down เมื่อกดปุ่มค้างไว้ แรงดันที่ขาดิจิทัล D3 จะเท่ากับ ………………. โวลต์ แต่ถ้าปล่อย (ไม่กดปุ่ม) จะได้เท่ากับ …………………. โวลต์ 4. การต่อ LED และตัวต้านทานจากขาดิจิทัล D5 ของบอร์ด Arduino เพื่อใช้เป็นเอาต์พุต เมื่อเอาต์พุต อยู่ที่สถานะ...……….………….……. (HIGH / LOW) จะทําให้ขา D5 …..………………..….. (จ่ายกระแส / รับกระแส)

*********************************

130


ใบมอบหมายงานที่ 3.2 การปรับอัตราการกระพริบของไดโอดเปล่งแสง วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่าง โดยใช้บอร์ด Arduino  ต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้ (Trimpot / Potentiometer) สร้างสัญญาณแอนะล็อก-อินพุต ให้บอร์ด Arduino ที่ขาแอนะล็อก-อินพุต จํานวน 1 ช่องสัญญาณ  สร้างสัญญาณดิจิทัล-เอาต์พุตไปควบคุมการติด/ดับของไดโอดเปล่งแสง และปรับเปลีย่ นอัตราการ กระพริบได้โดยใช้แรงดันที่ขาอินพุตเป็นตัวกําหนด

รายการอุปกรณ์       

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ตัวต้านทานปรับค่าได้ (10kΩ หรือสูงกว่า) ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ตัวต้านทาน 330Ω ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab3_2” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 3.2.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 3.2.1 และต่อวงจรบนเบรดบอร์ดตามผังวงจรในรูปที่ 3.2.2 แต่ ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้อง 131


ของวงจรในเบื้องต้น (รูปที่ 3.2.3 แสดงตัวอย่างการต่อวงจรบนเบรดบอร์ด แต่ไม่จําเป็นต้องต่อวงจร ตามตัวอย่าง ให้ลองวางแผนการต่อวงจรด้วยตนเอง) 4. เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด 5. ทดลองหมุนทีป่ ุ่มของตัวต้านทานปรับค่าได้ แล้วสังเกตผลการเปลี่ยนแปลงที่ไดโอดเปล่งแสง (อัตรา การกระพริบ) 6. ใช้มัลติมิเตอร์วัดแรงดันที่ขาแอนะล็อก-อินพุต A0 เมื่อหมุนที่ปุ่มของตัวต้านทานปรับค่าได้ไปทางซ้าย และไปทางขวาสุด (หมุนทวนเข็มและตามเข็มนาฬิกา)

โค้ดตัวอย่างที่ 3.2.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

132


รูปที่ 3.2.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 3.2.2: ผังวงจรสําหรับการต่อวงจรบนเบรดบอร์ด 133


รูปที่ 3.2.3: ตัวอย่างการต่อวงจรบนเบรดบอร์ด

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ถ้าเพิ่มระดับแรงดันไฟฟ้าที่ขาแอนะล็อก-อินพุต A0 จะทําให้ LED กระพริบ ………………………….. (เร็วขึ้น / ช้าลง / คงเดิม) 2. LED จะกระพริบด้วยความถี่ต่ําสุด เมื่อแรงดันที่ขาแอนะล็อก-อินพุต A0 เท่ากับ …………………. โวลต์

**********************

134


ใบมอบหมายงานที่ 3.3 การปรับความสว่างของไดโอดเปล่งแสงด้วยสัญญาณ PWM วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่าง โดยใช้บอร์ด Arduino  ฝึกต่อวงจรบนเบรดบอร์ด โดยใช้ตัวต้านทานปรับค่าได้แบบสามขา สร้างสัญญาณแอนะล็อกเป็น อินพุตให้บอร์ด Arduino  เรียนรู้การใช้สญ ั ญาณแบบ PWM ปรับความสว่างของไดโอดเปล่งแสงตามแรงดันที่ขาอินพุต

รายการอุปกรณ์       

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ตัวต้านทาน 330Ω ตัวต้านทานปรับค่าได้ (10kΩ หรือสูงกว่า) ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 2 ตัว 2 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab3_3” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 3.3.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 3.3.1 และต่อวงจรบนเบรดบอร์ด ตามผังวงจรในรูปที่ 3.3.2 แต่ ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้อง

135


ของวงจรในเบื้องต้น (รูปที่ 3.3.3 แสดงตัวอย่างการต่อวงจรบนเบรดบอร์ด แต่ไม่จําเป็นต้องต่อวงจร ตามตัวอย่าง ให้ลองวางแผนการต่อวงจรด้วยตนเอง) 4. เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด 5. หมุนที่ปุ่มของตัวต้านทานปรับค่าได้ แล้วสังเกตการเปลี่ยนแปลงที่ไดโอดเปล่งแสง LED1 และ LED2 6. ใช้มัลติมิเตอร์วัดแรงดันที่ขาแอนะล็อก-อินพุต A0 เมื่อหมุนที่ปุ่มของตัวความต้านทานปรับค่าได้ ไปทางซ้ายและขวาสุด (หมุนทวนเข็ม และตามเข็มนาฬิกา) และสังเกตความสว่างของไดโอดเปล่งแสง ทั้งสองตัว

ตัวอย่างโค้ดที่ 3.3.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

136


รูปที่ 3.3.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 3.3.2: ผังวงจรสําหรับการต่อวงจรบนเบรดบอร์ด

137


รูปที่ 3.3.3: ตัวอย่างการต่อวงจรบนเบรดบอร์ด

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า การหมุนที่ปุ่มของตัวต้านทานปรับค่าได้ มีผลต่อความสว่างของ LED1 และ LED2 ดังต่อไปนี้ ……………………………………………………………………………..………………………………………………….. …………………………………………………………………………………………………….…………………………………………… ………………………………………………………………………………………………………….……………………………………… 2. เมื่อแรงดันที่ขา A0 อยู่ที่ 0 โวลต์ หรือ 5 โวลต์ จะทําให้ไดโอดเปล่งแสง ……………………….………………… (ทั้งสองตัวสว่าง / มีเพียงตัวเดียวสว่าง / ไม่มีตัวใดสว่าง)

*******************************

138


ใบมอบหมายงานที่ 3.4 การแสดงระดับแรงดันอินพุตด้วยไดโอดเปล่งแสง วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่าง โดยใช้บอร์ด Arduino  ต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้ สร้างสัญญาณแอนะล็อกเป็นอินพุตให้บอร์ด Arduino  เรียนรู้การใช้ไดโอดเปล่งแสงหลายตัวในการแสดงระดับของแรงดันอินพุตหลายระดับ

รายการอุปกรณ์       

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ตัวต้านทาน 330Ω ตัวต้านทานปรับค่าได้ (10kΩ หรือสูงกว่า) ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 3 ตัว 3 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab3_4” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 3.4.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 3.4.1 และต่อวงจรบนเบรดบอร์ด ตามผังวงจรในรูปที่ 3.4.2 แต่ ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้อง ของวงจรในเบื้องต้น (รูปที่ 3.4.3 แสดงตัวอย่างการต่อวงจรบนเบรดบอร์ด แต่ไม่จําเป็นต้องต่อวงจร ตามตัวอย่าง ให้ลองวางแผนการต่อวงจรด้วยตนเอง) 139


4. เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด 5. หมุนที่ปุ่มของตัวต้านทานปรับค่าได้ แล้วสังเกตการเปลี่ยนแปลงที่ไดโอดเปล่งแสง LED1 ถึง LED3 6. ใช้มัลติมิเตอร์วัดแรงดันที่จุดเชื่อมต่อไปยังขาแอนะล็อก-อินพุต A1 ให้ลองหมุนที่ปุ่มของตัวต้านทาน ปรับค่าได้ และระบุระดับของแรงดันที่มีผลต่อการเปลี่ยนสถานะของไดโอดเปล่งแสงแต่ละตัวจาก “ดับ” เปลี่ยนเป็น “ติด”

ตัวอย่างโค้ดที่ 3.4.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

140


รูปที่ 3.4.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 3.4.2: ผังวงจรสําหรับการต่อวงจรบนเบรดบอร์ด

141


รูปที่ 3.4.3: ตัวอย่างการต่อวงจรบนเบรดบอร์ด

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า การหมุนที่ปุ่มของตัวต้านทานปรับค่าได้ มีผลต่อสถานะติด/ดับของ LED1 LED2 และ LED3 ดังต่อไปนี้ ……………………..……………………………………..………………………………………………….. …………………………………………………………………………………………………….…………………………………………… ………………………………………………………………………………………………………….……………………………………… 2. ไดโอดเปล่งแสง LED1 อยู่ในสถานะ “ติด” เมื่อแรงดันที่ขา A0 อยู่ในช่วง ……….….. ถึง ……..…….. โวลต์ 3. ไดโอดเปล่งแสง LED2 อยู่ในสถานะ “ติด” เมื่อแรงดันที่ขา A0 อยู่ในช่วง …….….…. ถึง ……..…….. โวลต์ 4. ไดโอดเปล่งแสง LED3 อยู่ในสถานะ “ติด” เมื่อแรงดันที่ขา A0 อยู่ในช่วง …….….…. ถึง ……..…….. โวลต์

**********************************

142


ใบมอบหมายงานที่ 3.5 การเปรียบเทียบแรงดันของสัญญาณแอนะล็อก วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่าง โดยใช้บอร์ด Arduino  ต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้ สร้างสัญญาณแอนะล็อกเป็นอินพุตให้บอร์ด Arduino  เรียนรู้การอ่านค่าจากขาแอนะล็อก-อินพุต จํานวน 2 ช่อง แล้วนํามาเปรียบเทียบกัน

รายการอุปกรณ์        

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ไดโอดเปล่งแสงสีแดง ขนาด 5 มม. ตัวต้านทาน 330Ω ตัวต้านทาน 10kΩ ตัวต้านทานปรับค่าได้ (10kΩ หรือสูงกว่า) ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 2 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab3_5” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 3.5.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 3.5.1 และต่อวงจรบนเบรดบอร์ด ตามผังวงจรในรูปที่ 3.5.2 แต่ ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้อง

143


4. 5. 6. 7.

ของวงจรในเบื้องต้น (รูปที่ 3.5.3 แสดงตัวอย่างการต่อวงจรบนเบรดบอร์ด แต่ไม่จําเป็นต้องต่อวงจร ตามตัวอย่าง ให้ลองวางแผนการต่อวงจรด้วยตนเอง) เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด หมุนที่ปุ่มของตัวต้านทานปรับค่าได้ แล้วสังเกตการเปลี่ยนแปลงที่ไดโอดเปล่งแสง ใช้มัลติมิเตอร์วัดแรงดันที่จุดเชื่อมต่อไปยังขาแอนะล็อก-อินพุต A0 แล้วจดบันทึก ใช้มัลติมิเตอร์วัดแรงดันที่จุดเชื่อมต่อไปยังขาแอนะล็อก-อินพุต A1 ให้ลองหมุนที่ปุ่มของตัวต้านทาน ปรับค่าได้ และระบุระดับของแรงดันที่มีผลต่อการเปลี่ยนสถานะ “ดับ/ติด” ของไดโอดเปล่งแสง

ตัวอย่างโค้ดที่ 3.5.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

144


รูปที่ 3.5.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 3.5.2: ผังวงจรสําหรับการต่อวงจรบนเบรดบอร์ด

145


รูปที่ 3.5.3: ตัวอย่างการต่อวงจรบนเบรดบอร์ด

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า แรงดันที่ขา A0 วัดได้เท่ากับ ……………………….. โวลต์ 2. เมื่อหมุนที่ปุ่มของตัวต้านทานปรับค่าได้ เพื่อทําให้แรงดันที่ขา A1 เพิ่มขึน้ จาก 0 โวลต์ ไปจนถึง 5 โวลต์ จะทําให้ LED เปลี่ยนสถานะจาก ………………….. (ติด / ดับ) ไปยังสถานะ ………….…..….. (ติด / ดับ) และเมื่อ LED เปลี่ยนสถานะติด/ดับ ในขณะนั้น จะวัดแรงดันที่ขา A1 ได้ประมาณ ….....….. โวลต์ 3. ถ้าจะทําให้ LED สว่าง แรงดันที่ขา A0 และ A1 จะต้องเป็นไปตามเงื่อนไขต่อไปนี้ …………………………….

*****************************

146


บทที่ 4 การต่อวงจรอิเล็กทรอนิกส์ภาคเอาต์พุตสําหรับ Arduino สาระการเรียนรู้ บอร์ดไมโครคอนโทรลเลอร์ Arduino สามารถสร้างสัญญาณดิจิทัล-เอาต์พุตได้หลายช่องสัญญาณ แต่ สามารถจ่ายหรือรับกระแสได้ในปริมาณจํากัด ในการเขียนโปรแกรมสําหรับ Arduino เพื่อควบคุมการทํางาน ของอุปกรณ์อื่นๆ เช่น มอเตอร์ไฟฟ้ากระแสตรง พัดลมระบายความร้อนขนาดเล็ก บัซเซอร์เสียง ซึ่งเป็น อุปกรณ์ที่ต้องใช้แรงดันสูงกว่า +5V หรือมีกระแสโหลดไหลในระดับสูงกว่าที่ขาของไมโครคอนโทรลเลอร์จะ ทนได้ จําเป็นต้องอาศัยวงจรอิเล็กทรอนิกส์ที่เหมาะสมกับงานดังกล่าว ตัวอย่างของอุปกรณ์อิเล็กทรอนิกส์ที่ พบเห็นได้บ่อยสําหรับวงจรดังกล่าว ได้แก่ ทรานซิสเตอร์แบบต่างๆ รีเลย์ อุปกรณ์เชื่อมต่อสัญญาณทางแสง ไอซีที่สามารถขับกระแสได้สงู เป็นต้น

จุดประสงค์การเรียนรู้  อธิบายถึงหลักการทํางานของทรานซิสเตอร์แบบรอยต่อคู่ และแบบมอสเฟต รวมถึงการต่อวงจร เป็นสวิตช์ไฟฟ้าเพื่อจ่ายกระแสให้อุปกรณ์ที่เป็นโหลดไฟฟ้าได้  ยกตัวอย่างความแตกต่างระหว่างทรานซิสเตอร์แบบรอยต่อคู่และแบบมอสเฟตได้  อธิบายถึงหลักการทํางานของรีเลย์และการต่อวงจรเป็นสวิตช์ไฟฟ้าได้  ยกตัวอย่างไอซีที่นํามาใช้ขับกระแสโหลดสูงได้  อธิบายถึงหลักการทํางานของอุปกรณ์เชื่อมต่อทางแสงและรูปแบบการต่อวงจรได้  ต่อวงจรโดยใช้ทรานซิสเตอร์เพื่อขับกระแสโหลด และใช้บอร์ด Arduino ควบคุมการทํางานได้  ต่อวงจรโดยใช้ไอซีขับมอเตอร์ไฟฟ้ากระแสตรง และใช้บอร์ด Arduino ควบคุมการทํางานได้  ควบคุมเซอร์โวมอเตอร์ โดยใช้สัญญาณ PWM จากบอร์ด Arduino ได้  เขียนโค้ด Arduino สําหรับควบคุมการทํางานของวงจรภาคเอาต์พุต โดยใช้ประโยคคําสั่งเลือก ทําหรือทําซ้ําตามเงื่อนไขที่กําหนดได้

147


4.1 การใช้งานอุปกรณ์โหลดกระแสสูงในวงจร อุปกรณ์บางชนิดทําหน้าที่เป็นโหลดในวงจรไฟฟ้า (Electrical Load) และมีกระแสไฟฟ้าไหลผ่าน โหลดในปริมาณมาก (กระแสโหลดสูง) เช่น ตั้งแต่ระดับ 100mA ไปจนถึงระดับ 10A ตัวอย่างเช่น มอเตอร์ ไฟฟ้ากระแสตรง พัดลมระบายความร้อน เป็นต้น และในบางกรณีต้องใช้แรงดันไฟเลี้ยงสูงกว่า +5V เช่น +12V หรือสูงกว่า ถ้าต้องการใช้สัญญาณดิจิทัลจากบอร์ดไมโครคอนโทรลเลอร์ เช่น บอร์ด Arduino มาขับ กระแสโหลดสูง (High-Current Load Driving) จําเป็นต้องมีวงจรอิเล็กทรอนิกส์ที่เหมาะสมสําหรับงาน ดังกล่าว เพราะว่าบอร์ด Arduino ทํางานที่ระดับแรงดัน +5V และขาดิจิทัลแต่ละขาสามารถทนกระแสได้ ประมาณ 30mA ถึง 40mA เท่านั้น ถ้าขาของชิปไมโครคอนโทรลเลอร์จ่ายหรือรับกระแสทีส่ ูงเกินกว่ากําหนด จะทําให้เกิดความเสียหายแก่ตัวอุปกรณ์ได้ รูปที่ 4.1 แสดงให้เห็นถึงปัญหาในการใช้ขาของไมโครคอนโทรลเลอร์เพื่อขับกระแสโหลด โดยสมมุติ ว่า แรงดันไฟเลี้ยง VCC อยู่ที่ระดับ +12V และอุปกรณ์ที่เป็นโหลด มีค่าความต้านทานเท่ากับ 100Ω เมื่อขา ดิจิทัล-เอาต์พุตมีสถานะลอจิกเป็น LOW และได้แรงดันประมาณ 0V ดังนั้นกระแสทีไ่ หลเข้าที่ขาดังกล่าว จะ ได้ประมาณ 120mA ซึ่งสูงกว่าที่ไมโครคอนโทรลเลอร์สามารถทนได้ (เช่น 30mA ถึง 40mA)

รูปที่ 4.1: ขาไมโครคอนโทรเลอร์ที่รับกระแสเข้าสูงมากเกินกว่าที่จะรับได้

รูปที่ 4.2 เป็นอีกตัวอย่างหนึ่งที่แสดงให้เห็นการใช้สวิตช์ไฟฟ้า S1 ซึ่งเป็นปุ่มกดหรือสวิตช์แบบทางกล ทําหน้าที่ควบคุมการจ่ายกระแสให้โหลด เช่น ไดโอดเปล่งแสง (แอลอีดี) และตัวต้านทานที่ต่ออนุกรมกัน โดย ใช้แบตเตอรี่เป็นแหล่งจ่าย คําถามหรือประเด็นที่สําคัญในตัวอย่างนี้คือ ถ้าต้องการสร้างสัญญาณดิจิทัลจาก ไมโครคอนโทรลเลอร์ เช่น บอร์ด Arduino เพื่อมาควบคุม (เปิด-ปิด) การจ่ายกระแสให้โหลด (ใช้กําลังไฟฟ้า สูง) แทนการใช้สวิตช์ไฟฟ้าดังกล่าว จะมีวิธีการและการต่อวงจรอิเล็กทรอนิกส์อย่างไรได้บ้าง 148


รูปที่ 4.2: การใช้สวิตช์เพื่อจ่ายกระแสให้โหลด

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

4.2 ทรานซิสเตอร์แบบรอยต่อคู่ ทรานซิสเตอร์แบบรอยต่อคู่ (BJT: Bipolar Junction Transistor) เป็นอุปกรณ์อิเล็กทรอนิกส์ที่พบ เห็นได้บ่อยในวงจรอิเล็กทรอนิกส์ ทํามาจากสารกึ่งตัวนํา (Semiconductor) เช่น ซิลิกอน (Silicon ใช้ สัญลักษณ์ Si) ซึ่งเป็นธาตุในหมู่ที่ 4 ของตารางธาตุ ทรานซิสเตอร์แบบรอยต่อคู่ แบ่งออกเป็นสองประเภทหลัก คือ NPN และ PNP ตามโครงสร้างภายใน ซึ่งประกอบไปด้วยสารกึ่งตัวนําชนิดพี (P) และชนิดเอ็น (N) โดยการเติมสารเจือปนบริเวณรอยต่อในแผ่น ซิลิกอนบริสทุ ธิ์ ถ้าเจือปนด้วยอะตอมของธาตุหมู่ที่ 3 เช่น โบรอน (Boron) จะได้สารกึ่งตัวนําชนิดพี และถ้า เจือปนด้วยอะตอมของธาตุหมู่ที่ 5 เช่น ฟอสฟอรัส (Phosphorus) จะได้สารกึ่งตัวนําชนิดเอ็น เมื่อนําสารกึ่ง ตัวนําทั้งสองชนิดมาต่อกัน จะทําให้ได้รอยต่อที่เรียกว่า รอยต่อพีเอ็น (PN-Junction) ซึ่งเป็นโครงสร้างพื้นฐาน ของไดโอด ทรานซิสเตอร์แบบรอยต่อคู่ แบ่งเป็น 3 ชั้น มีรอยต่อพีเอ็น 2 รอยต่อ และสร้างได้สองแบบคือ NPN และ PNP ตามรูปที่ 4.3

149


รูปที่ 4.3: โครงสร้างจําลองแสดงรอยต่อของทรานซิสเตอร์รอยต่อคู่แบบ NPN และ PNP

ตัวถังของอุปกรณ์ มีสามขาคือ ขาเบส (B: Base) ขาคอลเลคเตอร์ (C: Collector) และขาอิมิตเตอร์ (E: Emitter) สัญลักษณ์ทางไฟฟ้าของทรานซิสเตอร์แบบ NPN และ PNP มีลักษณะตามรูปที่ 4.4 และให้ สังเกตความแตกต่างระหว่างสัญลักษณ์ของทรานซิสเตอร์แบบ NPN (ลูกศรชี้ออกที่ขา E) และแบบ PNP (ลูกศรชี้เข้าที่ขา E) สัญลักษณ์ตัวอย่างได้กําหนดชื่ออุปกรณ์ Q1 ซึ่งเป็นทรานซิสเตอร์แบบ NPN และกําหนด เบอร์ที่ใช้เป็น PN2222A และ Q2 เป็นทรานซิสเตอร์แบบ PNP เบอร์ 2N3905 ทรานซิสเตอร์รอยต่อคู่ เป็นอุปกรณ์อิเล็กทรอนิกส์ทคี่ วบคุมการทํางานได้ด้วยกระแส (CurrentControlled Devices) มีกระแสไหลผ่านสามทาง คือ กระแสเบส (ไหลผ่านขาเบส B ใช้สัญลักษณ์ IB) กระแส คอลเลคเตอร์ (ไหลผ่านขาคอลเลคเตอร์ C และใช้สญ ั ลักษณ์ IC) และกระแสอิมิตเตอร์ (ไหลผ่านขาอิมิตเตอร์ E ใช้สัญลักษณ์ IE)

รูปที่ 4.4: สัญลักษณ์ทางไฟฟ้าของทรานซิสเตอร์แบบ NPN (ซ้าย) และ PNP (ขวา)

รูปที่ 4.5 แสดงตัวอย่างทรานซิสเตอร์แบบ NPN และ PNP ตัวถังแบบ TO-92 เหมาะสําหรับแรงดัน และกระแสที่ไม่สูงมาก เช่น ทรานซิสเตอร์ เบอร์ 2N3904 (NPN) และ 2N3906 (PNP) จะทนกระแสได้ไม่เกิน 200mA (กระแสคอลเลคเตอร์) แต่ถ้าเป็นทรานซิสเตอร์กําลัง (Power Transistors) ที่ต้องทนกระแสและ แรงดันได้สูง จะนิยมใช้ตัวถังแบบ TO-220 และสามารถติดแผ่นระบายความร้อน (Heat Sink) ได้ นอกจาก 150


ตัวถังที่มีให้เลือกหลายแบบแล้ว ทรานซิสเตอร์รอยต่อคู่แต่ละเบอร์ยังแตกต่างกันไปตามคุณสมบัติเฉพาะตัว เช่น ระดับของแรงดันสูงสุดที่ทนได้ กระแสคอลเลคเตอร์สงู สุด อัตราการขยายกระแส เป็นต้น

รูปที่ 4.5: ตัวอย่างทรานซิสเตอร์แบบ NPN และ PNP (ตัวถังแบบ TO-92 และ TO-220)

สิ่งสําคัญอย่างหนึ่งในการต่อวงจรคือ การเข้าใจสัญลักษณ์ทางไฟฟ้าของทรานซิสเตอร์รอยต่อคู่ ทัง้ แบบ NPN และ PNP และระบุขาต่างๆ ของทรานซิสเตอร์ตามตัวถังที่เลือกใช้ให้ถกู ต้อง รูปที่ 4.6 แสดง ตัวอย่างของทรานซิสเตอร์ NPN เบอร์ PN2222A ตัวถัง TO-92 และการระบุตําแหน่งของขา E B C ตามลําดับ จากซ้ายไปขวา (มุมมองด้านหน้าของอุปกรณ์)

รูปที่ 4.6: ตัวถัง TO-92 ของ PN2222A และตําแหน่งของขา (มุมมองด้านหน้า)

151


ในวงจรอิเล็กทรอนิกส์ที่ใช้สญ ั ญาณแบบดิจิทัล ทรานซิสเตอร์แบบ NPN และ PNP จะถูกนํามาใช้เป็น อุปกรณ์สวิตช์ไฟฟ้าเปิด-ปิด (Switching Devices) เพื่อควบคุมการไหลของกระแสระหว่างขา C และขา E โดยอาศัยกระแสเบสทีข่ า B เช่น การนําสัญญาณดิจิทลั -เอาต์พุตจากไมโครคอนโทรลเลอร์ เชื่อมต่อไปยังขา เบส B ของทรานซิสเตอร์ NPN โดยต่อผ่านตัวต้านทาน RB ตามรูปที่ 4.7 สามารถควบคุมการทํางานของ ทรานซิสเตอร์ได้ ให้สังเกตว่า ขา E ของทรานซิสเตอร์ NPN จะต่อกับ GND ของวงจร

รูปที่ 4.7: การต่อวงจรทรานซิสเตอร์แบบ NPN เพื่อควบคุม (เปิด-ปิด) การขับกระแสให้โหลด

การทํางานของวงจรในรูปที่ 4.7 เป็นดังนี้ เมื่อสัญญาณดิจิทัลจากไมโครคอนโทรลเลอร์ มีสถานะเป็น ลอจิก 1 (หรือ HIGH) จะได้ระดับแรงดันที่ประมาณ +5V ทําให้แรงดันที่ขาเบสเทียบกับขาอิมิตเตอร์ (VBE) มี มากพอ (โดยทั่วไปแล้ว VBE > 0.7V) ส่งผลให้มีกระแสเบสไหล IB ผ่านตัวต้านทาน RB เข้าที่ขา B และมีกระแส คอลเลคเตอร์ IC ไหลผ่านตัวต้านทาน RL (ทําหน้าที่เป็นโหลด) เข้าที่ขา C ของทรานซิสเตอร์ NPN ผลรวมของ กระแสเบสและกระแสคอลเลคเตอร์ (IB + IC) คือ กระแสอิมิตเตอร์ IE ที่ไหลไปยัง GND ของวงจร ถ้า IB มีปริมาณมากขึ้น จะทําให้ IC มีปริมาณมากขึ้นตามความสัมพันธ์ IC = β  IB โดยที่ β (หรือใช้ สัญลักษณ์ hFE) คืออัตราขยายกระแสตรง (DC Current Gain) ที่มีค่ามากกว่า 1 เช่น β=100 แต่ถา้ สถานะ ลอจิกของสัญญาณดิจิทัลเป็น 0 (หรือ LOW) จะได้ระดับแรงดันที่ขาเบสเทียบกับขาอิมิตเตอร์ใกล้เคียง 0V (โดยทั่วไปแล้ว VBE < 0.7V) จะไม่มีกระแสเบสและกระแสคอลเลคเตอร์ไหล ในกรณีทใี่ ช้ทรานซิสเตอร์ PNP และใช้สัญญาณดิจิทัล-เอาต์พุตจากไมโครคอนโทรลเลอร์ เชื่อมต่อไป ยังขาเบส B ของทรานซิสเตอร์ PNP โดยต่อผ่านตัวต้านทาน RB ก็สามารถต่อวงจรตามรูปที่ 4.8 เพื่อควบคุม การทํางานของทรานซิสเตอร์ได้ ให้สังเกตว่า ขา E ของทรานซิสเตอร์ PNP จะต่อกับ VCC ของวงจร

152


รูปที่ 4.8: การควบคุมการทํางานของทรานซิสเตอร์แบบ PNP ที่ทําหน้าที่เป็นสวิตช์เปิด-ปิด

การทํางานของวงจรในรูปที่ 4.8 เป็นดังนี้ กําหนดให้ VCC เท่ากับ +5V และเมื่อสัญญาณดิจิทลั มี สถานะทางลอจิกเป็น 1 (หรือ HIGH) จะได้แรงดันประมาณ +5V และทําให้แรงดันทีข่ าอิมิตเตอร์เทียบกับขา เบส (VEB) ใกล้เคียง 0V (หรือ VEB < 0.7V) ทําให้ไม่มีกระแสเบสและกระแสคอลเลคเตอร์ไหล หรือกล่าวได้ว่า ทรานซิสเตอร์ไม่ทํางานในขณะนั้น แต่ถ้าสัญญาณดิจิทลั มีสถานะลอจิกเป็น 0 (หรือ LOW) ระดับแรงดันจะ อยู่ที่ประมาณ 0V (GND) และทําให้แรงดันที่ขาคอลเลคเตอร์เทียบกับขาเบสมีมากพอ (VEB > 0.7V) ส่งผลให้มี กระแสเบสไหล IB ไหลออกจากขาเบส ผ่านตัวต้านทาน RB ไปยัง GND และมีกระแสคอลเลคเตอร์ IC ไหลจาก ขาคอลเลคเตอร์ของทรานซิสเตอร์ ผ่านตัวต้านทาน RL (ทําหน้าที่เป็นโหลด) ไปยัง GND ของวงจร ปริมาณ กระแสที่ไหลสามารถเขียนได้ตามความสัมพันธ์ดังนี้ IE = IB + IC หรือกล่าวได้ว่า ผลรวมของกระแสเบสและ กระแสคอลเลคเตอร์ จะเท่ากับกระแสอิมิตเตอร์ อย่างไรก็ตาม ในกรณีทใี่ ช้แรงดัน VCC สูงกว่า +5V เช่น +9V หรือ +12V สําหรับวงจรในรูปที่ 4.8 เมื่อสัญญาณดิจิทัลอยู่ที่ระดับ 0V หรือ +5V ในทั้งสองกรณี จะทําให้ VEB > 0.7V และไม่สามารถทําให้ ทรานซิสเตอร์ PNP อยู่ในสถานะ “หยุดนํากระแส” ได้ (จะมีกระแสไหลอยู่ตลอดเวลา) รูปที่ 4.9 แสดงการต่อวงจรสําหรับทรานซิสเตอร์ NPN เพื่อควบคุมการจ่ายกระแสให้อุปกรณ์ที่ทํา หน้าที่เป็นโหลด เช่น มอเตอร์ไฟฟ้ากระแสตรงกําลังต่ํา (ใช้กระแสและแรงดันไม่สูงมาก) เมื่อสัญญาณดิจิทัลอินพุตอยู่ในสถานะลอจิก 1 จะทําให้มีกระแสไหลจากแรงดันไฟเลี้ยงกระแสตรง +VM เช่น +9V หรือ +12V ผ่านมอเตอร์ไฟฟ้ากระแสตรงไปยังขาคอลเลคเตอร์ของตัวทรานซิสเตอร์ และไหลออกทางขาอิมิตเตอร์ไปยัง GND ของวงจร ให้สังเกตว่า วงจรขับกระแสโหลดสําหรับมอเตอร์แบบนี้ จะทําให้มอเตอร์หมุนได้เพียงทาง เดียว ไม่สามารถกลับทิศทางหมุนได้

153


ให้สังเกตว่า ในการต่อมอเตอร์ไฟฟ้ากระแสตรงเป็นโหลดของวงจรไฟฟ้าแบบเหนี่ยวนํา (Inductive Load) และควบคุมการเปิด-ปิดได้ด้วยทรานซิสเตอร์ จะต้องมีการต่อไดโอดป้องกัน (Protection Diode หรือ บางทีก็เรียกว่า Free-Wheeling Diode) โดยต่อคร่อมที่ขั้วทั้งสองของมอเตอร์ไฟฟ้าในลักษณะตามตัวอย่าง (สังเกตทิศทางและขั้วของไดโอด) ไดโอดนี้จะช่วยป้องกันแรงดันเหนี่ยวนําที่ถูกสร้างขึ้นจากมอเตอร์ไฟฟ้าเมื่อ หยุดการจ่ายกระแสให้มอเตอร์ไฟฟ้าอย่างกะทันหัน โดยเฉพาะอย่างยิ่งในกรณีที่มีกระแสไหลในปริมาณมาก เนื่องจากมอเตอร์ไฟฟ้ามีขดลวดอยู่ภายใน และทํางานตามหลักการเหนี่ยวนําแม่เหล็กไฟฟ้าเมื่อมีกระแสไหล ผ่าน ถ้าไม่มีการป้องกันด้วยไดโอด แรงดันเหนี่ยวนํานี้อาจทําให้ทรานซิสเตอร์เสียหาย หรือมีผลกระทบต่อการ ทํางานของวงจรได้ ไดโอดที่นํามาใช้เป็นไดโอดป้องกันได้ เช่น เบอร์ 1N4001

รูปที่ 4.9: การเปิด-ปิดมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ทรานซิสเตอร์ NPN

ในวงจรตัวอย่างตามรูปที่ 4.9 ยังมีการต่อตัวต้านทาน RPulldown ที่ขาเบสของทรานซิสเตอร์เพื่อเชื่อม ต่อไปยัง GND ของวงจร (เลือกค่าความต้านทาน RPulldown > 10  RB) ในกรณีที่ไม่ได้ต่อขาดิจิทัลของวงจร แรงดันที่วัดได้ที่ขาเบสจะเท่ากับ 0V (เนื่องจากมีการเชื่อมต่อผ่านตัวต้านทานไปยัง GND ของวงจร) และ ทรานซิสเตอร์จะไม่ทํางาน รูปที่ 4.10 แสดงตัวอย่างการต่อวงจรโดยใช้ทรานซิสเตอร์ NPN เพื่อควบคุมการทํางานของรีเลย์ที่มี ขดลวดภายในหรือที่เรียกว่า คอยล์ (Relay Coil) และใช้แรงดันสําหรับขดลวด (Relay Coil Voltage) เช่น +12V เมื่อทรานซิสเตอร์ทํางาน จะมีกระแสไหลผ่านคอยล์ของรีเลย์ ถ้าคอยล์มีความต้านทาน (Relay Coil Resistance) เช่น 300Ω จะมีกระแสไหล 12V/300Ω = 40mA โดยประมาณ และทําให้เกิดสนามแม่เหล็ก ไฟฟ้า และส่งผลให้สวิตช์เปลี่ยนตําแหน่งของหน้าสัมผัส (Contacts) 154


เมื่อเริ่มต้นและรีเลย์ยังไม่ทํางาน ขา COM (COMMON) จะต่อกับขา N.C. (Normally Close) แต่ เมื่อมีกระแสไหลและรีเลย์เริม่ ทํางาน ขา COM จะต่อกับขา N.O. (Normally Open) หรือกล่าวได้ว่าสวิตช์มี การเปลี่ยนตําแหน่งจาก N.C. ไปยัง N.O. เมื่อหยุดการไหลของกระแส สวิตช์ของรีเลย์จะย้ายตําแหน่งจาก N.O. กลับไปยังตําแหน่ง N.C. ดังเดิม สวิตช์หรือหน้าสัมผัสของรีเลย์สามารถใช้ได้กับแรงดันกระแสตรง เช่น +24VDC สําหรับกระแสได้สูงถึง 5A (หรืออาจจะมากกว่า ทั้งนี้ขึ้นอยู่กับคุณสมบัติเฉพาะตัวของรีเลย์ที่ได้ เลือกใช้) และแรงดันกระแสสลับ (สําหรับไฟฟ้า 230VAC)

รูปที่ 4.10: การควบคุมการทํางานของรีเลย์โดยใช้ทรานซิสเตอร์ NPN

ให้สังเกตว่า มีการต่อไดโอดป้องกันที่คอยล์ของรีเลย์ เนือ่ งจากคอยล์ของรีเลย์ก็คือขดลวด ดังนั้นเมื่อมี กระแสไหลผ่านขดลวด จะมีสนามแม่เหล็กไฟฟ้าเกิดขึ้นได้ เช่นเดียวกับกรณีของมอเตอร์ไฟฟ้า และเมื่อหยุด การไหลของกระแสอย่างกะทันหัน จะทําให้เกิดแรงดันเหนี่ยวนําต้านการเปลี่ยนแปลงของกระแส ดังนั้นจึงควร ต่อไดโอดป้องกันเอาไว้ รูปที่ 4.11 แสดงอีกหนึ่งตัวอย่างที่ใช้ทรานซิสเตอร์ NPN เพื่อควบคุมการเปิด-ปิดไดหลอดแอลอีดี หลายตัวที่ได้นํามาต่ออนุกรมกัน เช่น ใช้จํานวน 4 ตัว นํามาต่ออนุกรมร่วมกับตัวต้านทานจํากัดกระแส และใช้ แรงดันไฟเลี้ยง เช่น จากแบตเตอรี่ +9V หรือ +12V ได้ แต่ถ้าใช้แรงดันไฟเลี้ยง +5V (เช่น แรงดันไฟเลี้ยงที่ได้ จากบอร์ดไมโครคอนโทรลเลอร์) ไดโอดเปล่งแสงทั้งหมดที่ต่ออนุกรมกันอยู่จะไม่ติด เพราะแรงดัน Forward Bias สําหรับไดโอดเปล่งแสงแต่ละตัว (เช่น ไดโอดเปล่งแสงสีแดง) จะต้องอยู่ที่ระดับประมาณ 1.8V เป็นอย่าง น้อยสําหรับหนึ่งตัว และจะต้องมีแรงดันตกคร่อมที่ไดโอดเปล่งแสงรวมทั้งสี่ตัว อย่างน้อยประมาณ 4  1.8V = 7.2V จึงจะทําให้เกิดการเปล่งแสงสว่าง

155


รูปที่ 4.11: การควบคุมการเปิด-ปิดไดโอดเปล่งแสงหลายตัวอนุกรมกันโดยใช้ทรานซิสเตอร์ NPN

ถ้าต้องการใช้ทรานซิสเตอร์แบบ NPN หรือ PNP ที่มีอัตราขยายกระแสสูงมาก สามารถเลือกใช้ ทรานซิสเตอร์ดาร์ลิงตัน (Darlington Transistors) ภายในมีทรานซิสแบบรอยต่อคู่ชนิดเดียวกันต่อกันใน รูปแบบที่เรียกว่า Darlington Pair ตัวอย่างของทรานซิสเตอร์ดาร์ลิงตันที่นิยมใช้ เช่น เบอร์ TIP120/121/122 (NPN Darlington) และ TIP125/126/127 (PNP Darlington) ในตัวถังแบบ TO-220 รูปที่ 4.12 แสดงตัวอย่างการใช้ทรานซิสเตอร์ดาร์ลิงตัน TIP122 (NPN) ซึ่งมีอัตราการขยายกระแส (Current Gain) ได้สูงถึง 1000 ทําหน้าที่เป็นสวิตช์สําหรับเปิด-ปิดการขับกระแสโหลดสูง (High-Current Load) และควบคุมได้จากขาเอาต์พุต-ดิจิทัลของไมโครคอนโทรลเลอร์ระดับ +5V นอกจากนั้นยังมีไอซีขับกระแสโหลดสูงได้หลายช่องให้เลือกใช้ โดยใช้ทรานซิสเตอร์ดาร์ลิงทันสําหรับ แต่ละช่อง เช่น เบอร์ ULN2003A ตัวถัง PDIP-16 ที่สามารถขับกระแสโหลดได้สูงถึง 500mA มีอินพุตเอาต์พุตทั้งหมด 7 ช่อง และรับสัญญาณดิจิทัลสําหรับควบคุมทํางานจากไมโครคอนโทรลเลอร์ได้ แต่ถ้าเป็น เบอร์ ULN2803A ตัวถัง PDIP-18 มีอินพุต-เอาต์พุตทั้งหมด 8 ช่อง

156


รูปที่ 4.12: การควบคุมการจ่ายกระแสโหลดที่สูงโดยใช้ทรานซิสเตอร์ NPN Darlington

รูปที่ 4.13 แสดงตัวถังพร้อมระบุขาต่างๆ ของไอซี ULN2003A และ ULN2803A ตามลําดับ (ตัวถัง ทั้งแบบ PDIP-16 และ PDIP-18 สามารถเสียบขาอุปกรณ์ลงเบรดบอร์ดได้) รูปที่ 4.14 แสดงตัวอย่าง ทรานซิสเตอร์ TIP122 / TIP127 และไอซี ULN2803A

รูปที่ 4.13: สัญลักษณ์ทางไฟฟ้าของไอซี ULN2003A และ ULN2803A

รูปที่ 4.15 แสดงผังวงจรในการต่อไอซี ULN2803A เพื่อขับกระแสให้มอเตอร์ไฟฟ้ากระแสตรง (มอเตอร์หมุนได้ทางเดียว) โดยใช้สัญญาณดิจิทัลที่ระดับแรงดัน +5V จากไมโครคอนโทรลเลอร์ในการควบคุม การทํางาน สัญญาณที่อินพุตช่อง A ซึ่งต่อเข้าขาอินพุต 1B ของไอซี ทําหน้าที่ควบคุมการเปิด-ปิดมอเตอร์ ไฟฟ้า M1 ผ่านขาเอาต์พุต 1C และสัญญาณที่อินพุตช่อง B ซึ่งต่อเข้าขาอินพุต 2B และ 3B ของไอซี ทําหน้าที่ควบคุมการเปิด-ปิดมอเตอร์ไฟฟ้า M2 ผ่านขาเอาต์พุต 2C และ 3C ที่เชื่อมต่อกัน 157


รูปที่ 4.14: ตัวอย่างทรานซิสเตอร์ TIP122 / TIP127 และไอซี ULN2803A

ให้สังเกตว่า การจ่ายกระแสให้มอเตอร์ไฟฟ้า M1 จะใช้เพียงขาอินพุตและขาเอาต์พุตของไอซีอย่างละ หนึ่งขา แต่การจ่ายกระแสให้มอเตอร์ไฟฟ้า M2 จะใช้ขาอินพุตและเอาต์พุตอย่างละสองขา ซึ่งเป็นวิธีการหนึ่ง ในการจ่ายกระแสแบบขนาน ทําให้สามารถจ่ายกระแสโหลดให้มอเตอร์ไฟฟ้าได้สูงขึ้น เช่น ถ้าใช้เพียงขาเดียว จะทนกระแสโหลดได้สูงสุดไม่เกิน 500mA แต่ถ้าใช้ขาสองขาต่อขนานกัน จะทนกระแสโหลดได้ถึง 1000mA

รูปที่ 4.15: ตัวอย่างการต่อวงจรโดยใช้ไอซี ULN2803A สําหรับเปิด-ปิดมอเตอร์ไฟฟ้ากระแสตรง 158


4.3 มอสเฟต (MOSFET) มอสเฟต (MOSFET: Metal-Oxide Semiconductor Field Effect Transistor) เป็นทรานซิสเตอร์ ประเภทหนึ่งที่ใช้อิทธิพลสนามไฟฟ้าในการควบคุมสัญญาณไฟฟ้า หรือที่เรียกว่า ทรานซิสเตอร์สนามไฟฟ้า (FET: Field Effect Transistor) และเป็นอุปกรณ์ที่มีสามขา คือ ขาเกต (G: Gate) ขาเดรน (D: Drain) และ ขาซอร์ส (S: Source) มอสเฟตทําหน้าที่เป็นสวิตช์เปิด-ปิดในวงจรอิเล็กทรอนิกส์ ควบคุมการไหลของกระแสระหว่างขา D และ S โดยใช้ขา G เป็นขาควบคุม (Control Terminal) เพื่อสร้างสนามไฟฟ้าในชั้นออกไซด์ของเกต (Gate Oxide) และสร้างช่องนํากระแส (Channel) ระหว่างบริเวณเดรนและซอร์สในสารกึ่งตัวนํา ซึ่งอยู่ใต้ออกไซด์ ของเกต ทําให้ความต้านทานระหว่างขา D และ S เปลี่ยนแปลงได้ โดยเปลี่ยนจากความต้านทานสูงมากเป็น ความต้านทานต่ํามาก (นําไฟฟ้าได้ดี) ทรานซิสเตอร์แบบมอสเฟตจะใช้แรงดันที่ขาเกตกําหนดสถานะ (โหมด) ในการทํางาน แต่ทรานซิสเตอร์รอยต่อคู่ จะใช้กระแสไหลที่ขาเบสกําหนดสถานะ (โหมด) ในการทํางาน มอสเฟต แบ่งออกเป็นสองประเภทหลักคือ N-Channel และ P-Channel มอสเฟต นิยมนํามาใช้เป็น สวิตช์ทางไฟฟ้าในวงจรดิจิทัล สัญลักษณ์ทางไฟฟ้าสําหรับมอสเฟตชนิดเอ็น (N-Channel MOSFET หรือ nMOSFET) และมอสเฟตชนิดพี (P-Channel MOSFET หรือ pMOSFET) มีลักษณะตามรูปที่ 4.16 และให้ สังเกตความแตกต่างระหว่างสัญลักษณ์สําหรับทรานซิสเตอร์แบบ nMOSFET (ลูกศรชี้เข้าจากขา S) และ pMOSFET (ลูกศรชี้ออกไปยังขา S)

รูปที่ 4.16: สัญลักษณ์ทางไฟฟ้าของทรานซิสเตอร์แบบ nMOSFET และ pMOSFET

159


ในรูปที่ 4.16 แถวบนจากซ้ายไปขวา อุปกรณ์ชื่อ Q1 คือ IRF540 (nMOSFET) และ Q2 คือ IRF9530 (pMOSFET) ในแถวล่างจากซ้ายไปขวา อุปกรณ์ชื่อ Q3 คือ IRFZ44N (Power nMOSFET) และ Q4 คือ IRF9540N (Power pMOSFET) ซึ่งเหมาะสําหรับงานอิเล็กทรอนิกส์ทใี่ ช้ไฟฟ้ากําลังสูง รูปที่ 4.17 แสดงตัวอย่างของมอสเฟตที่มีตัวถังแบบต่างๆ แบ่งเป็นสองประเภทหลักคือ ตัวถังของอุปกรณ์แบบ Surface Mount Device (SMD) และแบบ Through-Hole Mount ซึ่งแบบหลังนี้ จะต้องเสียบขาลงในรูของ แผ่นวงจรพิมพ์เพื่อบัดกรีขาอุปกรณ์ให้ยดึ ติดกับแผ่นวงจร

รูปที่ 4.17: ตัวอย่างทรานซิสเตอร์แบบ MOSFET ตัวถังแบบต่างๆ

มอสเฟตนิยมนํามาใช้เป็นสวิตช์เปิด-ปิดทางไฟฟ้าเพื่อขับกระแสโหลดในวงจร โดยการกําหนดระดับ ของแรงดันตกคร่อมหรือความต่างศักย์ระหว่างขา G และขา S เพื่อควบคุมการเชื่อมต่อทางไฟฟ้าระหว่างขา D และขา S ถ้าแรงดันตกคร่อมนี้เพิ่มขึ้นจนมากกว่าแรงดันขั้นต่ําที่เรียกว่า Gate Threshold Voltage ซึ่งใช้ สัญลักษณ์ Vth จะทําให้ความต้านทานของทรานซิสเตอร์ระหว่างขา D และ S (Drain-to-Source On Resistance) ซึ่งใช้สัญลักษณ์ RDS(ON) มีคา่ ลดต่ําลง (ได้ต่ํากว่าหนึ่งโอห์ม) หรือกล่าวได้ว่า ทรานซิสเตอร์อยู่ใน โหมดทํางาน และถ้ามีความต่างศักย์ระหว่างขา D และ S จะทําให้มีกระแสไหลได้ และเรียกกระแสนี้ว่า กระแสเดรน (Drain Current) ใช้สัญลักษณ์ ID แต่ถ้า VGS = 0V มอสเฟตจะต้องไม่นําไฟฟ้า จนกว่า VGS > Vth และมอสเฟตทีท่ ํางานได้ในลักษณะนี้ มีชื่อเรียกว่า Enhancement-Mode MOSFET

160


ในกรณีของ nMOSFET ถ้าแรงดันที่ขา G เทียบกับขา S (Gate-to-Source Voltage) ซึ่งใช้ สัญลักษณ์ VGS มีค่ามากกว่า Vth จะทําให้ทรานซิสเตอร์อยู่ในโหมด “ทํางาน” ถ้าแรงดันที่ขา D เทียบกับขา S ซึ่งใช้สัญลักษณ์ VDS มีมากกว่า 0V จะทําให้มีกระแสไหลจากขา D ไปยังขา S แต่ถ้า VGS < Vth ทรานซิสเตอร์ จะอยู่ในโหมด “ไม่ทํางาน” ในกรณีของ pMOSFET ถ้าแรงดันที่ขา S เทียบกับขา G (Source-to-Gate Voltage ซึ่งใช้สัญลักษณ์ VSG มีค่ามากกว่า Vth จะทําให้ทรานซิสเตอร์อยู่ในโหมด “ทํางาน” ถ้าแรงดันที่ขา S เทียบกับขา D ซึ่งใช้ สัญลักษณ์ VSD มีค่ามากกว่า 0V จะทําให้มกี ระแสไหลจากขา S ไปยังขา D แต่ถ้า VSG < Vth ทรานซิสเตอร์จะ อยู่ในโหมด “ไม่ทํางาน” โดยทั่วไปแล้ว Vth ของมอสเฟต จะเป็นบวกและมีค่าอยูใ่ นช่วง 1V ถึง 4V ขึ้นอยู่กับคุณสมบัติของ ทรานซิสเตอร์แต่ละเบอร์ แต่สําหรับมอสเฟตส่วนใหญ่ทนี่ ําไปใช้กับกระแสโหลดสูง แรงดัน VGS จะต้องอยู่ ในช่วง 5V ถึง 10V เพื่อลดค่าความต้านทาน RDS(ON) ของทรานซิสเตอร์ให้น้อยที่สุด ในกรณีที่ต้องใช้แรงดัน VGS > 5V เพื่อทําให้มอสเฟตนําไฟฟ้าได้ดี จะไม่สามารถใช้แรงดันจากขาเอาต์พุตของชิปไมโครคอนโทรลเลอร์ ที่ใช้ไฟเลี้ยง +5V ได้ และจําเป็นต้องมีอุปกรณ์หรือต่อวงจรเพิ่มเติม รูปที่ 4.18 แสดงตัวอย่างการต่อวงจรโดยใช้มอสเฟตในการควบคุมการขับกระแสให้โหลด ซึ่งใช้ ไดโอดเปล่งแสงและตัวต้านทานเป็นโหลดทางไฟฟ้า เช่น เลือกใช้มอสเฟตเบอร์ 2N7000 ซึ่งมีค่า Vth ประมาณ 3V ที่ทําให้มอสเฟตเริ่มนําไฟฟ้าได้ดี และเลือกใช้ค่า R1=1kΩ, R2=100kΩ และ R3=1kΩ สําหรับวงจร ดังกล่าว  ในกรณีของวงจรที่ใช้ nMOSFET ถ้ายังไม่กดปุ่ม S1 แรงดัน VGS จะเท่ากับ 0V (ความต่างศักย์ไฟฟ้า ระหว่างขา G และ S เป็นศูนย์) แต่ถ้ากดปุ่มค้างไว้ VGS จะมีค่าใกล้เคียง +12V ซึ่งมากกว่า Vth และ ทําให้มอสเฟตทํางาน มีกระแสเดรนไหลผ่าน (ทําให้ไดโอดเปล่งแสงสว่าง)  ในกรณีของวงจรที่ใช้ pMOSFET ถ้ายังไม่ได้กดปุ่ม S1 แรงดัน VSG จะเท่ากับ 0V (ความต่าง ศักย์ไฟฟ้าระหว่างขา S และ G เป็นศูนย์) แต่ถ้ากดปุ่มค้างไว้ VSG จะมีค่าใกล้เคียง +12V ซึ่งมากกว่า Vth และทําให้มอสเฟตทํางานและมีกระแสเดรนไหลผ่าน

ในการต่อวงจรโดยใช้มอสเฟตสําหรับระดับแรงดันและปริมาณกระแสสูง เพื่อใช้เป็นสวิตช์เปิด-ปิดการ ขับกระแสโหลดได้ โดยใช้สัญญาณเอาต์พุต-ดิจิทัล +5V จําเป็นต้องต่ออุปกรณ์เพิ่ม รูปที่ 4.19 แสดงตัวอย่าง การใช้ทรานซิสเตอร์รอยต่อคู่ชนิด NPN เพื่อควบคุมการทํางานของมอสเฟตชนิด pMOSFET สําหรับแรงดัน ไฟเลี้ยง +12V ในวงจรตัวอย่างนี้ได้เลือกใช้ทรานซิสเตอร์ เบอร์ 2N3904 สําหรับ Q1 และเบอร์ IRF9540N สําหรับ Q2 และตัวต้านทาน R1=1kΩ, R2=10kΩ, R3=100Ω

161


รูปที่ 4.18: ตัวอย่างการต่อวงจรโดยใช้มอสเฟต pMOSFET และ nMOSFET เพื่อขับกระแสโหลด

รูปที่ 4.19: การต่อวงจรโดยใช้ทรานซิสเตอร์ NPN และ pMOSFET สําหรับขับกระแสโหลดสูง

การทํางานของวงจรในรูปที่ 4.19 เป็นดังนี้ เมื่อสัญญาณอินพุตอยู่ที่ระดับ 0V จะไม่มีกระแสเบสไหล เข้าที่ขา B ดังนั้นทรานซิสเตอร์ Q1 จึงยังไม่ทํางาน ไม่มกี ระแสคอลเลคเตอร์ไหล ส่งผลให้ VCE มีค่าใกล้เคียง +12V และแรงดันที่ขา G และขา S ของ Q2 เมื่อเทียบกับ GND อยู่ที่ +12V เท่ากัน ดังนั้น VSG = 0V ทําให้ Q2 ยังไม่ทํางาน (Vth มีค่าประมาณ 4V เป็นอย่างน้อย สําหรับ IRF9540N) แต่ถ้าสัญญาณอินพุตอยู่ที่ระดับ +5V จะมีกระแสไหลเข้าที่ขา B ของ Q1 ส่งผลให้ VCE มีค่าใกล้เคียง 0V (อยู่ในช่วงประมาณ 0.1V ถึง 0.2V) และแรงดันที่ขา G ของ Q2 ลดต่ําลงมา และ VSG จะอยู่ในช่วง 11V ถึง 12V ซึ่งหมายความว่า VSG > Vth ดังนั้นจึงส่งผลให้ Q2 อยู่ในโหมดทํางาน และมีกระแสไหลผ่านโหลดไฟฟ้าได้

162


4.4 รีเลย์ รีเลย์ (Relay) เป็นอุปกรณ์ที่ใช้หลักการแม่เหล็กไฟฟ้า เพื่อควบคุมสวิตช์เปิด-ปิดแบบสองทิศทางด้วย กระแสไฟฟ้า เมื่อมีกระแสไหลผ่านขดลวดภายใน หรือที่เรียกว่า คอยล์ (Coil) จะทําให้เกิดสนามแม่เหล็ก ไฟฟ้า ทําให้หน้าสัมผัส (Contact) ติดกันและนําไฟฟ้าได้ เหมาะกับการนําไปใช้เป็นสวิตช์เปิด-ปิดที่ควบคุมได้ ทางไฟฟ้า โดยผ่านหน้าสัมผัสที่ทนแรงดันและกระแสได้สูง เช่น ไฟฟ้ากระแสสลับ 230VAC หรือกระแสตรง เช่น 12VDC หรือ 24VDC แต่ทนกระแสได้ไม่เกิน 5A รูปที่ 4.20 แสดงตัวอย่างของรีเลย์ขนาดต่างๆ

รูปที่ 4.20: รีเลย์แบบต่างๆ

รูปที่ 4.21: สัญลักษณ์ทางไฟฟ้าของรีเลย์แบบ 5 ขา

163


สัญลักษณ์ทางไฟฟ้าสําหรับรีเลย์แบบ SPDT (Single-Pole-Double Throw) หรือสวิตช์สองทางหนึ่ง ขั้วมีลักษณะตามรูปที่ 4.21 ขา C1 และ C2 ของอุปกรณ์ เป็นขาสําหรับป้อนแรงดันไฟเลี้ยงให้คอยล์ของรีเลย์ ซึ่งทําหน้าที่ควบคุมการเชื่อมต่อของหน้าสัมผัสระหว่างขา COM (Common) กับขา NC (Normally Close) เมื่อรีเลย์ยังไม่ทํางาน หรือขา NO (Normally Open) เมื่อรีเลย์ทํางาน (มีกระแสไหลผ่านคอยล์) การระบุตําแหน่งขาต่างๆ ของรีเลย์ เช่น ตามตัวอย่างในรูปที่ 4.21 สามารถทําได้โดยการวัดความ ต้านทานระหว่างขาต่างๆ ด้วยมัลติมิเตอร์ เช่น ถ้าวัดความต้านทานระหว่างสองขาใดๆ และได้ค่าในช่วง 100Ω ถึง 400Ω โดยประมาณ แสดงว่าขาทั้งสองก็คือ ขา C1 และ C2 ซึ่งเป็นขาทั้งสองของคอยล์ที่อยู่ภายใน และ ค่าที่วัดได้คือ ค่าความต้านทานของคอยล์ ถ้าวัดความต้านทานระหว่างสองขาได้ใกล้เคียง 0V (นําไฟฟ้าได้ดี มาก) แสดงว่าขาทั้งสองก็คือ ขา NC และ COM แต่ถ้าวัดความต้านทานระหว่างสองขาใดๆ ได้ค่าความ ต้านทานสูงมาก แสดงว่าขาทั้งสองไม่เชื่อมต่อกันทางไฟฟ้า ในการควบคุมการเปิด-ปิดการทํางานของรีเลย์ โดยใช้สญ ั ญาณดิจิทลั จากบอร์ดไมโครคอนโทรลเลอร์ ที่แรงดัน +5V เช่น บอร์ด Arduino อาจจําเป็นต้องใช้ทรานซิสเตอร์เป็นสวิตช์เปิด-ปิดการจ่ายกระแสให้คอยล์ ของรีเลย์ โดยเฉพาะอย่างยิ่งในกรณีที่แรงดันของคอยล์สูงกว่า +5V หรือมีกระแสไหลผ่านคอยล์มากกว่า 40mA ขึ้นไป เนื่องจากขาของชิปไมโครคอนโทรลเลอร์มขี ้อจํากัดในการจ่ายหรือรับกระแส

รูปที่ 4.22: ตัวอย่างโมดูลรีเลย์ที่นําไปใช้ร่วมกับบอร์ดไมโครคอนโทรลเลอร์ Arduino ได้

164


รูปที่ 4.22 แสดงตัวอย่างของโมดูล (Module) ซึ่งเป็นแผงวงจรสําหรับใช้งานรีเลย์ ใช้แรงดันสําหรับ คอยล์ +12V หรือ +5V และใช้ทรานซิสเตอร์ NPN เป็นตัวขับรีเลย์ โมดูลในลักษณะนี้ สามารถนําไปใช้งาน ร่วมกับบอร์ดไมโครคอนโทรลเลอร์ได้ มีความสะดวกในการต่อวงจรใช้งาน

4.5 อุปกรณ์เชื่อมต่อทางแสง (Optocouplers) อุปกรณ์เชื่อมต่อทางแสง หรือที่เรียกว่า ออปโต้คัปเปลอร์ (Opto-Coupler) หรือบางทีก็เรียกว่า อุปกรณ์แยกสัญญาณทางแสง (Opto-Isolator) เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ใช้ในการเชื่อมต่อทางแสง โดย การเปลี่ยนสัญญาณไฟฟ้าให้เป็นแสงและเปลี่ยนกลับเป็นไฟฟ้าตามเดิม นิยมใช้สําหรับการเชื่อมต่อสัญญาณ ระหว่างสองวงจรที่ต้องการแยกกันทางไฟฟ้าโดยเด็ดขาด เพื่อป้องกันการรบกวนกันทางไฟฟ้า ภายในของ อุปกรณ์ประเภทนี้ ประกอบด้วยไดโอดเปล่งแสง (LED) ซึ่งทําหน้าที่เป็นตัวส่งแสง (Optical Transmitter) เช่น แสงอินฟราเรด (Infrared) และสําหรับตัวรับแสง (Optical Receiver) มักนิยมใช้โฟโต้ทรานซิสเตอร์ (Phototransistor) โดยจะถูกผลิตรวมอยู่ในตัวถังเดียวกัน โฟโต้ทรานซิสเตอร์ ทํางานได้ในลักษณะเดียวกับทรานซิสเตอร์รอยต่อคู่แบบ NPN แต่ไม่มีขาเบส (B) และถูกแทนทีด่ ้วยส่วนรับแสง เมื่อได้รับแสงหรืออนุภาคของแสง หรือที่เรียกว่า โฟตอน (Photons) ในปริมาณ มากพอ จะให้ทําเกิดอนุภาคอิสระที่มีประจุ ในบริเวณรอยต่อระหว่างเบสและคอลเลคเตอร์ (Base-Collector Region) และให้ผลเหมือนมีกระแสไหลเข้าที่ขาเบส รูปที่ 4.23 แสดงสัญลักษณ์ของอุปกรณ์เชื่อมต่อทางแสง แบบ 4 (เบอร์ PC817) และ 6 ขา (เบอร์ 4N35)

รูปที่ 4.23: สัญลักษณ์ทางไฟฟ้าของอุปกรณ์เชื่อมต่อทางแสง

อุปกรณ์เชื่อมต่อทางแสง สามารถรับสัญญาณอินพุต (ดิจิทัล) เช่น จากไมโครคอนโทรลเลอร์ เพื่อใช้ เปิด-ปิดไดโอดเปล่งแสงที่อยู่ภายในตัวอุปกรณ์ และทําหน้าที่ควบคุมการทํางานของโฟโต้ทรานซิสเตอร์ ดังนั้น จึงนําไปใช้ในลักษณะเป็นอุปกรณ์สวิตช์เปิด-ปิด (Switching Device) หรือนําไปต่อกับวงจรทรานซิสเตอร์เพื่อ ขับกระแสได้ในปริมาณที่สูงขึ้น เมื่อแรงดันอินพุตอยู่ในระดับที่สูงกว่า แรงดันไบอัสตรง (Forward Voltage) 165


ซึ่งใช้สัญลักษณ์ VF ของไดโอดเปล่งแสง จะทําให้เกิดกระแสไหล หรือที่เรียกว่า กระแสอินพุต หรือ กระแส ไบอัสตรง (Forward Current) ซึ่งใช้สัญลักษณ์ IF ทําให้ไดโอดเปล่งแสงตามปริมาณกระแสไฟฟ้าที่ไหล ในการ ต่อวงจรจะต้องมีตัวต้านทานต่ออนุกรมอยู่ด้วย เพื่อกําหนดปริมาณของกระแสที่ไหลไม่ให้สูงเกิน ซึ่งขึ้นอยู่กับ อุปกรณ์แต่ละตัวที่ใช้ แต่โดยทั่วไป อยู่ในช่วง 5 มิลลิแอมป์ แต่จะไม่เกิน 50 มิลลิแอมป์ เมื่อโฟโต้ทรานซิสเตอร์ได้รับแสง จะทําให้สามารถนําไฟฟ้าได้ระหว่างขา C และ E ซึ่งให้ผลเหมือนใน กรณีที่จ่ายกระแสเข้าที่ขาเบสของทรานซิสเตอร์รอยต่อคู่แบบ NPN ถ้ามีแรงดันตกคร่อมที่ขา C และ E (Collector-to-Emitter Voltage) ซึ่งใช้สัญลักษณ์ VCE ก็จะทําให้มีกระแสเอาต์พุตไหล (Collector Current) ซึ่งใช้สัญลักษณ์ IC ปริมาณของกระแสเอาต์พุตนี้ขึ้นอยู่กับอัตราส่วนการขยายกระแสของโฟโต้ทรานซิสเตอร์ (Transistor Current Gain) ซึ่งใช้สัญลักษณ์ hFE อุปกรณ์เชื่อมต่อทางแสงจากต่างผู้ผลิต มีคุณสมบัติทแี่ ตกต่างกัน เช่น ปริมาณกระแสอินพุตสูงสุด ปริมาณกระแสเอาต์พุตสูงสุด อัตราส่วนการขยายของกระแสเอาต์พุตต่อกระแสอินพุตของอุปกรณ์ (CTR: Current Transfer Ratio ในหน่วยเป็นเปอร์เซ็นต์ โดยทั่วไปจะมีค่ามากกว่า 100% ขึ้นไป ซึ่งก็ขึ้นอยู่กับ ปริมาณกระแสไบอัสตรงที่ไหลในขณะนั้นด้วย) และแรงดันสูงสุดสําหรับ VCE เป็นต้น ตัวถังของอุปกรณ์เชื่อมต่อทางแสงที่พบเห็นได้บ่อยคือ ตัวถังแบบ 4 ขา และตัวถังแบบ 6 ขา แต่มี ไดโอดเปล่งแสงและโฟโต้ทรานซิสเตอร์เพียงหนึ่งคู่ อุปกรณ์เชื่อมต่อทางแสงในตัวถังแบบ 6 ขา ตามตัวอย่าง ในรูปที่ 4.24 จะมีขาเบส (Base Connection Pin) ที่เชื่อมต่อมาจากบริเวณเบสของโฟโต้ทรานซิสเตอร์ที่อยู่ ภายใน และใช้ในการปรับความไวในการตอบสนองเชิงเวลาของสัญญาณไฟฟ้า (หรือกล่าวได้ว่า สามารถเปิดปิดสวิตช์ไฟฟ้าได้เร็วขึ้น) โดยการนําขาเบส ไปต่อกับตัวต้านทานที่มีค่าอยู่ในช่วง 200k ถึง 1M โอห์ม ไปยัง GND ของวงจรเอาต์พุต แต่ถ้าไม่สนใจเรื่องความไวในการตอบสนอง ก็ไม่จําเป็นต้องต่อขาเบส

รูปที่ 4.24: สัญลักษณ์ทางไฟฟ้าและตัวถังของ 4N35 แบบ 6 ขา 166


รูปที่ 4.25 แสดงตัวอย่างของอุปกรณ์เชื่อมต่อทางแสงที่นิยมใช้ (เฉพาะตัวถังแบบ Through-Hole Mount) ได้แก่เบอร์ PC817 CNY13-7 4N25 4N33 4N35 6N137 และ 6N135 เป็นต้น อุปกรณ์บางตัว เช่น เบอร์ TLP250 (ตัวถังแบบ PDIP-8) เหมาะสําหรับควบคุมการเปิด-ปิดที่ขาเกตของมอสเฟตกําลัง (Power MOSFET)

รูปที่ 4.25: ตัวอย่างอุปกรณ์เชื่อมต่อทางแสงที่ใช้ตัวถังแบบต่างๆ

อุปกรณ์เชื่อมต่อทางแสงบางเบอร์ มีไดโอดเปล่งแสงและโฟโต้ทรานซิสเตอร์มากกว่าหนึ่งคู่ อยู่ภายใน ตัวถังเดียวกัน เช่น 2 หรือ 4 คู่ สําหรับเชื่อมต่อสัญญาณได้ 2 หรือ 4 ช่อง ตามลําดับ อุปกรณ์เชื่อมต่อทางแสง บางชนิด มีการต่อวงจรโฟโต้ทรานซิสเตอร์กับทรานซิสเตอร์อีกหนึ่งตัวเป็นคู่ในลักษณะที่เรียกว่า ทรานซิสเตอร์ ดาร์ลิงตัน (Darlington Transistor) ทําให้มอี ัตราส่วนการขยายกระแสได้มากขึ้น รูปที่ 4.26 แสดงผังวงจรในการต่ออุปกรณ์เชื่อมต่อทางแสงและทรานซิสเตอร์ NPN เพื่อขับกระแสให้ โหลดที่ใช้แรงดันไฟเลี้ยง +12V และกระแสโหลดไม่เกิน 100mA เช่น รีเลย์ทใี่ ช้แรงดันสําหรับคอยล์ +12V เป็นต้น และสามารถควบคุมการทํางานโดยใช้สัญญาณดิจทิ ัล-เอาต์พุตจากไมโครคอนโทรลเลอร์ วงจรตัวอย่าง นี้ได้ใช้อุปกรณ์เชื่อมต่อทางแสงเบอร์ PC817 (ตัวถังมี 4 ขา) และทรานซิสเตอร์ NPN เบอร์ PN2222A และ เลือกค่าความต้านทาน R1=470Ω, R2=10kΩ, R3=4.7kΩ

167


รูปที่ 4.26: การต่อวงจรโดยใช้อุปกรณ์เชื่อมต่อทางแสงและทรานซิสเตอร์ NPN

การทํางานของวงจรในรูปที่ 4.26 เป็นดังนี้ เมื่อสัญญาณดิจิทัลอยู่ที่ระดับ 0V จะไม่มกี ารเชื่อมต่อทาง แสงภายใน U1 ดังนั้นจะไม่มีกระแสคอลเลคเตอร์ไหล แรงดันตกคร่อมระหว่างขา C และขา E ของ U1 จะได้ ประมาณ +12V และแรงดันที่ขาเบสของ Q1 จะอยู่ที่ 0V และไม่ทํางาน จึงไม่มีกระแสโหลด แต่ถา้ สัญญาณ ดิจิทัลอยู่ที่ระดับ +5V จะเกิดการเชื่อมต่อทางแสงและมีกระแสคอลเลคเตอร์ไหลผ่าน U1 และทําให้เกิด กระแสเบสไหลเข้าที่ขาเบสของ Q1 ทําให้ Q1 อยู่ในโหมดทํางาน และมีกระแสโหลดไหลผ่านทรานซิสเตอร์ รูปที่ 4.27 แสดงผังวงจรในการต่ออุปกรณ์เชื่อมต่อทางแสงและทรานซิสเตอร์มอสเฟต nMOSFET เพื่อขับกระแสให้โหลดไฟฟ้าที่ใช้แรงดันไฟเลี้ยง +12V สําหรับกระแสโหลดสูงกว่าในกรณีที่ใช้ทรานซิสเตอร์ แบบ NPN ได้ และสามารถควบคุมการทํางานโดยใช้สัญญาณดิจิทลั -เอาต์พุตจากไมโครคอนโทรลเลอร์ วงจร ตัวอย่างนี้ได้ใช้อุปกรณ์เชื่อมต่อทางแสง เบอร์ CNY17-3M (ตัวถังมี 6 ขา) และมอสเฟต เบอร์ IRF510 และ เลือกค่าความต้านทาน R1=470Ω, R2=20kΩ, R3=100Ω และให้สังเกตว่า ขา S ของมอสเฟต Q1 จะต่อกับ GND2 ของวงจร รูปที่ 4.28 แสดงผังวงจรในการต่ออุปกรณ์เชื่อมต่อทางแสงและทรานซิสเตอร์มอสเฟต pMOSFET (ใช้แทน nMOSFET) เพื่อขับกระแสให้โหลดไฟฟ้าที่ใช้แรงดันไฟเลี้ยง +12V สําหรับกระแสโหลดสูง และ สามารถควบคุมการทํางานโดยใช้สัญญาณดิจิทัล-เอาต์พุตจากไมโครคอนโทรลเลอร์ วงจรตัวอย่างนี้ได้เลือกใช้ อุปกรณ์เชื่อมต่อทางแสง เบอร์ CNY17-3M (ตัวถังมี 6 ขา) และมอสเฟตชนิดเอ็น เบอร์ IRF510 และเลือกค่า ความต้านทาน R1=470Ω, R2=20kΩ, R3=100Ω และให้สังเกตว่า ขา S ของมอสเฟต Q1 จะต่อกับแรงดัน ไฟเลี้ยง +12V

168


รูปที่ 4.27: การต่อวงจรโดยใช้อุปกรณ์เชื่อมต่อทางแสงและทรานซิสเตอร์มอสเฟต nMOSFET

รูปที่ 4.29 แสดงตัวอย่างการต่อวงจรขับกระแสโหลดตามผังวงจรในรูปที่ 4.27 โดยใช้มอเตอร์ไฟฟ้า กระแสตรง (พัดลมระบายความร้อนขนาดเล็ก +12V) เป็นโหลด และใช้แบตเตอรี่ +9V เป็นแหล่งจ่าย ในขณะ ที่บอร์ด Arduino ทําหน้าที่เปิด-ปิดมอสเฟต สลับสถานะทุกๆ 5 วินาที ตามตัวอย่างโค้ดที่ 4.1

รูปที่ 4.28: การต่อวงจรโดยใช้อุปกรณ์เชื่อมต่อทางแสงและทรานซิสเตอร์มอสเฟต pMOSFET

169


รูปที่ 4.29: การเชื่อมต่อบอร์ด Arduino กับวงจรควบคุมการขับกระแสโหลด

ตัวอย่างโค้ดที่ 4.1: โค้ด Arduino สาธิตการทํางานของวงจรควบคุมการขับกระแสโหลด

170


4.6 ไอซีขับมอเตอร์กระแสตรง ในการขับกระแสโหลดให้มอเตอร์ไฟฟ้ากระแสตรง สามารถใช้ทรานซิสเตอร์ทั้งแบบรอยต่อคู่และแบบ มอสเฟตเพียงหนึ่งตัวได้ แต่มีข้อจํากัดคือ ไม่สามารถเปลีย่ นทิศทางการหมุนของมอเตอร์ไฟฟ้าได้ ถ้าต้องการ ควบคุมให้มอเตอร์สามารถหมุนเปลี่ยนทิศทางได้ ให้หมุนไปข้างหน้า (Forward) หรือหมุนถอยหลัง (Reverse) เช่น ในกรณีที่ใช้มอเตอร์ไฟฟ้าหนึ่งคู่เพื่อขับเคลื่อนหุ่นยนต์เคลื่อนที่ได้ จะต้องใช้วงจรที่เหมาะสมในการขับ มอเตอร์ รูปที่ 4.30 อธิบายหลักการทํางานของวงจรขับมอเตอร์ไฟฟ้ากระแสตรง และสามารถเลือกทิศทางการ หมุนได้ วงจรนี้ใช้สวิตช์ไฟฟ้าทั้งหมด 4 ตัว (S1 ถึง S4) และนํามาต่อกันตามโครงสร้างคล้ายตัวอักษร H ใน ภาษาอังกฤษ ดังนั้นจึงมักเรียกวงจรในลักษณะนี้ว่า H-Bridge ถ้าสวิตช์ทุกตัวอยู่ในตําแหน่ง “เปิด” (Open) จะไม่มีกระแสไหลในวงจรและมอเตอร์จะไม่หมุน รูปที่ 4.31 แสดงตําแหน่งการเปิด-ปิดของสวิตช์ทั้ง 4 ตัว เพื่อให้มอเตอร์หมุน โดยแบ่งเป็นสองกรณีคือ หมุนไปข้างหน้าและหมุนถอยหลัง (หมุนกลับทิศทาง) ในกรณี แรก สวิตช์ S1=S4=ปิด (Closed) และ S2=S3=เปิด (Open) และในกรณีที่สอง สวิตช์ S1=S4=เปิด (Open) และ S2=S3=ปิด (Closed) ตารางที่ 4.1 สรุปการเปิด-ปิดสวิตช์ S1 ถึง S4 ในรูปแบบต่างๆ ที่มผี ลต่อการทํางานของมอเตอร์ ไฟฟ้า สิ่งที่ต้องห้ามสําหรับวงจร H-Bridge คือ สวิตช์ S1=S2=ปิด หรือ S3=S4=ปิด เพราะจะทําให้กระแส ไหลจากแรงดันไฟเลี้ยงลง GND ของวงจรโดยไม่ผ่านโหลด (มอเตอร์ไฟฟ้า) หรือที่เรียกว่า Shoot-Through ทําให้มีกระแสไหลในปริมาณที่สูงมาก (ลัดวงจร) ทําให้เกิดความร้อนและทําให้อุปกรณ์หรือวงจรเสียหายได้

รูปที่ 4.30: วงจรของสวิตช์ไฟฟ้าสําหรับกําหนดทิศทางการหมุนของมอเตอร์ไฟฟ้ากระแสตรง

171


รูปที่ 4.31: การเปิด-ปิดของสวิตช์ไฟฟ้าและทิศทางการหมุนของมอเตอร์ไฟฟ้า

S1 ปิด เปิด ปิด เปิด เปิด

S2 เปิด ปิด เปิด ปิด เปิด

S3 เปิด ปิด ปิด เปิด เปิด

S4 ปิด เปิด เปิด ปิด เปิด

การทํางานของมอเตอร์ หมุนไปข้างหน้า หมุนกลับทิศทาง หยุดมอเตอร์ (Brake) หยุดมอเตอร์ (Brake) ปล่อยหมุนอิสระ (Free-Run)

ตารางที่ 4.1: สวิตช์ไฟฟ้าและการทํางานของมอเตอร์

การสร้างวงจร H-Bridge สามารถใช้รีเลย์หรือทรานซิสเตอร์เป็นสวิตช์ไฟฟ้าเปิด-ปิด และควบคุมได้ โดยสัญญาณดิจิทัลจากไมโครคอนโทรลเลอร์ อย่างไรก็ตาม ในปัจจุบันมีไอซีขับมอเตอร์ (Motor Driver IC) ที่ ทํางานได้ตามวงจร H-Bridge เช่น ไอซี L293D SN754410 และ L298N ตามตัวอย่างในรูปที่ 4.32 ซึ่ง สามารถขับมอเตอร์ไฟฟ้ากระแสตรงได้ถึง 2 ตัว พร้อมกัน นอกจากนั้นยังสามารถใช้สญ ั ญาณ PWM ในการ ปรับความเร็วในการหมุนของมอเตอร์ไฟฟ้าได้ ไอซี L293D มีราคาไม่แพง สามารถขับกระแสโหลดได้สูงถึง 600mA (กระแสต่อเนือ่ ง) ต่อหนึ่งช่อง ใช้ได้กับแรงดันในช่วง 4.5V ถึง 36V เพื่อป้อนเป็นแรงดันไฟเลี้ยงให้มอเตอร์ รับสัญญาณดิจิทัลจาก ไมโครคอนโทรลเลอร์ +5V ได้ และใช้ตัวถังแบบ PDIP-16 ซึ่งสามารถนําไปต่อวงจรบนเบรดบอร์ดได้

172


รูปที่ 4.32: ไอซีขับมอเตอร์ เบอร์ L293D และ L298N

รูปที่ 4.33 แสดงตัวถังของไอซี L293D และตัวอย่างการต่อวงจรเพื่อขับมอเตอร์สองตัวได้พร้อมกัน (ไม่จําเป็นต้องต่อไดโอดป้องกันคร่อมที่ขั้วของมอเตอร์ไฟฟ้า เพราะมีไดโอดป้องกันรวมอยู่ในไอซีแล้ว) โดยรับ สัญญาณดิจิทลั มาจากไมโครคอนโทรลเลอร์ (เช่น จากบอร์ด Arduino) ตารางที่ 4.2 แสดงการกําหนดค่า ลอจิกให้สญ ั ญาณดิจิทัลเป็นอินพุตให้ไอซี L293D เพื่อใช้ควบคุมการทํางานของมอเตอร์แต่ละตัว

E1/E2

A1/A2

B1/B2

High High High High Low

High Low High Low -

Low High High Low -

การทํางานของมอเตอร์ M1/M2 หมุนในทิศทางหนึ่ง หมุนกลับทิศทาง หยุดมอเตอร์ หยุดมอเตอร์ หยุดมอเตอร์

ตารางที่ 4.2: การกําหนดค่าลอจิกให้สัญญาณดิจิทัลเพื่อควบคุมการทํางานของมอเตอร์ M1/M2

173


รูปที่ 4.33: การต่อวงจรโดยใช้ไอซี L293D เพื่อขับมอเตอร์ไฟฟ้าสองตัว

รูปที่ 4.34: ตัวอย่างมอเตอร์ไฟฟ้ากระแสตรงขนาดเล็ก

รูปที่ 4.34 แสดงตัวอย่างของมอเตอร์ไฟฟ้ากระแสตรงขนาดเล็ก (บางตัวมาพร้อมชุดเกียร์ทดกําลัง) ใช้กระแสต่ํากว่า 0.5A และแรงดันไม่เกิน 7V โดยประมาณ สามารถนํามาทดลองใช้กับไอซี L293D ได้ แต่ถ้า ใช้มอเตอร์ที่มกี ําลังสูงกว่า (เช่น ใช้แรงดันในช่วง 7V ถึง 12V และกระแสไม่เกิน 1A) ไอซี L298N จะเป็น ตัวเลือกที่เหมาะสมกว่า (ไอซี L298N ไม่มีไดโอดป้องกันอยู่ภายในเหมือนไอซี L293D ดังนั้นในการใช้งาน จะต้องต่อไดโอดป้องกันภายนอก ศึกษาวิธีการต่อไดโอดป้องกันได้จากดาต้าชีทของไอซี L298N) 174


รูปที่ 4.35 แสดงตัวอย่างชุดขับมอเตอร์โดยใช้ไอซี L298N มีลักษณะเป็นโมดูล (แผงวงจร) สามารถ นําไปใช้งานร่วมกับบอร์ด Arduino และมีความสะดวกในการใช้งาน

รูปที่ 4.35: ตัวอย่างชุดขับมอเตอร์ไฟฟ้ากระแสตรงโดยใช้ไอซี L298N

4.7 การใช้งานเซอร์โวมอเตอร์ เซอร์โวมอเตอร์แบบดีซี (DC Servo Motor) เป็นมอเตอร์ไฟฟ้าประเภทหนึ่งที่ใช้สัญญาณแบบ PWM ในการควบคุมการทํางานเพื่อกําหนดมุมในการหมุนของมอเตอร์ ภายในเซอร์โวมอเตอร์จะประกอบไปด้วย มอเตอร์ไฟฟ้ากระแสตรง ชุดเกียร์เพื่อช่วยเพิ่มแรงบิด และส่วนควบคุมที่เป็นวงจรอิเล็กทรอนิกส์ เซอร์โว มอเตอร์จะหมุนไปทางซ้ายหรือทางขวาได้ แต่หมุนได้ไม่ครบรอบและมีกลไกป้องกันการหมุนเกิน ข้อดีของการใช้เซอร์โวมอเตอร์คือ สามารถกําหนดให้เพลาของมอเตอร์หมุนไปตามมุมที่ต้องการได้ ค่อนข้างแม่นยํา และนิยมนํามาใช้กับเครื่องบินบังคับหรือรถบังคับ เช่น เพื่อบังคับให้เลี้ยวไปในทิศทางที่ ต้องการ และควบคุมได้จากระยะไกลผ่านคลื่นวิทยุ (R/C: Remote-Controlled) รูปที่ 4.36 แสดงตัวอย่าง เซอร์โวมอเตอร์ที่มีลักษณะแตกต่างกัน เช่น ขนาดของอุปกรณ์ แรงบิด กระแสโหลดที่ใช้ (ประมาณ 150 ถึง 500 มิลลิแอมป์) และอัตราการหมุนเชิงมุม

175


รูปที่ 4.36: ตัวอย่างเซอร์โวมอเตอร์

เซอร์โวมอเตอร์จะใช้สัญญาณไฟฟ้าจํานวน 3 เส้น ได้แก่ สายเส้นแรกคือ แรงดันไฟเลี้ยงกระแสตรง เช่น ในช่วง 4.8V ถึง 6V โดยประมาณ เซอร์โวมอเตอร์บางตัวสามารถใช้กับแรงดันไฟเลี้ยงได้สูงถึง 7.2V สาย เส้นที่สองคือ สัญญาณดิจิทลั สําหรับใช้ควบคุมแบบ PWM และสายเส้นที่สามคือ กราวด์ (GND) สายทั้งสาม เส้นจะมีสีแตกต่างกัน เช่น สายสีแดงสําหรับแรงดันไฟเลี้ยง สายสีเหลืองส้มหรือสีขาวสําหรับสัญญาณ PWM และสายสีดําหรือน้ําตาลสําหรับกราวด์ สําหรับเซอร์โวมอเตอร์ยี่ห้อ Futaba และ Hitec เป็นต้น

โดยทั่วไปแล้ว สัญญาณควบคุมแบบ PWM จะมีความถี่คงที่ ประมาณ 50 Hz (หนึ่งคาบของสัญญาณ เท่ากับ 20 มิลลิวินาที) และมีความกว้างของพัลส์ (Pulse Width) อยู่ในช่วง 1 ถึง 2 มิลลิวินาที ดังรูปที่ 4.37 (หรืออาจจะมีช่วงที่กว้างกว่า ทั้งนี้ขึ้นอยู่กบั เซอร์โวมอเตอร์ที่ใช้) ถ้าความกว้างของพัลส์อยู่ที่ 1.5 มิลลิวินาที จะทําให้เซอร์โวมอเตอร์อยู่ในตําแหน่งเชิงมุมประมาณกึง่ กลาง (ใช้เป็นจุดอ้างอิง) ถ้าความกว้างของพัลส์น้อย กว่า 1.5 มิลลิวินาที จะทําให้เซอร์โวมอเตอร์หมุนไปอยู่ในตําแหน่งเชิงมุมทางซ้าย แต่ถ้าความกว้างของพัลส์ มากกว่า 1.5 มิลลิวินาที จะทําให้เซอร์โวมอเตอร์หมุนไปอยู่ในตําแหน่งเชิงมุมทางขวา

176


รูปที่ 4.37: สัญญาณ PWM และตําแหน่งเชิงมุมของเซอร์โวมอเตอร์ (0, 90, 180 องศา)

ในการควบคุมเซอร์โวมอเตอร์ด้วยบอร์ด Arduino สามารถใช้คําสั่งหรือฟังก์ชันที่ได้มีการจัดทําไว้แล้ว (เป็นส่วนหนึ่งของไลบรารีที่ชื่อว่า Servo Library) ทําให้สะดวกในการเขียนโปรแกรม สามารถใช้ควบคุมเซอร์ โวมอเตอร์ได้มากกว่าหนึ่งตัวพร้อมกัน โค้ดตัวอย่างที่ 4.2 แสดงโค้ด Arduino สาธิตการใช้คําสั่งเพื่อควบคุม เซอร์โวมอเตอร์หนึ่งตัว โดยสร้างสัญญาณ PWM ที่ขาดิจิทัลหมายเลข 9 กําหนดตําแหน่งเชิงมุมของเซอร์โว (สามารถเลือกใช้ขาดิจิทัล PWM อื่นได้ เช่น หมายเลข 5, 6, 10, 11 เป็นต้น) เริ่มต้นที่มุม 0 องศา และเพิ่มขึ้น ทีละ 45 องศา จนถึง 180 องศา แล้วกลับไปทําซ้ํา รูปที่ 4.38 แสดงการเชื่อมต่อบอร์ด Arduino Uno และ เซอร์โวมอเตอร์ (รุ่น SG90 Tower Pro Micro Servo 9g) เซอร์โวมอเตอร์ได้รับแรงดันไฟเลี้ยง +5V และ GND จากบอร์ด Arduino

177


ตัวอย่างโค้ดที่ 4.2: โค้ด Arduino สาธิตการใช้งานเซอร์โวมอเตอร์หนึ่งตัว

รูปที่ 4.38: ตัวอย่างการเชื่อมต่อบอร์ด Arduino และเซอร์โวมอเตอร์ 178


ข้อควรระวัง: ในกรณีที่ใช้เซอร์โวมอเตอร์หลายตัวและมีกระแสโหลดสูง ควรใช้แหล่งจ่ายภายนอก หรือแบตเตอรี่ (4.8V ถึง 6V) แทนการใช้แรงดันไฟเลี้ยง +5V จากบอร์ด Arduino

4.8 การเขียนโค้ด Arduino เพื่อเลือกทําหรือทําขั้นตอนซ้ําตามเงื่อนไข ในการเขียนโค้ดสําหรับ Arduino ยังมีรูปแบบหรือโครงสร้างของประโยคที่ผู้เรียนควรจะทําความ เข้าใจและใช้ให้ถูกต้อง เช่น ประโยคคําสั่งเพื่อเลือกทําขั้นตอนตามเงื่อนไข (Condition) โดยแบ่งเป็นสองกรณี (if-else) ประโยคคําสั่งทําซ้ําตามเงื่อนไขที่กําหนด (while) และประโยคคําสั่งทําซ้ําตามจํานวนครั้งที่กําหนด (for) ประโยคคําสั่งเหล่านี้ถือว่าเป็นพื้นฐานที่สําคัญในการเขียนโปรแกรมภาษาคอมพิวเตอร์ระดับสูง และ สามารถนําไปใช้กําหนดพฤติกรรมการทํางานของไมโครคอนโทรลเลอร์ Arduino ที่มีความซับซ้อนมากขึ้น เช่น การรับค่าอินพุตทั้งแบบดิจิทัลและแบบแอนะล็อกแล้วนํามาสร้างเงื่อนไขในรูปแบบต่างๆ เพื่อควบคุมการ ทํางานวงจรอิเล็กทรอนิกส์ภาคเอาต์พุต เป็นต้น

นิพจน์ (Expression) ก่อนที่จะกล่าวถึงรูปแบบของประโยคคําสั่งที่ต้องระบุเงื่อนไขเพื่อตัดสินใจทําขั้นตอนต่างๆ เช่น เลือก ทําขั้นตอนใดขั้นตอนหนึ่ง หรือเลือกทําขั้นตอนซ้ําอีกหรือเลิกทําซ้ํา เป็นต้น จะต้องรู้จักการกําหนดเงื่อนไข สําหรับประโยคคําสั่งเหล่านี้ซึ่งเรียกว่า นิพจน์ (Expression) และจะต้องเป็นนิพจน์เชิงตรรกะ (Logical Expression) ที่ได้ค่าเชิงตรรกะเท่านั้นคือ เป็น “จริง” (true) หรือ “เท็จ” (false) อย่างใดอย่างหนึ่ง ในการเขียนภาษาคอมพิวเตอร์ระดับสูง นิพจน์ หมายถึง ตัวแปร ค่าคงที่ ข้อมูลคงที่ และค่าที่ได้จาก การเรียกฟังก์ชัน ซึ่งสามารถหาค่าได้ตามชนิดข้อมูลที่เกี่ยวข้อง รวมถึงการสร้างนิพจน์ใหม่จากนิพจน์อื่นๆ โดย อาศัยตัวดําเนินการ (Operator) เช่น ตัวดําเนินการทางคณิตศาสตร์ (Arithmetic Operators) ตัวดําเนินการ เชิงเปรียบเทียบ (Relational Operators) และตัวดําเนินการเชิงตรรกะ (Logical Operators) เป็นต้น นิพจน์เชิงตรรกะสามารถสร้างได้จากการนําข้อมูลจากตัวแปร ค่าคงที่ ข้อมูลคงที่ ค่าที่ได้จากการ เรียกฟังก์ชัน หรือนิพจน์อื่นๆ ทีใ่ ห้ค่าตามชนิดข้อมูลแบบเดียวกัน มาสร้างเป็นนิพจน์ใหม่ได้ดังนี้  ใช้ตัวดําเนินการเชิงเปรียบเทียบ (Relational Operator) เช่น การเปรียบเทียบมากกว่า น้อยกว่า เท่ากับ เป็นต้น สําหรับนิพจน์ใดๆ ที่ให้ค่าตามชนิดข้อมูลแบบเดียวกัน  ใช้ตัวดําเนินการเชิงตรรกะ เช่น “และ” (AND) “หรือ” (OR) เป็นต้น แต่ต้องใช้กับนิพจน์ที่ได้ค่าเชิง ตรรกะเท่านั้น

179


ตารางที่ 4.3 - 4.5 แสดงตัวดําเนินการทางคณิตศาสตร์พื้นฐาน ตัวดําเนินการเชิงเปรียบเทียบ และตัว ดําเนินการเชิงตรรกะในภาษา Arduino C/C++ ตามลําดับ โดยสมมุตวิ ่า x และ y เป็นตัวแปรที่มีชนิดข้อมูล เป็น int (เลขจํานวนเต็ม) และให้สังเกตว่า สามารถใช้วงเล็บคู่เพื่อระบุว่า สิ่งที่เขียนอยู่ในวงเล็บคู่นั้นเป็น นิพจน์ย่อยและมีลําดับความสําคัญก่อน (คํานวณค่าของนิพจน์ในวงเล็บก่อน) เช่น ในการคํานวณค่าเชิงตรรกะ ของนิพจน์ (x >= 0) && (x < 5) ให้เริ่มต้นด้วยการหาค่าของนิพจน์แรกคือ (x >= 0) เพื่อดูว่า x มีค่า มากกว่าหรือเท่ากับ 0 หรือไม่ และถัดไปให้หาค่าของนิพจน์ที่สองคือ (x < 5) เพื่อดูว่า x มีค่าน้อยกว่า 5 หรือไม่ เมื่อนํามาใช้กับตัวดําเนินการ “และ” ถ้านิพจน์ทั้งสองได้ค่าเป็น “จริง” ค่าของนิพจน์โดยรวมจะเป็น “จริง” แต่ในกรณีอื่น จะได้ค่าเป็น “เท็จ”

ตัวดําเนินการ + * / %

ความหมาย บวก ลบ คูณ หาร หารเหลือเศษ (Modulo)

ตัวอย่างนิพจน์ (x + y) (x - 2) (x * 2) (x / 10) (x % 10)

ตารางที่ 4.3: ตัวดําเนินการทางคณิตศาสตร์พื้นฐาน

ตัวดําเนินการ > < == >= <= !=

ความหมาย มากกว่า น้อยกว่า เท่ากับ มากกว่าหรือเท่ากับ น้อยกว่าหรือเท่ากับ ไม่เท่ากับ

ตัวอย่างนิพจน์ (x > 5) (y < x/2) (x == y) (x >= 0) (y <= 3) (x != y)

ตารางที่ 4.4: ตัวดําเนินการเชิงเปรียบเทียบ

ตัวดําเนินการ && || !

ความหมาย “และ” (AND) “หรือ” (OR) “ไม่” (NOT)

รูปแบบการเขียนนิพจน์ (นิพจน์1 && นิพจน์2) (นิพจน์1 || นิพจน์2) !นิพจน์

ตารางที่ 4.5: ตัวดําเนินการเชิงตรรกะ

180


ประโยคคําสัง่ if-else ประโยคคําสั่ง if-else ใช้สําหรับการตัดสินใจทําขั้นตอนตามเงื่อนไขที่ให้ค่าเป็น “จริง” หรือ “เท็จ” ถ้าเงื่อนไขเป็นจริง ให้ทําขั้นตอนหนึ่ง แต่ถ้าเป็นเท็จ ให้ทาํ อีกขั้นตอนหนึ่ง รูปแบบการเขียนประโยคคําสั่ง ifelse เป็นไปตามรูปที่ 4.39 ให้สังเกตการใช้เครื่องหมายวงเล็บปีกกาคู่ (เปิดและปิด) เพื่อแบ่งกลุ่มของประโยค ในแต่ละกรณี ในแต่ละกรณีสามารถมีประโยคคําสั่งได้มากกว่าหนึ่ง

รูปที่ 4.39: โครงสร้างของประโยคคําสั่ง if-else

รูปที่ 4.40 แสดงตัวอย่างการเขียนโค้ด (บางส่วน) สําหรับ Arduino ภายในฟังก์ชัน loop() เริ่มต้น ด้วยการอ่านค่าจากขาอินพุต-แอนะล็อก A0 มาเก็บไว้ในตัวแปรแบบ int ชื่อ value จากนั้นนําค่าของตัวแปร นี้ ไปเปรียบเทียบดูว่า มีค่ามากกว่า 511 หรือไม่ ตามนิพจน์เงื่อนไข ถ้าเงื่อนไขเป็น “จริง” ให้เขียนค่า HIGH เป็นเอาต์พุตที่ขาดิจิทัล หมายเลข 5 แต่ถ้าเป็น “เท็จ” ให้ค่าเอาต์พุตเป็น LOW

รูปที่ 4.40: ตัวอย่างการเขียนโค้ด Arduino ที่มีประโยคคําสั่ง if-else

นอกจากนั้นยังสามารถเขียนประโยคคําสั่ง if แต่ไม่ต้องมีส่วนของ else ได้ ตามโครงสร้างในรูปที่ 4.41 ถ้าเงื่อนไขเป็น “จริง” ให้ทําตามประโยคคําสั่งภายในสําหรับกรณีดังกล่าว แต่ถ้าเงื่อนไขเป็นเท็จ ให้ข้าม ไป (ไม่ต้องทําคําสั่งใดๆ) 181


รูปที่ 4.41: โครงสร้างของประโยคคําสั่ง if (ไม่มี else)

ประโยคคําสั่งแบบ if-else สามารถนํามาเขียนต่อกันได้หลายประโยคตามต้องการ หรือที่เรียกว่า if-else-if เพื่อกําหนดเงื่อนไขสําหรับหลายกรณี และตรวจสอบเงื่อนไขดังกล่าวไปตามลําดับที่เขียนไว้ ถ้ามี เงื่อนไขใดเป็น “จริง” ก็ให้ทาํ เฉพาะประโยคคําสั่งภายในสําหรับเงื่อนไขในส่วนนั้น และไม่ต้องทําส่วนอื่นต่อไป แต่ถ้าเงื่อนไขเป็น “เท็จ” ให้ตรวจสอบเงื่อนไขถัดไป รูปที่ 4.42 เป็นตัวอย่างรูปแบบการเขียนประโยคคําสั่ง แบบ if-else-if ที่แบ่งออกเป็นทั้งหมด 4 กรณี (3 เงื่อนไข)

รูปที่ 4.42: ตัวอย่างโครงสร้างของประโยคคําสั่ง if-else-if

ประโยคคําสัง่ while ประโยคคําสั่ง while ตามโครงสร้างในรูปที่ 4.43 ใช้สําหรับการทําขั้นตอนซ้ํา เริ่มต้นด้วยการ ตรวจสอบนิพจน์ที่เป็นเงื่อนไขก่อน ถ้าเงื่อนไขเป็น “จริง” ให้ทําตามประโยคคําสั่งที่อยู่ภายใน (มีได้มากกว่า หนึ่งประโยคคําสั่ง) แล้วกลับไปตรวจสอบเงื่อนไขใหม่อีกครั้ง ถ้าเงื่อนไขยังเป็นจริงอยู่ ให้ทําตามประโยคคําสั่ง ดังกล่าวซ้ําอีก จนกว่าเงื่อนไขจะเป็นเท็จ จึงจะหยุดการทําซ้ํา

182


รูปที่ 4.43: โครงสร้างของประโยคคําสั่ง while

รูปที่ 4.44 แสดงตัวอย่างการเขียนโค้ด (บางส่วน) สําหรับ Arduino ภายในฟังก์ชัน loop() เริ่มต้น ด้วยการเขียนค่าเป็นเอาต์พุตที่ขาดิจิทัลหมายเลข 5 ให้เป็น HIGH ถัดไปเป็นประโยคคําสั่ง while มีเงื่อนไข คือ อ่านค่าที่ขาดิจิทัลหมายเลข 3 เป็นอินพุตในขณะนั้น (เช่น ค่าได้ที่จากปุ่มกด) แล้วตรวจสอบดูว่า มีค่า เท่ากับ HIGH หรือไม่ ถ้าเป็น “จริง” ให้รอเวลาประมาณ 1 มิลลิวินาที แล้วย้อนกลับไปตรวจสอบเงื่อนไขใหม่ อีกครั้ง แต่ถ้าเป็น “เท็จ” ให้หยุดการทําประโยค while และต่อไปยังประโยคคําสั่งที่อยู่ถัดไป ซึ่งเป็นการเขียน ค่าเป็นเอาต์พุตที่ขาดิจิทัลหมายเลข 5 ให้เป็น LOW แล้วตามด้วยประโยคคําสั่ง while เพื่อตรวจสอบดูว่า เมื่อ อ่านค่าที่ขาดิจิทัลหมายเลข 3 เป็นอินพุตในขณะนั้น ยังเป็น LOW อยู่หรือไม่ ถ้าเป็น “จริง” ให้รอเวลา ประมาณ 1 มิลลิวินาที แล้วย้อนกลับไปตรวจสอบใหม่อีกครั้ง แต่ถ้าเป็น “เท็จ” ให้หยุดการทําประโยค while

รูปที่ 4.44: ตัวอย่างการเขียนโค้ด Arduino ที่มีประโยคคําสั่ง while

183


ประโยคคําสัง่ do-while ประโยคคําสั่ง do-while ตามโครงสร้างในรูปที่ 4.45 ใช้สําหรับการทําขั้นตอนซ้ํา เริ่มต้นด้วยการทํา ตามประโยคคําสั่งที่อยู่ภายในก่อน (มีได้มากกว่าหนึ่งประโยคคําสั่ง) แล้วจึงตรวจสอบนิพจน์ที่เป็นเงื่อนไข ถ้า เงื่อนไขเป็น “จริง” ให้ยอ้ นกลับไปทําตามประโยคคําสั่งซ้ําอีก จนกว่าการตรวจสอบเงื่อนไขจะได้ผลเป็น “เท็จ” จึงหยุดการทําประโยคคําสั่ง do-while

รูปที่ 4.45: โครงสร้างของประโยคคําสั่ง do-while

ประโยคคําสัง่ for ประโยคคําสั่ง for ตามโครงสร้างในรูปที่ 4.46 ใช้สําหรับการทําขั้นตอนซ้ําตามเงื่อนไขที่กําหนด แต่ นิยมใช้กับการทําขั้นตอนซ้ําตามจํานวนครั้งที่กําหนด โดยใช้ตัวแปร (เลขจํานวนเต็ม) เป็นตัวนับจํานวนครั้งที่ ทําขั้นตอนซ้ํา การทํางานของประโยคคําสั่ง for แบ่งออกเป็น 3 ส่วน ได้แก่ ส่วนแรกคือการกําหนดค่าให้ตัว แปรเป็น 0 (initialization) ส่วนที่สองคือ การตรวจสอบเงื่อนไข (condition) เพื่อดูว่าจะทําตามประโยคคําสั่ง ภายในหรือไม่ ถ้าเป็น “จริง” ให้ทําตามประโยคคําสั่งที่อยู่ภายใน และส่วนที่สามคือ การเพิ่มค่าของตัวแปรที่ เป็นตัวนับทีละหนึ่ง (increment) หลังจากได้ทําตามประโยคคําสั่งภายในทั้งหมดแล้ว จากนั้นย้อนกลับไป ตรวจสอบเงื่อนไขใหม่เพื่อดูว่า จะต้องทําซ้ําอีกหรือไม่ แต่ถ้าเป็น “เท็จ” ให้หยุดการทําประโยคคําสั่ง for

รูปที่ 4.46: โครงสร้างของประโยคคําสั่ง for 184


รูปที่ 4.47 แสดงตัวอย่างการเขียนโค้ด (บางส่วน) สําหรับ Arduino ภายในฟังก์ชัน loop() เริ่มต้น ด้วยการประกาศใช้ตัวแปรแบบ int ชื่อ value ถัดไปเป็นประโยคคําสั่ง for กําหนดค่าเริ่มต้นให้ตัวแปร value เป็น 0 จากนั้นตรวจสอบนิพจน์เงื่อนไขก่อนเพื่อดูว่า ค่าของ value น้อยกว่า 256 หรือไม่ ถ้าเป็น “จริง” ให้ ทําตามประโยคคําสั่งที่อยู่ภายใน และเพิ่มค่าของตัวแปร value ทีละหนึ่ง แล้วย้อนกลับไปตรวจสอบเงื่อนไข ใหม่อีกครั้ง เพือ่ ดูว่าจะทําซ้ําอีกหรือไม่ แต่ถ้าเป็น “เท็จ” ให้หยุดการทําประโยคคําสั่ง for โค้ดตัวอย่างนี้ได้ใช้ประโยคคําสั่ง for เพื่อกําหนดค่าให้ Duty Cycle สําหรับการสร้างสัญญาณ เอาต์พุตแบบ PWM ที่ขาดิจทิ ัลหมายเลข 5 โดยใช้คําสั่ง analogWrite() และใช้ค่าของตัวแปร value เป็น ตัวนับและใช้เป็นค่าของ Duty Cycle เริ่มต้นที่ 0 และเพิ่มขึ้นทีละหนึ่ง จนถึง 255 โดยเว้นระยะเวลา ประมาณ 500 มิลลิวินาที

รูปที่ 4.47: ตัวอย่างการเขียนโค้ดที่มีประโยคคําสั่ง for

ผังงาน (Flowchart) เป็นรูปกราฟิกที่ประกอบด้วยขั้นตอนต่างๆ และมีลูกศรเชื่อมโยง เพื่อบอกลําดับ ของการทําขั้นตอนเหล่านั้นตามทิศทางของลูกศร และสามารถนํามาใช้อธิบายการทํางานของโปรแกรมหรือ สําหรับเฉพาะแต่ประโยคคําสั่งได้ เช่น ประโยคคําสั่งแบบเลือกทําตามเงื่อนไข หรือทําขั้นตอนซ้ําได้ ทําให้เห็น ภาพได้ชัดเจนยิ่งขึ้น รูปที่ 4.48 แสดงตัวอย่างผังงานสําหรับประโยคคําสั่งแบบ if-else และ if รูปที่ 4.49 แสดงตัวอย่างผังงานสําหรับประโยคคําสั่งแบบ while และ do-while ตามลําดับ

185


รูปที่ 4.48: ผังงานสําหรับประโยคคําสั่ง if-else และ if

รูปที่ 4.49: ผังงานสําหรับประโยคคําสั่ง while และ do-while

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

************************* 186


ใบมอบหมายงานที่ 4.1 การควบคุมการทํางานของทรานซิสเตอร์ NPN วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ต่อวงจรโดยใช้ทรานซิสเตอร์แบบ NPN ในการเปิด-ปิดกระแสให้โหลด (ตัวต้านทาน) ในวงจร  วัดแรงดันและกระแสที่เกี่ยวข้องกับการทํางานของทรานซิสเตอร์ NPN

รายการอุปกรณ์         

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ทรานซิสเตอร์รอยต่อคู่ NPN เบอร์ PN2222A ปุ่มกดแบบ 4 ขา ไดโอดเปล่งแสงขนาด 5 มม. ตัวต้านทาน 330Ω ตัวต้านทาน 10kΩ ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 2 ตัว 2 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab4_1” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 4.1.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว

187


3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 4.1.1 และต่อวงจรตามผังวงจรในรูปที่ 4.1.2 แต่ยังไม่ต้อง เชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้องของวงจร ในเบื้องต้น 4. เชื่อมต่อไฟเลี้ยง (ขา +5V และขา GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรด บอร์ด สําหรับแรงดันไฟเลี้ยง +5V และ GND ของวงจรตามลําดับ 5. ทดลองกดปุ่ม S1 สังเกตสถานะ “ติด/ดับ” ของไดโอดเปล่งแสง 6. ใช้มัลติมิเตอร์ (ใช้เป็นโวลต์มิเตอร์) วัดแรงดัน VBE (วัดแรงดันตกคร่อมที่ขา B และ E ของ ทรานซิสเตอร์) และ VCE (วัดแรงดันตกคร่อมที่ขา C และ E) โดยแบ่งเป็นสองกรณีคือ เมื่อกดปุ่ม (S1) ค้างไว้ และไม่กดปุ่ม จดบันทึกค่าที่ได้ลงในตารางที่ 4.1.1 7. ใช้มัลติมิเตอร์ (ใช้เป็นแอมมิเตอร์) วัดกระแสที่ไหลผ่านขา B (กระแสเบส IB) ขา C (กระแส คอลเลคเตอร์ IC) และขา E (กระแสอิมิตเตอร์ IE) ของทรานซิสเตอร์ ตามลําดับ โดยแบ่งเป็นสองกรณี คือ เมื่อกดปุ่ม (S1) ค้างไว้ และไม่กดปุ่ม จดบันทึกค่าที่ได้ลงในตารางที่ 4.1.2

โค้ดตัวอย่างที่ 4.1.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

188


รูปที่ 4.1.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 4.1.2: ผังวงจรสําหรับการต่อวงจร

189


รูปที่ 4.1.3: ตัวอย่างการวางแผนต่อวงจร

สถานะของปุม่ กด กดปุ่มค้างไว้ ไม่กดปุ่ม

VBE (V)

VCE (V)

ตารางที่ 4.1.1

สถานะของปุม่ กด กดปุ่มค้างไว้ ไม่กดปุ่ม

IB (mA)

IC (mA)

IE (mA)

ตารางที่ 4.1.2

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า เมื่อกดปุ่มค้างไว้ กระแสเบส IB กระแสคอลเลคเตอร์ IC และกระแสอิมิตเตอร์ IE ของทรานซิสเตอร์ เขียนเรียงลําดับจากปริมาณน้อยไปมากได้ดังนี้ ………………………………..…………… 2. เมื่อทรานซิสเตอร์อยู่ในโหมดทํางาน วัดแรงดัน VBE ได้ ………...… โวลต์ และ VCE ได้ ……….…… โวลต์ 3. อัตราการขยายกระแสของทรานซิสเตอร์ IC / IB ที่ได้จากการทดลอง มีคา่ เท่ากับ ………………..…………

*********************************

190


ใบมอบหมายงานที่ 4.2 การเปิด-ปิดกระแสโหลดให้มอเตอร์ไฟฟ้ากระแสตรง วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ต่อวงจรบนเบรดบอร์ดที่ประกอบด้วยไอซีเชื่อมต่อสัญญาณทางแสง และทรานซิสเตอร์แบบมอสเฟต เพื่อเปิด-ปิดการขับกระแสให้มอเตอร์ไฟฟ้า และควบคุมการทํางานได้โดยใช้บอร์ด Arduino

รายการอุปกรณ์              

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ปุ่มกดแบบ 4 ขา ไอซีเชื่อมต่อทางแสง เบอร์ CNY17-3 มอสเฟต pMOSFET เบอร์ IRF9540 ไดโอด เบอร์ 1N4001 ไดโอดเปล่งแสง ขนาด 5 มม. ตัวต้านทาน 330Ω ตัวต้านทาน 1kΩ ตัวต้านทาน 10kΩ มอเตอร์ไฟฟ้ากระแสตรง (12V) แบตเตอรี่ 9V หรือ 12V พร้อมสายไฟต่อขั้ว ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 2 ตัว 2 ตัว 1 ตัว 1 ชุด 1 ชุด 1 เครื่อง

191


ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab4_2” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 4.2.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 4.2.1 และต่อวงจรตามผังวงจรในรูปที่ 4.2.2 (ใช้แรงดัน +VM เท่ากับ +9V จากแบตเตอรี่) แต่ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้องของวงจรในเบื้องต้น 4. เชื่อมต่อไฟเลี้ยง (ขา +5V และขา GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรด บอร์ดสําหรับแรงดันไฟเลี้ยง +5V และ GND1 ของวงจร ตามลําดับ (ข้อควรระวัง: แรงดันจาก แบตเตอรี่สําหรับ +VM และแรงดันไฟเลี้ยง +5V จะต้องไม่เชื่อมต่อถึงกัน เช่นเดียวกับ GND1 และ GND2 ของวงจร จะต้องไม่เชื่อมต่อถึงกัน) 5. ใช้มัลติมิเตอร์ (ใช้เป็นโวลต์มิเตอร์) วัดแรงดันที่ขาซอร์ส (S) เทียบกับขาเกต (G) ของมอสเฟต (เรียกว่า VSG) โดยแบ่งเป็นสองกรณีคือ เมื่อมอเตอร์หมุน และ เมื่อมอเตอร์ไม่หมุน (กดปุ่ม S1 แล้ว ปล่อยในแต่ละครั้ง จะทําให้เกิดการสลับสถานะของมอเตอร์ระหว่าง “หมุน” และ “ไม่หมุน”) แล้ว จดบันทึกลงในตารางที่ 4.2.1 6. ใช้มัลติมิเตอร์ (ใช้เป็นแอมมิเตอร์) วัดกระแสเดรน ID ซึ่งเป็นกระแสที่ไหลออกจากขาเดรน (D) ของ มอสเฟต โดยแบ่งเป็นสองกรณีคือ เมื่อมอเตอร์หมุน และ เมื่อมอเตอร์ไม่หมุน แล้วจดบันทึกลงใน ตารางที่ 4.2.1

สถานะของมอเตอร์ มอเตอร์หมุน มอเตอร์ไม่หมุน

VSG (V)

ตารางที่ 4.2.1

192

ID (mA)


รูปที่ 4.2.1: ตัวอย่างอุปกรณ์ในการทดลอง

โค้ดตัวอย่างที่ 4.2.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

193


รูปที่ 4.2.2: ผังวงจรสําหรับการต่อวงจร

รูปที่ 4.2.3: การวางแผนต่อวงจรบนเบรดบอร์ด

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า เมื่อมอเตอร์หมุน แรงดันที่ขาเกต (S) เทียบกับขาซอร์ส (G) หรือแรงดัน VSG ของมอสเฟต จะได้……..…………... โวลต์ แต่ถ้ามอเตอร์ไม่หมุน VSG จะได้ .………………… โวลต์ 2. ในวงจรนี้ มอสเฟตขับกระแสโหลดได้ประมาณ ………………………. มิลลิแอมป์

********************************* 194


ใบมอบหมายงานที่ 4.3 การใช้ไอซี L293D ควบคุมการหมุนของมอเตอร์ไฟฟ้ากระแสตรง วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ต่อวงจรโดยใช้ไอซี L293D เพื่อควบคุมความเร็วของมอเตอร์ไฟฟ้ากระแสตรง ด้วยสัญญาณ PWM และเลือกทิศทางการหมุนได้ โดยใช้บอร์ด Arduino เป็นอุปกรณ์ควบคุมการทํางาน

รายการอุปกรณ์          

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ปุ่มกดแบบ 4 ขา ไอซี L293D ตัวถังแบบ DIP ตัวต้านทานปรับค่าได้ 3 ขา 10kΩ (หรือสูงกว่า) ตัวต้านทาน 10kΩ ตัวเก็บประจุแบบไม่มีขั้ว 0.1uF มอเตอร์ไฟฟ้ากระแสตรง (12V) พร้อมสายต่อขั้ว แบตเตอรี่ 9V หรือ 12V พร้อมสายไฟต่อขั้ว ลวดสายไฟสําหรับต่อวงจร

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ชุด 1 ชุด

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab4_3” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 4.3.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว

195


3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 4.3.1 และต่อวงจรตามผังวงจรในรูปที่ 4.3.2 แต่ยังไม่ต้อง เชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้องของวงจร ในเบื้องต้น 4. เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด (ข้อควรระวัง: แรงดันจากแบตเตอรี่สําหรับ +VM และแรงดันไฟเลี้ยง +5V จากบอร์ด Arduino จะต้องไม่เชื่อมต่อถึงกัน) 5. ใช้มัลติมิเตอร์ (ใช้เป็นโวลต์มิเตอร์) วัดแรงดันที่จุดเชื่อมต่อขา D6 และ D7 เทียบกับ GND ตามลําดับ เพื่อระบุสถานะทางลอจิก (HIGH หรือ LOW) เมื่อกดปุ่ม S1 แล้วปล่อยในแต่ละครั้ง และทดลองหมุน ที่ปุ่มของตัวต้านทานปรับค่าได้ แล้วบันทึกค่าลงในตารางที่ 4.3.1 6. ใช้มัลติมิเตอร์ (ใช้เป็นโวลต์มิเตอร์) วัดแรงดันที่จุดเชื่อมต่อกับขา D5 ในกรณีที่มอเตอร์หมุน และ ทดลองหมุนทีป่ ุ่มของตัวต้านทานปรับค่าได้ สังเกตการเปลี่ยนแปลงของความเร็วในการหมุนของ มอเตอร์ และระดับแรงดันที่ขา D5

รูปที่ 4.3.1: ตัวอย่างอุปกรณ์ในการทดลอง

196


โค้ดตัวอย่างที่ 4.3.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

สถานะของ D6

สถานะของ D7

LOW LOW HIGH HIGH

LOW HIGH LOW HIGH

มอเตอร์หมุน/ปรับความเร็ว (ได้ หรือ ไม่ได้)

ตารางที่ 4.3.1 197


รูปที่ 4.3.2: ผังวงจรสําหรับการต่อวงจร

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า เอาต์พุตจากบอร์ด Arduino ที่ขา D6 และ D7 จะกําหนดทิศทางการหมุนให้ มอเตอร์ไฟฟ้ากระแสตรง ก็ต่อเมื่อขา D6 และ D7 มีสถานะทางลอจิก (LOW / HIGH) เป็นดังนี้ ……………………………………………………………………………… 2. การหมุนที่ปุ่มของตัวต้านทานปรับค่าได้ จะไม่มีผลต่อการเปลี่ยนความเร็วของมอเตอร์ เมื่อ D6 และ D7 มีสถานะทางลอจิก (LOW / HIGH) ดังนี้ ……………………………………………………………………..

*********************************

198


ใบมอบหมายงานที่ 4.4 การสร้างสัญญาณ PWM ควบคุมเซอร์โวมอเตอร์ วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้ เพื่อสร้างสัญญาณแอนะล็อก และใช้ในการกําหนดตําแหน่ง เชิงมุมของเซอร์โวมอเตอร์ โดยใช้บอร์ด Arduino เป็นอุปกรณ์ควบคุมการทํางาน

รายการอุปกรณ์        

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ตัวต้านทานปรับค่าได้ 3 ขา 10kΩ (หรือสูงกว่า) เซอร์โวมอเตอร์ขนาดเล็ก (ใช้ไฟเลี้ยง 4.8V ถึง 6V) ตัวเก็บประจุแบบไม่มีขั้ว 0.1uF ตัวเก็บประจุแบบมีขั้ว 10uF ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab4_4” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 4.4.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 4.4.1 และต่อวงจรตามผังวงจรในรูปที่ 4.4.2 แต่ยังไม่ต้อง เชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้องของวงจร ในเบื้องต้น 199


4. เชื่อมต่อไฟเลี้ยง (+5V และ GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรดบอร์ด 5. ใช้มัลติมิเตอร์ (ใช้เป็นโวลต์มิเตอร์) วัดแรงดันที่ขา A0 และทดลองหมุนที่ปุ่มของตัวต้านทานปรับค่า ได้ ให้ตําแหน่งเชิงมุมของเซอร์โวมอเตอร์อยู่ “ซ้ายสุด” “กึ่งกลาง” และ “ขวาสุด” ตามลําดับ แล้ว จดบันทึกลงในตารางที่ 4.4.1 6. ใช้มัลติมิเตอร์ (ใช้เป็นแอมมิเตอร์) ปริมาณกระแสทีใ่ ช้สําหรับเซอร์โวมอเตอร์ ในขณะที่อยู่นิ่ง และ ในขณะที่มีการหมุน แล้วจดบันทึกลงในตารางที่ 4.4.2

โค้ดตัวอย่างที่ 4.4.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

ตําแหน่งของเซอร์โวมอเตอร์ ซ้ายสุด กึ่งกลาง ขวาสุด ตารางที่ 4.4.1

200

แรงดันที่ขา A0 (V)


เซอร์โวมอเตอร์ เมื่อหยุดนิ่ง (ไม่หมุน) ในขณะที่หมุน

กระแสสูงสุดโดยประมาณ (mA)

ตารางที่ 4.4.2

รูปที่ 4.4.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 4.4.2: ผังวงจรสําหรับการต่อวงจร

201


วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ถ้าเซอร์โวมอเตอร์หมุนไปอยู่ในตําแหน่งเชิงมุม (1) “ซ้ายสุด” (2) “กึ่งกลาง” และ (3) “ขวาสุด” ตามลําดับ แรงดันที่ป้อนเป็นอินพุตให้ขา A0 ของบอร์ด Arduino จะได้ประมาณ (1) ……...……...… (2) ……….……… และ (3) ……..…….…… โวลต์ ตามลําดับ 2. ในขณะที่เซอร์โวมอเตอร์หมุน จะใช้กระแส ………………………….. (มากกว่า / น้อยกว่า / ไม่แตกต่าง) จากในขณะที่เซอร์โวมอเตอร์หยุดนิ่ง

*********************************

202


บทที่ 5 การใช้งานเซนเซอร์ร่วมกับบอร์ด Arduino สาระการเรียนรู้ การนําบอร์ดไมโครคอนโทรลเลอร์ เช่น บอร์ด Arduino ที่ทําหน้าที่เป็น “กล่องสมองกล” หรือ “ระบบคอมพิวเตอร์ฝังตัว” ไปประยุกต์ใช้งานเพื่อให้เกิดความหลากหลายในงานด้านต่างๆ ได้นั้น จําเป็นต้อง อาศัยวงจรภาคอินพุตและเซนเซอร์ (Sensor) หลายชนิด โดยนํามาประยุกต์ใช้ร่วมกับกล่องสมองกล Arduino และนําไปควบคุมอุปกรณ์ภายนอกตามการทํางานของโปรแกรม กล่องสมองกลมีหน้าที่อ่านได้จากเซนเซอร์ ต่างๆ แล้วนําค่าที่ได้ไปประมวลผล จากนัน้ จึงสั่งการไปยังวงจรภาคเอาต์พุต เช่น การเปิด-ปิดรีเลย์ มอเตอร์ ไฟฟ้า หลอดไฟ อุปกรณ์แสดงผล หรืออุปกรณ์อื่นๆ เป็นต้น ดังนั้นการเรียนรู้หลักการทํางานและการ ประยุกต์ใช้งานของอุปกรณ์เซนเซอร์ประเภทต่างๆ จึงเป็นสิ่งสําคัญ แต่เนื่องจากวงจรภาคอินพุตและเซนเซอร์ ที่เลือกใช้งานได้มีความหลากหลาย บทนี้จะขอกล่าวถึงอุปกรณ์ที่ได้เลือกมาเป็นตัวอย่างเท่านั้น เช่น เซนเซอร์ สัมผัส เซนเซอร์วัดอุณหภูมิ เซนเซอร์ที่ทํางานโดยใช้แสง เซนเซอร์ตรวจจับการเคลื่อนไหว เซนเซอร์วัด ระยะห่างหรือตรวจจับสิ่งกีดขวาง เป็นต้น

จุดประสงค์การเรียนรู้        

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

203


5.1 ความสําคัญของวงจรภาคอินพุตและเซนเซอร์ กล่องสมองกล เช่น บอร์ดไมโครคอนโทรลเลอร์ Arduino ทําหน้าที่เป็นระบบคอมพิวเตอร์ขนาดเล็ก และเชื่อมต่อกับวงจรภาคเอาต์พุตหรือเพื่อควบคุมอุปกรณ์อื่นในภาคเอาต์พุต เมื่อนําไปใช้งานผู้ใช้อาจจะมอง ไม่เห็นกล่องควบคุม หรือไม่ทราบด้วยว่าอุปกรณ์ดังกล่าวทําหน้าที่เป็นคอมพิวเตอร์ขนาดเล็ก ดังนั้นจึงเป็น ที่มาของคําว่า “ระบบสมองกลฝังตัว” การทํางานของกล่องสมองกลต้องอาศัยโปรแกรมที่อยู่ภายใน และอ่าน ค่าจากสัญญาณอินพุตที่ได้จากวงจรภาคอินพุต ซึ่งอาจจะมีมากกว่าหนึ่งช่องสัญญาณ แล้วนํามาประมวลผล เพื่อสร้างสัญญาณเอาต์พุต และทําขั้นตอนเหล่านี้ซ้ําไปเรื่อยๆ สัญญาณจากภาคอินพุตที่นําไปเชื่อมต่อกับขาสัญญาณของบอร์ด Arduino แบ่งเป็นสองประเภทคือ สัญญาณอินพุตแบบดิจิทัล เช่น สัญญาณจากวงจรที่ใช้ปุ่มกด และสัญญาณแบบแอนะล็อก เช่น สัญญาณจาก วงจรที่ใช้ตัวต้านทานปรับค่าได้เพื่อสร้างแรงดันปรับระดับได้ตามที่ได้เคยเรียนรู้ไปแล้ว นอกจากนั้นยังมีวงจร หรืออุปกรณ์ในรูปแบบอื่นอีกมากที่นํามาสร้างสัญญาณอินพุตให้บอร์ด Arduino ได้

5.2 เซนเซอร์และทรานสดิวเซอร์ เซนเซอร์ (Sensors) คือ อุปกรณ์ตรวจจับหรือรับรู้การเปลี่ยนแปลงปริมาณทางกายภาพ เช่น แสง อุณหภูมิ เสียง ระยะทาง ความเร็วหรือความเร่งของวัตถุ เป็นต้น โดยอาศัยพารามิเตอร์ทางไฟฟ้า เช่น แรงดัน กระแส และความต้านทาน เป็นต้น ทรานสดิวเซอร์ (Transducers) คือ อุปกรณ์ที่ทําหน้าทีแ่ ปลงพลังงานรูปแบบต่างๆ ทางกายภาพ ให้ เป็นพลังงานไฟฟ้าในรูปของแรงดันหรือกระแสไฟฟ้า หรือแปลงเป็นข้อมูลแบบดิจทิ ลั ได้ ซึ่งอาจจะรวมอุปกรณ์ ตรวจจับและวงจรอิเล็กทรอนิกส์ไว้ภายใน อย่างไรก็ตาม เซนเซอร์และทรานสดิวเซอร์ เป็นคําที่มักใช้แทนกัน ได้ และหมายถึงสิ่งเดียวกัน เซนเซอร์และทรานสดิวเซอร์ แบ่งได้หลายชนิดตามหลักเกณฑ์ในการแบ่ง เช่น แบ่งตามชนิดของ สัญญาณที่ได้ แบ่งตามชนิดของการเปลี่ยนแปลงพลังงาน หรือแบ่งตามข้อมูลหรือวัตถุประสงค์ในการวัด นอกจากนั้นยังมีความแตกต่างกัน เช่น ความแม่นยําและความละเอียดในการวัด และราคาของอุปกรณ์ เซนเซอร์บางชนิดที่ใช้ในงานอุตสาหกรรม มีราคาหลายพันหรือหลายหมื่นบาท แต่สิ่งที่ควรรู้ในเบื้องต้นสําหรับการเชื่อมต่อกับบอร์ด Arduino คือ ชนิดของสัญญาณที่ใช้ (ดิจิทัลหรือ แอนะล็อก) และช่วงของระดับแรงดันที่ได้ หรือต้องมีวิธีการเชื่อมต่อในรูปแบบใดแบบหนึ่ง จึงจะได้ข้อมูลจาก เซนเซอร์ เช่น การเชื่อมต่อโดยใช้ระบบบัสอนุกรม SPI (Serial Peripheral Interface) หรือ I2C (Inter-Chip Communication) เป็นต้น ซึ่งระบบบัสทั้งสองเป็นมาตรฐานการสื่อสารที่นิยมใช้กันอย่างแพร่หลายในปัจจุบัน

204


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

5.3 สวิตช์สมั ผัส สวิตช์สัมผัส (Contact Switch) เป็นอุปกรณ์ที่ใช้ตรวจสอบการกดหรือสัมผัส มีลักษณะแตกต่างกัน ไปตามการใช้งาน เช่น มีลักษณะเป็นปุ่มกด (Push Button) แบบ SPST (Single-Pole Single-Throw) และ ลิมิตสวิตช์ (Limit Switch) แบบ SPDT (Single-Pole Double-Throw) ซึ่งมีก้านหรือคานที่มีสปริงอยู่ด้านใต้ และตรงปลายมีลูกกลิ้ง (Roller Lever) การเปิดหรือปิดของหน้าสัมผัสที่อยู่ภายในสวิตช์จะอาศัยแรงกดเมื่อมี การกดทับลูกกลิ้ง ลิมิตสวิตช์นิยมใช้สําหรับการตรวจจับตําแหน่งของการเคลื่อนที่ของชิ้นงานหรือเครื่องจักร รูปที่ 5.1 แสดงตัวอย่างลิมิตสวิตช์ การนําลิมิตสวิตช์ไปต่อวงจรเพื่อสร้างอินพุต-ดิจิทัลให้บอร์ด Arduino ก็ ใช้หลักการเดียวกับสวิตช์ปุ่มกดทั่วไป ตัวอย่างการนําไปประยุกต์ใช้งาน เช่น เซนเซอร์ตรวจจับการชนของ หุ่นยนต์เคลื่อนที่

รูปที่ 5.1: ตัวอย่างลิมิตสวิตช์

205


5.4 ตัวต้านทานไวแสง ตัวต้านทานบางชนิดมีค่าความต้านทานเปลี่ยนแปลงได้ และขึ้นอยู่กับความเข้มของแสงที่ได้รับบริเวณ ส่วนรับแสง ตัวต้านทานชนิดนี้เรียกว่า ตัวต้านทานไวแสง (LDR: Light-Dependent Resistor) เมื่อได้รับ ปริมาณแสงมากขึ้น ค่าความต้านทานจะลดลง เช่น ต่ํากว่า 1 กิโลโอห์ม แต่ถ้าไม่ได้รับแสงหรือได้รับปริมาณ แสงน้อยลง เช่น มีวัตถุทึบแสงมาปิดบริเวณส่วนรับแสงของ LDR จะมีค่าความต้านทานสูงขึ้น เช่น มากกว่า 10 กิโลโอห์ม สัญลักษณ์ทางไฟฟ้าสําหรับ LDR มีลักษณะตามรูปที่ 5.2 ซึ่งมีสองขาเหมือนตัวต้านทานทั่วไป และรูปที่ 5.3 แสดงตัวอย่างตัวต้านทานไวแสงที่มีขนาดแตกต่างกัน

รูปที่ 5.2: สัญลักษณ์ทางไฟฟ้าของตัวต้านทานไวแสง

รูปที่ 5.3: ตัวอย่างตัวต้านทานไวแสงขนาดที่แตกต่างกัน

รูปที่ 5.4 เป็นตัวอย่างของผังวงจรในการต่อตัวต้านทานไวแสงและตัวต้านทานคงที่ เพื่อสร้างวงจร แบ่งแรงดัน และนําสัญญาณที่จุด OUT ไปใช้เป็นสัญญาณอินพุต-แอนะล็อกให้บอร์ด Arduino แรงดันที่จุด OUT ของวงจรแบ่งแรงดันตามผังวงจรมีการเปลี่ยนแปลงดังนี้

206


 แรงดันที่จุด OUT จะเพิ่มขึ้น ถ้าความต้านทานของ LDR ลดลง (เช่น น้อยกว่า 1kΩ) เมื่อได้รับ แสงมากขึ้น  แรงดันที่จุด OUT จะลดลง ถ้าความต้านทานของ LDR สูงขึ้น (เช่น มากกว่า 10kΩ) เมือ่ ได้รับ แสงน้อยลง

รูปที่ 5.4: ผังวงจรแบ่งแรงดันทีป่ ระกอบด้วยตัวต้านทานไวแสงและตัวต้านทานคงที่

วงจรแบ่งแรงดันโดยใช้ตัวต้านทานไวแสงและตัวต้านทานคงที่ในลักษณะนี้ สามารถนําไปประยุกต์ใช้ งานร่วมกับบอร์ด Arduino ได้ เช่น เขียนโปรแกรมควบคุมการเปิดสวิตช์สําหรับระบบให้แสงสว่างโดย อัตโนมัติเมื่อมีแสงสว่างน้อย

5.5 เทอร์มิสเตอร์ เทอร์มิสเตอร์ (Thermistor) เป็นตัวต้านทานชนิดพิเศษประเภทหนึ่งที่ค่าความต้านทานเปลี่ยนแปลง ได้ตามอุณหภูมิแวดล้อม ความสัมพันธ์ระหว่างความต้านทานและอุณหภูมิจะไม่เป็นเชิงเส้น เทอร์มิสเตอร์แบ่ง ได้เป็นสองประเภทคือ เทอร์มิสเตอร์ที่มสี มั ประสิทธิ์ของอุณหภูมิเป็นบวก (PTC: Positive Temperature Coefficient) ซึ่งหมายความว่า ความต้านทานจะเพิ่มขึ้นเมื่ออุณหภูมิสูงขึ้น และอีกประเภทหนึ่งคือ เทอร์ มิสเตอร์ที่มีสมั ประสิทธิ์ของอุณหภูมิเป็นลบ (NTC: Negative Temperature Coefficient) ซึ่งหมายความว่า ความต้านทานจะลดลงเมื่ออุณหภูมิสูงขึ้น รูปที่ 5.5 แสดงสัญลักษณ์ทางไฟฟ้าของเทอร์มิสเตอร์

207


รูปที่ 5.5: สัญลักษณ์ทางไฟฟ้าของเทอร์มิสเตอร์

รูปที่ 5.6 เป็นตัวอย่างเทอร์มิสเตอร์แบบ NTC ที่มีค่าความต้านทานประมาณ 10kΩ ที่อุณหภูมิ 25°C และรูปที่ 5.7 เป็นตัวอย่างของกราฟแสดงความสัมพันธ์ระหว่างความต้านทาน (Ω) ของเทอร์มิสเตอร์แบบ NTC และอุณหภูมิ (°C)

รูปที่ 5.6: ตัวอย่างเทอร์มิสเตอร์แบบ NTC

รูปที่ 5.7: กราฟความสัมพันธ์ระหว่างความต้านทานและอุณหภูมิสําหรับเทอร์มิสเตอร์แบบ NTC

208


รูปที่ 5.8 เป็นตัวอย่างของผังวงจรในการต่อเทอร์มิสเตอร์และตัวต้านทานคงที่ เพื่อสร้างวงจรแบ่ง แรงดัน และนําสัญญาณที่จุด OUT ไปใช้เป็นสัญญาณอินพุต-แอนะล็อกให้บอร์ด Arduino ได้ เมื่ออุณหภูมิ สูงขึ้น ค่าความต้านทานของเทอร์มิสเตอร์แบบ NTC จะลดลง ทําให้แรงดันที่จุด OUT สูงขึ้น ในกรณีที่ใช้ตัว ต้านทานปรับค่าได้ตามรูปที่ 5.9 จะสามารถปรับช่วงของแรงดันเอาต์พุต (แรงดันต่ําสุดและสูงสุด) ได้

รูปที่ 5.8: ผังวงจรแบ่งแรงดันทีป่ ระกอบด้วยเทอร์มิสเตอร์และตัวต้านทานคงที่

วงจรแบ่งแรงดันโดยใช้เทอร์มิสเตอร์และตัวต้านทานคงที่ในลักษณะนี้ สามารถนําไปประยุกต์ใช้งาน ร่วมกับบอร์ด Arduino ได้ เช่น เขียนโปรแกรมให้อ่านค่าจากขาแอนะล็อก-อินพุต แล้วสร้างเสียงเตือนเมื่อ อุณหภูมิสูงเกินกว่าที่กําหนดไว้

รูปที่ 5.9: ผังวงจรแบ่งแรงดันทีป่ ระกอบด้วยเทอร์มิสเตอร์และตัวต้านทานปรับค่าได้

209


รูปที่ 5.10 แสดงผังวงจรตัวอย่างที่สาธิตการทํางานของตัวต้านทานไวแสงและเทอร์มิสเตอร์ร่วมกับ บอร์ด Arduino ตามโค้ดตัวอย่างที่ 5.1 โดยทําหน้าที่อ่านค่าจากเซนเซอร์ทั้งสองชนิดและนํามาเปรียบเทียบ กับค่าคงที่สําหรับเซนเซอร์แต่ละชนิด เช่น ถ้าปริมาณแสงลดลงและทําให้ค่าที่อ่านได้จากขาอินพุต A0 ต่ํากว่า ค่าที่กําหนดไว้สําหรับเซนเซอร์ตัวแรก จะทําให้ LED1 สว่าง หรือถ้าอุณหภูมิสูงขึ้นและทําให้ค่าที่อา่ นได้จากขา อินพุต A1 สูงกว่าค่าที่กําหนดไว้สําหรับเซนเซอร์ตัวที่สอง จะทําให้ LED2 สว่าง

รูปที่ 5.10: ผังวงจรสาธิตการทํางานสําหรับตัวต้านทานไวแสงและเทอร์มิสเตอร์

โค้ดตัวอย่างที่ 5.1 เริ่มต้นด้วยการกําหนดหมายเลขขาของบอร์ด Arduino เพื่อใช้งาน โดยใช้ขา แอนะล็อก-อินพุต A0 และ A1 สําหรับรับแรงดันอินพุตจากวงจร LDR และเทอร์มิสเตอร์ ตามลําดับ และใช้ขา ดิจิทัล D9 และ D10 เป็นเอาต์พุตเพื่อแสดงสถานะทางลอจิก โดยใช้ไดโอดเปล่งแสง 2 ชุด (LED1 และ LED2) ถัดจากนั้นเป็นการประกาศค่าคงที่แบบ int ชื่อ LDR_REF และ THERMIST_REF พร้อมค่าเริ่มต้น ตามลําดับ และประกาศใช้ตัวแปรแบบ int ชื่อ value เพื่อใช้เก็บค่าที่ได้จากการอ่านค่าจากขา A0 หรือ A1 ภายในฟังก์ชัน setup() มีการประกาศใช้งานพอร์ตอนุกรม (Serial) และกําหนดความเร็วในการ รับส่งข้อมูล (Baud Rate) ไว้ที่ 9600 และในส่วนของฟังก์ชัน loop() เริ่มต้นด้วยการอ่านค่าจากขา A0 แล้ว นํามาเก็บในตัวแปร value และนําค่านี้ไปเปรียบเทียบค่ากับค่าคงที่ LDR_REF เพื่อกําหนดสถานะให้เอาต์พุต ที่ขา D9 และส่งข้อมูลผ่านพอร์ตอนุกรมไปแสดงผลบนคอมพิวเตอร์ ถัดไปเป็นการอ่านค่าจากขา A1 แล้ว นํามาเก็บในตัวแปร value และนําค่านี้ไปเปรียบเทียบค่ากับค่าคงที่ THERMIST_REF เพื่อกําหนดสถานะให้ เอาต์พุตที่ขา D10 และส่งข้อมูลไปแสดงผลบนคอมพิวเตอร์ จากนั้นให้เว้นระยะเวลาประมาณ 200 มิลลิวินาที แล้วย้อนกลับไปทําขั้นตอนเหล่านี้ซ้ํา เมื่อได้ทําการอัพโหลดโปรแกรมไปยังบอร์ด Arduino สามารถเปิดหน้าต่าง Serial Monitor (เลือก จากเมนูคําสั่ง Tools > Serial Monitor ของ Arduino IDE) จะปรากฏหน้าต่างใหม่ตามรูปที่ 5.11 ซึ่งทํา 210


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

โค้ดตัวอย่างที่ 5.1: สาธิตการอ่านค่าจากตัวต้านทานไวแสงและเทอร์มิสเตอร์ด้วยบอร์ด Arduino

รูปที่ 5.12 แสดงค่าที่อ่านได้จากเซนเซอร์และถูกส่งมาจากบอร์ด Arduino จะเห็นได้ว่า ค่าแรงดันที่ อ่านได้สําหรับกรณีของ LDR ลดลงกว่าปรกติ (เปรียบเทียบกับรูปที่ 5.11) เนื่องจากได้รับปริมาณแสงน้อยลง รูปที่ 5.13 แสดงค่าแรงดันที่อ่านได้ในกรณีของเทอร์มิสเตอร์ซึ่งเพิ่มสูงขึ้นกว่าปรกติ (เปรียบเทียบกับรูปที่ 5.11) เนื่องจากอุณหภูมิสูงขึ้น (เช่น ด้วยการเป่าลมร้อนที่เทอร์มิสเตอร์ หรือนําเทอร์มสิ เตอร์ไปอยู่ใกล้อุปกรณ์ ที่มีการระบายความร้อนออกมา) รูปที่ 5.14 แสดงตัวอย่างการต่อวงจรและการทดลองใช้มือบังแสงที่ LDR และรูปที่ 5.15 เป็นการทดลองเพิ่มอุณหภูมิโดยด้วยการเป่าลมร้อนที่ตัวเทอร์มิสเตอร์

211


รูปที่ 5.11: ค่าที่อ่านได้จากเซนเซอร์ในสภาวะปรกติ (ในหน้าต่าง Serial Monitor)

รูปที่ 5.12: แสดงค่าที่อ่านได้จากเซนเซอร์เมื่อมีแสงน้อยกว่าปรกติ

212


รูปที่ 5.13: แสดงค่าที่อ่านได้จากเซนเซอร์เมื่ออุณหภูมิสูงขึ้นกว่าปรกติ

รูปที่ 5.14: แสดงตัวอย่างการทํางานของวงจรเมื่อมีความเข้มแสงน้อยลง

213


รูปที่ 5.15: แสดงตัวอย่างการทํางานของวงจรเมื่ออุณหภูมิสูงขึ้น (ถูกเป่าด้วยลมร้อน)

5.6 ไอซีวัดอุณหภูมิ แม้ว่าเทอร์มิสเตอร์สามารถนํามาใช้ตรวจจับการเปลี่ยนแปลงของอุณหภูมิได้ แต่ความสัมพันธ์ระหว่าง อุณหภูมิและค่าความต้านทานของเทอร์มิสเตอร์เป็นแบบไม่เชิงเส้น ในปัจจุบันมีไอซีที่ทําหน้าที่เป็นเซนเซอร์ อุณหภูมิ (Temperature Sensor IC) ง่ายต่อการใช้งานและมีความถูกต้องแม่นยําสูง เช่น LM35DZ LM335 และ TMP36 ซึ่งเป็นไอซีที่ให้แรงดันแบบแอนะล็อก (Analog Temperature Sensor IC) และ DS1620 และ DS1820 ที่ให้ข้อมูลแบบดิจทิ ัล (Digital Temperature Sensor IC) ไอซีวัดอุณหภูมิแบบแอนะล็อก เบอร์ LM35DZ ผลิตโดยบริษัท National Semiconductor ตัวถัง แบบ TO-92 มีสามขาคือ +Vs Vout และ GND ตามรูปที่ 5.16 เป็นเซนเซอร์วัดอุณหภูมิที่มีความถูกต้อง แม่นยําสูง (ไม่เกิน ±0.5°C) ให้เอาต์พุตเป็นแรงดันที่มคี วามสัมพันธ์กับอุณหภูมิในหน่วยเซลเซียส (Celsius) แบบเชิงเส้น มีอัตราขยายเท่ากับ 10mV/°C (หมายความว่า ถ้าอุณหภูมิเพิ่มขึ้นหรือลดลง 1°C จะทําให้แรงดัน ที่ขาเอาต์พุตเพิ่มหรือลดลง 10 มิลลิโวลต์) และสามารถวัดอุณหภูมิได้ในช่วง 0°C ถึง 100°C ดังนั้นอุณหภูมิที่ 0°C จะได้แรงดันเท่ากับ 0 มิลลิโวลต์ และอุณหภูมิที่ 100°C จะได้ 1000 มิลลิโวลต์ หรือ 1 โวลต์ และกล่าวได้ ว่า แรงดันเอาต์พุตจะอยู่ในช่วง 0 ถึง 1 โวลต์ เท่านั้น รูปที่ 5.17 แสดงผังวงจรในการต่อไอซี LM35DZ เพื่อใช้งานร่วมกับบอร์ด Arduino โดยใช้แรงดัน ไฟเลี้ยง +5V และ GND ป้อนให้ไอซี และมีตัวเก็บประจุแบบไม่มีขั้ว 0.1uF ต่อคร่อมที่ +5V กับ GND ของ ไอซี ขาเอาต์พุต VOUT ของไอซีเชื่อมต่อกับขาแอนะล็อก-อินพุต A0 ของบอร์ด Arduino 214


รูปที่ 5.16: การระบุตําแหน่งของขาสําหรับไอซี LM35DZ

รูปที่ 5.17: ผังวงจรต่อทดลองไอซี LM35DZ ร่วมกับบอร์ด Arduino

ในการทดลองใช้งานไอซี LM35DZ บอร์ด Arduino ทํางานตามโค้ดตัวอย่างที่ 5.2 โดยใช้ขา A0 เป็น ขาแอนะล็อก-อินพุตเพื่อรับสัญญาณมาจากไอซี LM35DZ แล้วนําค่าที่ได้ไปเก็บไว้ในตัวแปร value ในการ อ่านค่าจากขาแอนะล็อก-อินพุตได้เลือกใช้แรงดันอ้างอิงภายในของไมโครคอนโทรลเลอร์ ซึ่งเท่ากับ 1.1 โวลต์ แทน 5.0 โวลต์ (ใช้ได้กับเฉพาะเบอร์ ATmega168 และ 328) เพราะจะช่วยให้อ่านค่าได้ละเอียดมากขึ้น และ แรงดันที่ได้จากไอซี LM35DZ จะไม่เกิน 1 โวลต์ จากนั้นนําค่าที่อยู่ในตัวแปร value มาคํานวณเพื่อแปลงให้ เป็นระดับอุณหภูมิ (°C) ตามความสัมพันธ์ดังนี้

215


โค้ดตัวอย่างที่ 5.2: โค้ด Arduino สาธิตการอ่านอุณหภูมิจากไอซี LM35DZ

รูปที่ 5.18: การต่อวงจรเพื่อทดลองใช้งานไอซี LM35DZ ร่วมกับบอร์ด Arduino

216


รูปที่ 5.19: แสดงค่าที่อ่านได้จากไอซี LM35DZ

รูปที่ 5.18 แสดงตัวอย่างการต่อวงจรเพื่อทดลองใช้งานไอซี LM35DZ ร่วมกับบอร์ด Arduino และ รูปที่ 5.19 แสดงค่าอุณหภูมิที่อ่านได้จากไอซีและถูกส่งมาจากบอร์ด Arduino มาแสดงผลบนคอมพิวเตอร์ (ใน หน้าต่าง Serial Monitor) ไอซี LM335Z เป็นอีกหนึ่งตัวอย่างหนึ่งสําหรับเซนเซอร์วัดอุณหภูมิแบบแอนะล็อก มีราคาถูกว่า LM35DZ แต่มีความถูกต้องแม่นยําน้อยกว่า วัดอุณหภูมิได้ในช่วง -40°C ถึง 100°C มีอัตราขยาย 10mV/°K (เคลวิน) ที่อุณหภูมิห้อง 25°C จะอ่านแรงดันได้ 2.98 โวลต์ ไอซี LM335Z ใช้ตัวถังแบบ TO-92 แบบสามขา ได้แก่ขา GND Vs และ ADJ ตามลําดับ (ตามรูปที่ 5.20) ขา ADJ มีไว้สําหรับปรับชดเชยค่าแรงดันเอาต์พุตที่ ได้ให้ถูกต้องแม่นยํามากขึ้น รูปที่ 5.21 แสดงผังวงจรในการต่อใช้งานไอซี LM335Z (ต่อตัวต้านทานปรับค่าได้ 10kΩ เพื่อปรับชดเชยแรงดันที่เอาต์พุต) ร่วมกับบอร์ด Arduino

รูปที่ 5.20: ตําแหน่งและการระบุขาของไอซี LM335Z

217


รูปที่ 5.21: ผังวงจรสําหรับสาธิตการทํางานของไอซี LM335Z ร่วมกับบอร์ด Arduino

5.7 เซนเซอร์แสงอินฟราเรด อุปกรณ์อิเล็กทรอนิกส์ที่ทํางานด้วยแสง สามารถนํามาสร้างเป็นวงจรภาคอินพุตหรือเป็นเซนเซอร์ให้ บอร์ด Arduino ได้ ตัวอย่างของอุปกรณ์พื้นฐานที่ทํางานด้วยแสงและพบเห็นได้บ่อย ได้แก่    

ไดโอดเปล่งแสงอินฟราเรด (Infrared Emitting Diode) โฟโต้ทรานซิสเตอร์ (Phototransistor) สวิตช์ที่ใช้แสงควบคุม (Optical Switch หรือ Opto Interrupter Switch) เซนเซอร์แสงอินฟราเรดแบบสะท้อน (Reflective Infrared Sensor)

ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ เป็นตัวอย่างของอุปกรณ์อิเล็กทรอนิกส์ที่ทาํ งาน ด้วยแสง อุปกรณ์ทั้งสองชนิดนี้ทําหน้าที่เป็นแหล่งกําเนิดแสงอินฟราเรดหรือตัวส่ง และเป็นตัวรับแสง ตามลําดับ การใช้แสงในช่วงอินฟราเรดก็เพื่อหลีกเลี่ยงการรบกวนจากแสงที่มองเห็นได้ด้วยตาเปล่า (Visible Light) รูปที่ 5.22 แสดงตัวอย่างไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์

218


รูปที่ 5.22: ไดโอดเปล่งแสงอินฟราเรด (ซ้ายมือ) และโฟโต้ทรานซิสเตอร์ (ขวามือ)

อุปกรณ์ TSAL7400 ของบริษัท Vishay Semiconductor เป็นตัวอย่างไดโอดเปล่งแสงอินฟราเรด ทําจากสารกึ่งตัวนําผสม GaAlAs/GaAs มีลักษณะเหมือนไดโอดเปล่งแสงขนาด 5 มิลลิเมตร ตัวหลอดทําจาก วัตถุโปร่งใส มี 2 ขา คือ ขาแอโนด (ขายาว) และขาแคโทด (ขาสั้น) ให้แสงอินฟราเรดที่มีความเข้มสูงสุดที่ ความยาวคลื่น 940 nm ทนกระแสไบอัสตรงได้สูงถึง 100mA และแรงดันไบอัสตรงที่ประมาณ 1.3 - 1.6 โวลต์ สามารถนําไปใช้ในระบบสื่อสารด้วยแสงอินฟราเรด เช่น รีโมตคอนโทรล หรือใช้เป็นแหล่งกําเนิดแสง สําหรับเซนเซอร์แสงอินฟราเรด เป็นต้น เมื่อป้อนแรงดันไฟเลี้ยง (เช่น แบตเตอรี่แบบก้อน 1.5 โวลต์) จะมีกระแสไหล และให้แสงอินฟราเรด ออกมา แต่มองด้วยตาเปล่าไม่เห็น วิธีการหนึ่งที่ทําให้มองเห็นแสงอินฟราเรดได้คือ การมองผ่านหรือถ่ายรูป ด้วยกล้องถ่ายรูปแบบดิจิทัล หรือกล้องของโทรศัพท์มือถือ รูปที่ 5.23 แสดงตัวอย่างรูปภาพที่ได้จากกล้องมือ ถือ บริเวณหลอดของไดโอดเปล่งแสง จะเป็นสีม่วงเมื่อมีกระแสไหลและให้แสงอินฟราเรดออกมา โฟโต้ทรานซิสเตอร์ ทําหน้าที่คล้ายทรานซิสเตอร์รอยต่อคู่แบบ NPN มีแต่ขาคอลเลคเตอร์ (C) และขา อิมิตเตอร์ (E) แต่ไม่มีขาเบส (Base) และถูกแทนที่ด้วยบริเวณรับแสง เมื่อได้รับแสงในปริมาณมากพอ ทรานซิสเตอร์จะเริ่มทํางาน ถ้าป้อนแรงดันที่ขา V และ E (หรือ VCE > 0) จะทําให้มีกระแสคอลเลคเตอร์ไหล รูปที่ 5.24 แสดงสัญลักษณ์ทางไฟฟ้าของโฟโต้ทรานซิสเตอร์

219


รูปที่ 5.23: ทดลองจ่ายกระแสให้ไดโอดเปล่งแสงอินฟราเรด (มองผ่านกล้องดิจิทัล)

รูปที่ 5.24: สัญลักษณ์ทางไฟฟ้าของโฟโต้ทรานซิสเตอร์

อุปกรณ์ TOPS-050TB2 ของบริษัท Oasistek เป็นตัวอย่างของโฟโต้ทรานซิสเตอร์ ใช้รับแสงทีม่ ี ความยาวคลื่นในช่วง 750 - 1050 นาโนเมตร แต่ความยาวคลื่นเหมาะสมที่สุดในการตรวจจับคือ 900 นาโน เมตร มีลักษณะคล้ายไดโอดเปล่งแสงขนาด 5 มิลลิเมตร แต่ถูกเคลือบด้วยวัสดุทึบแสงทําหน้าทีก่ รองแสง ในช่วงคลื่นอินฟราเรด ให้ผ่านเข้าไปภายในได้เท่านั้น มี 2 ขา คือ ขาคอลเลคเตอร์ (ขาสั้น) และขาอิมิตเตอร์ (ขายาว) ปริมาณกระแสคอลเลคเตอร์ขึ้นอยู่กับปริมาณแสงอินฟราเรดที่ได้รับ รูปที่ 5.25 เป็นผังวงจรที่มีไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ และนํามาต่อใช้งานเป็น เซนเซอร์แสงอินฟราเรดสําหรับตรวจจับวัตถุในระยะใกล้ โดยเชื่อมต่อสัญญาณเอาต์พุตที่ได้จากวงจรเซนเซอร์ แสงไปยังขาแอนะล็อก-อินพุต A0 ของบอร์ด Arduino

220


รูปที่ 5.25: ผังวงจรสําหรับตรวจจับวัตถุระยะใกล้ด้วยแสงอินฟราเรด

การทํางานของบอร์ด Arduino เป็นไปตามโค้ดตัวอย่างที่ 5.3 โดยอ่านค่าจากขาแอนะล็อก-อินพุตที่ ขา A0 มาเก็บไว้ในตัวแปร value แล้วนําค่าของตัวแปรนี้ส่งไปแสดงผลที่คอมพิวเตอร์ผ่านพอร์ตอนุกรม ถัดไป เป็นการสร้างสัญญาณเอาต์พุต PWM ให้ LED และให้ค่า Duty Cycle เปลี่ยนแปลงตามค่าที่อ่านได้จากขา A0 ถ้ามีวัตถุอยู่ใกล้เซนเซอร์ จะทําให้ค่า Duty Cycle เพิ่มมากขึ้น และส่งผลให้ LED สว่างมากขึ้น รูปที่ 5.26 แสดงตัวอย่างการต่อวงจรเพื่อสาธิตการทํางานของวงจรเซนเซอร์แสงอินฟราเรด

โค้ดตัวอย่างที่ 5.3: โค้ด Arduino สําหรับสาธิตการทํางานของเซนเซอร์แสงอินฟราเรด 221


รูปที่ 5.26: สาธิตการทํางานของวงจรเซนเซอร์อินฟราเรด

รูปที่ 5.27 แสดงค่าที่อ่านได้เมื่อยังไม่มีวัตถุอยู่ใกล้เซนเซอร์ (แสดงผลในหน้าต่าง Serial Monitor) และรูปที่ 5.28 แสดงค่าที่อ่านได้ในกรณีทมี่ ีวัตถุอยู่ด้านบนและใกล้เซนเซอร์ ซึ่งทําให้เกิดการสะท้อนของแสง อินฟราเรดกลับไปยังตัวรับได้

รูปที่ 5.27: แสดงค่าที่อ่านได้เมื่อไม่มีวัตถุอยู่ใกล้เซนเซอร์ (ด้านบน) 222


รูปที่ 5.28: แสดงค่าที่อ่านได้เมื่อมีวัตถุอยู่ใกล้เซนเซอร์ (ด้านบน)

คําแนะนํา: เพื่อป้องกันแสงรบกวนจากแหล่งอื่น ให้ใช้วัตถุทึบแสง เช่น “ท่อหด” (Heat-Shrinkable Tubing) สวมที่หลอดของโฟโต้ทรานซิสเตอร์เพื่อไม่ให้ได้รับแสงจากรอบด้าน

ข้อสังเกต: วัตถุที่มีสีต่างกัน เช่น สีขาวหรือสีดํา เมื่อนํามาวางใกล้เซนเซอร์ที่ระยะห่างเท่ากัน จะให้ ค่าที่อ่านได้ไม่เท่ากัน จากการทดลอง วัตถุสีขาวจะให้ค่าที่ต่ํากว่าเพราะสะท้อนแสงได้ดีกว่าวัตถุสีดํา

สวิตช์ควบคุมด้วยแสงและเซนเซอร์แสงอินฟราเรดแบบสะท้อน อุปกรณ์บางตัวถูกออกแบบมาเพื่อใช้เป็นสวิตช์ที่ใช้แสงควบคุม เช่น เบอร์ H21A1 ของบริษัท Fairchild Semiconductor และ TCST2202 หรือ TCST2103 ของบริษัท Vishay Semiconductors โดย การตรวจจับว่า มีวัตถุมาบังแสงอินฟราเรดระหว่างตัวส่งและตัวรับหรือไม่ และเซนเซอร์แสงอินฟราเรดแบบ สะท้อนสามารถนํามาใช้ตรวจจับวัตถุในระยะใกล้ได้ รูปที่ 5.29 เป็นสัญลักษณ์ทางไฟฟ้าของสวิตช์ควบคุมด้วย แสงซึ่งมีลกั ษณะเหมือนอุปกรณ์เชื่อมต่อทางแสง และรูปที่ 5.30 แสดงตัวอย่างสวิตช์ทางแสงและเซนเซอร์แสง อินฟราเรดแบบสะท้อน

223


รูปที่ 5.29: สัญลักษณ์ทางไฟฟ้าของสวิตช์ควบคุมด้วยแสง

รูปที่ 5.30: เซนเซอร์แสงอินฟราเรดแบบสะท้อน (ด้านซ้าย) และสวิตช์ควบคุมด้วยแสง (ด้านขวา)

ภายในตัวถังของอุปกรณ์ TCST2202 ประกอบด้วยตัวส่งแสงอินฟราเรด (Infrared Emitting Diode) เป็นไดโอดเปล่งแสงประเภทหนึ่งที่ทําจากสารกึ่งตัวนําผสม Gallium Arsenide (GaAs) และตัวรับแสง อินฟราเรด (โฟโต้ทรานซิสเตอร์) หันหน้าเข้าหากันโดยเว้นระยะห่างเป็นช่องแคบๆ ประมาณ 3 มิลลิเมตร ตัวถังของ TCST2202 มีขาสองคู่ และมีสญ ั ลักษณ์เขียนกํากับไว้ที่ตัวถัง ขาคู่แรกคือ + และ E ซึ่งหมายถึง ขา แอโนด (A) และขาแคโทด (K) ตามลําดับ ขาคู่ที่สองคือ + และ D ซึ่งก็คือ ขาคอลเลคเตอร์ (C) และขา อิมิตเตอร์ (E) ตามลําดับ รูปที่ 5.31 แสดงมุมมองจากด้านบนของอุปกรณ์ TCST2202 เพื่อระบุตําแหน่งขา ไดโอดเปล่งแสงที่เป็นตัวส่ง สามารถทนกระแสไบอัสตรง IF ได้สูงถึง 60mA และแรงดันไบอัสตรง ในช่วง 1.0 - 1.2V โฟโต้ทรานซิสเตอร์ที่เป็นตัวรับ มีอัตราการขยายกระแสค่อนข้างต่ํา (CTR: Current Transfer Ratio) เช่น ในช่วง 10 - 20% สําหรับกระแส IF อย่างน้อย 10mA

224


รูปที่ 5.31: มุมมองจากด้านบนของอุปกรณ์ TCST2202

เซนเซอร์แสงอินฟราเรดแบบสะท้อน (บางทีก็เรียกว่า Optical Proximity Sensor) เช่น อุปกรณ์ TCRT5000(L) ของบริษัท Vishay Semiconductors สามารถใช้ตรวจจับวัตถุในระยะใกล้ได้ (ในระยะไม่เกิน 5 มิลลิเมตร) ตัวเซนเซอร์ประกอบด้วยสองส่วนคือ ตัวส่งแสงอินฟราเรดที่มีความยาวคลื่น 950 นาโนเมตร (ไดโอดเปล่งแสงที่มีแรงดันไบอัสตรงในช่วง 1.25 – 1.5V และทนกระแสไบอัสตรง IF ได้สูงสุดสูง 60 mA) และ ตัวรับ (โฟโต้ทรานซิสเตอร์) ทํางานคล้ายกับสวิตช์ทางแสง แต่ตัวส่งและตัวรับหันหน้าไปในทิศทางเดียวกัน เมื่อแสงจากตัวส่งไปสะท้อนทีว่ ัตถุในระยะใกล้และไปยังตัวรับแสง จะทําให้โฟโต้ทรานซิสเตอร์ทํางาน ดังนั้นจึง นําไปใช้ตรวจจับวัตถุกีดขวางได้ หรือแยกวัตถุตามสีได้ที่ระยะห่างเท่ากัน เช่น ระหว่างสีขาวกับสีดํา รูปที่ 5.32 แสดงมุมมองจากด้านบนของอุปกรณ์ TCRT5000(L) เพื่อระบุตําแหน่งขา

รูปที่ 5.32: มุมมองจากด้านบนของอุปกรณ์ TCRT5000(L)

การทํางานของสวิตช์ทางแสง เช่น TCST2202 และเซนเซอร์แสงแบบสะท้อน เช่น TCRT5000(L) แม้ว่าจะคล้ายกัน แต่อุปกรณ์ทั้งสองชนิดจะถูกนําไปใช้ในลักษณะทีแ่ ตกต่างกัน รูปที่ 5.33 แสดงผังวงจรสาธิต การทํางานของสวิตช์ควบคุมด้วยแสงร่วมกับบอร์ด Arduino ซึ่งมีพฤติกรรมการทํางานตามโค้ดตัวอย่างที่ 5.4 ขาดิจิทัล-อินพุต D3 รับสัญญาณจากเซนเซอร์ และค่าทีอ่ ่านได้จากขานี้จะถูกนําไปใช้กําหนดสถานะทางลอจิก ให้ขาเอาต์พุต D5 ซึ่งต่อกับ LED เมื่อมีวตั ถุมาบังแสงระหว่างตัวส่งและตัวรับ จะอ่านค่าได้เป็นลอจิก HIGH แต่ถ้าไม่มีวัตถุบังช่องแสง จะอ่านค่าได้เป็นลอจิก LOW รูปที่ 5.34 แสดงการสาธิตการทํางานของวงจรสวิตช์ แสงร่วมกับบอร์ด Arduino เมื่อมีวัตถุ (กระดาษสีดํา) มาปิดช่องแสง จะทําให้ LED สว่าง 225


รูปที่ 5.33: ผังวงจรสําหรับทดสอบการทํางานของสวิตช์ควบคุมทางแสง

โค้ดตัวอย่างที่ 5.4: โค้ด Arduino สําหรับทดสอบการทํางานของสวิตช์ควบคุมทางแสง

226


รูปที่ 5.34: สาธิตการทํางานของวงจรสวิตช์ควบคุมด้วยแสง

อีกตัวอย่างหนึ่งเป็นการสาธิตการทํางานของเซนเซอร์แสงอินฟราเรดแบบสะท้อน และได้เลือกใช้ อุปกรณ์ TCRT5000L จํานวนสองตัว (เซนเซอร์ตัวที่ 1 และตัวที่ 2) นํามาต่อเป็นวงจรให้ทํางานร่วมกับบอร์ด Arduino เพื่อรับสัญญาณอินพุตเข้าที่ขา A0 และ A1 ตามผังวงจรในรูปที่ 5.35 และกําหนดพฤติกรรมการ ทํางานของ Arduino ให้เป็นไปตามโค้ดตัวอย่างที่ 5.5

รูปที่ 5.35: ผังวงจรสาธิตการทํางานของเซนเซอร์ TCRT5000L

227


ตัวอย่างโค้ดที่ 5.5: โค้ด Arduino สาธิตการใช้งานเซนเซอร์ TCRT5000L

รูปที่ 5.36: ตัวอย่างการทดลองใช้เซนเซอร์ TCRT5000L และตรวจจับวัตถุสีขาว

228


รูปที่ 5.36 แสดงตัวอย่างการต่อวงจรทดลอง และนําค่าที่อ่านได้จากเซนเซอร์ทั้งสองมาแสดงผลใน หน้าต่าง Serial Monitor และรูปที่ 5.37 แสดงค่าที่ได้จากเซนเซอร์เมื่อมีวัตถุสีขาว (เซนเซอร์ 1) และสีดํา (เซนเซอร์ 2) อยู่ใกล้ แต่ถ้าไม่มีวัตถุใดๆ อยู่ใกล้เซนเซอร์ (บริเวณด้านบนเหนือเซนเซอร์) ค่าที่อ่านได้จะสูงกว่า ประมาณ 900 ขึ้นไป เนื่องจากตัวรับไม่ได้รับแสงสะท้อนกลับ

รูปที่ 5.37: ค่าจากเซนเซอร์เมื่อมีวัตถุสีขาว (เซนเซอร์ 1) และสีดํา (เซนเซอร์ 2) อยู่ใกล้

5.8 โมดูลตรวจจับการเคลื่อนไหวด้วยแสงอินฟราเรด เซนเซอร์ PIR (Passive Infra–Red) เป็นอุปกรณ์ที่ตรวจจับการเคลื่อนไหว โดยการตรวจวัดความร้อน ที่ได้จากการเปลี่ยนแปลงระดับรังสีอินฟราเรด ซึ่งได้จากความร้อนที่แผ่ออกมาจากสิ่งมีชีวิต เช่น คนหรือสัตว์ เลี้ยงในบ้าน แล้วเปลี่ยนให้เป็นพลังงานไฟฟ้า เช่น ในรูปของสัญญาณเอาต์พุตแบบดิจิทัลที่ขาเอาต์พุต รูปที่ 5.38 แสดงตัวอย่างอุปกรณ์ตรวจจับการเคลื่อนไหวด้วยรังสีอินฟราเรด ในปัจจุบันมีอุปกรณ์ที่ ตรวจจับการเคลื่อนไหวให้เลือกใช้จากหลายบริษัทผู้ผลิต ดังนั้นควรศึกษาการใช้งานจากเอกสารหรือคู่มือการ ใช้งานจากผู้ผลิตให้เข้าใจก่อนที่จะนําอุปกรณ์ไปใช้งาน

229


รูปที่ 5.38: ตัวอย่างโมดูลตรวจจับการเคลื่อนไหวด้วยแสงอินฟราเรด

โมดูลเซนเซอร์แบบ PIR (#555-28027) ของบริษัท Parallax ในต่างประเทศ เป็นตัวอย่างของ อุปกรณ์ตรวจจับการเคลื่อนไหวด้วยการตรวจวัดความร้อน สามารถวัดได้ไกลถึง 5 เมตร ถูกออกแบบมาให้ใช้ งานกับไมโครคอนโทรลเลอร์ได้ง่าย โดยใช้ขาเชื่อมต่อสัญญาณเพียง 1 ขา ใช้แรงดันไฟเลี้ยงกระแสตรง +3 ถึง +5 โวลต์ และสามารถเลือกโหมดสัญญาณเอาต์พุตได้สองแบบ โดยการใส่จัมเปอร์ (Jumper) ที่ขาแบบ Pin Header ตามตําแหน่ง H หรือ L  H: เอาต์พุตเป็นลอจิก LOW เมื่ออยู่ในสภาวะปกติ และเอาต์พุตเป็นลอจิก HIGH เมื่อตรวจจับการ เคลื่อนไหวได้หนึ่งครั้ง (ได้ความกว้างของพัลส์อย่างน้อย 1.5 ถึง 2 วินาที โดยประมาณ) หรือถ้า ตรวจจับการเคลื่อนไหวได้อย่างต่อเนื่อง เอาต์พุตยังคงเป็นลอจิก HIGH ยาวไปจนกว่าจะไม่พบการ เคลื่อนไหว เอาต์พุตจึงเปลี่ยนเป็น LOW  L: เอาต์พุตเป็นลอจิก LOW เมื่ออยู่ในสภาวะปกติ และเอาต์พุตเป็นลอจิก HIGH สลับกับ LOW อย่าง ต่อเนื่อง เป็นสัญญาณแบบพัลส์ (Pulse) เมื่อตรวจจับการเคลื่อนไหวหลายครั้งได้

ชื่อสัญญาณ - (Ground) + (Voltage Supply) Out (Output)

การใช้งาน ต่อกับ GND ของวงจร ต่อกับแรงดันไฟเลี้ยง +3 ถึง +5 โวลต์ ต่อกับขาอินพุต-ดิจิทัลของไมโครคอนโทรลเลอร์

ตารางที่ 5.1: ขาสัญญาณสําหรับการเชื่อมต่อของโมดูล PIR Sensor ของ Parallax

230


โมดูล SE-10 ของบริษัท Hanseelec ในต่างประเทศ (จําหน่ายโดยบริษัท Sparkfun ในต่างประเทศ และใช้รหัสสินค้า SEN-08630) เป็นอีกตัวอย่างสําหรับเซนเซอร์แบบ PIR ถ้าตรวจพบการเคลื่อนไหวในขณะ ทํางาน ขา Alarm จะเปลี่ยนสถานะทางลอจิกจาก HIGH เป็น LOW จนกว่าจะไม่มีการเคลื่อนไหว

ชื่อสัญญาณ VCC (สายสีแดง) Gnd (สายสีน้ําตาล)

การใช้งาน แรงดันไฟเลี้ยงในช่วง +5V ถึง +12V (ควรใช้ +6V ขึ้นไป) ต่อกับ GND ของวงจร

Alarm (สายสีดํา )

เป็นเอาต์พุตแบบ Open-collector ต่อกับขาดิจิทัล-อินพุต ของไมโครคอนโทรลเลอร์ และต่อตัวต้านทานแบบ Pull-up 10kΩ ไปยังแรงดันคงที่ +5V (บอร์ด Arduino) ตารางที่ 5.2: ขาสัญญาณสําหรับการเชื่อมต่อของโมดูล

เนื่องจากเอาต์พุตจากเซนเซอร์ตรวจจับการเคลื่อนไหวเป็นสัญญาณแบบดิจิทัล สามารถนําไปต่อกับ ขาดิจิทัล-อินพุตของบอร์ด Arduino ได้ ค่าที่ได้อ่านจากเซนเซอร์จะเป็นลอจิก LOW หรือ HIGH ซึ่งเหมือนกับ กรณีที่ใช้ปุ่มกด

ในการใช้งานโมดูลตรวจจับการเคลื่อนไหว มีข้อควรระวังหรือคําแนะนําดังนี้  เมื่อเริ่มต้นป้อนแรงดันไฟเลี้ยงให้โมดูล จะต้องรอเวลาสักระยะหนึ่ง (ในช่วง 30 ถึง 60 วินาที ทั้งนี้ก็ขึ้นอยู่กับแต่ละโมดูลทีเ่ ลือกใช้) เพื่อให้โมดูลได้เรียนรู้สภาพแวดล้อม หลังจากช่วงเวลา ดังกล่าว จึงสามารถใช้สญ ั ญาณเอาต์พุตของโมดูลเพื่อตรวจดูว่า มีการเคลื่อนไหวของสิ่งมีชีวิต หรือไม่  ไม่ควรใช้ในบริเวณที่มีการเปลี่ยนแปลงสภาพแวดล้อมอย่างรวดเร็ว  ไม่ควรติดตั้งไว้ในบริเวณที่สัมผัสแสงอาทิตย์โดยตรง  ไม่ควรติดตั้งใกล้กับเครื่องทําความร้อน หรือเครื่องทําความเย็น

231


5.9 โมดูลวัดระยะห่างด้วยแสงอินฟราเรด โมดูลวัดระยะห่างด้วยแสงอินฟราเรด เช่น GP2D120 และ 2Y0A21 ของบริษัท Sharp (ตามตัวอย่าง ในรูปที่ 5.39) เป็นโมดูลตรวจวัดระยะห่างจากวัตถุกีดขวางด้วยแสงอินฟราเรด มีหลักการทํางานคือ ภายในมี ตัวส่งแสงอินฟราเรดออกไป เมื่อแสงไปกระทบวัตถุกีดขวาง แสงส่วนหนึ่งจะถูกสะท้อนกลับไปยังตัวรับของ โมดูล โดยมีเลนส์ภาครับทําหน้าที่รวมแสงและกําหนดจุดตกกระทบ แสงจะถูกส่งผ่านไปยังโฟโต้ทรานซิสเตอร์ จํานวนมากที่ต่อเรียงตัวกันเป็นอาร์เรย์ และตําแหน่งที่แสงตกกระทบนี้สามารถนํามาคํานวณหาระยะทางจาก ตัวส่งไปยังวัตถุได้ โดยค่าที่วัดระยะได้จากโฟโต้ทรานซิสเตอร์จะถูกส่งไปยังวงจรประมวลผลสัญญาณก่อนจะ เปลี่ยนค่าให้เป็นระดับของแรงดันซึ่งเป็นสัญญาณเอาต์พุตแบบแอนะล็อก และจะต้องนําค่าที่ได้มาแปลงให้ เป็นหน่วยของระยะทาง (หน่วยเป็นเซนติเมตร) โดยใช้ข้อมูลตามกราฟทีม่ ีการจัดทําไว้โดยผู้ผลิต (หรืออาจจะ ทําการทดลองเองหาความสัมพันธ์ระหว่างระดับแรงดันที่วัดได้และระยะห่างจากวัตถุ)

รูปที่ 5.39: ตัวอย่างโมดูลวัดระยะห่างด้วยแสงอินฟราเรด (2Y0A21)

ข้อมูลเชิงเทคนิคที่สําคัญของอุปกรณ์ GP2D120 และ 2Y0A21 แสดงอยู่ในตารางที่ 5.3 และ 5.4 ตามลําดับ ซึ่งเห็นได้ว่า โมดูลทั้งสองมีช่วงระยะทางในการวัดที่แตกต่างกัน สําหรับการเชื่อมต่อกับโมดูลจะใช้ สายไฟเชื่อมต่อ 3 เส้น (ตามรูปที่ 3.40) ได้แก่ แรงดันไฟเลี้ยง +5V สัญญาณเอาต์พุต และ GND ตามที่ระบุใน ตารางที่ 5.5 รูปที่ 5.43 แสดงตัวอย่างการต่อวงจรสาธิตการทํางานของเซนเซอร์ร่วมกับบอร์ด Arduino ตาม โค้ดตัวอย่างที่ 5.6 และรูปที่ 5.44 แสดงค่าที่อ่านได้จากเซนเซอร์

232


คุณลักษณะเฉพาะ ไฟเลี้ยงกระแสตรง ระยะทางได้ในช่วงที่วัดได้ ย่านแรงดันเอาต์พุต (ใช้ไฟเลี้ยง +5 โวลต์) ระยะเวลาในการตอบสนองในการวัดแต่ละครั้ง

+4.5 ถึง +5.5 โวลต์ 4 - 30 เซนติเมตร 0.4 ถึง 2.4 โวลต์ ประมาณ 40 มิลลิวินาที

ตารางที่ 5.3: ข้อมูลเชิงเทคนิคที่สําคัญของอุปกรณ์ GP2D120

คุณลักษณะเฉพาะ ไฟเลี้ยงกระแสตรง ระยะทางได้ในช่วงที่วัดได้ ย่านแรงดันเอาต์พุต (ใช้ไฟเลี้ยง +5 โวลต์) ระยะเวลาในการตอบสนองในการวัดแต่ละครั้ง

+4.5 ถึง +5.5 โวลต์ 10 – 80 เซนติเมตร 0.3 ถึง 3.1 โวลต์ ประมาณ 40 มิลลิวินาที

ตารางที่ 5.4: ข้อมูลเชิงเทคนิคที่สําคัญของอุปกรณ์ 2Y0A21

ชื่อสัญญาณ VCC (Voltage Supply) GND (Ground) Out (Output)

การใช้งาน เชื่อมต่อกับแรงดันไฟเลี้ยง +4.5 ถึง +5 โวลต์ เชื่อมต่อกับ GND ของวงจร เชื่อมต่อกับขาแอนะล็อก-อินพุตของไมโครคอนโทรลเลอร์

ตารางที่ 5.5: ขาสัญญาณสําหรับการเชื่อมต่อของโมดูล GP2D120

รูปที่ 5.40: การระบุขาของเซนเซอร์วัดระยะทางด้วยอินฟราเรด Sharp (มุมมองจากด้านล่าง)

233


รูปที่ 5.41: กราฟแสดงความสัมพันธ์ระหว่างระยะทางและแรงดันที่วัดได้ (สําหรับโมดูล GP2D120)

รูปที่ 5.42: กราฟแสดงความสัมพันธ์ระหว่างระยะทางและแรงดันที่วัดได้ (สําหรับโมดูล 2Y0A21)

234


โค้ดตัวอย่างที่ 5.6: โค้ด Arduino สาธิตการรับค่าจากเซนเซอร์ Sharp 2Y0A21

รูปที่ 5.43: สาธิตการทํางานของเซนเซอร์วัดระยะห่างด้วยแสงอินฟราเรด Sharp 2Y0A21

235


รูปที่ 5.44: แสดงแรงดันที่วัดได้จากเซนเซอร์ Sharp 2Y0A21 (ระยะห่างวัตถุสีขาว 20 ซม.)

5.10 โมดูลวัดระยะทางด้วยคลื่นอัลตราโซนิก การวัดระยะทางจากสิ่งกีดขวางด้วยคลื่นเสียงเป็นการประยุกต์ใช้คลื่นอัลตราโซนิก (Ultrasonic) ซึ่ง เป็นคลื่นเสียงที่มีความถี่สูงเกินที่หูของมนุษย์จะได้ยิน มักจะใช้ความถี่ประมาณ 40kHz (มนุษย์สามารถได้ยิน เสียงในย่านความถี่ประมาณ 20Hz – 20kHz) โมดูลวัดระยะทางด้วยคลื่นเสียง ประกอบด้วยสองส่วนคือ ตัวส่งและตัวรับ โดยตัวส่งจะส่งคลื่นอัลตราโซนิกออกไปในทิศทางที่กาํ หนด เมื่อคลื่นเสียงไปกระทบกับวัตถุ จะเกิดการสะท้อนกลับมายังตัวรับ ถ้าสามารถจับเวลาในการเดินทางจากตัวส่งและกลับมายังตัวรับได้ และ ทราบความเร็วของคลื่นเสียงในอากาศ ก็จะสามารถคํานวณระยะทางจากวัตถุได้ดังนี้

ถ้าความเร็วของคลื่นเสียงในอากาศเท่ากับ 346 เมตรต่อวินาที จะเขียนสูตรการคํานวณระยะทาง (เซนติเมตร) เป็นฟังก์ชันของระยะเวลาในการเดินทางของคลื่นเสียง (ไมโครวินาที) ได้ดังนี้

236


SRF05 ของบริษัท Devantech ในต่างประเทศ เป็นโมดูลวัดระยะห่างจากวัตถุด้วยคลื่นอัลตราโซนิก (Ultrasonic Range Finder) สามารถวัดระยะทางได้ไกลถึง 4 เมตร ถูกออกแบบมาให้ใช้งานกับ ไมโครคอนโทรลเลอร์ได้ง่าย โดยใช้ขาเชื่อมต่อเพียง 1 หรือ 2 ขา ขึ้นอยูก่ ับการกําหนดรูปแบบการทํางานของ โมดูล รูปที่ 5.45 แสดงโมดูล SRF05 ทั้งมุมมองด้านหน้าและด้านหลัง

รูปที่ 5.45: โมดูล SRF05 วัดระยะห่างจากวัตถุด้วยคลื่นอัลตราโซนิก

คุณลักษณะเฉพาะ แรงดันไฟเลี้ยงกระแสตรง การใช้กระแสไฟฟ้า ความถี่ของคลื่นอัลตราโซนิก ระยะทางในการวัด การเว้นระยะเวลาในการวัดแต่ละครั้ง สัญญาณเอาต์พุต

+5 โวลต์ ประมาณ 30 มิลลิแอมป์ 40 กิโลเฮริตซ์ 1 เซนติเมตรถึง 4 เมตร อย่างน้อย 50 มิลลิวินาที 5V (TTL) สัญญาณพัลส์

ตารางที่ 5.6: ข้อมูลเชิงเทคนิคที่สําคัญของอุปกรณ์ SRF05 237


โมดูล SRF05 ให้เอาต์พุตแบบ TTL (5V) จากการวัดระยะเป็นค่าความกว้างพัลส์ซึ่งเป็นสัดส่วนกับ ระยะทางที่วัดได้ และสามารถติดต่อได้ 2 แบบ คือ โหมด 1 แบบ 2 สัญญาณ (Echo กับ Trigger) และโหมด 2 แบบอนุกรมใช้สัญญาณเส้นเดียว (ข้อดีคือ ใช้ขาสัญญาณของไมโครคอนโทรลเลอร์เพียงหนึ่งเส้น แต่ต้องมี การเปลี่ยนทิศทางของขาสัญญาณสําหรับการส่งและรับสัญญาณในแต่ละครั้ง) ในกรณีทใี่ ช้โหมด 1 โมดูล SRF05 จะใช้ขา Trigger ส่งสัญญาณพัลส์ที่มีความกว้างอย่างน้อย 10 ไมโครวินาที เพื่อกระตุ้นการสร้างคลื่นอัลตร้าโซนิจากตัวส่ง และใช้ขา Echo รับสัญญาณดิจิทัลแบบพัลส์ และ ความกว้างของสัญญาณพัลส์จะแปรผันโดยตรงกับระยะห่าง เมื่อส่งคลื่นอัลตราโซนิกออกไปแล้ว ขาสัญญาณ Echo จะเปลีย่ นจากลอจิก LOW เป็น HIGH และจะคงอยู่จนกว่าจะได้รับคลื่นสะท้อนกลับมา ซึ่งจะเปลี่ยน จาก HIGH เป็น LOW ความกว้างของพัลส์จากขา Echo จะอยู่ในช่วง 100 ไมโครวินาที ถึง 25 มิลลิวินาที แสดงว่ามีการตรวจพบวัตถุ แต่ถ้ามากกว่า 30 มิลลิวินาที ก็หมายถึง ไม่พบวัตถุกีดขวาง

รูปที่ 5.46: ขาเชื่อมต่อสัญญาณของโมดุล SRF05

238


ชื่อสัญญาณ 5V (Voltage Supply) Echo Trigger Mode (Input) GND (Ground)

การใช้งาน ต่อแรงดันไฟเลี้ยง +5 โวลต์ ต่อเข้ากับขาอินพุต-ดิจิทัลของไมโครคอนโทรลเลอร์ ต่อเข้ากับขาเอาต์พุต-ดิจิทัลของไมโครคอนโทรลเลอร์ เลือกโหมดการติดต่อกับโมดูล โดยต่อกับลอจิก HIGH สําหรับ โหมด 1 (มีตัวต้านทานแบบ Pull-up ต่ออยู่แล้ว) ต่อกับ GND ของวงจร

ตารางที่ 5.7: ขาสัญญาณสําหรับการเชื่อมต่อของโมดูล SRF05 (โหมด 1)

รูปที่ 5.47 แสดงตัวอย่างการต่อวงจรทดลองใช้งานโมดูล SRF05 (โหมด 1) ร่วมกับบอร์ด Arduino ตามโค้ดตัวอย่างที่ 5.7 และรูปที่ 5.48 แสดงค่าระยะทางที่อ่านได้จากโมดูล SRF05

โค้ดตัวอย่างที่ 5.7: โค้ด Arduino สาธิตการทํางานของโมดูล SRF05

239


รูปที่ 5.47: แสดงตัวอย่างการต่อโมดูล SRF05 ร่วมกับบอร์ด Arduino

รูปที่ 5.48: แสดงตัวอย่างค่าที่อ่านได้จากโมดูล SRF05

240


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

************************

241


242


ใบมอบหมายงานที่ 5.1 การตรวจจับการเปลี่ยนแปลงสภาพแสง วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ประยุกต์ใช้งานตัวต้านทานไวแสง (LDR) ในการตรวจจับการเปลี่ยนแปลงสภาพแสงแวดล้อม

รายการอุปกรณ์         

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ตัวต้านทานไวแสง (LDR) ตัวต้านทานคงที่ 330Ω ตัวต้านทานคงที่ 10kΩ ตัวต้านทานปรับค่าได้ 10kΩ (หรือสูงกว่า) ไดโอดเปล่งแสง (LED) ขนาด 5 มม. ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab5_1” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 5.1.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 3. เตรียมอุปกรณ์ ตามตัวอย่างในรูปที่ 5.1.1 และเริ่มต้นด้วยการวัดค่าความต้านทานของ LDR ในสภาพ แสงแวดล้อมทีแ่ ตกต่างกัน (มืด ปานกลาง และสว่างมาก) โดยใช้มัลติมิเตอร์ในการวัด แล้วจดบันทึก ค่าที่ได้ลงในตารางที่ 5.1.1 243


4. ต่อวงจรตามผังวงจรในรูปที่ 5.1.2 แต่ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้องของวงจรในเบื้องต้น 5. เชื่อมต่อไฟเลี้ยง (ขา +5V และขา GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรด บอร์ด สําหรับแรงดันไฟเลี้ยง +5V และ GND ของวงจรตามลําดับ 6. วัดแรงดันที่ขา A0 ในสภาพแสงแวดล้อมที่แตกต่างกัน โดยใช้มัลติมิเตอร์ แล้วจดบันทึกค่าที่ได้ลงใน ตารางที่ 5.1.2 7. หมุนที่ปุ่มของตัวต้านทานปรับค่าได้ (Trimpot) เพื่อเลือกระดับแรงดันที่ขา A1 ค่าใดค่าหนึ่งที่ทําให้ LED สว่างเมื่อมีสภาพแสงต่ํา และ LED ไม่ติดเมื่อมีสภาพแสงปรกติหรือสว่าง 8. ใช้มัลติมิเตอร์วัดแรงดันที่ขา A0 และทดลองเปลี่ยนสภาพแสงโดยการใช้วัตถุทึบแสงมาปิดที่ LDR แล้วเปรียบเทียบแรงดันที่วัดได้ที่ขา A0 กับแรงดันที่ขา A1

โค้ดตัวอย่างที่ 5.1.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

244


รูปที่ 5.1.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 5.1.2: ผังวงจรสําหรับการต่อวงจร

สภาพแสง แสงน้อย (มืด) แสงปานกลาง แสงมาก (สว่างมาก)

ค่าความต้านทาน (Ω)

ตารางที่ 5.1.1

245


สภาพแสง แสงน้อย (มืด) แสงปานกลาง แสงมาก (สว่างมาก)

แรงดันที่ขา A0 (โวลต์)

ตารางที่ 5.1.2

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ค่าความต้านทานของตัวต้านทานไวแสงที่วัดได้ในสภาพแสงที่แตกต่างกันอยู่ ในช่วง ……………………. ถึง ……………………….. โอห์ม 2. แรงดันที่วัดได้ที่ขา A0 อยู่ในช่วง ………………………….. ถึง ………………………… โวลต์ 3. เมื่อปริมาณแสงลดลง จะทําให้แรงดันที่วัดได้ที่ขา A0 ………………………….…. (เพิ่มขึ้น / ลดลง / คงที่) อย่างเห็นได้ชัดเจน

*********************************

246


ใบมอบหมายงานที่ 5.2 การตรวจจับการเปลี่ยนแปลงอุณหภูมิ วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ประยุกต์ใช้งานเทอร์มิสเตอร์ในการตรวจจับการเปลี่ยนแปลงอุณหภูมิ

รายการอุปกรณ์            

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V เทอร์มิสเตอร์ NTC 10kΩ ±10% ตัวต้านทานคงที่ 1kΩ ตัวต้านทานคงที่ 10kΩ ตัวต้านทานปรับค่าได้ 10kΩ (หรือสูงกว่า) ทรานซิสเตอร์แบบ NPN เช่น เบอร์ PN2222A ไดโอดเปล่งแสง บัซเซอร์เสียง (ใช้ได้กับแรงดัน +9V หรือ +12V) แบตเตอรี่ 9V พร้อมสายไฟต่อขั้ว ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 2 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ตัว 1 ชุด 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab5_2” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 5.2.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว 247


3. เตรียมอุปกรณ์ตามตัวอย่างในรูปที่ 5.2.1 และเริ่มต้นด้วยการวัดค่าความต้านทานของเทอร์มิสเตอร์ ในสภาพอุณหภูมิแวดล้อมทีแ่ ตกต่างกัน (เย็น ปานกลาง และร้อน) โดยใช้มัลติมิเตอร์ในการวัด แล้ว จดบันทึกค่าลงในตารางที่ 5.2.1 4. ต่อวงจรตามผังวงจรในรูปที่ 5.2.2 แต่ยังไม่ต้องเชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้องของวงจรในเบื้องต้น 5. เชื่อมต่อไฟเลี้ยง (ขา +5V และขา GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรด บอร์ด สําหรับแรงดันไฟเลี้ยง +5V และ GND ของวงจรตามลําดับ 6. วัดแรงดันที่ขา A0 ในสภาพแสงแวดล้อมที่แตกต่างกัน โดยใช้มัลติมิเตอร์ แล้วจดบันทึกค่าที่ได้ลงใน ตารางที่ 5.2.2 7. หมุนที่ปุ่มของตัวต้านทานปรับค่าได้ (Trimpot) เพื่อเลือกระดับแรงดันที่ขา A1 ค่าใดค่าหนึ่งที่ทํา ให้บัซเซอร์ มีเสียงเตือนเมื่ออุณหภูมิสูงขึ้นกว่าปรกติ และไม่มีเสียงเตือนเมื่ออุณหภูมิอยู่ในระดับปรกติ 8. ใช้มัลติมิเตอร์วัดแรงดันที่ขา A0 และทดลองเปลี่ยนสภาพอุณหภูมิแวดล้อม (ทําให้อุณหภูมิสูงขึ้น) แล้วเปรียบเทียบแรงดันที่วัดได้ที่ขา A0 กับแรงดันที่ขา A1

โค้ดตัวอย่างที่ 5.2.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

248


รูปที่ 5.2.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 5.2.2: ผังวงจรสําหรับการต่อวงจร

สภาพอุณหภูมิแวดล้อม เย็น (เมื่อเปิดเครื่องปรับอากาศ) ปานกลาง (เมื่อไม่เปิดเครื่องปรับอากาศ) ร้อน (เมื่อถูกเป่าด้วยลมร้อน) ตารางที่ 5.2.1

249

ค่าความต้านทาน (Ω)


สภาพอุณหภูมิแวดล้อม แรงดันที่ขา A0 (โวลต์) เย็น (เมื่อเปิดเครื่องปรับอากาศ) ปานกลาง (เมื่อไม่เปิดเครื่องปรับอากาศ) ร้อน (เมื่อถูกเป่าด้วยลมร้อน) ตารางที่ 5.2.2

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ค่าความต้านทานของเทอร์มิสเตอร์ที่วัดได้ในระดับอุณหภูมิแวดล้อมที่แตกต่าง กันอยู่ในช่วง …………..…………. ถึง ……………………….. โอห์ม 2. แรงดันที่วัดได้ที่ขา A0 อยู่ในช่วง ………………………….. ถึง ………………………… โวลต์ 3. เมื่ออุณหภูมิสงู ขึ้น จะทําให้แรงดันที่วัดได้ที่ขา A0 …………………….………. (เพิ่มขึ้น / ลดลง / คงที่) อย่างเห็นได้ชัดเจน

*********************************

250


ใบมอบหมายงานที่ 5.3 การแยกวัตถุสีขาวหรือดําในระยะใกล้ด้วยแสงอินฟราเรด วัตถุประสงค์  ฝึกทักษะในการต่อวงจรอิเล็กทรอนิกส์พื้นฐานบนเบรดบอร์ด ตามผังวงจรที่กําหนดให้ และทดสอบ การทํางานของโค้ดตัวอย่างโดยใช้บอร์ด Arduino  ประยุกต์ใช้งานไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์เพื่อแยกวัตถุสีขาวหรือดํา

รายการอุปกรณ์          

แผงต่อวงจร (เบรดบอร์ด) บอร์ด Arduino ที่ใช้แรงดัน 5V ไดโอดเปล่งแสงอินฟราเรด ไดโอดเปล่งแสง โฟโต้ทรานซิสเตอร์ ตัวต้านทาน 330Ω ตัวต้านทาน 10kΩ ตัวต้านทานปรับค่าได้ 10kΩ (หรือสูงกว่า) ลวดสายไฟสําหรับต่อวงจร มัลติมิเตอร์

1 อัน 1 บอร์ด 1 ตัว 1 ตัว 1 ตัว 2 ตัว 1ตัว 1 ตัว 1 ชุด 1 เครื่อง

ขั้นตอนการทดลอง 1. สร้าง Sketch ใหม่ โดยใช้ซอฟต์แวร์ Arduino IDE ตั้งชื่อว่า “sketch_lab5_3” และเขียนโปรแกรม ตามโค้ดตัวอย่างที่ 5.3.1 แล้วบันทึกลงไฟล์ 2. ทําขั้นตอน Verify และ Upload เมื่อเชื่อมต่อบอร์ด Arduino ทางพอร์ต USB ของคอมพิวเตอร์แล้ว

251


3. เตรียมอุปกรณ์ตามตัวอย่างในรูปที่ 5.3.1 และต่อวงจรตามผังวงจรในรูปที่ 5.3.2 แต่ยังไม่ต้อง เชื่อมต่อแรงดันไฟเลี้ยง (+5V และ GND) จากบอร์ด Arduino แล้วตรวจสอบความถูกต้องของวงจร ในเบื้องต้น 4. เชื่อมต่อไฟเลี้ยง (ขา +5V และขา GND) ด้วยลวดสายไฟสองเส้น จากบอร์ด Arduino ไปยังเบรด บอร์ด สําหรับแรงดันไฟเลี้ยง +5V และ GND ของวงจรตามลําดับ 5. ทดสอบการทํางานโดยใช้กระดาษสีขาว วางให้อยู่เหนือเซนเซอร์ที่ระยะห่าง 1 5 และ 10 ซม. ตามลําดับ และวัดแรงดันที่ขา A0 โดยใช้มัลติมิเตอร์ แล้วจดบันทึกค่าลงในตารางที่ 5.3.1 6. ทดสอบการทํางานโดยใช้กระดาษสีดํา วางให้อยู่เหนือเซนเซอร์ที่ระยะห่าง 1 5 และ 10 ซม. ตามลําดับ และวัดแรงดันที่ขา A0 โดยใช้มัลติมิเตอร์ แล้วจดบันทึกค่าลงในตารางที่ 5.3.2 7. หมุนที่ปุ่มของตัวต้านทานปรับค่าได้ เพื่อเลือกแรงดันที่ขา A1 ค่าใดค่าหนึ่งที่ทําให้ LED สว่างเมื่อมี วัตถุสีขาววางอยู่เหนือเซนเซอร์ที่ระยะห่าง 5 ซม. และ LED จะไม่ติดเมื่อมีวัตถุสีดําวางอยู่เหนือ เซนเซอร์ที่ระยะห่างเท่ากัน หรือไม่มีวัตถุใดๆมาวางไว้

โค้ดตัวอย่างที่ 5.3.1: โค้ดต้นฉบับสําหรับบอร์ด Arduino ในการทดลอง

252


รูปที่ 5.3.1: ตัวอย่างอุปกรณ์ในการทดลอง

รูปที่ 5.3.2: ผังวงจรสําหรับการต่อวงจร

ระยะห่างระหว่างวัตถุและเซนเซอร์ 1 ซม. 5 ซม. 10 ซม.

แรงดันที่ขา A0 (โวลต์)

ตารางที่ 5.3.1: สําหรับวัตถุสีขาว

253


ระยะห่างระหว่างวัตถุและเซนเซอร์ 1 ซม. 5 ซม. 10 ซม.

แรงดันที่ขา A0 (โวลต์)

ตารางที่ 5.3.2: สําหรับวัตถุสีดํา

วิเคราะห์และสรุปผลการทดลอง 1. จากการทดลองพบว่า ที่ระยะห่างเท่ากัน วัตถุสีดําจะทําให้แรงดันที่ขา A0 …………………….. (ต่ํากว่า / สูงกว่า / ไม่แตกต่าง) เมื่อเปรียบเทียบกับกรณีที่ใช้วัตถุสีขาว 2. ในการแยกวัตถุระหว่างสีขาวกับสีดําด้วยเซนเซอร์แสงอินฟราเรด ที่ระยะห่าง ……….…………. (1 ซม. / 5 ซม. / 10 ซม.) จะให้ผลดีที่สุด

*********************************

254


บรรณานุกรม Monk, Simon. Programming Arduino Getting Started with Sketches. 1st Edition. McGraw-Hill/TAB Electronics, 2011. Schmidt, Maik. A Quick Start Guide (Quick-Start Guides). 1st Edition. Pragmatic Bookshelf, 2011. McRoberts, Michael. Beginning Arduino. 1st Edition. Apress 2010. เว็บไซต์โฮมเพจของ Arduino. [ออนไลน์]. เข้าถึงได้จาก http://www.arduino.cc/ (วันที่ค้นข้อมูล: 20 มีนาคม 2555) ซอฟต์แวร์ Arduino IDE. [ออนไลน์]. เข้าถึงได้จาก http://arduino.cc/en/Main/Software (วันที่สืบค้นข้อมูล: 20 มีนาคม 2555) แหล่งรวบรวมตัวอย่างบอร์ด Arduino. [ออนไลน์]. เข้าถึงได้จาก http://arduino.cc/en/Main/Hardware (วันที่สืบค้นข้อมูล: 20 มีนาคม 2555) แนะนําการใช้งาน Arduino. [ออนไลน์]. เข้าถึงได้จาก http://arduino.cc/en/Tutorial/HomePage (วันที่สืบค้นข้อมูล: 20 มีนาคม 2555) คําสั่งต่างๆ สําหรับเขียนโปรแกรม Arduino. [ออนไลน์]. เข้าถึงได้จาก http://www.arduino.cc/en/Reference/HomePage (วันที่สืบค้นข้อมูล: 20 มีนาคม 2555)

255


256


ภาคผนวก ก. ชุดอุปกรณ์สําหรับการเรียนรู้อิเล็กทรอนิกส์พื้นฐาน ชุดอุปกรณ์สําหรับการเรียนรู้อิเล็กทรอนิกส์พื้นฐาน 1 ชุด ประกอบด้วยกล่องอุปกรณ์ 2 กล่อง ได้แก่ กล่อง DuinoLite Box และกล่องอุปกรณ์อิเล็กทรอนิกส์พื้นฐาน ทําให้สะดวกในการใช้งานและจัดเก็บอุปกรณ์ อย่างเป็นระเบียบ เหมาะสําหรับการเรียนรู้และปฏิบัติทดลองสําหรับผู้เรียนรายบุคคลหรือเป็นกลุ่ม 2-3 คน

กล่อง DuinoLite Box กล่อง DuinoLite Box เป็นกล่องพลาสติก (รูปที่ ก.1) ภายในแบ่งเป็นช่องสําหรับเก็บอุปกรณ์และ ชิ้นส่วนอิเล็กทรอนิกส์ต่างๆ และเริ่มต้นทดลองใช้งานบอร์ด Arduino ได้ แต่แนะนําให้ใช้ควบคู่กับกล่อง อุปกรณ์อิเล็กทรอนิกส์พื้นฐาน ซึ่งมีอปุ กรณ์ที่มีลักษณะเป็นชิ้นส่วนขนาดเล็กหลายชนิด และครอบคลุม รายการอุปกรณ์ทั้งหมดที่จําเป็นต้องใช้สําหรับการทดลองตามที่ได้ออกแบบไว้ กล่อง DuinoLite Box มีอุปกรณ์ต่างๆ ตามรายการดังนี้ (ตามตัวอย่างในรูปที่ ก.2) 1) บอร์ด DuinoLite 1 บอร์ด 2) สาย USB (สําหรับเชื่อมต่อบอร์ด DuinoLite ไปยังคอมพิวเตอร์) 1 เส้น 3) เบรดบอร์ด (แผงต่อวงจร) ขนาดสั้น (Half Size) 1 อัน 4) โมดูลรีเลย์ 1 อัน 5) โมดูลแสดงผล 16x2 LCD 1 อัน 6) เซอร์โวมอเตอร์ขนาดเล็ก (R/C Servo) 1 ตัว 7) มอเตอร์ไฟฟ้ากระแสตรง (DC Motor) ขนาดเล็ก 1 ตัว 8) รังถ่านสําหรับแบตเตอรี่ 2 ก้อน (ขนาด AA) 2 อัน 9) ขั้วต่อแบตเตอรี่ชนิดก้อน 9V 1 อัน 10) ลวดสายไฟเชื่อมต่อ ขนาดสั้น 1 ถุง (20 เส้น) 11) ลวดสายไฟเชื่อมต่อ ขนาดยาว 13 เส้น 12) ลวดสายไฟเชื่อมต่อ (แบบตัวผู้และตัวเมีย) ขนาดยาว 6 เส้น

ก-1


รูปที่ ก.1: กล่องอุปกรณ์ DuinoLite Box

รูปที่ ก.2: อุปกรณ์ต่างๆ ในกล่อง DuinoLite Box

บอร์ด DuinoLite บอร์ด DuinoLite เป็นบอร์ด Arduino ที่พัฒนาโดยทีมวิจัยจากห้องปฏิบัติการระบบสมองกลฝังตัว (ESL) ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีพระจอมเกล้า พระนครเหนือ บอร์ด DuinoLite สามารถใช้ไฟเลี้ยงจากพอร์ต USB ของคอมพิวเตอร์ทั่วไปได้ และใช้แทน

ก-2


บอร์ด Arduino Uno ได้สําหรับการทดลอง รูปที่ ก.3 – ก.4 แสดงบอร์ด DuinoLite จากมุมมองด้านบน และ ภาพโครงร่างของบอร์ด และมีการระบุขาต่างๆ ด้วยตัวหนังสือไว้อย่างชัดเจน ในการเลือกบอร์ด DuinoLite เพื่อใช้งาน เมื่อสร้าง Sketch แล้ว ก่อนที่จะทําขั้นตอน Verify และ Upload ให้เลือกเมนูคําสั่งของโปรแกรม Arduino IDE ดังนี้ Tools > Board > Arduino Pro or Pro Mini (5V, 16MHz) w/ ATmega168

ข้อมูลเชิงเทคนิคเกี่ยวกับบอร์ด DuinoLite ไมโครคอนโทรลเลอร์ ATmega168 (+5V) ความถี่ของคริสตอล 16MHz แรงดันไฟเลี้ยง จากพอร์ต USB หรือ แหล่งจ่ายแรงดันคงที่ +5V ขาเชื่อมต่อ แบบตัวเมีย (Female Pin-Header) ระหว่าง 2.54 มม. ขาดิจิทัล D0 – D10 ขาแอนะล็อก-อินพุต A0 – A7 การเชื่อมต่อกับ ชิป FT232RL (ทําหน้าที่แปลงพอร์ต USB เป็นพอร์ตอนุกรม) คอมพิวเตอร์

รูปที่ ก.3: บอร์ด DuinoLite

ก-3


รูปที่ ก.4: ภาพโครงร่างของบอร์ด DuinoLite (มุมมองด้านบน)

โมดูลรีเลย์ โมดูลรีเลย์ในกล่อง DuinoLite Box เป็นตัวอย่างของอุปกรณ์หรือวงจรที่ได้มีการจัดทําเป็นแผงวงจร หรือโมดูล ทําให้สะดวกในการใช้งาน ไม่ต้องเสียเวลาต่อวงจรบนเบรดบอร์ด สามารถนําไปเชื่อมต่อกับบอร์ด DuinoLite และเขียนโปรแกรมควบคุมการทํางานของรีเลย์ได้ รูปที่ ก.5 แสดงมุมมองด้านบนของโมดูลรีเลย์ วงจรของโมดูลรีเลย์ใช้ทรานซิสเตอร์แบบ NPN ในการควบคุมการทํางานของรีเลย์ซึ่งใช้คอยล์ที่แรงดัน +5V ในการเชื่อมต่อกับอุปกรณ์อื่นได้มีจุดเชื่อมต่อดังนี้  จุดเชื่อมต่อสําหรับไมโครคอนโทรลเลอร์: มี 3 ขา (เป็น Pin Header สองแถว ทั้งแบบตัวผู้และตัว เมีย) ขา + สําหรับต่อไฟเลี้ยง +5V ขา S คือขาสัญญาณควบคุม (เปิด-ปิดการทํางานของรีเลย์) และ ขา – สําหรับต่อกับ GND ของวงจร  จุดเชื่อมต่อแบบ Terminal Block: มี 3ช่อง สําหรับหน้าสัมผัสของรีเลย์คือ N.C. COM และ N.O.

รูปที่ ก.5: โมดูลรีเลย์

ก-4


รูปที่ ก.6 เป็นตัวอย่างสาธิตการใช้งานโมดูลรีเลย์ร่วมกับบอร์ด DuinoLite เพื่อขับกระแสให้มอเตอร์ ไฟฟ้ากระแสตรง 12VDC และใช้แบตเตอรี่แบบ SLA 12V เป็นแหล่งจ่าย เมื่อกดปุ่ม โปรแกรม Arduino จะ สั่งการให้รีเลย์ทํางาน และทําให้มอเตอร์ไฟฟ้าหมุน การต่อวงจรสําหรับมอเตอร์และแบตเตอรี่ มีดังนี้  ต่อขั้วลบของแบตเตอรี่กับขั้วของมอเตอร์ (สายสีดํา)  ต่อขั้วบวกของแบตเตอรี่ที่ขา N.O. ของโมดูลรีเลย์  ต่อขัว้ ของมอเตอร์ (สายสีแดง) ที่ขา COM ของโมดูลรีเลย์

รูปที่ ก.6: บอร์ด DuinoLite และโมดูลรีเลย์ขับมอเตอร์ไฟฟ้ากระแสตรง 12VDC

กล่องอุปกรณ์อิเล็กทรอนิกส์ กล่องอุปกรณ์อิเล็กทรอนิกส์ เป็นกล่องพลาสติกแบ่งเป็นช่องขนาดเล็ก จํานวน 3x6 ช่อง ตามตัวอย่าง ในรูปที่ ก.7 เพื่อใช้แยกเก็บอุปกรณ์หรือชิ้นส่วนอิเล็กทรอนิกส์ขนาดเล็กต่างๆ ทําให้สะดวกในการหยิบใช้งาน และการจัดเก็บอย่างเป็นระเบียบ กล่องอุปกรณ์อิเล็กทรอนิกส์พื้นฐานมีอุปกรณ์ต่างๆ ตามรายการในตาราง (แยกตามหมายเลขช่อง 1-18 โดยเริ่มต้นที่ช่องในคอลัมน์ซ้ายสุด นับช่องจากบนลงล่างในแต่ละคอลัมน์ แล้ว ตามด้วยคอลัมน์ถัดไปจากซ้ายไปขวา)

ก-5


รูปที่ ก.7: กล่องอุปกรณ์อิเล็กทรอนิกส์พื้นฐาน

ช่องที่

อุปกรณ์

จํานวน

1

ตัวต้านทาน 150Ω / 0.25W ตัวต้านทาน 220Ω / 0.25W

10 10

2

ตัวต้านทาน 330Ω / 0.25W ตัวต้านทาน 470Ω / 0.25W

10 10

3

ตัวต้านทาน 1kΩ / 0.25W ตัวต้านทาน 4.7kΩ / 0.25W

10 10

4

ตัวต้านทาน 10kΩ / 0.25W ตัวต้านทาน 20kΩ / 0.25W

10 10

5

ตัวเก็บประจุแบบมีขั้ว ชนิดอิเล็กโทรไลติก 2200uF

2

6

ตัวเก็บประจุแบบไม่มีขั้ว 0.1uF ตัวเก็บประจุแบบมีขั้ว ชนิดอิเล็กโทรไลติก 1uF ตัวเก็บประจุแบบมีขั้ว ชนิดอิเล็กโทรไลติก 10uF ตัวเก็บประจุแบบมีขั้ว ชนิดอิเล็กโทรไลติก 100uF

2 2 2 2

7

ปุ่มกดแบบ 4 ขา (ขนาดใหญ่) ปุ่มกดแบบ 4 ขา (ขนาดเล็ก) สวิตช์เลื่อน (DIP Switch) 4 ช่อง 8 ขา สวิตช์เลื่อน (DIP Switch) 8 ช่อง 16 ขา สวิตช์กด (Limit switch) 3 ขา

2 3 1 1 2

ก-6


8

ไดโอดเปล่งแสงอินฟราเรด (Infrared LED) โฟโต้ทรานซิสเตอร์ (Phototransistor) สวิตช์ควบคุมทางแสง (Opto-Interrupter) เบอร์ TCST 2202 เซนเซอร์แสงอินฟราเรดแบบสะท้อน TCRT5000L

2 2 2 1

9

ตัวต้านทานปรับค่าได้ 10kΩ (ใช้มือหมุนปรับ) ตัวต้านทานปรับค่าได้ 10kΩ (สีขาว) ตัวต้านทานปรับค่าได้ 20kΩ (สีขาว) ตัวต้านทานปรับค่าได้ 20kΩ (สีฟ้า)

1 1 2 2

10

ไดโอดเปล่งแสง ขนาด 5 มม. สีแดง ไดโอดเปล่งแสง ขนาด 5 มม. สีเขียว ไดโอดเปล่งแสง ขนาด 5 มม. สีเหลือง

4 4 2

11

บัซเซอร์เสียง (Buzzer) รีเลย์ (Relay) แบบ 6 ขา แรงดันคอยล์ 3V

2 1

12

อุปกรณ์เชื่อมต่อทางแสง (Optocoupler) เบอร์ CNY17-3 ไอซีเปรียบเทียบแรงดัน (Voltage Comparator) เบอร์ LM393 ออปแอมป์ (Op-amp) เบอร์ LM358N ไอซีขับกระแสโหลด เบอร์ ULN2803A ไอซีขับมอเตอร์ เบอร์ L293D Socket สําหรับไอซีแบบ DIP 8 ขา Socket สําหรับไอซีแบบ DIP 16 ขา

2 1 1 1 1 2 1

13

สวิตซ์เลื่อน (Slide switch) Pin Header (10-pin) Pin Header (3-pin) + Jumper

1 2 2

14

ตัวต้านทานไวแสง (LDR) เทอร์มิสเตอร์ (Thermistor) แบบ NTC 10kΩ @ 25C ไอซีวัดอุณหภูมิ เบอร์ LM35DZ

2 2 1

15

ทรานซิสเตอร์ NPN เบอร์ PN2222A ตัวถัง TO-92 ทรานซิสเตอร์ Power p-channel MOSFET เบอร์ IRF9540N ทรานซิสเตอร์ n-channel MOSFET เบอร์ IRF510

4 1 1

16

ไดโอด (Diode) เบอร์ 1N4001 ไดโอด (Diode) เบอร์ 1N4148

4 2

17

ไอซีควบคุมแรงดันคงที่ +5V (Voltage Regulator) เบอร์ L7805CV ไอซีควบคุมแรงดันปรับได้ (Adj. Voltage Regulator) เบอร์ LM317T

1 1

18

Terminal box (2-position) Terminal box (3-position)

1 1

***********************

ก-7


ก-8


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.