Tải bản đầy đủ - 0 (trang)
LCD text 1602 một sản phẩm quen thuộc với những người mới học và muốn thực hiện các dự án về điện tử, lập trình. Với khả hiển thị 2 dòng với mỗi dòng 16 ký tự, đồng thời có rất nhiều ví dụ mẫu được cộng đồng Arduino xây dựng sẵn sẽ giúp người mới sử dụng

LCD text 1602 một sản phẩm quen thuộc với những người mới học và muốn thực hiện các dự án về điện tử, lập trình. Với khả hiển thị 2 dòng với mỗi dòng 16 ký tự, đồng thời có rất nhiều ví dụ mẫu được cộng đồng Arduino xây dựng sẵn sẽ giúp người mới sử dụng

Tải bản đầy đủ - 0trang





































Có thể được điều khiển với 6 dây tín hiệu

VSS: cực âm nguồn cho LCD - GND: 0V

VDD: cực dương nguồn LCD - 5V

Constrast Voltage (Vo): điều khiển độ sáng màn hình

Register Select (RS): lựa chọn thanh ghi

RS=0 chọn thanh ghi lệnh

RS=1 chọn thanh ghi dữ liệu

Read/Write (R/W)

R/W=0 ghi dữ liệu

R/W=1 đọc dữ liệu.

Enable: Cho phép ghi vào LCD

D0 - D7: 8 chân trao đổi dữ liệu với các vi điều khiển, với 2 chế độ sử

dụng

Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit

DB7.

Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit

MSB là DB7.

Backlight (Backlight Anode (+) và Backlight Cathode (-)): Tắt bật đèn



màn hình LCD.

Module chuyển đổi I2C cho LCD 16*2

- LCD có q nhiều chân gây khó khăn trong q trình kết nối và chiếm

dụng nhiều chân của vi điều khiển? Module chuyển đổi I2C cho LCD

sẽ giải quyết vấn đề này cho bạn, thay vì sử dụng tối thiểu 6 chân của

vi điều khiển để kết nối với LCD (RS, EN, D7, D6, D5 và D4) thì với

module chuyển đổi bạn chỉ cần sử dụng 2 chân (SCL, SDA) để kết

nối. Module chuyển đổi I2C hỗ trợ các loại LCD sử dụng driver

HD44780(LCD 1602, LCD 2004, … ), kết nối với vi điều khiển thơng

qua giao tiếp I2C, tương thích với hầu hết các vi điều khiển hiện nay.



21



Hình 2.2.3.5 Module I2C



Thơng số kĩ thuật





Điện áp hoạt động: 2.5-6V DC







Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)







Giao tiếp: I2C







Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân

A0/A1/A2)







Kích thước: 41.5mm(L)x19mm(W)x15.3mm(H)







Trọng lượng: 5g







Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt







Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD



2.2.4 Thiết kế mạch nguyên lý







Khối nút bấm :



Hình 2.2.4.1 Khối nút bấm điều khiển

Khối nút bấm điều khiển gồm 3 nút bấm để điều chỉnh các thông số

bằng tay:

+ Nút bấm 1 để chọn cảm biến muốn thay đổi thông số.

+ Nút bấm 2 để tăng giá trị thông số cảm biến đã chọn.

+ Nút bấm 3 để giảm giá trị thông số cảm biến đã chọn.

 Khối còi báo



22



Hình 2.2.4.2 . Khối còi báo

- Thực hiện báo hiệu khí cảm biến MQ5 phát hiejn có khí gas tắt đi khi

ấn reset

 Khối nguồn .



Hình 2.2.4.3 . Khối cung cấp nguồn cho các module

- Lấy nguồn 5V từ boar arduino để cung cấp nguồn cho các module

khối còi báo và khối nút ấn .

2.2.5 Thiết kế mạch in



23



Hình2.2.5.1 . Măt trước và sau của mạch in

2.2.6 Thiết kế vỏ hộp



Hình 2.2.6.1 Hộp sản phẩm

2.3. THIẾT KẾ PHẦN MỀM

24



2.3.1. Viết mã nguồn

#include

#include

#include //khai báo thư viện Wire

#include //khai báo thư viện cho lcd

#define DHTPIN 9

#define DHTTYPE DHT11

#define sw2 3



//Nút bấm số 2



#define sw3 4



//Nút bấm số 3



#define rl1 7

#define rl2 8

#define coi 5

#define mq_5 A0

#define t_add 0



//Địa chỉ lưu giá trị nhiệt độ trong EEPROM



#define h_add 1



//Địa chỉ lưu giá trị gas trong EEPROM



unsigned char mode = 0, count = 0, dem, state = 0;

int humi, temp, t, h, gas, gass;

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(0x27, 16, 2); //chọn địa chỉ của lcd

void setup() {

// put your setup code here, to run once:

pinMode(sw2, INPUT_PULLUP);

pinMode(sw3, INPUT_PULLUP);

pinMode(coi, OUTPUT);

pinMode(coi, OUTPUT);

pinMode(rl1, OUTPUT);

pinMode(rl2, OUTPUT);

attachInterrupt(0, setMode, FALLING); //Ngắt ngoài 0, cài đặt chế độ của hệ

thống

25



t = EEPROM.read(t_add);



//Đọc ngưỡng nhiệt độ cảnh báo được lưu



trong EEPROM

delay(250);

gas = EEPROM.read(h_add);



//Đọc ngưỡng độ ẩm cảnh báo được lưu



trong EEPROM

delay(250);

digitalWrite(coi,LOW);

dht.begin();

lcd.init();



// khởi tạo cho dht11

// khởi taok cho lcd



lcd.backlight();

lcd.setCursor(0, 0);

lcd.print("Do An Dien Tu 1");

lcd.setCursor(0, 1);

lcd.print("nhom 8 ");

delay(1000);

lcd.clear();

}

void setMode(){

mode++;

if(mode > 3) mode = 0;

}

void hienThi(){

lcd.setCursor(0,0);

lcd.print("T: ");

delay(10);

lcd.print(temp);

delay(10);

lcd.print(" C");

lcd.setCursor(9,0);

lcd.print("H: ");

26



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

LCD text 1602 một sản phẩm quen thuộc với những người mới học và muốn thực hiện các dự án về điện tử, lập trình. Với khả hiển thị 2 dòng với mỗi dòng 16 ký tự, đồng thời có rất nhiều ví dụ mẫu được cộng đồng Arduino xây dựng sẵn sẽ giúp người mới sử dụng

Tải bản đầy đủ ngay(0 tr)

×