[29/07/2567] ใบงานรายวิชาไมโครคอนโทรลเลอร์และโปรเซส สัปดาห์ที่ 11

ใบงานประจำสัปดาห์ที่ 11 ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ (สัปดาห์10ที่ผ่านมาสอบ)


จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้เชื่อมต่อกับ 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);
}

เมื่อนักเรียนนักศึกษาใช้งาน code ด้านบนแล้ว Serial monitor ไม่ปรากฏข้อความแต่เมื่อลองกดปุ่ม แล้วปรากฏคำว่า button is Active LOW ที่หน้า Serial monitor แสดงว่าโมดูลที่นักเรียนใช้งานนั้นถูกต้อง และเป็นชนิด Actiove LOW


ให้นักเรียนนักศึกษาทำไปทีละข้อย่อย จนครบโจทย์ที่สมบูรณ์

  • 1. จงเขียนไมโครคอนโทรลเลอร์ โดยกำหนดให้ button มีจำนวนทั้งหมด 2 ปุ่ม และจงเขียนให้เมื่อกด button 1 แสดงคำว่า "Button 1 presed" และ กด button 2 แสดงคำว่า "Button 2 presed" ที่ Serial monitor
  • 2. (ต่อ) กำหนดให้เมื่อมีการกด button 1 เป็นการเพิ่มค่า และ button 2 เป็นการลดค่า โดยแสดง "value = ?" ( ? คือค่าที่เพิ่มขึ้นหรือลดลงเมื่อมีการกดปุ่ม ตามรูปตัวอย่าง) ที่ Serial monitor
  • 3. (ต่อ) กำหนดให้ ค่าที่เพิ่มขึ้นได้สูงสุดคือ 10 และค่าที่ต่ำสุดคือ 0
  • 4. (ต่อ) เมื่ออยู่ในตำแหน่งสูงสุด หรือต่ำสุดจะไม่มีการทำซ้ำ(ไม่มีการแสดงข้อความซ้ำ)


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ใบงาน รายวิชาโปรแกรมโครงสร้าง(ซัมเมอร์)

[16/07/67] ใบงานรายวิชาไมโครโปรเซสเซอร์และ ไมโครคอนโทรลเลอร์ สัปดาห์ที่ 9

[11/08/2567] ใบงานรายวิชาไมโครคอนโทรลเลอร์และโปรเซส สัปดาห์ที่ 13