Ultrasonic sensor
Lab 1

code 1
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM,temp_distCM=0;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Dist = cm");
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,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);
lcd.print(" ");
}
lcd.setCursor(7,0);
lcd.print(distCM);
temp_distCM = distCM;
delay(300);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า cm
code 2
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
int x = constrain(distCM,4,19);
lcd.clear();
lcd.home();
for (int i=4;i<=x;i++)
lcd.print("*");
delay(150);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า * ขึ้นมา
code 3
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if (distCM > 400)
{
lcd.clear();
lcd.print("**!!!Alarm!!!**");
tone(buzzerpin,700,500);
delay(500);
digitalWrite(buzzerpin,HIGH);
delay(70);
lcd.setCursor(0,1);
lcd.print(distCM);
}
else
{
lcd.print("<-------------->");
lcd.setCursor(0,1);
lcd.print(distCM);
}
}

code 1
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM,temp_distCM=0;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Dist = cm");
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,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);
lcd.print(" ");
}
lcd.setCursor(7,0);
lcd.print(distCM);
temp_distCM = distCM;
delay(300);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า cm
code 2
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
int x = constrain(distCM,4,19);
lcd.clear();
lcd.home();
for (int i=4;i<=x;i++)
lcd.print("*");
delay(150);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า * ขึ้นมา
code 3
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if (distCM > 400)
{
lcd.clear();
lcd.print("**!!!Alarm!!!**");
tone(buzzerpin,700,500);
delay(500);
digitalWrite(buzzerpin,HIGH);
delay(70);
lcd.setCursor(0,1);
lcd.print(distCM);
}
else
{
lcd.print("<-------------->");
lcd.setCursor(0,1);
lcd.print(distCM);
}
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if ((distCM>=4)&&(distCM<=30))
{
lcd.clear();
lcd.print("#####Alarm#####");
int dl = distCM*20;
tone(buzzerpin,600,dl);
delay(dl);
digitalWrite(buzzerpin,HIGH);
delay(70);
}
else
{
lcd.print(" Dist > 30 cm ");
}
}

code 1
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM,temp_distCM=0;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Dist = cm");
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,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);
lcd.print(" ");
}
lcd.setCursor(7,0);
lcd.print(distCM);
temp_distCM = distCM;
delay(300);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า cm
code 2
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
int x = constrain(distCM,4,19);
lcd.clear();
lcd.home();
for (int i=4;i<=x;i++)
lcd.print("*");
delay(150);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า * ขึ้นมา
code 3
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if (distCM > 400)
{
lcd.clear();
lcd.print("**!!!Alarm!!!**");
tone(buzzerpin,700,500);
delay(500);
digitalWrite(buzzerpin,HIGH);
delay(70);
lcd.setCursor(0,1);
lcd.print(distCM);
}
else
{
lcd.print("<-------------->");
lcd.setCursor(0,1);
lcd.print(distCM);
}
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("<-------------->") ออกมาพร้อมกับเสียง และตัวเลข ถ้าเกิน 400 LCD จะขึ้นคำว่า ("**!!!Alarm!!!**") และเสียงก็จะเปลี่ยน
code 4
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if ((distCM>=4)&&(distCM<=30))
{
lcd.clear();
lcd.print("#####Alarm#####");
int dl = distCM*20;
tone(buzzerpin,600,dl);
delay(dl);
digitalWrite(buzzerpin,HIGH);
delay(70);
}
else
{
lcd.print(" Dist > 30 cm ");
}
}
Lab 2พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("<-------------->") ออกมาพร้อมกับเสียง และตัวเลข ถ้าเกิน 400 LCD จะขึ้นคำว่า ("**!!!Alarm!!!**") และเสียงก็จะเปลี่ยน
code 4
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if ((distCM>=4)&&(distCM<=30))
{
lcd.clear();
lcd.print("#####Alarm#####");
int dl = distCM*20;
tone(buzzerpin,600,dl);
delay(dl);
digitalWrite(buzzerpin,HIGH);
delay(70);
}
else
{
lcd.print(" Dist > 30 cm ");
}
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("#####Alarm#####") ออกมาพร้อมกับเสียงตอน POT-HG ต่ำสุด ถ้าปรับขึ้นเลยๆๆ LCD จะขึ้นคำว่า (" Dist > 30 cm ") และเสียงก็จะเปลี่ยน
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("#####Alarm#####") ออกมาพร้อมกับเสียงตอน POT-HG ต่ำสุด ถ้าปรับขึ้นเลยๆๆ LCD จะขึ้นคำว่า (" Dist > 30 cm ") และเสียงก็จะเปลี่ยน

code 1
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM,temp_distCM=0;
void setup()
{
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Dist = cm");
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,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);
lcd.print(" ");
}
lcd.setCursor(7,0);
lcd.print(distCM);
temp_distCM = distCM;
delay(300);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า cm
code 2
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
int x = constrain(distCM,4,19);
lcd.clear();
lcd.home();
for (int i=4;i<=x;i++)
lcd.print("*");
delay(150);
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดงค่า * ขึ้นมา
code 3
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if (distCM > 400)
{
lcd.clear();
lcd.print("**!!!Alarm!!!**");
tone(buzzerpin,700,500);
delay(500);
digitalWrite(buzzerpin,HIGH);
delay(70);
lcd.setCursor(0,1);
lcd.print(distCM);
}
else
{
lcd.print("<-------------->");
lcd.setCursor(0,1);
lcd.print(distCM);
}
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("<-------------->") ออกมาพร้อมกับเสียง และตัวเลข ถ้าเกิน 400 LCD จะขึ้นคำว่า ("**!!!Alarm!!!**") และเสียงก็จะเปลี่ยน
code 4พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("<-------------->") ออกมาพร้อมกับเสียง และตัวเลข ถ้าเกิน 400 LCD จะขึ้นคำว่า ("**!!!Alarm!!!**") และเสียงก็จะเปลี่ยน
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int triggerPin = 13;
int echoPin = 12;
int buzzerpin = 11;
long duration,distCM;
void setup()
{
lcd.begin(16,2);
pinMode(buzzerpin,OUTPUT);
pinMode(triggerPin,OUTPUT);
pinMode(echoPin,INPUT);
digitalWrite(buzzerpin,HIGH);
}
void loop()
{
digitalWrite(triggerPin,LOW);
delayMicroseconds(2);
digitalWrite(triggerPin,HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin,LOW);
duration = pulseIn(echoPin,HIGH);
distCM = duration/58;
lcd.home();
if ((distCM>=4)&&(distCM<=30))
{
lcd.clear();
lcd.print("#####Alarm#####");
int dl = distCM*20;
tone(buzzerpin,600,dl);
delay(dl);
digitalWrite(buzzerpin,HIGH);
delay(70);
}
else
{
lcd.print(" Dist > 30 cm ");
}
}
ทดลอง
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("#####Alarm#####") ออกมาพร้อมกับเสียงตอน POT-HG ต่ำสุด ถ้าปรับขึ้นเลยๆๆ LCD จะขึ้นคำว่า (" Dist > 30 cm ") และเสียงก็จะเปลี่ยน
พอภาษา C ใส่ในArduino จะได้ว่า LCD แสดง ("#####Alarm#####") ออกมาพร้อมกับเสียงตอน POT-HG ต่ำสุด ถ้าปรับขึ้นเลยๆๆ LCD จะขึ้นคำว่า (" Dist > 30 cm ") และเสียงก็จะเปลี่ยน
ความคิดเห็น
แสดงความคิดเห็น