Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Đoạn mã trên sử dụng thư viện LiquidCstall I2C để điều khiển màn hình LCD,

cũng như bảng Arduino để đọc cảm biến mưa và điều khiển động cơ. Trong hàm
setup(), mã này khởi tạo giao tiếp nối tiếp ở tốc độ baud là 9600, đặt các chân của
động cơ và cảm biến mưa làm đầu ra và đầu vào tương ứng.
Trong hàm Loop(), đoãn mã đọc tín hiệu kỹ thuật số từ cảm biến mưa và kiểm tra
xem giá trị của nó có cao không. Nếu vậy nó sẽ hiển thị “ Co mua” trên màn hình
và motor gạt mưa quay. Nếu giá trị không cao, thì sẽ hiển thị “ Khong mua” trên
màn hình và tắt motor. Chức năng trì hoãn (1000) được sử dụng làm tạm dừng
chương trình trong 1 giây trước khi xoá màn hình LCD cho vòng lặp tiếp theo. Mã
này là một ví dụ về cách giao tiếp với các cảm biến đều ra trên bo mạch Arduino.
Lệnh "digitalRead(rainSensor)" được sử dụng trong ngôn ngữ lập trình Arduino để đọc
giá trị của mô-đun cảm biến mưa được kết nối với chốt kỹ thuật số trên bảng. Giá trị
đọc sau đó được lưu trữ trong biến "int Value" để sử dụng trong các hoạt động lập trình
tiếp theo. Mô-đun cảm biến mưa hoạt động bằng cách phát hiện sự hiện diện của các
giọt nước hoặc mưa. Khi không có mưa, đầu ra của mô-đun ở mức THẤP và chức
năng Đọc kỹ thuật số trả về 0. Khi cảm biến phát hiện mưa, đầu ra trở thành CAO và
chức năng này trả về 1. Thông tin này có thể được sử dụng trong nhiều ứng dụng khác
nhau, chẳng hạn như chuyển trên một Sprink
digitalRead là một hàm trong lập trình Arduino được sử dụng để đọc giá trị đầu vào từ một chân
kỹ thuật số trên board Arduino. Hàm này trả về giá trị cao (HIGH) nếu có điện áp đầu vào và trả
về giá trị thấp (LOW) nếu không có điện áp đầu vào. Chức năng của hàm digitalRead là để xác
định trạng thái của các cảm biến, công tắc, hoặc các thiết bị đầu vào khác được kết nối với
board Arduino
digitalRead là một hàm trong lập trình Arduino được sử dụng để đọc giá trị đầu vào từ một chân
kỹ thuật số trên board Arduino. Hàm này trả về giá trị cao (HIGH) nếu có điện áp đầu vào và trả
về giá trị thấp (LOW) nếu không có điện áp đầu vào. Chức năng của hàm digitalRead là để xác
định trạng thái của các cảm biến, công tắc, hoặc các thiết bị đầu vào khác được kết nối với
board Arduino
Đoạn mã trên được viết bằng ngôn ngữ lập trình Arduino và sử dụng thư viện LiquidCstall_I2C để
điều khiển màn hình LCD 16x2. Nó cũng sử dụng một cảm biến mưa được kết nối với chân kỹ thuật
số 6 và một động cơ được kết nối với chân kỹ thuật số 7.
Trong chức năng setup(), giao tiếp nối tiếp được khởi tạo với tốc độ baud là 9600, màn hình LCD
được khởi tạo và các chân cho cảm biến mưa và động cơ được đặt làm đầu vào và đầu ra tương
ứng.
Trong chức năng loop(), giá trị cảm biến mưa được đọc và nếu nó ở mức CAO (có nghĩa là trời
đang mưa), màn hình LCD hiển thị "Có mưa" (có nghĩa là "Trời đang mưa") và động cơ được
bật. Nếu giá trị cảm biến mưa THẤP (có nghĩa là trời không mưa), màn hình LCD hiển thị "không
mưa" (có nghĩa là "Trời không mưa") và động cơ bị tắt. Chức năng loop() cũng bao gồm độ trễ 1
giây và xóa màn hình LCD trước khi
Mã này khởi tạo một đối tượng LiquidCstall_I2C cho màn hình LCD và thiết lập cảm biến mưa trên
chân kỹ thuật số 6 và động cơ trên chân 7. Trong vòng lặp, nó đọc giá trị của cảm biến mưa và nếu
nó cao (có nghĩa là trời đang mưa) , nó in chữ "Co mưa" (nghĩa là "trời đang mưa") trên màn hình
LCD và khởi động động cơ. Nếu giá trị cảm biến thấp (có nghĩa là trời không mưa), nó sẽ in "không
mưa" (có nghĩa là "không mưa") và tắt động cơ. Hàm trì hoãn được sử dụng để tạm dừng một giây
và hàm lcd.clear() được sử dụng để xóa màn hình LCD trước khi lặp lại qua vòng lặp. Mã này có
khả năng được sử dụng trong hệ thống giám sát thời tiết hoặc tự động hóa để điều khiển thứ gì đó
như tấm che mưa có động cơ cho thiết bị ngoài trời.
Hàm digitalWrite là một hàm trong ngôn ngữ lập trình Arduino, được sử dụng để điều khiển trạng
thái đầu ra của một chân I/O (Input/Output). Hàm này cho phép thay đổi trạng thái của chân I/O đó
từ LOW (0V) lên HIGH (5V) hoặc từ HIGH xuống LOW.
Cú pháp của hàm digitalWrite khá đơn giản: digitalWrite(pin, value), trong đó pin là số của chân I/O
muốn điều khiển và value là trạng thái muốn chuyển đến (HIGH hoặc LOW).
Hàm này rất hữu ích trong các ứng dụng IoT, nơi mà cần điều khiển

Hàm pinMode là một trong những hàm cơ bản của Arduino IDE được sử dụng để khai báo đầu
vào/đầu ra cho các chân của board. Hàm này được dùng để thiết lập cấu hình cho các chân dữ liệu
kỹ thuật số hoặc các chân analog trên board, giúp cho chúng có thể hoạt động đúng với yêu cầu
của người dùng. Cụ thể, khi sử dụng hàm pinMode, người dùng có thể chỉ định chế độ hoạt động
cho chân đó, là đầu vào (input) hoặc đầu ra (output), và tùy chỉnh cấu hình tương ứng.

Khởi tạo Serial ở baudrate 9600 được sử dụng để thiết lập giao tiếp giữa vi điều
khiển (như Arduino) và các thiết bị ngoại vi hoặc máy tính thông qua cổng giao
tiếp nối tiếp (Serial).

Baudrate là tốc độ truyền thông, được đo bằng số bit truyền đi trong một giây. Tốc
độ baudrate 9600 được sử dụng phổ biến cho nhiều ứng dụng giao tiếp nối tiếp, do
nó đảm bảo tốc độ truyền thông đủ nhanh để truyền dữ liệu hiệu quả, đồng thời
cũng giảm thiểu tỷ lệ lỗi trong quá trình truyền thông.

Khi khởi tạo Serial ở baudrate 9600, bạn đang thiết lập một kết nối giao tiếp nối
tiếp giữa vi điều khiển và thiết bị ngoại vi hoặc máy tính với tốc độ truyền thông là
9600 bit mỗi giây. Điều này cho phép bạn gửi và nhận dữ liệu giữa các thiết bị,
điều khiển thiết bị ngoại vi từ vi điều khiển, hoặc hiển thị dữ liệu từ vi điều khiển
lên màn hình máy tính thông qua cổng Serial.
1. Cổng kết nối đầu vào Analog (A0 - A5): kết nối với các cảm biến analog để đọc dữ liệu
đầu vào.
2. Cổng kết nối đầu ra kỹ thuật số (D0 - D13): kết nối với các linh kiện điện tử khác như
LED, động cơ, relay, v.v.
3. Cổng kết nối PWM (Pulse Width Modulation): kết nối với các linh kiện cho phép điều
chỉnh độ sáng hoặc tốc độ.
4. Cổng RESET: reset board Arduino.

Các phiên bản board khác nhau sẽ có các cổng kết nối khác nhau, tùy thuộc vào mục
đích sử dụng của người dùng.
#define trigPin 12 // chân trig của cảm biến siêu âm kết nối với chân 12 của
Arduino
#define echoPin 11 // chân echo của cảm biến siêu âm kết nối với chân 11 của
Arduino
#define ledPin 9 // chân kết nối với đèn LED
#define maxDistance 200 // khoảng cách tối đa được đo bởi cảm biến siêu âm là
200cm

void setup() {
pinMode(trigPin, OUTPUT); // thiết lập chân trig là output
pinMode(echoPin, INPUT); // thiết lập chân echo là input
pinMode(ledPin, OUTPUT); // thiết lập chân kết nối với LED là output
Serial.begin(9600); // khởi động Serial Monitor với tốc độ 9600 bps
}

void loop() {
long duration, distance;

digitalWrite(trigPin, LOW); // gửi xung LOW trong 2 microsecond để chuẩn bị


đo khoảng cách
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // gửi xung HIGH trong 10 microsecond để gửi ra
sóng siêu âm
delayMicroseconds(10);
digitalWrite(trigPin, LOW); // tắt sóng siêu âm

duration = pulseIn(echoPin, HIGH); // đọc thời gian phản hồi của sóng siêu âm
distance = duration / 58; // tính toán khoảng cách dựa trên thời gian phản
hồi

Serial.print("Distance: "); // hiển thị khoảng cách trên Serial Monitor


Serial.print(distance);
Serial.println(" cm");

if (distance <10) { // nếu khoảng cách nhỏ hơn 10cm, bật đèn LED với độ
sáng yếu
analogWrite(ledPin, 50); // giá trị duty cycle của tín hiệu PWM là 50/255
} else { // nếu khoảng cách lớn hơn hoặc bằng 10cm, tắt đèn LED
digitalWrite(ledPin, LOW);
}

delay(500); // đợi 500ms trước khi lặp lại


}

You might also like