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 ตรงตอเวลา กระตือรือรน รอบคอบ ขอเสนอแนะ …………………………………………………………………………………………………………………………. …………..……………………………………………………………………………………………………………... ………………………………..………………………………………………………………………………………...
Search
Read the Text Version
- 1 - 9
Pages: