ARDUINO LCD PROJECT FOR MEASURING DISTANCE WITH ULTRASONIC SENSOR
#include <LiquidCrystal.h> //เปิดไฟล์ที่ชื่อ LiquidCrystal.h ใน library
LiquidCrystal LCD(10, 9, 5, 4, 3, 2); //กำหนดขาให้ lcd
int trigPin=13;
int echoPin=11;
int myCounter=0;
int servoControlPin=6;
float pingTime; //กำหนดเวลาสำหรับ ping เพื่อเดินทางจากเซนเซอร์ไปยังเป้าหมายและกลับ
float targetDistance; //ระยะทางไปยังเป้าหมายเป็นนิ้ว
float speedOfSound=776.5; //ความเร็วของเสียงเป็นไมล์ต่อชั่วโมงเมื่ออุณหภูมิอยู่ที่ 77 องศา
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
LCD.begin(16,2); //บอก Arduino ให้เริ่ม LCD 16 คอลัมน์ 2 แถว
LCD.setCursor(0,0); //ตั้งค่าเคอร์เซอร์ LCD ไปที่มุมซ้ายบน, คอลัมน์ 0, แถว 0
LCD.print("Target Distance:"); //พิมพ์ข้อความในแถวแรกว่า Target Distance
}
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 เป็นวินาทีโดยการหารด้วย 1000000 (microseconds ในหนึ่งวินาที)
pingTime=pingTime/3600; //แปลง pingtime เพื่อ hourse โดยการหารด้วย 3600 (วินาทีในหนึ่งชั่วโมง)
targetDistance= speedOfSound * pingTime; //เป็นไมล์เพราะความเร็วของเสียงเป็นไมล์ต่อชั่วโมง
targetDistance=targetDistance/2; //ping เดินทางไปยังเป้าหมายและกลับจากเป้าหมายดังนั้นคุณต้องหารด้วย 2 สำหรับระยะทางที่แท้จริง
targetDistance= targetDistance*63360; //แปลงไมล์เป็นนิ้วโดยการคูณด้วย 63360 (นิ้วต่อไมล์)
LCD.setCursor(0,1); //ตั้งเคอร์เซอร์ไปที่แถวแรกของแถวที่สอง
LCD.print(" "); //สั่ง lcd แสดงผล " "
LCD.setCursor(0,1); //ตั้งค่าเคอร์เซอร์อีกครั้งเป็นแถวแรกของแถวที่สอง
LCD.print(targetDistance); //เเสดงผลคำว่า targetDistance
LCD.print(" inches"); //เเสดงผลคำว่า inches
delay(250);
}

ไม่มีความคิดเห็น:
แสดงความคิดเห็น