ใบงานพื้นฐานการอินเตอร์เฟส สัปดาห์ที่ 12
ใบงานประจำสัปดาห์ รายวิชาพื้นฐานการอิเตอร์เฟส
จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้เชื่อมต่อกับ led โดยใช้งานคำสั่งที่ส่ง input, output สัญญาณ digital เพื่อควบคุม led ให้ได้ตามโจทย์ที่กำหนด. โดยในสัปดาห์นี้จะเป็นการทำความเข้าใจเรื่องการรับ ส่งข้อมูลผ่าน Serial monitor ซึ่งสอดคล้องกับเนื้อหารายวิชาพื้นฐานการอินเตอร์เฟสโดยจะเป็นลักษณะการสื่อสารกันระหว่างคอมพิวเตอร์และอุปกรณ์ไมโครคอนโทรลเลอร์ผ่านการส่งข้อมูลแบบ Serial Transmission (สาย USB) และจงใช้ความรู้ในการเขียนโปรแกรมพื้นฐานที่เรียนในสัปดาห์ที่ผ่านมา นำมาประยุกต์ใช้งาน if , if else , while ,for , switch case ให้นักเรียนนักศึกษาทำไปทีละข้อย่อย จนครบโจทย์ที่สมบูรณ์
1. กำหนดให้นักเรียนนักศึกษาเชื่อมต่อ ไมโครคอนโทรลเลอร์ กับ led จำนวนทั้งหมด 4 ดวง
โดยเนื้อหาในสัปดาห์นี้จะเป็นการ เรียกใช้งาน Serial available คือการรับค่าส่งค่าข้อมูลระหว่างคอมพิวเตอร์และไมโครคอนโทรลเลอร์ ตัวอย่าง code ดังต่อไปนี้
void loop(){
while(Serial.available()) {
String a1 = Serial.readString();
Serial.print("your typing : ");
a1.trim();
Serial.println(a1);
}
}
หรือ
void loop() {
if (Serial.available() > 0) {
String msg = Serial.readString();
Serial.print("Echo: ");
Serial.println(msg);
}
}
ชุดคำส่ง Serial available จะทำการรอรับค่าจาก keyboard ที่ผู้ใช้งานพิมพ์เข้าไป จากนั้นใช้คำสั่ง Serial.readString() เพื่อทำการอ่านค่าที่รับเข้ามา และให้นักเรียนนักศึกษานำชุดข้อความเหล่านั้นไปประยุกต์การทำงานต่อไป
ให้นักเรียนนักศึกษาทำไปทีละข้อย่อย จนครบโจทย์ที่สมบูรณ์
- 1 กำหนดให้นักเรียนนักศึกษาเชื่อมต่อ ไมโครคอนโทรลเลอร์กับ led จำนวน 4 ดวงและทำการรับค่าจาก keyboard ให้แสดงใน Serial monitor พิมพ์คำใดๆ ให้แสดงคำนั้นๆปรากฏใน Serial monitor และการหน่วงเวลากำหนดที่ 200 ms
- 2 (ต่อ)กำหนดให้รับค่าจาก keyboard เมื่อพิมพ์ "led1on" แล้ว led ดวงที่ 1 ติดค้าง และเมื่อพิมพ์ "led1off" แล้ว led ดวงที่ 1 ดับการแสดงผลจะต้องรับค่าจาก keyboard ก่อนเท่านั้น
- 3 (ต่อ) ทำในหัวข้อย่อยที่ 2 กับ led ดวงอื่นๆโดยอ้างอิงตำแหน่งเลขตรงกลางให้ครบทั้ง 4 ดวง ทั้งติดและดับ led1on, led2on, led3on, led4on ,led1off, led2off, led3off, led4off (ชุดคำสั่ง led on ,off คือกลุ่มเดียวกัน)
- 4 (ต่อ) กำหนดให้รับค่าจาก keyboard เมื่อพิมพ์ "step1" แล้วการแสดงผล led 4 ดวงแสดงผลแบบดาวตก (การแสดงผลต้องแสดงแบบต่อเนื่อง จะไม่หยุดจนกระทั่งจะมีการพิมพ์คำสั่งอื่นๆ )
- 5 (ต่อ) กำหนดให้รับค่าจาก keyboard เมื่อพิมพ์ "step2" แล้วการแสดงผล led 4 ดวงแสดงผลแบบทั้งหมดติดและดับสลับกัน (การแสดงผลต้องแสดงแบบต่อเนื่อง จะไม่หยุดจนกระทั่งจะมีการพิมพ์คำสั่งอื่นๆ )
- 6 (ต่อ) กำหนดให้รับค่าจาก keyboard เมื่อพิมพ์ "clear" แล้วการแสดงผลอื่นๆหยุดทั้งหมด led ทั้ง 4 ดวงดับทั้งหมด
- 7 (ต่อ)จงสืบค้นข้อมูล (serial available) เพิ่มเติม โดยกำหนดให้การรับค่าจาก keyboard "setdelay300" กำหนดให้เปลี่ยนการหน่วงเวลาของโปรแกรมทั้งหมดเป็น 300 ms (ตามเลข 3 หลักหลัง "setdelay300") หากมีการพิมพ์คำสั่งอื่นนอกเหนือจากนี้ไปจะไม่แสดงผลใดๆ
ความคิดเห็น
แสดงความคิดเห็น