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

Home Explore บท4 ฟังก์ชั่นพื้นฐานของโปรแกรม ภาษา C สำ หรับ Arduino

บท4 ฟังก์ชั่นพื้นฐานของโปรแกรม ภาษา C สำ หรับ Arduino

Published by Yotsapol Jearanai, 2023-06-29 07:01:10

Description: บท4

Search

Read the Text Version

CHUMPHON TECHNICAL COLLEGE 30105-2007 MICROCONTROLLER ep.4 ฟังก์ชันพื้นฐานของโปรแกรม ภาษา C สำหรับ Arduino นายยศพล เจียรนัย แผนกวิชาช่างอิเล็กทรอนิกส์

49 แผนการจัดการเรียนรหู นว ยท่ี 4 สอนคร้งั ที่ 5-6 เรอ่ื ง ฟงกชนั พ้นื ฐานของโปรแกรมภาษา C สำหรบั Arduino

50 ชอ่ื วชิ า. ไมโครคอนโทรลเลอร แผนการจดั การเรยี นรทู ี่ 4 เวลาเรยี นรวม 10 ชัว่ โมง ชอ่ื หนวย ฟงกช ันพ้ืนฐานของโปรแกรมภาษา C สำหรับ Arduino สอนครง้ั ท่ี 5-6 ช่ือเรอื่ ง ฟงกชนั พน้ื ฐานของโปรแกรมภาษา C สำหรบั Arduino จำนวน 10 ชวั่ โมง หัวขอ เรอื่ ง 4.1 กลุมฟง กชันดจิ ทิ ัลอินพุตเอาตพ ตุ 4.2 กลุม ฟง กชันการหนว งเวลา 4.3 วงจรสวิตชและวงจรแสดงผลดวย LED 4.4 กลมุ ฟง กชนั ดิจทิ ลั อินพตุ เอาตพุต สาระสำคัญ ในการศึกษาไมโครคอนโทรลเลอรนั้น อุปกรณอินพุตเอาตพุตพื้นฐานที่ควรจะรูคือสวิตชและแอลอีดี ซึ่งสวิตชเปน อุปกรณอินพุตและแอลอีดีเปนเอาตพุต ฟงกชันที่ใชพื้นฐานประกอบดวย pinMode(pin,mode) เปนฟงกชันที่กำหนดใหพอรต (port) หรือขา (pin) น้ัน ๆ ใหเปนอินพตุ หรือใหเปน เอาตพุต digitalRead(pin) เปน ฟงกชันสำหรับอานคาสญั ญาณดิจิทลั (0,1) ท่ี pin ที่ระบุเขาไปใน MCU digitalWrite(pin,value) เปนฟงกชันสำหรับสงสถานะของสัญญาณดิจิทัลที่ pin ที่ระบุใหมีคาเปน 0 (LOW) หรือ 1 (HIGH) ฟงกชัน sleep(t)ฟงกชันหนวงเวลา โดยกำหนดให CPU หยุดการทำงานเปนเวลาตามที่กำหนดโดยคาตัวเลขใน วงเล็บ ซึ่งจะมีคาเปนมิลลิวินาที delay(t) เปนฟงกชันหนวงเวลาหมายถึงใหโปรแกรมที่กระทำนั้น ๆ ทำงานเดิมเปนเวลาตามที่ กำหนดโดยคาตัวเลขในวงเล็บ delayus(t) เปนฟงกชันหนวงเวลาหมายถึงใหโปรแกรมที่กระทำนั้น ๆ ทำงานเดิมเปนเวลาตามที่ กำหนด โดยใชค าตัวเลขในวงเลบ็ ซง่ึ คา ตัวเลขในวงเลบ็ มีคา เปน ไมโครวนิ าที Millis() เปน ฟง กชันสำหรบั การนบั เวลาขนาด 32 บิต ดังนั้นจึงสามารถนับเวลาได 232 คือคา 0 ถึง 4,294967,295 มิลลิวินาที เมื่อถึงคาสูงสุดจะเริ่มตนใหม การตอสวิตชอินพุต สามารถตอไดลกั ษณะการตอ 2 รปู แบบไดแ ก ตอตัวตา นทานจากแหลงจายอนุกรมกบั สวิตช อกี ดา นหน่งึ ของสวิตชตอลงกราวด จดุ ตอ ระหวา งตัวตา นทานกับสวติ ชเ ปน สัญญาณไปตอกบั ไมโครคอนโทรลเลอร การตอ สวติ ชในลักษณะนี้จะทำใหเ มอ่ื ไมกดสวิตช จะใหลอจิก 1 เมื่อกดสวิตชจะใหลอจิก 0 และตอสวิตชจากแหลงจายอนกุ รมกับตัวตานทาน อีกดานหนึ่งของตัวตานทานตอลง กราวด จุดตอระหวางสวิตชกับตัวตานทานเปนสัญญาณไปตอกับ MCU การตอสวิตชในลักษณะนี้จะทำใหเมื่อไมกดสวิตชจะให ลอจิก 0 เมื่อกดสวิตชจะใหลอจิก 1 สัญญาณรบกวนที่เกิดจากหนาสัมผัสของสวิตชเมื่อถูกกดหรือปลอ ยนั้น จะมีคาบเวลานอย กวา 50มลิ ลิวนิ าที ดงั นน้ั จงึ สามารถตัดสัญญาณรบกวนทิง้ ไป โดยใหไ มโครคอนโทรลเลอรไ มรบั สญั ญาณใด ๆ ในชวงเวลาดงั กลาว สมรรถนะหลกั (สมรรถนะประจำหนว ย) แสดงความรูเ กี่ยวกับฟงกช นั พนื้ ฐานของโปรแกรมภาษา C สำหรับ Arduino สมรรถนะยอ ย (สมรรถนะการเรยี นร)ู สมรรถนะทัว่ ไป (ทฤษฏี) 4.1 แสดงความรูเ กีย่ วกบั กลมุ ฟงกชนั ดิจทิ ัลอนิ พตุ เอาตพตุ 4.2 แสดงความรูเกย่ี วกับกลมุ ฟง กช นั การหนวงเวลา สมรรถนะท่ีพงึ ประสงค (ทฤษฏี) 4.1 อธบิ ายการตอวงจรสวิตชอ ินพตุ สำหรับไมโครคอนโทรลเลอรไ ด 4.2 อธบิ ายการใชงานฟง กชัน delay(t) ได

51 ช่อื วิชา. ไมโครคอนโทรลเลอร แผนการจัดการเรียนรทู ี่ 4 เวลาเรียนรวม 10 ช่วั โมง ชอ่ื หนวย ฟงกช ันพืน้ ฐานของโปรแกรมภาษา C สำหรบั Arduino สอนคร้งั ที่ 5-6 ชื่อเร่อื ง ฟง กช ันพนื้ ฐานของโปรแกรมภาษา C สำหรบั Arduino จำนวน 10 ชั่วโมง สมรรถนะทั่วไป (ปฏิบตั ิ) 4.3 แสดงความรเู กีย่ วกบั วงจรสวติ ชและวงจรแสดงผลดวย LED 4.4 แสดงความรูเ กย่ี วกับกลุมฟงกช นั ดจิ ิทลั อินพุตเอาตพ ตุ สมรรถนะที่พึงประสงค (ปฏิบัติ) 4.3 ตอ วงจรสวิตชแ ละวงจรแอลอีดีทีพ่ อรตของบอรด Arduino ไดอ ยางถูกตอ ง 4.4เขยี นโปรแกรมภาษา C++ สำหรับรบั คา การกดสวิตชไ ด กิจกรรมการเรยี นการสอน ในการจัดการเรียนการสอนรายวชิ าไมโครคอนโทรลเลอร ไดกำหนดกจิ กรรมการเรยี นการสอนใหผเู รียนเกิด การเรยี นรูโดยใชก ารจัดการเรียนรแู บบบทบาทสมมติ ( Role p laying ) ดา นเทคนคิ การจดั การเรียนการสอนแบบ MAIP โดย มขี น้ั ตอนในการดำเนินกจิ กรรมการเรียนการสอน ดงั น้ี กิจกรรมการเรียนการสอน (สอนครง้ั ท่ี 5 ) เวลา 5 ชัว่ โมง/สัปดาห ๑.ผสู อนแจง จดุ ประสงคก ารเรยี นประจำสัปดาห และนำเขา สบู ทเรยี น ๒.ผสู อนถา ยทอดความรใู นหนวยท่ี 3 เร่อื ง วงจรสวิตชแ ละวงจรแสดงผลดวย LED ๓.ผสู อนแสดงใบงานเรอื่ งวงจรสวติ ชแ ละวงจรแสดงผลดวย LED ๔.ผสู อนใหผ เู รียนปฏิบตั งิ านเขยี นแบบตามใบงานเร่ืองวงจรสวิตชแ ละวงจรแสดงผลดว ย LED ๕.ผสู อนประเมนิ ผลการปฏิบตั งิ านของผเู รยี นและใหผเู รยี นสรปุ สาระสำคญั ของเร่ืองท่ีเรยี นประจำสปั ดาห กจิ กรรมการเรียนการสอน (สอนครั้งที่ 6 ) เวลา 5 ชัว่ โมง/สัปดาห ๑.ผสู อนแจงจดุ ประสงคก ารเรียนประจำสปั ดาห และนำเขาสบู ทเรยี น ๒.ผสู อนถายทอดความรูในหนวยท่ี 3 เรอื่ ง ฟงกชนั ดจิ ิทลั อินพุตเอาตพ ุต ๓.ผสู อนแสดงใบงานเร่ืองฟงกชันดจิ ทิ ลั อินพตุ เอาตพุต ๔.ผสู อนใหผเู รยี นปฏบิ ัติงานเขยี นแบบตามใบงานเรือ่ งฟงกชนั ดจิ ิทลั อินพตุ เอาตพุต ๕.ผสู อนประเมนิ ผลการปฏบิ ตั ิงานของผูเรียนและใหผ เู รียนสรปุ สาระสำคญั ของเร่ืองทเ่ี รยี นประจำสปั ดาห

52 ชอื่ วิชา. ไมโครคอนโทรลเลอร แผนการจัดการเรียนรูท ี่ 4 เวลาเรยี นรวม 10 ชวั่ โมง ชอื่ หนว ย ฟงกชันพ้นื ฐานของโปรแกรมภาษา C สำหรบั Arduino สอนคร้งั ที่ 5-6 ช่ือเร่ือง ฟง กช นั พน้ื ฐานของโปรแกรมภาษา C สำหรบั Arduino จำนวน 10 ชว่ั โมง สอื่ การสอน ๑.เอกสารประกอบการสอน ๒.เอกสารประกอบการเรยี น ๓.สอ่ื นำเสนอ PowerPoint งานทมี่ อบหมาย/กิจกรรม ใหนักเรียนทำแบบฝกเสริมทักษะตามใบงานทายหนวยการเรยี นท่ี 4 การวดั และประเมนิ ผล วธิ ีการ เครอ่ื งมือ เกณฑ วัดผล/ประเมินผล - ทำแบบฝกเสรมิ ทกั ษะทา ย - แบบฝกเสริมทักษะทา ย - ผานเกณฑร อ ยละ ๖๐ หนวย หนวย ๑.สมรรถนะท่พี งึ ประสงค

53 แผนการจดั การเรียนรทู ่ี 4 เวลาเรียนรวม 10 ชว่ั โมง ชอื่ วิชา. ไมโครคอนโทรลเลอร สอนคร้ังที่ 5-6 ชอื่ หนวย ฟงกชนั พน้ื ฐานของโปรแกรมภาษา C สำหรบั Arduino จำนวน 10 ชั่วโมง หนว ยที่ 4 ฟง กช ันพื้นฐานของโปรแกรมภาษา C สำหรับ Arduino 1. กลมุ ฟง กชนั ดิจิทลั อนิ พุตเอาตพุต 1.1 pinMode(pin,mode) 16 MHz RESET DIGITAL (WPM ∼)AG∼∼RN∼1111ED90312F R1 220 Ω +5V LED1 R3IG5O.EVN3RSVDEEFTPOWER ATmega328p L 10 kΩ GVNinD R8 2 AAAAAA214530 TRXX ARDUINO ∼∼567 1.2 digitalRead(pin) ANALOG IN ON ∼43 SW1 1.3 digitalWrite(pin,value) UNO ICSP 2 2. กลุมฟง กช นั การหนวงเวลา TX 1 RX 0 2.1 sleep(t) 2.2 delay(t) 2.3 delayus(t) 2.4 millis() 16 MHz RESET DIGITAL (WPM ∼) R 220R3IO.E3RSVEEFT 5GGVVNNinDD LEDAAAAAA214350 POWER ATmega328p L AG∼∼RN∼1111ED10329F 1 Ω 8 TRXX ARDUINO ∼∼567 1 ∼43 ANALOG IN ON 2 TX 1 UNO ICSP RX 0

54 แผนการจัดการเรียนรูที่ 4 ช่อื วชิ า. ไมโครคอนโทรลเลอร เวลาเรยี นรวม 10 ชวั่ โมง ชื่อหนวย ฟงกช นั พ้นื ฐานของโปรแกรมภาษา C สำหรบั Arduino สอนครัง้ ท่ี 5-6 หนว ยท่ี 4 ฟง กชนั พื้นฐานของโปรแกรมภาษา C สำหรบั Arduino จำนวน 10 ชว่ั โมง ใบงานท่ี 4 ตอนที่ 1 ใหกาเคร่ืองหมายถกู √ ในขอทคี่ ิดวา ถกู และกาเคร่ืองหมายผิด x ในขอที่คดิ วา ผดิ …………. 1. pinMode(pin,mode) เปน ฟงกช ันสำหรบั กำหนดใหข าหรือพอรตของไมโครคอนโทรลเลอรน้ันทำ หนาทเ่ี ปน ดิจิทัลอินพตุ หรอื ดิจทิ ลั เอาตพตุ …………. 2. pinMode(pin,mode) กำหนดไวใ นสวน void setup() …………. 3. digitalRead(pin) เปน ฟง กชันสำหรับอา นสถานะของอินพุตของ pin ทร่ี ะบุวามคี าเปน ลอจกิ 0 หรอื ลอจกิ 1 …………. 4. sleep(t) เปนฟงกชนั หนวงเวลาโดยกำหนดให CPU หยุดการทำงานเปนเวลาตามทก่ี ำหนดโดยคา ตัวเลขในวงเลบ็ ซึง่ จะมคี าเปนไมโครวินาที (us) …………. 5. delay(t) เปน ฟงกช นั หนวงเวลาหมายถงึ ใหโปรแกรมท่กี ระทำน้นั ๆ ทำงานเดมิ เปนเวลาตามท่ี กำหนดโดยคาตวั เลขในวงเลบ็ ซ่งึ จะมคี าเปน มลิ ลิวนิ าที (ms) …………. 6. ฟงกชนั millis ใช timer ขนาด 16 บติ …………. 7. ฟงกช ัน pinMode(sw, INPUT_PULLUP); เมื่อไมกดสวิตช แรงดนั ไฟฟาทขี่ าสวิตชจะมสี ถานะ เปนลอจกิ 0 …………. 8. ในกรณีที่ตองการใช LED ตัวโต ๆ ท่ตี อ งการกระแสมากกวา 20 mA ซง่ึ เกนิ กวา กระแสของพอรต เอาตพุตของไมโครคอนโทรลเลอรจ า ยออกมาได จึงตอ งใชท รานซสิ เตอรขบั กระแสเพ่มิ เตมิ …………. 9. ฟง กชัน unsigned long last1, last2, last3; แสดงวาตัวแปร last1, last2, last3; จะตอ งใช หนว ยความจำขนาด 32 บติ …………. 10. คำสงั่ state = !state ตองการให state ใหม ใหมีคา ตรงกนั ขา มกับ state เดมิ ตอนท่ี 2 จงอธิบายสั้น ๆ ใหไดใ จความ 1. จากฟงกชัน pinMode(pin,mode) ซึง่ pin หมายถงึ ..................................................................................... 2. คำสงั่ int swPin = D5; มจี ุดประสงคใด ..................................................................................................... 3. จากฟงกช ัน digitalRead(D10) ผลลัพธท ไ่ี ดมีคา เปน .........................................หรือ..................................... 4. จากฟง กชัน digitalWrite(pin,value) ซง่ึ value หมายถึง ..................................หรือ................................... 5. .............................. เปน คำส่ังสำหรบั หนว งเวลา 100 มลิ ลวิ นิ าที 6. .............................. เปน คำสัง่ สำหรับหนว งเวลา 250 ไมโครวนิ าที 7. ฟง กชัน millis มไี วเพอื่ จดุ ประสงค ................................................................................................................. 8. สญั ญาณรบกวนทเี่ กดิ จากหนา สมั ผสั ของสวิตชเ มือ่ ถูกกดหรอื ปลอ ยนั้น จะมีคาบเวลาประมาณ............. ms 9. ภาษาองั กฤษคำวา debounce มีความหมายวา ............................................................................................ 10. ปริมาณกระแสไฟฟา ทไี่ หลผาน LED ทข่ี นาด 5 มิลลเิ มตร ทเ่ี หมาะสมคือ .................. มลิ ลิแอมแปร

55 แผนการจดั การเรยี นรูท่ี 4 ชอื่ วชิ า. ไมโครคอนโทรลเลอร เวลาเรียนรวม 10 ช่วั โมง ชือ่ หนวย ฟงกช นั พืน้ ฐานของโปรแกรมภาษา C สำหรับ Arduino สอนครัง้ ที่ 5-6 หนว ยท่ี 4 ฟง กชนั พนื้ ฐานของโปรแกรมภาษา C สำหรบั Arduino จำนวน 10 ชั่วโมง การประเมนิ 4321 ที่ รายการประเมิน 1 การมสี ว นรวมในการทาํ งานของกลมุ 2 ความถกู ตอ งของเนื้อหา 3 สงิ่ ทีใ่ ชป ระกอบการนาํ เสนอ 4 รปู แบบการนาํ เสนอหนา ชน้ั เรียน ชัดเจน เขาใจ งาย 5 ตรงตอเวลา กระตือรือรน รอบคอบ ขอเสนอแนะ …………………………………………………………………………………………………………………………. …………..……………………………………………………………………………………………………………... ………………………………..………………………………………………………………………………………...


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