0% found this document useful (0 votes)
7 views

Arduino Code Distance Measure

Uploaded by

Dương Cá Thu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Arduino Code Distance Measure

Uploaded by

Dương Cá Thu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

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()

Serial.begin(9600); // Mo cong Serial o 9600


pinMode(trig, OUTPUT); // Chan trig xuat tin hieu

pinMode(echo, INPUT); // Chan echo nhan tin hieu

lcd.init(); // Khoi dong LCD

lcd.backlight(); // Bat den nen

lcd.setCursor(1,0); // Cot 1, hang 0

lcd.print("DO KHOANG CACH");

- Serial.begin(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.

- lcd.init(); khoi dong man hinh LCD.

- lcd.backlight(); bat den nen cua LCD.

- lcd.setCursor(1,0); dat con tro o vi tri cot 1, hang 0 tren LCD.

- lcd.print("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

Serial.print("Khoang cach: ");

Serial.print(khoangcach);

Serial.println("cm");

lcd.setCursor(0,1);

lcd.print("Don vi Cm:");

lcd.setCursor(11,1);

lcd.print(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.

- Serial.print("Khoang cach: ");, Serial.print(khoangcach);, va Serial.println("cm"); in ket qua khoang

cach len cong Serial.

- lcd.setCursor(0,1);, lcd.print("Don vi Cm:");, lcd.setCursor(11,1);, va lcd.print(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.

You might also like