ใบงานไมโครคอนโทรลเลอร์ ประจำวันที่ 01/02/2566
ใบงานประจำวันที่ 01/02/2566
จงเขียนไมโครคอนโทรลเลอร์
1. การเชื่อมต่อกับสวิทช์ปุ่มกด , ultrasonic , led และแสดงผลลัพธ์ตามโจทย์ที่กำหนด
คำสั่ง กำหนดให้การใช้งาน Ultrasonic รวมกับไมโครคอนโทรลเลอร์ Uno r3 โดยการต่อตำแหน่งขา input output ให้เป็นไปตามรูปแบบด้านบน led , สวิตช์ 1 ปุ่ม และมีรูปแบบการเชื่อมต่อสายผ่านโมดูล ultrasonic กำหนดดังต่อไปนี้- Trig => 13
- echo => 12
- 5V => VCC
- 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);
}
จงเขียนผลลัพธ์ตามข้อต่อไปนี้
- จงเขียนให้ led (5 ดวง) แสดงผลโดยการเพิ่มระยะตามความห่างที่วัดได้ ดังต่อไปนี้ เมื่อวัดค่าจาก Ultrason เริ่มจาก 10cm ให้ led1 และเมื่อมีค่าเพิ่มเป็น 20cm ให้ led2 ติด และติดเพิ่มขึ้นครั้งละ 10cm ให้ led ตัวถัดไปติด(led ติดค้างไว้)
- จากข้อที่ 1 เมื่อ ค่าที่วัดได้ เกิน led ตัวที่ 5 ( เกินระยะสูงสุดแล้ว ) ให้ led ทั้งหมดติดค้างไว้ 1 วินาที และดับค้างไว้ 1 วินาที (ทั้งหมดติดและดับสลับกันไป)
- จากข้อที่ 2 กำหนดให้เมื่อมีการกดปุ่ม Serial.print แจ้งสถานและปลี่ยนแปลงค่าการคำนวนจากทุกๆ 10cm แล้วให้ led ติดกลายเป็น 20 30 40 ตามลำดับ (เพิ่มขึ้นทุกๆ 10 cm เปรียบเหมือนกับการเพิ่มระยะห่างขึ้นเลื่อยๆทุกครั้งที่กด ทำให้ระยะสูงสุดมากขึ้น)
ความคิดเห็น
แสดงความคิดเห็น