[04/08/2567] ใบงานรายวิชาไมโครคอโทรเลอร์และโปรเซส สัปดาห์ที่ 12
ใบงานประจำสัปดาห์ที่ 12 ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ (สัปดาห์การแข่งกีฬา)
จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้เชื่อมต่อกับ led โดยใช้งานคำสั่งที่รับ input รับสัญญาณ digital เพื่อควบคุมการแสดงผลผ่าน Serial monitor ให้ได้ตามโจทย์ที่กำหนด. โดยใช้ความรู้ในการเขียนโปรแกรมพื้นฐานที่เรียนในสัปดาห์ที่ผ่านมา นำมาประยุกต์ใช้งาน if, if else, while, for, switch case ร่วมกับศึกษาทำความเข้าใจเรื่องการรับค่าจาก Digital Input จากการปุ่มกด button
1. กำหนดให้นักเรียนนักศึกษาเชื่อมต่อไมโครคอนโทรลเลอร์ ปุ่มกด button จำนวน 2 ปุ่ม ข้อควรระวังการต่อใช้งานกับโมดูล button นั้นมีทั้งแบบ Active HIGH และแบบ Active 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);
}
ตรวจสอบให้แน่ใจว่าการต่อใช้งานสายสัญญาณไม่ผิดพลาด เมื่อนักเรียนนักศึกษาใช้งานชุดคำสั่งด้านบนแล้ว Serial monitor ไม่ปรากฏข้อความใดๆเลยใน Serial monitor แต่เมื่อลองกดปุ่มแล้วปรากฏคำว่า button is Active LOW ที่หน้า Serial monitor แสดงว่าโมดูลที่นักเรียนใช้งานนั้นถูกต้องและเป็นชนิด Actiove LOW จากนั้นฟังคำอธิบายจากครูผู้สอนแล้วให้ทำใบงานในแต่ละข้อย่อย เสร็จ 1 ข้อเรียกครูผู้สอนตรวจ
ให้นักเรียนนักศึกษาทำไปทีละข้อย่อย จนครบโจทย์ที่สมบูรณ์
- 1. จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้ button มีจำนวนทั้งหมด 2 ปุ่ม และจงเขียนให้เมื่อกด button 1 แสดงคำว่า "Button 1 presed" ที่ Serial monitor
- 2. กำหนดให้มีการกด button 1 แล้วแสดงผล led 13 ติดค้าง (ให้นักเรียนนักศึกษามองหา led ที่ตำแหน่งขา 13 (1 ดวง)เขียนโปรแกรมทดสอบการทำงานดูก่อนว่าสามารถใช้งาน led ได้ปรกติ)
- 3. (ต่อ) กำหนดให้กด button 1 อีกครั้ง led ดับ (การแสดงผล led จะติดและดับสลับกันเมื่อกดไปเรื่อยๆแสดงผลค้างสถานะปัจจุบันไว้หากสถานะนั้นติดคือติดค้าง หากสถานะนั้นดับคือดับค้าง โดยการใช้งานปุ่มกดเดียวกัน)
- 4. จงเขียนไมโครคอนโทรลเลอร์เชื่อมต่อ led ตำแหน่งขา 13 และ button 1,button2 ดังต่อไปนี้ กำหนดให้แสดงผลไฟกระพริบ(ติดและดับสลับกันตลอดเวลา)ที่ตำแหน่งขา 13 ขา ,กำหนดการกด button 1 จะทำให้ led 13 กระพริบเร็วขึ้นและในทางกลับกันการกด button 2 จะทำให้กระพริบช้าลง (ใครได้จำนวนบรรทัดน้อยที่สุด +0.5)

ความคิดเห็น
แสดงความคิดเห็น