arduino sonar
ใบรายงานผลการปฏิบัติงาน
Code
#include <LiquidCrystal_I2C.h> // การอ่านไฟล์จากไดเร็กทอรี หรือโฟลเดอร์ที่กำหนดไว้
LiquidCrystal_I2C lcd(0x27,16,2); //ฟังก์ชั่นของ lcd กำหนดให้ ตัวอักษรที่16 แถวที่2
int triggerPin = 13; // ตัวแปรพื้นฐานที่เก็บตัวเลขโดยไม่มีจุดทศนิยม
int echoPin = 12;
long duration,distCM,temp_distCM=0; // เป็นตัวแปรจำนวนเต็มแบบขยายโดยไม่มีจุดทศนิยม เก็บค่าแบบ 32 bit
void setup() // ฟังก์ชั่นใช้ในการประกาศค่าเริ่มต้น
{
lcd.begin(); // การทำงานเริ่มต้นของ lcd
lcd.setCursor(0,0); //ใช้สั่งให้แสดงเคเซอร์บนหน้าจอ ตัวอักษรที่0เเถว0
lcd.print("Dist = cm");
pinMode(triggerPin,OUTPUT); //การกำหนดหน้าที่ของขาว่าเป็นอินพุตหรือเอาต์พุต
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,LOW); //ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
delayMicroseconds(2); // หน่วงเวลา
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
if (temp_distCM != distCM) // คำสั่งในการตัดสินใจ แบบตัวเลือกเดียว โดยใช้งานร่วมกับ ==, !=, <, >เพื่อใช้ใน การ ตัดสินใจในการหาคำ
{
lcd.setCursor(7,0); //ใช้สั่งให้แสดงเคเซอร์บนหน้าจอ ตัวอักษรที่7เเถว0
lcd.print(" ");
}
lcd.setCursor(7,0);
lcd.print(distCM);
temp_distCM = distCM;
delay(300); // หน่วงเวลา
}
ภาพจำลองการทำงานด้วยโปรแกรม Proteus
อธิบายการทำงานของโปรแกรม
วัดระยะโดยเซ็นเซอร์ ULTRASONIC มีเสียงการทำงาน เเล้วเเสดงผมบน LCD ว่าระยะ กี่ ซม.
Code
#include <LiquidCrystal_I2C.h> // การอ่านไฟล์จากไดเร็กทอรี หรือโฟลเดอร์ที่กำหนดไว้
LiquidCrystal_I2C lcd(0x27,16,2); //ฟังก์ชั่นของ lcd กำหนดให้ ตัวอักษรที่16 แถวที่2
int triggerPin = 13; // ตัวแปรพื้นฐานที่เก็บตัวเลขโดยไม่มีจุดทศนิยม
int echoPin = 12;
long duration,distCM,temp_distCM=0; // เป็นตัวแปรจำนวนเต็มแบบขยายโดยไม่มีจุดทศนิยม เก็บค่าแบบ 32 bit
void setup() // ฟังก์ชั่นใช้ในการประกาศค่าเริ่มต้น
{
lcd.begin(); // การทำงานเริ่มต้นของ lcd
lcd.setCursor(0,0); //ใช้สั่งให้แสดงเคเซอร์บนหน้าจอ ตัวอักษรที่0เเถว0
lcd.print("Dist = cm");
pinMode(triggerPin,OUTPUT); //การกำหนดหน้าที่ของขาว่าเป็นอินพุตหรือเอาต์พุต
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,LOW); //ทำหน้าที่เขียนค่า HIGH หรือ LOW ไปยังขาดิจิตอล
delayMicroseconds(2); // หน่วงเวลา
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
if (temp_distCM != distCM) // คำสั่งในการตัดสินใจ แบบตัวเลือกเดียว โดยใช้งานร่วมกับ ==, !=, <, >เพื่อใช้ใน การ ตัดสินใจในการหาคำ
{
lcd.setCursor(7,0); //ใช้สั่งให้แสดงเคเซอร์บนหน้าจอ ตัวอักษรที่7เเถว0
lcd.print(" ");
}
lcd.setCursor(7,0);
lcd.print(distCM);
temp_distCM = distCM;
delay(300); // หน่วงเวลา
}
ภาพจำลองการทำงานด้วยโปรแกรม Proteus
วัดระยะโดยเซ็นเซอร์ ULTRASONIC มีเสียงการทำงาน เเล้วเเสดงผมบน LCD ว่าระยะ กี่ ซม.
ความคิดเห็น
แสดงความคิดเห็น