ใบงานที่ 7 Measure Distance with Arduino and Ultrasonic Sensor
นางสาวกิตติญากร ขาวใบไม้ 6031280024
นางสาวกิตติมา อุดมปัญญาศิริกุล 6031280025
ปวส.1/2 คอมพิวเตอร์ซอฟต์แวร์
Servo คืออุปกรณ์มอเตอร์ ที่สามารถควบคุมการหมุนที่แม่นยำ เซอร์โวชุดนี้มีขนาดเล็กแรงบิด 1.2-1.4 KG/cm สีน้ำตาลเป็นสายกราวด์ สีแดงเป็นไฟเข้า 4.8-7.2V สีส้มเป็นสัญญาณอินพุต หมุนได้ 180 องศา ส่วนใหญ่ต่อเข้ากับ Pin ของ Arduino UNO R3 ที่สามารถใช้งาน PWM Signal ได้ เช่น D3 , D5 , D6 , D9 , D10 , D11
Servo เป็นคำศัพท์ที่ใช้กันทั่วไปในระบบควบคุมอัตโนมัติ มาจากภาษาละตินคำว่า Sevus หมายถึง “ทาส” (Slave) ในเชิงความหมายของ Servo Motor ก็คือ Motor ที่เราสามารถสั่งงานหรือตั้งค่า แล้วตัว Motor จะหมุนไปยังตำแหน่งองศาที่เราสั่งได้เองอย่างถูกต้อง โดยใช้การควบคุมแบบป้อนกลับ (Feedback Control)
HC-SR04
เป็นโมดูลวัดระยะทางที่ใช้หลักการสะท้อนของคลื่นอัลตร้าโซนิก ราคาประหยัด โดยตัว HC-SR04 มีแหล่งกำเนิดคลื่นอัลตร้าโซนิกส่งไปสะท้อนกับวัตถุที่อยู่ข้างหน้ากลับมายังตัวรับสัญญาณ โดยระยะทางที่วัดได้จะสัมพันธ์กับระยะเวลาที่คลื่นอัลตร้าโซนิกเคลื่อนที่ไปกระทบวัตถุและสะท้อนกลับมายังตัวรับ เมื่อรู้ระยะเวลาที่คลื่นอัลตร้าโซนิกสะท้อนกลับมา จึงนำมาคำนวณหาเป็นระยะทางระหว่างโมดูล HC-SR04 กับวัตถุได้ โดยโมดูล HC-SR04 วัดระยะทางในช่วง 2 ถึง 500 ซม. (5 เมตร) มีความละเอียดอยู่ที่ 0.3 ซม. ใช้ไฟเลี้ยง +5V
ใบงานที่ 7 Measure Distance with Arduino and Ultrasonic Sensor
- วัดระยะทางแสดงผลโดยใช้ Servo motor (เข็มชี้ตัวเลข)
- Monitor แสดงผล ระยะทางในหน่วยของ นิ้ว และ เซนติเมตร
- Monitor แสดงผล มุมของ Servo (Angle)
อุปกรณ์
https://drive.google.com/open?id=1KFBVomHFZsuSTD9ZjH9K6h1dLWClIaOg
#include <Servo.h>
int trigPin=13;
int echoPin=11;
int servoControlPin=6;
float pingTime;
float targetDistance;
float speedOfSound=776.5;
float servoAngle;
Servo myPointer;
void setup() {
Serial.begin(9600);
pinMode(servoControlPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myPointer.attach(servoControlPin);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2000);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
delayMicroseconds(10);
pingTime = pulseIn(echoPin, HIGH);
pingTime=pingTime/1000000;
pingTime=pingTime/3600;
targetDistance= speedOfSound * pingTime;
targetDistance=targetDistance/2;
targetDistance= targetDistance*63360;
Serial.print("The Distance to Target is: ");
Serial.print(targetDistance*2.54);
Serial.println(" CM ");
Serial.print("The Distance to Target is: ");
Serial.print(targetDistance);
Serial.println(" IN ");
servoAngle = (106./7.) * targetDistance + 37;
myPointer.write(servoAngle);
Serial.println(servoAngle);
delay(100);
}
วิดีโอ
นางสาวกิตติมา อุดมปัญญาศิริกุล 6031280025
ปวส.1/2 คอมพิวเตอร์ซอฟต์แวร์
Servo คืออุปกรณ์มอเตอร์ ที่สามารถควบคุมการหมุนที่แม่นยำ เซอร์โวชุดนี้มีขนาดเล็กแรงบิด 1.2-1.4 KG/cm สีน้ำตาลเป็นสายกราวด์ สีแดงเป็นไฟเข้า 4.8-7.2V สีส้มเป็นสัญญาณอินพุต หมุนได้ 180 องศา ส่วนใหญ่ต่อเข้ากับ Pin ของ Arduino UNO R3 ที่สามารถใช้งาน PWM Signal ได้ เช่น D3 , D5 , D6 , D9 , D10 , D11
Servo เป็นคำศัพท์ที่ใช้กันทั่วไปในระบบควบคุมอัตโนมัติ มาจากภาษาละตินคำว่า Sevus หมายถึง “ทาส” (Slave) ในเชิงความหมายของ Servo Motor ก็คือ Motor ที่เราสามารถสั่งงานหรือตั้งค่า แล้วตัว Motor จะหมุนไปยังตำแหน่งองศาที่เราสั่งได้เองอย่างถูกต้อง โดยใช้การควบคุมแบบป้อนกลับ (Feedback Control)
HC-SR04
เป็นโมดูลวัดระยะทางที่ใช้หลักการสะท้อนของคลื่นอัลตร้าโซนิก ราคาประหยัด โดยตัว HC-SR04 มีแหล่งกำเนิดคลื่นอัลตร้าโซนิกส่งไปสะท้อนกับวัตถุที่อยู่ข้างหน้ากลับมายังตัวรับสัญญาณ โดยระยะทางที่วัดได้จะสัมพันธ์กับระยะเวลาที่คลื่นอัลตร้าโซนิกเคลื่อนที่ไปกระทบวัตถุและสะท้อนกลับมายังตัวรับ เมื่อรู้ระยะเวลาที่คลื่นอัลตร้าโซนิกสะท้อนกลับมา จึงนำมาคำนวณหาเป็นระยะทางระหว่างโมดูล HC-SR04 กับวัตถุได้ โดยโมดูล HC-SR04 วัดระยะทางในช่วง 2 ถึง 500 ซม. (5 เมตร) มีความละเอียดอยู่ที่ 0.3 ซม. ใช้ไฟเลี้ยง +5V
ใบงานที่ 7 Measure Distance with Arduino and Ultrasonic Sensor
- วัดระยะทางแสดงผลโดยใช้ Servo motor (เข็มชี้ตัวเลข)
- Monitor แสดงผล ระยะทางในหน่วยของ นิ้ว และ เซนติเมตร
- Monitor แสดงผล มุมของ Servo (Angle)
อุปกรณ์
- โปรโตบอร์ด
- บอร์ดArduino Uno R3
- สายไฟผู้ผู้
- สายอัพโหลด
- ตัวต้านทาน
- Servo Motor (SG90)
- HC-SR04
รูปวงจร
https://drive.google.com/open?id=1KFBVomHFZsuSTD9ZjH9K6h1dLWClIaOg
#include <Servo.h>
int trigPin=13;
int echoPin=11;
int servoControlPin=6;
float pingTime;
float targetDistance;
float speedOfSound=776.5;
float servoAngle;
Servo myPointer;
void setup() {
Serial.begin(9600);
pinMode(servoControlPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myPointer.attach(servoControlPin);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2000);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
delayMicroseconds(10);
pingTime = pulseIn(echoPin, HIGH);
pingTime=pingTime/1000000;
pingTime=pingTime/3600;
targetDistance= speedOfSound * pingTime;
targetDistance=targetDistance/2;
targetDistance= targetDistance*63360;
Serial.print("The Distance to Target is: ");
Serial.print(targetDistance*2.54);
Serial.println(" CM ");
Serial.print("The Distance to Target is: ");
Serial.print(targetDistance);
Serial.println(" IN ");
servoAngle = (106./7.) * targetDistance + 37;
myPointer.write(servoAngle);
Serial.println(servoAngle);
delay(100);
}
วิดีโอ
ความคิดเห็น
แสดงความคิดเห็น