ใบงานไมโครคอนโทรลเลอร์ สัปดาห์ที่ 11-12
ใบงานประจำสัปดาห์ รายวิชาไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์
*แก้ไขเพิ่มเติมใช้สอนนักเรียนสำหรับสัปดาห์ที่ 12
จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้เชื่อมต่อกับ led โดยใช้งานคำสั่งที่ส่ง output สัญญาณ digital เพื่อควบคุม led ให้ได้ตามโจทย์ที่กำหนด. โดยใช้ความรู้ในการเขียนโปรแกรมพื้นฐานที่เรียนในสัปดาห์ที่ผ่านมา นำมาประยุกต์ใช้งาน if , if else , while ,for , switch case ให้นักเรียนนักศึกษาทำไปทีละข้อย่อย จนครบโจทย์ที่สมบูรณ์
1. กำหนดให้นักเรียนนักศึกษาเชื่อมต่อ ไมโครคอนโทรลเลอร์ กับ led จำนวนทั้งหมด 4 ดวงและมีการเชื่อมต่อกับ ปุ่มกด button จำนวน 2 ปุ่ม ข้อควรระวัง การต่อใช้งานกับโมดูล button นั้น มีทั้งแบบ common HIGH และแบบ common LOW นักศึกษาต้องทำการตรวจสอบว่าโมดูล ปุ่มกดที่ได้ไปนั้นเป็นประเภทไหนจะได้ทำการเขียนโปรแกรมควบคุมได้อย่างถูกต้อง
เมื่อนักเรียนนักศึกษาทำการ ต่อไมโครคอนโทรลเลอร์เข้ากับ led และปุ่มกดแล้ว ให้ทำการเช็คโมดูลปุ่มกดนั้นเป็น Active HIGH หรือ Active LOW โดยทดลองเขียน code ดังต่อไปนี้ และการอ้างอิงตำแหน่งค่า input เพื่อรับสัญญาณดิจิตอลจะอยู่ที่ขา 11 หากนักเรียนนักศึกษาต่อขา input ที่รับสัญญาณแตกต่างไปจากนี้ให้ทำการเปลี่ยนขานั้นๆ ให้ตรงกับการต่อใช้งานจริงด้วย มิฉะนั้นการรับค่า digitalRead จะเกิดความผิดพลาด
int button = 11;
void setup(){
Serial.begin(9600);
pinMode(button,INPUT);
}
void loop() {
if(digitalRead(button)==HIGH){
Serial.println("button is Active HIGH");
}
delay(500);
}
เมื่อนักเรียนนักศึกษาใช้งาน code ด้านบนแล้ว Serial monitor ไม่ปรากฏข้อความแต่เมื่อลองกดปุ่ม แล้วปรากฏคำว่า button is Active HIGH ที่หน้า Serial monitor แสดงว่าโมดูลที่นักเรียนต่ออยู่นั้นถูกต้อง และเป็นชนิด Actiove HIGH
int button = 11;
void setup(){
Serial.begin(9600);
pinMode(button,INPUT);
}
void loop() {
if(digitalRead(button)==LOW){
Serial.println("button is Active LOW");
}
delay(500);
}
เมื่อนักเรียนนักศึกษาใช้งาน code ด้านบนแล้ว Serial monitor ไม่ปรากฏข้อความแต่เมื่อลองกดปุ่ม แล้วปรากฏคำว่า button is Active LOW ที่หน้า Serial monitor แสดงว่าโมดูลที่นักเรียนใช้งานนั้นถูกต้อง และเป็นชนิด Actiove LOW
ให้นักเรียนนักศึกษาทำไปทีละข้อย่อย จนครบโจทย์ที่สมบูรณ์
- 1 กำหนดให้นักเรียนนักศึกษาเชื่อมต่อปุ่มกด button จำนวน 2 ปุ่มกับไมโครคอนโทรลเลอร์แล้ว จงเขียนโปรแกรมกำหนดให้กดปุ่ม 1 แสดง " pressed 1 " กดปุ่ม 2 แสดง " pressed 2 " และใช้การหน่วงเวลา 200 ms
- 2 (ต่อ) กำหนดให้เชื่อมต่อกับ led จำนวน 4 ดวงโดยเขียนโปรแกรมให้กดปุ่ม 1 เปลี่ยนตำแหน่ง led และกดปุ่ม 2 กลับตำแหน่งเดิม, หรือก่อนหน้า การแสดงผลต้องให้ led ตำแหน่งปัจจุบันคิดค้างไว้ (ปุ่ม 1 กดไปทางซ้าย ปุ่ม 2 กดไปทางขวา (การแสดงผล led แบบดาวตก)) โดยค่าเริ่มต้นคือให้ led ฝั่งใดฝั่งหนึ่งติดค้างไว้ก่อนเสมอ
- 3 (ต่อ) กำหนดให้ แสดงคำว่า "led index ? " ณ ตำแหน่ง led ดวงนั้นๆ (?) คือค่าตัวเลขของตำแหน่งนั้น มีทั้งหมด 4 ตำแหน่ง (หาก Arduino IDE รองรับการเขียนภาษาไทย ให้นักเรียนนักศึกษาใช้คำว่า " led ดวงที่ ? " แทน
- ข้อที่ 4 เริ่มเวลา 10.00 น
- ข้อที่ 5 เริ่มเวลา 10.00 น.
ความคิดเห็น
แสดงความคิดเห็น