Module nRF24L01

Một phần của tài liệu thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc (Trang 48 - 59)

2. LÝ THUYẾT

2.3.12Module nRF24L01

Đây là một module dùng thu phát sóng RF sử dụng chip đơn nRF24L01 đã được thiết kế sẵn bởi nhà sản xuất Nordic, rất tiện lợi cho người sử dụng. Sau đây là sơđồ nguyên lí của module nRF24L01.

Hình 2.24: Sơđồ nguyên lý module nRF24L01

2.4 TỔNG QUAN VỀ LCD 16x2

2.4.1 Giới thiệu về LCD

LCD là loại màn hình tinh thể lỏng dùng để hiển thị các dòng chữ hoặc số trong bảng mã ASCII. LCD thường chia làm hai loại chính: LCD loại lớn hay còn gọi là Graphic LCD và LCD loại nhỏ hay còn gọi là text LCD. Graphic LCD là loại LCD có thể hiển thị được các hình ảnh, loại text LCD là loại LCD không thể hiển thị được các hình ảnh mà chỉ hiển thị được ký tự hoặc số trong bảng mã ASCII. LCD 16x2 là loại text LCD, mỗi ô của text LCD bao gồm các chấm tinh thể lỏng, việc kết hợp ẩn hay hiện các dấu chấm này sẽ tạo thành các ký tự cần hiển thị. Trong các text LCD, các mẫu ký tựđược định nghĩa sẵn. Kích thước của LCD được định nghĩa bằng số ký tự có thể hiển thị trên 1 dòng và tổng số dòng mà LCD đó có.

Hình 2.25: LCD 16x2

2.4.2 Sơđồ chân

LCD 16x2 điều khiển bởi chip HD44780U của hãng Hitachi. HD44780U là bộ điều khiển cho các text LCD dạng ma trận, chip này có thểđược dùng cho các LCD có 1 hoạc 2 dòng hiển thị. HD44780U có 2 mode giao tiếp là 4 bit và 8 bit. Nó có chứa sẵn 208 ký tự mẫu kích thước font 5x8 và 32 ký tự mẫu font 5x10, nghĩa là tổng cộng có đến 240 ký tự mẫu khác nhau.

Các text LCD theo chuẩn HD44780U thường có 16 chân, trong đó có 14 chân nối với bộđiều khiển và 2 chân nguồn “ đèn LCD nền”.

Bảng 2.26 Chức năng các chân của LCD 16x2

Trong đó một số LCD 2 chân led nền được đánh số 15 và 16 nhưng trong một số trường hợp 2 chân này được ghi là A (Anode) và K ( Cathode).

2.4.3 Thanh ghi và tổ chức bộ nhớ

HD44780U có 2 thanh ghi 8 bits là IR ( Instruction Register) và thanh ghi DR ( Data Register). Cả hai thanh ghi đều được nối với các đường dữ liệu D0:D7 của text LCD và được lựa chọn theo các chân điều khiển RS, RW.

Thanh ghi IR chứa mã lệnh điều khiển LCD và là thanh ghi địa chỉ, thanh ghi này chỉ có thể được ghi vào mà không thể đọc được nó. Đểđiều khiển LCD, người dùng phải ra lệnh thông qua đường bus DB0:DB7. Mỗi lệnh được nhà sản xuất đánh địa chỉ rõ ràng, người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào

thanh ghi IR. Nghĩa là, khi người dùng nạp vào thanh ghi IR một chuỗi 8 bit, chip HD44780 sẽ tra mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó.

Thanh ghi DR dùng để dữ liệu 8 bit cho mục đích ghi vào DDRAM hoặc CGRAM ở chế độ ghi hoặc dùng để chứa dữ liệu từ 2 vùng RAM này gửi ra cho chip ở chế độ đọc. Nghĩa là khi ghi thông tin vào DR, mạch nội bên trong sẽ tự động ghi thông tin này vào DDRAM hoặc CGRAM. Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ởđịa chỉ này trong vùng RAM nội của HD44780 sẽđược chuyển ra DR để chip đọc.

Bằng cách điều khiển chân RS và R/W sẽ chuyển qua lại giữa 2 thanh ghi khi giao tiếp. Bảng 4.2 tóm tắt các mode theo mục đích giao tiếp.

Bảng 2.27 Các mode giao tiếp của LCD

HD44780U có 3 loại bộ nhớ, đó là bộ nhớ DDRAM dữ liệu cần được hiển thị, bộ nhớ CGROM chứa bộ font tạo ra ký tự và bộ nhớ CGRAM chứa bộ font tạo ra các symbol tùy chọn.

2.4.3.1 Vùng nhớ DDRAM

DDRAM là bộ nhớ tạm chứa các ký tự cần hiển thị lên LCD, bộ nhớ này gồm 80 ô được chia thành 2 hàng, mỗi ô có độ rộng 8 bit và được đánh số từ 0 đến 39 cho dòng 1, từ 64 đến 103 cho dòng 2. Mỗi ô nhớ tương ứng với 1 ô trên màn hình LCD. Đối với LCD 16x2 chỉ có thể hiển thị tối đa 32 ký tự vì thế có một số ô nhớ của DDRAM không được sử dụng làm ô hiển thị.

Trong hình 4.3 cho thấy chỉ có 16 ô nhớ từ 0 đến 15 và 16 ô nhớ từ 64 đến 79 là được hiển thị trên LCD. Vì thế muốn hiển thị một ký tự nào đó trên LCD thì chỉ cần viết ký tựđó vào DDRAM ở 1 trong 32 địa chỉ trên. Các ký tự nằm ngoài 32 ô nhớ trên sẽ không được hiển thị, tuy nhiên vẫn không bị mất đi, chúng có thểđược dùng trong các mục đích khác nếu cần thiết.

2.4.3.2 Vùng nhớ CGROM

CGROM là vùng nhớ cố định định nghĩ font cho các ký tự. người lập trình không trực tiếp truy xuất đến vùng nhớ này mà chip HD44780U sẽ tự thực hiện khi có yêu cầu ddcj font để hiển thị. Một điều đáng lưu ý là địa chỉ font của mỗi ký tự vùng nhớ CGROM chính là mã ASCII của ký tự đó. Ví dụ như ký tự ‘a’ có mã ASCII là 97, tham khảo tổ chức của vùng nhớ CGROM trong hình 4 nhận thấy rằng địa chỉ font của ‘a’ là 01100001=97.

CGROM và DDRAM được tự động phối hợp trong quá trình hiển thị của LCD. Giả sử chúng ta muốn hiển thị ký tự ‘a’ tại vị trí đầu tiên của dòng thứ 2 LCD thì các bước thực hiện như sau: trước hết ta biết rằng vị trí đầu tiên của dòng 2 có địa chỉ là 64 trong bộ nhớ DDRAM, vì thế chúng ta sẽ ghi vào ô nhớ có địa chỉ 64 một giá trị là 97 mã ASCII của ký tự ‘a’. Tiếp theo, chip HD44780U đọc giá trị 97 này và coi nhưđịa chỉ của vùng nhớ CGROM, nó sẽ tìm đến vùng nhớ CGROM có địa chỉ 97 và đọc bảng font đã được định nghĩa sẵn ởđây, sau đó xuất bản font này ra các “chấm” trên màn hình LCD tại vị trí đầu tiên của dòng 2 trên LCD. Đây chính là cách mà 2 bộ nhớ DDRAM và CGROM phối hợp với nhau để hiển thị các ký tự. Như mô tả, công việc của người lập trình điều khiển LCD tương đối đơn giản, đó là viết mã ASCII vào bộ nhớ DDRAM tại đúng vị trí được yêu cầu, bước tiếp theo sẽ do HD44780U đảm nhiệm.

2.4.3.3 Vùng nhớ CGRAM

CGRAM là vùng nhớ chứa các symbol do người dùng tự định nghĩa, mỗi sumbol có kích thước 5x8 và được dành cho 8 ô nhớ 8 bit. Các symbol thường được định nghĩa trước và được gọi hiển thị khi cần thiết. Vùng nhớ chứa tất cả 64 ô nhớ nên có tối đa 8 symbol có thểđược định nghĩa.

2.4.4 Tập lệnh của LCD

2.4.4.1 Nhóm lệnh thường xuyên sử dụng trong lúc hiển thị LCD

-Clear display – xóa LCD: lệnh này xóa toàn bộ nội dung trong DDRAM và vì thế xóa toàn bộ hiển thị trên LCD. Lệnh này là 1 lệnh ghi Intruction nên chân RS phải được reset về 0 trước khi ghi lệnh này lên LCD.

-Cursor home – đưa con trỏ về đầu dòng, dòng 1 của LCD: lệnh này thực hienj đưa con trỏ về vị trí đầu tiên của bộ nhớ DDRAM, vì thế nếu sau lệnh này một biến được đưa vào DDRAM thì biến này sẽ nằm ở vị trí đầu tiên (1;1). RS cũng phải bằng 0 trước khi ghi lệnh. (adsbygoogle = window.adsbygoogle || []).push({});

-Set DDRAM address – Định vị trí con trỏ cho DDRAM: di chuyển con trỏ đến 1 vị trí tùy ý trong DDRAM và vì thế có thể được dùng để định vị trí hiển thị trên LCD. Để thực hiện lệnh này cần phải reset RS=0. Bit MSB của mã lệnh (D7) phải bằng 1 , 7 bit còn lại của mã lệnh chính là địa chỉ DDRAM muốn di chuyển đến.

-Write to CGRAM or DDRAM – ghi dữ liệu vào CGRAM hoặc DDRAM: vì đây không phải là lệnh Intruction mà là một lệnh ghi dữ liệu nên chân RS cần phải được set lên 1 trước khi ghi lệnh vào LCD. Lệnh này cho phép ghi mã ASCII của một ký tự cầ hiển thị vào thanh ghi DDRAM.

2.4.4.2 Nhóm lệnh thường chỉ thực hiện 1 lần trong khi khởi động LCD

-Entry mode set – xác lập các hiển thị liên tiếp cho LCD: lệnh này chỉ ra cách hiển thị liên tiếp các ký tự trên LCD một cách liên tục. đây là lệnh Intruction nên RS=0, 5 bit cao D7:D3=00000, bit D2=1, hai bit còn lại D1:D0 chứa mã lệnh để lựa chọn 1 trong 4 cách hiển thị. Trong đó bit D1 chứa I/D và D0 chứa S. Nếu I/D=1 là hiển thị tăng tức là ký tự sau sẽ hiển thị bên phải ký tự trước, I/D=0 là hiển thị giảm, tức ký tự sau hiển thị bên trái ký tự trước. S là shift, nếu S=1, thì các ký tụ trước đó sẽđược đẩy đi, ký tựu sau chiếm chỗ ký tự trước, ngược lại nếu S=0 thì vị trí hiển thị của các ký tự trước đó không thay đổi.

Có thể tóm tắt 4 mode như sau:

D7:0=00000101: hiển thị giảm và dịch. D7:0=00000110: hiển thị tăng và không dịch. D7:0=00000111: hiển thị tăng và dịch.

- Display on/ off control – xác lập cách hiển thị cho LCD: lệnh này bao gồm các thông số cho phép LCD hiển thị, cho phép hiển thị cursor và mở tắt blinking. Đây là một lệnh Intruction nên RS=0. Mã lệnh cho lệnh này có dạng 00001DCB, trong đó D (Display) cho phép hiển thị LCD nếu mang giá trị 1, C (cursor) bằng 1 thì cursor sẽđược hiển thị và B là blinking cho cursor tại vị trí hiển thị. Blinking là dạng 1 ô đen nhấp nháy tại vịu trí ký tựđang hiển thị.

-Function set – xác lập chức năng cho LCD: đây là lệnh thiết lập phương thức giao tiếp với LCD, kích thước font chữ và số lượng line xủa LCD. RS cũng phải bằng 0 khi sử dụng lệnh này. Mã lệnh function set có dạng 001DLNFxx. Trong đó nếu DL=1 (DL: data length) thì mode giao tiếp 8 bit, nếu DL=0 thì mode giao tiếp 4 bit. N quy định số dòng của LCD, N=1 thì LCD 2 dòng còn N=0 thì LCD có 1 dòng. F là kích thước font chữ, F=1 thì font 5x10 được hiển thị, F=0 thì font chữ 5x8 được hiển thị. Hai bit thấp được gán tùy ý.

2.4.5 Phương thức giao tiếp với LCD

2.4.5.1 Giao tiếp 8 bit

Nếu bit DL trong lệnh Function set bằng 1 thì mode 8 bit được sử dụng. để sử dụng mode 8 bit tất cả các chân dữ liệu từ D7:D0 (từ chân 7 đên chân 14) phải được nối với 1 port của chip bên ngoài. Ưu điểm phương pháp này là dữ liệu được đọc và ghi rất nhanhvà đơn giản chip điều khiển chỉ cần xuất hoặc nhận dữ liệu trên 1 port. Tuy nhiên phương pháp này có nhược điểm là tổng số chân dành cho giao tiếp LCD quá nhiều, nếu tính cả 3 chân điều khiển thì phải cần đến 11 chân.

2.4.5.2 Giao tiếp 4 bit

LCD cho phép giao tiếp với bộ điều khiển ngoài theo chếđộ 4 bit. Trong chế độ này, các chân D0:D3 của LCD không được sử dụng, chỉ có 4 chân D4:D7 được kết nối với chip điều khiển ngoài. Các Intruction và data 8 bit sẽ được ghi và đọc bằng cách chia 2 phần, mỗi phần 4 bit được giao tiếp thông qua 4 chân D4:D7. 4 bit

cao được xử lý trước, 4 bit thấp được xử lý sau. Ưu điểm lớn nhất của mode này là tối thiểu đường giao tiếp dùng cho LCD, tuy nhiên việc đọc và ghi khó khăn hơn.

2.5 TỔNG QUAN VỀ DS1820

2.5.1 Giới thiệu sơ lược về DS1820

Linh kiện DS1820 là một sản phẩm của công ty Dallas (Hoa Kỳ), đây cũng một công ty đóng góp nhiều vô việc ra đời Bus một dây và các cảm biến một dây.

2.5.2 Những đặc tính chung

-Sử dụng giao diện một dây nên chỉ cần 1 dây để truyền thông. -Mỗi thiết bị có một mã 64 bit duy nhất được cất giữ trong ROM. -Không cần thêm linh kiện ngoài.

- Ứng dụng đơn giản hóa nhiệt độđo được.

-Có thể cấp nguồn bằng chân dữ liệu. Phạm vi cấp nguồn từ 3V đến 5,5V. -Dải đo nhiệt độ từ -550C đến +1250C ( -67 0F đến 257 0F ).

-Chênh lệch +-0.50C từ -100C đến 850C. - Độ phân giải khi đo nhiệt độ là 9bit. -Chuyển đổi nhiệt độ trong 750ms. - Định hình để báo những thiết bịđặt.

-Báo lệnh xác định tìm kiếm và địa chỉ những thiết bị mà có nhiệt độ bên ngoài được giới hạn bởi chương trình ( điều kiện để báo động nhiệt độ ).

-Úng dụng để điều khiển nhiệt độ, trong hệ thống công nghiệp, sản phẩm khách hàng, nhiệt kế hoặc bất kỳ hệ thống có cảm biến nhiệt nào.

-Dòng tiêu thụ tại chếđộ nghỉ cực nhỏ nên tiết kiệm được năng lượng.

2.5.3 Sơđồ chân

- Chân GND: Chân nối đất. - Chân DQ: Chân dữ liệu vào/ra. - Chân VDD: Chân cấp nguồn. - Chân NC: Chân không kết nối.

-

Hình 2.27: Hình dạng và sơđồ chân của DS1820

2.5.4 Sự mô tả (adsbygoogle = window.adsbygoogle || []).push({});

DS1820 cho phép đo nhiệt độ bách phân 9bit và có một hàm báo động cho người dùng sử dụng chương trình thấp hơn và kích trigger cao hơn. DS1820 truyền thông qua một bit một dây với một đường tín hiệu duy nhất (kể cả đất) để truyền thông với một bộ vi xử lý trung tâm. Nó có phạm vi nhiệt độ từ -550C đến +1250C và có thể chính xác đến 0,50C trong phạm vi -100C đến +850C. Ngoài ra DS1820 có thể nhận nguồn từ chân dữ liệu, mà không cần phải cấp nguồn riêng từ bên ngoài.

Mỗi DS1820 có một mã tuần tự 64 bit duy nhất, cho phép nhiều DS1820 có thể cùng kết nối với một bus 1 wire, bởi vậy thật đơn giản để sử dụng một bộ vi xử lý đểđiều khiển nhiều cảm biến DS1820 trong một vùng lớn. Những ứng dụng cho những điều này bao gồm điều khiển HVAC, nhiệt độ được theo dõi bởi khối hệ thống bên trong, thiết bị hoặc máy móc, hệ thống kiểm tra và điều khiển quá trình.

2.5.5 Sơđồ khối DS1820

Hình 2.28 cho thấy sơđồ khối của DS1820. Bộ nhớ ROM chứa mã tuần tự 64 bit của thiết bị. bộ nhớ so sánh chứa 2 byte giá trị nhiệt độ tạm thời tại ngõ ra của

cảm biến. Ngoài ra việc so sánh cung cấp đến địa chỉ 1 byte cao hơn và thấp hơn giá trị báo động (TH và TL). Giá trị TH và TL được đặt trên thanh ghi bộ nhớ cảm biến, chúng sẽ giữ dữ liệu khi thiết bịđược cấp nguồn.

DS1820 được hãng Dallas sử dụng cho việc truyền thông bus 1 dây và cảm biến 1 dây. Trên đường truyền điều khiển cần sử dụng một điện trở kéo lên một khi tất cả tín hiệu đều được liên kết tới bus 3 trạng thái hay PORT mở. trong hệ thống này, bộ vi xử lý xác định và những địa chỉ thiết bị của bus trên sử dụng mã cảm biến 64 bit. Bởi vì mỗi cảm biến có một mã định dạng duy nhất , số cảm biến có thể định địa chỉ trên 1 bus là không giới hạn. Cảm biến 1 dây bao gồm chi tiết những lệnh và những rãnh thời gian bao trùm trong hệ thống bus 1 dây của datasheet này.

Đặc tính khác của DS1820 l không cần có thêm đường dây riêng để cấp điện áp nguồn. Nguồn thay vào đó được cung cấp thông qua điện trở kéo lên vào chân DQ khi bus ở mức cao. Tín hiệu bus ở mức cao cũng đòi hỏi giá trị tụ bên trong CPP, rồi sau đó cung cấp nguồn đến cảm biến khi bus ở mức thấp. Phương pháp này được ví như là nguồn kí sinh, DS1820 cũng có thể nhận nguồn bởi VDD.

Hình 2.28: Sơđồ khối DS1820

2.5.6 Thao tác và cách đo nhiệt độ

Hoạt động của DS1820 là nó trực tiếp đưa tới phần tử cảm biến nhiệt độ. Ngõ ra của phần tử cảm biến nhiệt độ có 9 bit quyết định. Nguồn cấp vào DS1820 ở trạng thái chờ, bắt đầu một phép đo nhiệt độ và tín hiệu từ tương tự chuyển sang tín

Một phần của tài liệu thiết kế và thi công mạch đo và cảnh báo nhiệt độ dùng sóng rf, giao tiếp máy tính và lưu trữ dùng mmc (Trang 48 - 59)