ใบงานไมโครคอนโทรลเลอร์ ประจำวันที่ 01/02/2566

ใบงานประจำวันที่ 01/02/2566

ห้อง 64 ชค. 4

จงเขียนไมโครคอนโทรลเลอร์

1. การเชื่อมต่อกับสวิทช์ปุ่มกด , ultrasonic , led และแสดงผลลัพธ์ตามโจทย์ที่กำหนด

คำสั่ง กำหนดให้การใช้งาน Ultrasonic รวมกับไมโครคอนโทรลเลอร์ Uno r3 โดยการต่อตำแหน่งขา input output ให้เป็นไปตามรูปแบบด้านบน led , สวิตช์ 1 ปุ่ม และมีรูปแบบการเชื่อมต่อสายผ่านโมดูล ultrasonic กำหนดดังต่อไปนี้
  1. Trig => 13
  2. echo => 12
  3. 5V => VCC
  4. Gnd => Gnd

code ตัวอย่างการใช้งาน module Ultrasonic ที่เชื่อมต่อกับไมโครคอนโทรลเลอร์ให้นักศึกษานำ code ตัวอย่างนี้ไปประยุกต์การใช้งาน. (หากการต่อตำแหน่งขา trig และ echo ไม่ตรงตามตัวอย่าง ให้นักศึกษาเปลี่ยน code ให้ตรงตามตำแหน่งขาด้วย)

const int pingPin = 13;
int inPin = 12;
long duration, cm;

void setup() {
Serial.begin(9600);
pinMode(pingPin, OUTPUT);
pinMode(inPin, INPUT);
}
void loop()
{
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
pinMode(inPin, INPUT);
duration = pulseIn(inPin, HIGH);
cm = duration/29/2;
Serial.print(cm);
}

จงเขียนผลลัพธ์ตามข้อต่อไปนี้

  1. จงเขียนให้ led (5 ดวง) แสดงผลโดยการเพิ่มระยะตามความห่างที่วัดได้ ดังต่อไปนี้ เมื่อวัดค่าจาก Ultrason เริ่มจาก 10cm ให้ led1 และเมื่อมีค่าเพิ่มเป็น 20cm ให้ led2 ติด และติดเพิ่มขึ้นครั้งละ 10cm ให้ led ตัวถัดไปติด(led ติดค้างไว้)
  2. จากข้อที่ 1 เมื่อ ค่าที่วัดได้ เกิน led ตัวที่ 5 ( เกินระยะสูงสุดแล้ว ) ให้ led ทั้งหมดติดค้างไว้ 1 วินาที และดับค้างไว้ 1 วินาที (ทั้งหมดติดและดับสลับกันไป)
  3. จากข้อที่ 2 กำหนดให้เมื่อมีการกดปุ่ม Serial.print แจ้งสถานและปลี่ยนแปลงค่าการคำนวนจากทุกๆ 10cm แล้วให้ led ติดกลายเป็น 20 30 40 ตามลำดับ (เพิ่มขึ้นทุกๆ 10 cm เปรียบเหมือนกับการเพิ่มระยะห่างขึ้นเลื่อยๆทุกครั้งที่กด ทำให้ระยะสูงสุดมากขึ้น)



ความคิดเห็น

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

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

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

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