[1/2569] ใบงานรายวิชา เซนเซอร์และแอคทูเอเตอร์ (stepper motor)
ใบงานประจำสัปดาห์ รายวิชาเซนเซอร์และแอคทูเอเตอร์
รายวิชาเซนเซอร์และแอคชูเอเตอร์
จงเขียนไมโครคอนโทรลเลอร์เชื่อมต่อกับเซนเซอร์และแอคูเอเตอร์ โดยกำหนดให้เชื่อมต่อกับ led, switch, dht22 โดยใช้งานคำสั่งที่ส่ง output สัญญาณ digital เพื่อควบคุมให้ได้ตามโจทย์ที่กำหนด. โดยใช้ความรู้ในการเขียนโปรแกรมพื้นฐานที่เรียนในสัปดาห์ที่ผ่านมา นำมาประยุกต์ใช้งานด้วยคำสั่งที่ใช้เขีนยโปรแกรม if , if else ฝึกกระบวนการคิด การลำดับขั้นตอนตามข้อย่อยที่กำหนด
กำหนดให้นักเรียนนักศึกษา ทำการต่อ arduino uno r3 กับ LCD1602 ,dht22 และปุ่มกดสองปุ่ม ดังรูป
ตัวอย่างคำสั่ง
รูปแบบการเขียนคำสั่ง if
if(condition){
//statement การทำงานใดๆ
}
รูปแบบการเขียนคำสั่ง if else
if(condition){
//statement การทำงานใดๆ
}else{
//statement การทำงานใดๆ
}
รูปแบบการเขียนคำสั่ง if else..if
if(condition){
//statement การทำงานใดๆ
}else if(condition){
//statement การทำงานใดๆ
}
รูปแบบการเขียนคำสั่ง switch case
switch (variable)
{
case VALUE_1:
//statement การทำงานใดๆ
break;
case VALUE_2:
//statement การทำงานใดๆ
break;
case VALUE_3:
//statement การทำงานใดๆ
break;
default:
//statement การทำงานใดๆ
}
การใช้งานจอ lcd16x2 แบบต่อตรง
การใช้งานจอ lcd16x2 แบบโมดูลไดร์ I2C
ในการต่อใช้งานจอแสดงผล lcd16x2 เข้ากับไมโครคอนโทรลเลอร์ด้วยโมดูลไดร์ I2C มีการเชื่อมต่อดังต่อไปนี้- Vcc -- > Vcc (5v)
- Gnd --> Gnd
- SCL --> A5
- SDA -- >A4
ตัวอย่างคำสั่งการใช้งาน servo motor
LCD_I2C lcd(0x27, 16, 2); // เช็ค Address ของหน้าจอให้ถูกต้อง (มักจะเป็น 0x27 หรือ 0x3F)
Servo myServo;
void setup() {
lcd.begin();
lcd.backlight();
myServo.attach(9); // ต่อสายสัญญาณ Servo ที่ขา 9
Serial.begin(9600);
}
ให้นักเรียนนักศึกษาทำไปทีละข้อย่อยแล้วเรียกตรวจ พร้อมอธิบาย
- 1. กำหนดให้นักเรียนนักศึกษาเชื่อมต่อ ไมโครคอนโทรลเลอร์กับจอ stepper motor และทดสอบการใช้งานเบื้องต้นโดยการสั่งให้ stepper หมุนตามเข็มนาฬิกา แบบไม่กำหนดรอบ
- 2. (ต่อจากข้อย่อยที่ 1) กำหนดให้นักเรียนนักศึกษาเชื่อมต่อ ไมโครคอนโทรลเลอร์กับ stepper motor นำค่าที่อ่านได้มาใช้ร่วมกับคำสั่ง if โดยกำหนดเงื่อนไขว่า: "ถ้ากดปุ่มค้างไว้ ให้ Stepper Motor หมุนตามเข็มนาฬิกา หากปล่อยมือให้มอเตอร์หยุดทำงาน"
- 3. (ต่อจากข้อย่อยที่ 2)กำหนดให้นักเรียนนักศึกษาเขียนโปรแกรมเพิ่มเติม เพิ่มสวิตช์ตัวที่ 2 เข้าไปในระบบ และใช้คำสั่ง if-else เพื่อสร้างเงื่อนไข: สวิตช์ 1 กด = หมุนขวา, สวิตช์ 2 กด = หมุนซ้าย และเพิ่มระบบป้องกันความผิดพลาด "หากเผลอกดพร้อมกันทั้ง 2 ปุ่ม ให้มอเตอร์หยุดทำงาน"
- 4.
- 5. ประยุกต์การเขียนโปรแกรมแบบจดจำสถานะ (State Toggle) โดยใช้สวิตช์เพียงปุ่มเดียว: "กดปุ่มครั้งที่ 1 มอเตอร์เริ่มหมุนตลอดเวลา, กดปุ่มเดิมอีกครั้ง (ครั้งที่ 2) มอเตอร์หยุดหมุน"



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