1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đo nhiệt độ và đặt giờ tưới nước cho vườn

48 206 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 2,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TÌM HIỂU CÁC LINH KIỆN THIẾT BỊ TRONG ĐỀ TÀI : Đề tài có sử dụng một số linh kiện điện tử là các IC và MCU cùng một số chuẩn giao tiếp cơ bản như USART, I2C, cảm biến được sử dụng như L

Trang 1

Học Viện Công Nghệ Bưu Chính Viễn Thông

Cơ sở tại thành phố Hồ Chí Minh

ĐỒ ÁN MÔN HỌC

Môn học: Kĩ thuật ghép nối và thiết bị ngoại vi

Đề tài : đo nhiệt độ và đặt giờ tưới nước cho vườn

Giáo viên hướng dẫn : Ths Phạm Thế Duy

Họ và tên sinh viên:

1 Trịnh Phi Hùng MSSV : 409190009

2 Nguyễn Đăng Khoa MSSV : 409190011

Hồ chí minh năm 2013

- -

Trang 2

MỤC LỤC

trang

Lời nói đầu

Mô tả công việc và lý do chọn đề tài:

1 Lý do chọn đề tài

2 Mô tả đề tài

Tìm hiểu linh kiện và các thiết bị trong đề tài

1 MCU Atmega32

a Đặc điểm

b Các I/O

c Chức năng ADC

d Giao tiếp sử dụng I2C

e Giao tiếp USART

2 IC thời gian thực DS1307

a Cấu tạo ngoài và đặc điểm

b Các thanh ghi của IC

c Giao tiếp I2C với AVR

3 Cảm biến độ ẩm DHT-11

a Đặc điểm kỹ thuật và cấu tạo chân linh kiện b Nguyên lý hoạt động 4 Cảm biến nhiệt độ LM35 a Đặc điểm kỹ thuật và cấu tạo chân linh kiện b Nguyên lý hoạt động

5 LCD 1602

a Đặc điểm và cấu tạo ngoài LCD 1602

b Các hàm điều khiển LCD 6 Truyền nhận dữ liệu qua cổng nối tiếp a Cấu trúc cổng nối tiếp b Cổng RS-232 trên PC c Truyền dữ liệu d Nhận dữ liệu

7 IC chuyển đổi tín hiệu USART-RS-232 MAX 232

a Đặc điểm và sơ đồ chân IC MAX 232

b Nguyên lý hoạt động 8 USB-COM với PL2303 a Đặc điểm và sơ đồ chân IC PL2303 b Nguyên lý hoạt động

9 Kết nối mạng RS-485 a Khái niệm đa mạng b Chuẩn RS-485 c Một số vấn đề liên quan đến RS-485 d Các kiểu truyền nhận trong mạng RS-485

Trang 3

Thiết kế phần mềm

1 Giải thuật cho máy tính

2 Giải thuật cho vi điều khiển

a Lưu đồ chương trình chính

b Chương trình hiển thị thời gian và nhiệt độ

c Giải thuật hiển thị giờ tưới hằng ngày

d Giải thuật chỉnh thời gian thực

Kết quả thi công

1 Hình ảnh

2 Hạn chế

3 Hướng giải quyết tiếp theo

Trang 4

Lời nói đầu

Với một lượng lớn dân số trong nước là nông dân và những năm gần đây các mô hình như VAC, VACR, trang trại, nhà kính, … đã được các hộ dân quy hoạch với diện tích có thể lên đến hàng trăm hecta, ngoài ra các nhân lực làm trong ngành nông nghiệp thường đã cao tuổi Khi đó gánh nặng công việc đã đặt ra làm sao có một mô hình tưới cây, rau, vườn ươm… một cách hoàn toàn tự động hoặc bán tự động đã là mục tiêu cho chúng em chọn đề tài này Hi vọng với mô hình tưới cây sẽ giảm được phần nào công việc cho các hộ gia đình và nâng cao năng suất cây trồng, đạt được giá trị thương phẩm cao hơn

Tuy nhiên do hạn chế của đề tài chỉ dừng lại ở mức độ nghiên cứu đơn giản và tìm hiểu nên nhóm em mong được sự hướng dẫn và góp ý thêm để chúng em hoang thành đề tài trong tương lai

“Không thầy đố mày làm nên ” Em xin cảm ơn tất cả các thầy, cô trong khoa điện tử 2 đã giúp đỡ chúng em trong thời gian học tập tại trường và đã góp ý cho em nhưng ý kiến quý báu Đặc biệt em xin cảm ơn thầy Phạm Thế Duy và thầy Tôn Thất Bảo Đạt là giáo viên bộ môn và giao viên hướng dẫn đã khuyến khích và giúp đỡ chúng em trong quá trình thiết kế và thi công đề tài

Trang 5

I MÔ TẢ LÝ DO VÀ MỤC TIÊU CÔNG VIỆC:

1 Lý do chọn đề tài:

- Nhóm em chọn đề tài mô hình tưới cây tự động và cảm biến nhiệt độ và độ ẩm với lý do:

- Công việc nhà nông rất vất vả và nhiều công đoạn

- Xu hướng trồng ra oan toàn trên những cánh đồng lớn đang được triển khai và nhân rộng ở khắp các tỉnh thành

- Đối tượng làm nông chủ yếu là người lớn tuổi vì vậy muốn giảm gánh nặng công việc cho khi làm nông

- Mô hình có thể áp dụng ở các cánh đồng rau, các vườn cây ăn quả hoặc các vườn cây công nghiệp

2 Mô tả đề tài:

- Mô hình hoạt động dựa trên đồng hồ thời gian thực, độ chính xác cao, từ đó đặt giờ tưới và các thông số khác (lần tưới, thời lượng tưới) một cách chính xác

- Hoạt động hoàn toàn tự động, chỉ cần đặt một lần và hoạt động cho các lần kế tiếp

- Các cảm biến độ ẩm và nhiệt độ giúp thu thập thông tin vườn cây để có các phương án tưới phù hợp

- Có giao tiếp máy tính để có thể cập nhập thông tin về vườn cây, rau qua giao diện máy tính

LCD 1602 LM35

1/0

Vcc,Vref,GND

1/0

Trang 6

- Các sensor: dùng làm chức năng đo các thông số môi trường rồi gửi các tín hiệu tương tự tới

bộ ADC của MCU để chuyển đổi và hiển thị nó mục đích kiểm soát và điều khiển

- Các phím bấm: dùng khi ta có thao tác điều khiển và cài đặt các thông số bằng tay trên mạch

- Lcd 1602 : hiển thị các thông số(thời gian, cài đặt tưới, nhiệt độ…) khi thực hiện đặt thông số bằng tay

- Vòi tưới: được dùng để đóng mở cái relay khi đến thời gian tưới định sẵn

- Máy tính: giao tiếp với các mạch bên ngoài và điều khiển các mạch Nó còn được dùng để quản lý các vườn khác nhau

- Nguồn: (nguồn cho mạch): sử dụng điện áp DC5V để các IC, MCU, lcd hoạt động

II TÌM HIỂU CÁC LINH KIỆN THIẾT BỊ TRONG ĐỀ TÀI :

Đề tài có sử dụng một số linh kiện điện tử là các IC và MCU cùng một số chuẩn giao tiếp cơ bản như USART, I2C, cảm biến được sử dụng như LM35, cảm biến độ ẩm, hiển thị bằng LCD 1602L, giao tiếp máy tính có IC MAX232, IC chuyển đổi USB-COM hoặc cable chuyên dụng

1 MCU ATmega32:

a Đặc điểm:

- Đây là dòng vi điều khiển của hãng Atmel có nhiều tính năng nổi trội

- Cấu trúc tập lệnh thu gọn RISC, đơn giản, dể lập trình

- Tiết kiệm năng lượng

- Có 32 chân I/O, 4 port xuất nhập dữ liệu đa chức năng

- 32 thanh ghi đa dụng

- Bộ nhớ 32Kb bộ nhớ Flash lập trình được, 1024Byte EEPROM

- Tốc độ tối đa lên tới 16MHz, có thể sử dụng cả dao động nội chip và thạch anh ngoài

- 2 bộ Timer/counter 8 bit, một bộ so sánh

- 1 bộ timer/counter 16 bit

- 4 kênh PWM

- 8 kênh ADC hỗ trợ độ phân giải 10 bit và 8 bit

- Các giao tiếp hỗ trợ như: I2C, SPI, USART

- Điện áp hoạt động 4,5-5 V

- Sơ đồ chân và đóng gói: loại 40 chân PDIP và loại TQFP/MLF (linh kiện dán)

Trang 7

Chân số Tên chân Chức năng

1-8 PORT B Port xuất nhập B, ngoài ra còn có chức năng là giao tiếp SPI

9 RESET Chân reset của atmega 32, chân này được kích khi có một tích cực mức

thấp tác động lên, khi đó atmega32 sẽ hoạt động lại

động ngoài

Hai chân gắn thạch anh dao động ngoài của chip khi sử dụng, muốn sử dụng được dao động ngoài ta cần fuse bít để chip được set sử dụng thạch anh

Trang 8

14-21 PORT D Port truy xuất I/O, ngoài ra còn có chức năng khác như:

- Pd0-pd1: chân rxd và txd sử dụng giao tiếp USART

- Pd2-pd3: chân ngắt ngoài

- Pd4-pd5: ngõ ra so sánh 22-29 Port C Port truy xuất I/O, ngoài ra còn có chức năng khác như:

- Pc0-pc1: chân giao tiếp i2c

- 30-31 Chân nguồn Chân acvv và gnd

32 Vref Chân điện áp so sánh (dùng trong chế độ adc)

33-40 Port A Port truy xuất I/O, ngoài ra còn có chức năng là 8 kênh adc

b Các I/O:

- Ngõ ra cực máng hở

- ATmega32 có 4 PORT xuất nhập dữ liệu là: A, B,C,D

- Có 3 thanh ghi chức năng để lập trình vào ra cho các chân I/O là: DDR, PIN, PORT

- Cấu hình I/O theo bảng sau:

- Thanh ghi PINx để nhận các tín hiệu vào

c Chức năng ADC:

Trang 9

- 8 kênh ADC đơn

- Tốc độ chuyển đổi 13μs - 260μs

- 0 – Vcc ADC dãi điện áp ngõ vào

- Ngắt ADC khi chuyển đổi xong

-

Có 4 thanh ghi trong AVR để dùng chức năng ADC

- ADMUX: thanh ghi 8 bit dùng để chọn điện áp tham chiếu cho ADC, 1 trong 3 nguồn điện áp tham chiếu có thể chọn là : điện áp từ chân VREF, điện áp tham chiếu nội 2,56V hoặc điện áp VCC theo bảng sau:

- ADCSRA (ADC Control and Status Register A): là thanh ghi điều khiển hoạt động và chứa trạng thái của module ADC

 Bit 7 - ADEN(ADC Enable): viết giá trị 1 vào bit này tức bạn đã cho phép module ADC được

sử dụng Tuy nhiên khi ADEN=1 không có nghĩa là ADC đã hoạt động ngay, bạn cần set một bit khác lên 1 để bắt đầu quá trình chuyển đổi, đó là bit ADSC

 Bit 6 - ADSC(ADC Start Conversion): set bit này lên 1 là bắt đầu khởi động quá trình chuyển đổi Trong suốt quá trình chuyển đổi, bit ADSC sẽ được giữ nguyên giá trị 1, khi quá trình chuyển đổi kết thúc (tự động), bit này sẽ được trả về 0 Vì vậy bạn không cần và cũng không nên viết giá trị 0 vào bit này ở bất kỳ tình huống nào Để thực hiện một chuyển đổi, thông

thường chúng ta sẽ set bit ADEN=1 trước và sau đó set ADSC=1

 Bit 4 – ADIF(ADC Interrupt Flag): cờ báo ngắt Khi một chuyển đổi kết thúc, bit này tự động được set lên 1, vì thế người dùng cần kiểm tra giá trị bit này trước khi thực hiện đọc giá trị chuyển đổi để đảm bảo quá trình chuyển đổi đã thực sự hoàn tất

 Bit 3 – ADIE(ADC Interrupt Enable): bit cho phép ngắt, nếu bit này được set bằng 1 và bit cho phép ngắt toàn cục (bit I trong thanh ghi trạng thái của chip) được set, một ngắt sẽ xảy ra khi một quá trình chuyển đổi ADC kết thúc và các giá trị chuyển đổi đã được cập nhật (các giá trị chuyển đổi chứa trong 2 thanh ghi ADCL và ADCH)

 Bit 2:0 – ADPS2:0(ADC Prescaler Select Bits): các bit chọn hệ số chia xung nhịp cho ADC ADC, cũng như tất cả các module khác trên AVR, cần được giữ nhịp bằng một nguồn xung clock Xung nhịp này được lấy từ nguồn xung chính của chip thông qua một hệ số chia Các bit

Trang 10

ADPS cho phép người dùng chọn hệ số chia từ nguồn clock chính đến ADC Tham khảo bảng

4 để biết cách chọn hệ số chia

- ADCL và ADCH (ADC Data Register): hai thanh ghi chứa giá trị chuyển đổi Do độ phân giải của module ADC trên AVR là 10 bit nên cần hai thanh ghi chứa giá trị chuyển đổi Do tổng hai thanh ghi là 16 bit nên bít ADLAR trong thanh ghi ADMUX quy định cách ghi kết quả vào hai thanh ghi này:

ADLAR =0:

ADLAR =1:

d Giao tiếp sử dụng I2C:

- Giao thức truyền thông đơn giản, đường bus chỉ cần hai dây scl và sda

- 7 bit địa chỉ cho phép lên tới 128 thiết bị slave

- Tốc độ truyền dữ liệu lên tới 400kHz

Giao tiếp I2C là một ứng dụng hỗ trợ trong nhiều dòng vi xử lí, nó cho phép thiết kế hệ thống kết nối lên đến 128 thiết bị mà chỉ cần hai dây bus, một dây clock (scl) và một dây data (sda)

Trang 11

- Master: là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao tiếp và tạo xung giữ nhịp trên đường SCL

- Slave : là chip có địa chỉ cố định, được gọi bởi master và phục vụ yêu cầu của master

- Các thanh ghi sử dụng giao tiếp I2C trên AVR gồm 5 thanh ghi gồm có thanh ghi tốc độ giữ nhịp TWBR, thanh ghi điều khiển TWCR, thanh ghi trạng thái TWSR, thanh ghi địa chỉ

TWAR, thanh ghi dữ liệu TWDR

- TWBR: quy định tốc độ phát xung giữ nhịp trên đường SCL của chip master

Tốc độ xung giữ nhịp tính theo công thức:

TWBR : giá trị trong thanh ghi TWBR

TWPS : giá trị hai bit TWPS1 và TWPS0 nằm trong thanh thi trạng thái TWSR

- TWCR: thanh ghi điều khiển hoạt động của I2C:

Thanh ghi này gồm 8 bít để điều khiển các hoạt động của I2C:

- TWSR: thanh ghi trạng thái 8 bit, trong đó có 5 bít chứa code trạng thái của TWI và 3 bit lựa

chọn hệ số prescaler

Trang 12

- TWDR: thanh ghi dữ liệu chính của TWI Trong quá trình nhận dữ liệu được lưu trong

TWDR, trong quá trình gửi dữ liệu sẽ được lấy và truyền trên đường SDA

- TWAR: thanh ghi chứa các địa chỉ của các chip slave

e Giao tiếp USART:

- Chế độ truyền song công (vừa truyền vừa nhận)’

- Chế độ đồng bộ và cận đồng bộ

- Hỗ trợ khung truyền nối tiếp với 5,6,7,8 hoặc 9 bit dữ liệu và 1,2 stop bit

- Báo tràn dữ liệu

Có 5 thanh ghi được dùng trong giao tiếp USART là:

- UDR: thanh ghi dữ liệu, chứa các dữ liệu nhận và phát đi của USART, thực chất nó là hai thanh ghi TXB và RXB có chung địa chỉ

- UCSRA: đây là thanh ghi quan trọng điều khiển USART

Trang 13

Thanh ghi UCSRA gồm các bit trạng thái như bit báo quá trình nhận kết thúc RXC, truyền kết thúc TXC, báo thanh ghi dữ liệu trống UDRE, khung truyền có lỗi FE, dữ liệu tràn DOR, kiểm tra

parity có lỗi PE

- UCSRB: cũng là một thanh ghi điều khiển USART quan trọng:

 RXCIE (Receive Complete Interrupt Enable) là bit cho phép ngắt khi quá trình nhận kết thúc Việc nhận dữ liệu truyền bằng phương pháp nối tiếp không đồng bộ thường được thực hiện thông qua ngắt, vì thế bit này thường được set bằng 1 khi USART được dung nhận dữ liệu

 TXCIE (Transmit Complete Interrupt Enable) bit cho phép ngắt khi quá trình truyền kết thúc

 UDRIE (USART Data Register Empty Interrupt Enable) là bit cho phép ngắt khi thanh ghi dữ liệu UDR trống

 RXEN (Receiver Enable) là một bit quan trọng điều khiển bộ nhận của USART, đề kích hoạt chức năng nhận dữ liệu bạn phải set bit này lên 1

 TXEN (Transmitter Enable) là bit điều khiển bộ phát Set bit này lên 1 bạn sẽ khởi động bộ phát của USART

 UCSZ2 (Chracter size) bit này kết hợp với 2 bit khác trong thanh ghi UCSRC quy định

độ dài của dữ liệu truyền/nhận Chúng ta sẽ khảo sát chi tiết khi tìm hiểu thanh ghi UCSRC

 RXB8 (Receive Data Bit 8) gọi là bit dữ liệu 8 Bạn nhớ lại rằng USART trong AVR

có hỗ trợ truyền dữ liệu có độ dài tối đa 9 bit, trong khi thanh ghi dữ liệu là thanh ghi 8 bit Do đó, khi có gói dữ liệu 9 bit được nhận, 8 bit đầu sẽ chứa trong thanh ghi UDR, cần có 1 bit khác đóng vai trò bit thứ chín, RXD8 là bit thứ chín này Bạn chú ý là các bit được đánh số từ 0, vì thế bit thứ chín sẽ có chỉ số là 8, vì lẽ đó mà bit này có tên là RXD8 (không phải RXD9)

 TXB8 (Transmit Data Bit 8), tương tự như bit RXD8, bit TXB8 cũng đóng vai trò bit thứ 9 truyền thông, nhưng bit này được dung trong lúc truyền dữ liệu

- UCSRC: thanh ghi này dùng để quy định các thông số về khung truyền và chế độ truyền

 UMSEL (USART Mode Select) là bit lựa chọn giữa 2 chế độ truyền thông đồng bộ và không đồng bộ Nếu UMSEL=0, chế độ không đồng bộ được chọn, ngược lại nếu UMSEL=1, chế độ đồng bộ được kích hoạt Xem bảng sau:

Trang 14

 Hai bit UPM1 và UPM0( Parity Mode) được dùng để quy định kiểm tra pariry Nếu UPM1:0=00, parity không được sử dụng (mode này khá thông dụng), UPM1:0=01 không được sử dụng, UPM1:0=10 thì parity chẵn được dùng, UPM1:0=11 parity lẻ được sử dụng xem bảng sau:

 USBS (Stop bit Select), bit Stop trong khung truyền bằng AVR USART có thể là 1 hoặc 2 bit, nếu USBS=0 thì Stop bit chỉ là 1 bit trong khi USBS=1 sẽ có 2 Stop bit được dùng

 Hai bit UCSZ1 và UCSZ2 (Character Size) kết hợp với bit UCSZ2 trong thanh ghi UCSRB tạo thành 3 bit quy định độ dài dữ liệu truyền Bảng 2 tóm tắt các giá trị có thể

có của tổ hợp 3 bit này và độ dài dữ liệu truyền tương ứng

 UCPOL (Clock Pority) là bit chỉ cực của xung kích trong chế độ truyền thông đồng bộ nếu UCPOL=0, dữ liệu sẽ thay đổi thay đổi ở cạnh lên của xung nhịp, nếu UCPOL=1,

dữ liệu thay đổi ở cạnh xuống xung nhịp Nếu bạn sử dụng chế độ truyền thông không đồng bộ, hãy set bit này bằng 0

Trang 15

- UBRRL và UBRRH: hai thanh ghi thấp và cao quy định tốc độ baud

Trang 16

1,2 Chân dao động, gắn thạch anh dao động

3 Gắn nguồn PIN ngoài phòng khi mất nguồn nuôi

4,8 Chân nguồn Vcc và GND

5,6 Chân giữ xung nhịp và dữ liệu trong giao tiếp I2C

7 Chân cấp xung ra ngoài

- IC được hãng DALLAS sản xuất và giới thiệu IC thời gian thực (Real Timer Clock) có thể sử dụng để đếm thời gian (giờ, phút, giây), lịch (thứ, ngày, tháng, năm)

- Được thiết kế tới lịch của năm 2100

- 56-byte, dùng nguồn PIN ngoài phòng khi mất điện

- Giao tiếp I2C với vi điều khiển

b Các thanh ghi của IC:

- Ds1307 có 64 thanh ghi 8 bit đáng dấu từ địa chỉ 00H-3FH, chỉ 8 thanh ghi có chức năng đồng

hồ còn lại 56 thanh ghi còn lại có chức năng như bộ nhớ RAM của IC

- Ba thanh ghi đầu từ địa chỉ 00H- 02H có chức năng là đồng hồ gồm có : SECONDS,

Trang 17

Tổ chức các thanh ghi trong IC ds1307:

- Thanh ghi giây SECONDS: thanh ghi này là thanh ghi đầu tiên trong bộ nhớ của DS1307, địa chỉ của nó là 0x00 Bốn bit thấp của thanh ghi này chứa mã BCD 4-bit của chữ số hàng đơn vị của giá trị giây Do giá trị cao nhất của chữ số hàng chục là 5 (không có giây 60) nên chỉ cần 3 bit (các bit SECONDS 6:4) là có thể mã hóa được (số 5 =101, 3 bit) Bit cao nhất bit 7 trong thanh ghi này là 1 bit điều khiển có tên CH (Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô hiệu hóa, đồng hồ không hoạt động Vì vậy, nhất thiết phải reset bit này xuống 0 ngay từ đầu

- Thanh ghi phút MINUTES: có địa chỉ 0x01, chứa giá trị phút của đồng hồ Tương tự thanh ghi SECONDS, chỉ có 7 bit của thanh ghi này được dùng lưu mã BCD của phút, bit 7 luôn luôn bằng 0

- Thanh ghi giờ HOURS: có thể nói đây là thanh ghi phức tạp nhất trong DS1307 Thanh ghi này có địa chỉ 0x02 Trước hết 4-bits thấp của thanh ghi này được dùng cho chữ số hàng đơn vị của giờ Do DS1307 hỗ trợ 2 loại hệ thống hiển thị giờ (gọi là mode) là 12h (1h đến 12h) và 24h (1h đến 24h) giờ, bit6 xác lập hệ thống giờ Nếu bit6=0 thì hệ thống 24h được chọn, khi đó

2 bit cao 5 và 4 dùng mã hóa chữ số hàng chục của giá trị giờ Do giá trị lớn nhất của chữ số hàng chục trong trường hợp này là 2 (=10, nhị phân) nên 2 bit 5 và 4 là đủ để mã hóa Nếu bit6=1 thì hệ thống 12h được chọn, với trường hợp này chỉ có bit 4 dùng mã hóa chữ số hàng chục của giờ, bit 5 chỉ buổi trong ngày, AM hoặc PM Bit5 =0 là AM và bit5=1 là PM Bit 7 luôn bằng 0

- Thanh ghi thứ (DAY – ngày trong tuần): nằm ở địa chĩ 0x03 Thanh ghi DAY chỉ mang giá trị

từ 1 đến 7 tương ứng từ Chủ nhật đến thứ 7 trong 1 tuần Vì thế, chỉ có 3 bit thấp trong thanh ghi này có nghĩa

- Các thanh ghi còn lại có cấu trúc tương tự, DATE chứa ngày trong tháng (1 đến 31), MONTH chứa tháng (1 đến 12) và YEAR chứa năm (00 đến 99) Chú ý, DS1307 chỉ dùng cho 100 năm, nên giá trị năm chỉ có 2 chữ số, phần đầu của năm do người dùng tự thêm vào (ví dụ 20xx)

c Giao tiếp i2c với AVR:

- DS 1307 hoạt động với AVR ở chế độ slave

Trang 18

- Địa chỉ của ds1307 trong i2c là số nhị phân cố định 1101000 vì thế trong mạch này không thể tồn tại 2 IC ds1307, ta có thể sử dụng các hàm trong codevision để đọc giờ và lịch trong

ds1307 và đưa vào AVR xử lí

void rtc_get_time(unsigned char

*hour, unsigned char *min, unsigned

char *sec)

Đọc giá trị hiện tại của ds1307

void rtc_set_time(unsigned char

hour, unsigned char min, unsigned

char sec)

Cài đặt giờ , phút, giây cho ds1307

void rtc_get_date(unsigned char

*date, unsigned char *month,

unsigned char *year)

Cài đặt ngày, tháng, năm cho ds1307

3 Cảm biến độ ẩm DHT11:

a đặc điểm kĩ thuật và cấu tạo chân linh kiện:

- DHT11 có cấu tạo 4 chân như hình Nó sử dụng giao tiếp số theo chuẩn 1

Trang 19

Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:

+ Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại

+ Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo được

- Bước 1: gửi tín hiệu Start

+ MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian >18ms Trong Code mình để 25ms Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ

và độ ẩm

+ MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào

+ Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11

Trang 20

+ Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong 80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11 ko Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá trình giao tiếp của MCU với DHT

- Bước 2: đọc giá trị trên DHT11

+ DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó:

Byte 1: giá trị phần nguyên của độ ẩm (RH%)

Byte 2: giá trị phần thập phân của độ ẩm (RH%)

Byte 3: giá trị phần nguyên của nhiệt độ (TC)

Byte 4 : giá trị phần thập phân của nhiệt độ (TC)

Byte 5 : kiểm tra tổng

+ Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa

+ Đọc dữ liệu: Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1

về MCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và độ ẩm

Bit 0:

Bit 1:

Trang 21

Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên 1 Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồn tại 70us là 1 Do đó trong lập trình ta

bắt sườn lên của chân DATA, sau đó delay 50us Nếu giá trị

4 Cảm biến nhiệt độ LM35:

a Đặc điểm kĩ thuật và cấu tạo chân linh kiện:

- Sử dụng thang nhiệt giai Celsius (oC)

- Chân điện áp tham chiếu Vref sẽ được nối lên Vcc để tham chiếu cho tín hiệu analog đầu vào

- Kết nối chân 1 lên Vcc và chân 3 xuống GND Chân 2 thì cho vào 1 trong 6 chân ADC của MCU

Trang 22

- Lập trình cho MCU sử dụng chế độ ADC trong codevision

- Theo datasheet thì cứ 10mV ứng với 10C , ở 00C thì điện áp là 0V giá trị ADC là 0, với độ phân giải 8 bit thì giá trị ADC nằm trong khoảng 0-256 Nếu Vref = 5V thì ta có mỗi giá trị ADC = 5V/256 =19.53mV Vì vậy để tăng độ phân giải ADC thì ta giảm Vref

- Công thức tính giá trị: ADCx = (Vin.1024)/Vref

- Có hai chế độ 4 và 8 bit dữ liệu

- Sử dụng đèn nền LED khi trời tối

4 R/S, H/L chọn tín hiệu vào là lệnh hay dữ liệu

8,9,10,11,12,13,14 Các chân dữ liệu tương ứng từ D0-D7

b Các hàm điều khiển LCD

- Trong trương trình codevision có hỗ trợ đầy đủ các hàm để điều khiển và hiển thị LCD ở chế

độ 4 bit như:

Trang 23

void lcd_puts(char *str) Hiển thị tại vị trí hiện tại một chuỗi kí tự kiểu string

được lưu trên RAM void lcd_putsf(char flash *str) Hiển thị kí tự tại vị trí hiện tại được lưu trong bộ nhớ

Flash void lcd_clear Xóa màn hình đưa con trỏ về dòng 1 cột 1

6 Truyền nhận dữ liệu qua cổng nối tiếp

a Cấu trúc cổng nối tiếp:

Cổng nối tiếp là cổng dùng để truyền dữ liệu từ máy tính xuống các thiết bị ngoại vi, cổng nối tiếp

có các ưu điểm sau:

- Khoảng cách truyền xa hơn truyền song song

- Số dây liên kết dữ liệu ít( thông thường 2 dây)

- Mạch điện đơn giản

- Có thể dùng hồng ngoại để truyền nhận qua cổng nối tiếp

- Cho phép nối mạng

- Có thể ngắt kết nối khỏi mạng trong khi thiết bị đang hoạt động

Các thiết bị ghép nối được chia làm hai loại là: DTE(data terminal Enquipment) và DCE(data communication enquipment) DCE là các thiết bị trung gian như modem còn DTE là các thiết để thực hiện truyền hay nhận dữ liệu như là PLC, mạch điều khiển… Việc truyền nhận dữ liệu được thực hiện thông thường qua hai chân RxD và TxD, các tín hiệu còn lại còn gọi là các tín hiệu bắt

tay Khi dùng tín hiệu bắt tay chúng ta có thể kiểm soát đường truyền

Tín hiệu truyền theo chuẩn RS-232 được quy định mức logic 1 ứng với điện áp nằm trong

khoảng -3V đến -12V, mức logic 0 từ +-3V đến 12V và có khả năng cung cấp dòng từ 10mA tới

20mA Các cổng ra có chống chập mạch

Chuẩn RS-232 cho phép tốc độ truyền tới 20kbps nhưng nếu cáp đủ ngắn thì tốc độ có thể tới 115kbps

Các phương thức nối giữa DTE và DCE:

- Đơn công: truyền dữ liệu theo một hướng

- Bán song công: dữ liệu được truyền theo hai hướng nhưng tại một thời điểm chỉ có một

bên(máy phát/thu) được phép truyền

- Song công: dữ liệu được truyền đồng thời theo cả hai hướng

Định dạng khung truyền theo chuẩn RS-232 bao gồm:

- Start bit: bít nhận dạng khung truyền

- Data bít: bít dữ liệu 7-8 bít

- Parity bit: bít chẵn lẻ, dùng kiểm tra lỗi sai khung truyền

- Stop bit: bít kết thúc của khung truyền

Trang 24

Khi không truyền dữ liệu thì đường truyền sẽ ở trạng thái mark(điện áp -10V) Khi bắt đầu truyền thì DTE sẽ đưa ra xung start (10V) và sau đó lần lượt truyền data từ d0-d7 và parity, kết thúc

khung truyền là một stop bit(-10V) Định dạng tín hiệu truyền như hình sau:

Đặc tính kĩ thuật và các mức điện áp của chuẩn RS-232 được cho bới bảng sau:

Ngày đăng: 29/10/2016, 20:41

HÌNH ẢNH LIÊN QUAN

Bảng tính tốc độ Baud: - Đo nhiệt độ và đặt giờ tưới nước cho vườn
Bảng t ính tốc độ Baud: (Trang 15)
Sơ đồ một phát, một nhận của RS-485  Trong kiểu mẫu sử dụng cặp dây xoắn, hai điện trở đầu cuối R T - Đo nhiệt độ và đặt giờ tưới nước cho vườn
Sơ đồ m ột phát, một nhận của RS-485 Trong kiểu mẫu sử dụng cặp dây xoắn, hai điện trở đầu cuối R T (Trang 37)
Sơ đồ này việc truyền nhận được thực hiện bằng một cặp dây xoắn nên truyền nhận dữ liệu không  thể diễn ra đồng thời mà phải theo hình thức bán song công(half duplex), tại một thời điểm chỉ có một - Đo nhiệt độ và đặt giờ tưới nước cho vườn
Sơ đồ n ày việc truyền nhận được thực hiện bằng một cặp dây xoắn nên truyền nhận dữ liệu không thể diễn ra đồng thời mà phải theo hình thức bán song công(half duplex), tại một thời điểm chỉ có một (Trang 38)
Sơ đồ sử dụng nhiều bộ truyền nhận trong RS-485  Tương tự như trong sơ đồ hai bộ truyền nhận, hình thức truyền dữ liệu ở đâu là bán song công - Đo nhiệt độ và đặt giờ tưới nước cho vườn
Sơ đồ s ử dụng nhiều bộ truyền nhận trong RS-485 Tương tự như trong sơ đồ hai bộ truyền nhận, hình thức truyền dữ liệu ở đâu là bán song công (Trang 38)
Sơ đồ nguyên lý - Đo nhiệt độ và đặt giờ tưới nước cho vườn
Sơ đồ nguy ên lý (Trang 42)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w