Doan code Arduino cua ban dung de do khoang cach bang cam bien sieu am va hien thi ket
qua
tren man hinh LCD. Duoi day la giai thich chi tiet tung dong code:
const int trig = 8; // Khai bao chan trig noi voi chan so 8 la hang so
const int echo = 7; // Khai bao chan echo noi voi chan so 7 la hang so
unsigned long thoigian; // Thoi gian la kieu so nguyen
float khoangcach; // Khoang cach la kieu so thuc
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // LCD 16x02, dia chi I2C la 0X27
- const int trig = 8; va const int echo = 7; khai bao hai chan cua Arduino, chan trig de phat xung va
chan echo de nhan tin hieu phan hoi tu cam bien sieu am.
- unsigned long thoigian; khai bao bien thoigian kieu so nguyen lon de luu thoi gian do duoc.
- float khoangcach; khai bao bien khoangcach kieu so thuc de luu khoang cach tinh duoc.
- #include <Wire.h> va #include <LiquidCrystal_I2C.h> la cac thu vien can thiet de giao tiep voi man
hinh LCD qua giao thuc I2C.
- LiquidCrystal_I2C lcd(0x27,16,2); tao doi tuong lcd voi dia chi I2C la 0x27, man hinh LCD co kich
thuoc 16 cot va 2 hang.
void setup()
[Link](9600); // Mo cong Serial o 9600
pinMode(trig, OUTPUT); // Chan trig xuat tin hieu
pinMode(echo, INPUT); // Chan echo nhan tin hieu
[Link](); // Khoi dong LCD
[Link](); // Bat den nen
[Link](1,0); // Cot 1, hang 0
[Link]("DO KHOANG CACH");
- [Link](9600); khoi tao cong Serial voi toc do truyen 9600 bps de gui du lieu den may tinh.
- pinMode(trig, OUTPUT); thiet lap chan trig la dau ra.
- pinMode(echo, INPUT); thiet lap chan echo la dau vao.
- [Link](); khoi dong man hinh LCD.
- [Link](); bat den nen cua LCD.
- [Link](1,0); dat con tro o vi tri cot 1, hang 0 tren LCD.
- [Link]("DO KHOANG CACH"); hien thi dong chu "DO KHOANG CACH" len LCD.
void loop()
// Phat xung tu chan trig, co do rong la 10ms
digitalWrite(trig,0); // Tat chan trig
delayMicroseconds(2);
digitalWrite(trig,1); // Bat chan trig de phat xung
delayMicroseconds(10); // Xung co do rong la 10 microsecond
digitalWrite(trig,0);
// Chan echo se nhan xung phan xa lai
// Va do do rong xung cao o chan echo
thoigian = pulseIn (echo, HIGH);
// Tinh khoang cach den vat the (Don vi do la cm)
// Toc do cua am thanh trong khong khi la 340 m/s, tuong duong 29,412 microSeconds/cm,
// Do thoi gian duoc tinh tu luc phat tin hieu toi khi song am phan xa lai,
// vi vay phai chia cho 2
khoangcach = float(thoigian / 2 / 29.412);
// In len Serial ket qua
[Link]("Khoang cach: ");
[Link](khoangcach);
[Link]("cm");
[Link](0,1);
[Link]("Don vi Cm:");
[Link](11,1);
[Link](khoangcach);
delay(500);
- digitalWrite(trig,0); tat chan trig.
- delayMicroseconds(2); tao do tre 2 microseconds.
- digitalWrite(trig,1); bat chan trig de phat xung.
- delayMicroseconds(10); giu xung trong 10 microseconds.
- digitalWrite(trig,0); tat chan trig.
- thoigian = pulseIn (echo, HIGH); do thoi gian xung cao nhan duoc tu chan echo.
- khoangcach = float(thoigian / 2 / 29.412); tinh khoang cach dua tren thoi gian do duoc va toc do
am thanh trong khong khi.
- [Link]("Khoang cach: ");, [Link](khoangcach);, va [Link]("cm"); in ket qua khoang
cach len cong Serial.
- [Link](0,1);, [Link]("Don vi Cm:");, [Link](11,1);, va [Link](khoangcach); hien thi
ket qua khoang cach tren LCD.
- delay(500); tao do tre 500 milliseconds truoc khi lap lai.
Hy vong phan giai thich nay da giup ban hieu ro hon ve doan code cua minh.