Báo cáo môn: Hệ điều hành thời gian thực Bài 1: Thiết kế, mô phòng hệ thống đọc dữ liệu từ cảm biến nhiệt độ và cảm biến ánh sáng, hiển thị các tham số lên lcd


Bảng 3. Đặc điểm kỹ thuật Arduino Nano



tải về 3.37 Mb.
trang12/12
Chuyển đổi dữ liệu22.04.2022
Kích3.37 Mb.
#51705
1   ...   4   5   6   7   8   9   10   11   12
TieuLuanRTOS
RTOS-b4
Bảng 3. Đặc điểm kỹ thuật Arduino Nano

Arduino Nano

Thông số kỹ thuật

Số chân analog I/O

8

Cấu trúc

AVR

Tốc độ xung

16 MHz

Dòng tiêu thụ I/O

40mA

Số chân digital I/O

22

Bộ nhớ EEPROM

1 KB

Bộ nhớ Flash

32 KB of which 2 KB used by Bootloader

Điện áp ngõ vào

(7 – 12) Volts

Vi điều khiển

ATmega328P

Điện áp hoạt động

5V

Kích thước bo mạch

18 x 45 mm

Nguồn tiêu thụ

19mA

Ngõ ra PWM

6

SRAM

2KB

Cân nặng

7g



Hình 8. Arduino Nano


Hình 9. Sơ đồ chân Arduino Nano



Bảng 4. Chức năng các chân Arduino Nano

Thứ tự chân

Tên chân

Kiểu

Chức năng

1

D1 / TX

I / O

Ngõ vào/ra số Chân TX-truyền dữ liệu

2

D0 / RX

I / O

Ngõ vào/ra số Chân Rx-nhận dữ liệu

3

RESET

Đầu vào

Chân reset, hoạt động ở mức thấp

4

GND

Nguồn

Chân nối mass

5

D2

I / O

Ngõ vào/ra digital

6

D3

I / O

Ngõ vào/ra digital

7

D4

I / O

Ngõ vào/ra digital

8

D5

I / O

Ngõ vào/ra digital

9

D6

I / O

Ngõ vào/ra digital

10

D7

I / O

Ngõ vào/ra digital

11

D8

I / O

Ngõ vào/ra digital

12

D9

I / O

Ngõ vào/ra digital

13

D10

I / O

Ngõ vào/ra digital

14

D11

I / O

Ngõ vào/ra digital

15

D12

I / O

Ngõ vào/ra digital

16

D13

I / O

Ngõ vào/ra digital

17

3V3

Đầu ra

Đầu ra 3.3V (từ FTDI)

18

AREF

Đầu vào

Tham chiếu ADC

19

A0

Đầu vào

Kênh đầu vào tương tự kênh 0

20

A1

Đầu vào

Kênh đầu vào tương tự kênh 1

21

A2

Đầu vào

Kênh đầu vào tương tự kênh 2

22

A3

Đầu vào

Kênh đầu vào tương tự kênh 3

23

A4

Đầu vào

Kênh đầu vào tương tự kênh 4

24

A5

Đầu vào

Kênh đầu vào tương tự kênh 5

25

A6

Đầu vào

Kênh đầu vào tương tự kênh 6

26

A7

Đầu vào

Kênh đầu vào tương tự kênh 7

27

+5V

Đầu ra hoặc đầu vào

Đầu ra + 5V (từ bộ điều chỉnh On board) hoặc  + 5V (đầu vào từ nguồn điện bên ngoài)

28

RESET

Đầu vào

Chân đặt lại, hoạt động ở mức thấp

29

GND

Nguồn

Chân nối mass

30

VIN

Nguồn

Chân nối với nguồn vào













Hình 10. ICSP




Bảng 5. Chân ICSP

Tên pin Arduino Nano ICSP

Kiểu

Chức năng

MISO

Đầu vào hoặc đầu ra

Master In Slave Out

VCC

Đầu ra

Cấp nguồn

SCK

Đầu ra

Tạo xung cho

MOSI

Đầu ra hoặc đầu vào

Master In Slave In

RST

Đầu vào

Đặt lại, Hoạt động ở mức thấp

GND

Nguồn

Chân nối đất




  • Các chân: 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 và 16. Như đã đề cập trước đó, Arduino Nano có 14 ngõ vào/ra digital. Các chân làm việc với điện áp tối đa là 5V. Mỗi chân có thể cung cấp hoặc nhận dòng điện 40mA và có điện trở kéo lên khoảng 20-50kΩ. Các chân có thể được sử dụng làm đầu vào hoặc đầu ra, sử dụng các hàm pinMode (), digitalWrite () và digitalRead (). Ngoài các chức năng đầu vào và đầu ra số, các chân này cũng có một số chức năng bổ sung.

  • Chân 1, 2: Chân nối đất. Hai chân nhận RX và truyền TX này được sử dụng để truyền dữ liệu nối tiếp TTL. Các chân RX và TX được kết nối với các chân tương ứng của chip nối tiếp USB tới TTL.

  • Chân 6, 8, 9, 12, 13 và 14: Chân xung PWM. Mỗi chân số này cung cấp tín hiệu điều chế độ rộng xung 8 bit. Tín hiệu PWM có thể được tạo ra bằng cách sử dụng hàm analogWrite ().

  • Chân 5, 6: Ngắt. Khi chúng ta cần cung cấp một ngắt ngoài cho bộ xử lý hoặc bộ điều khiển khác, chúng ta có thể sử dụng các chân này. Các chân này có thể được sử dụng để cho phép ngắt INT0 và INT1 tương ứng bằng cách sử dụng hàm attachInterrupt (). Các chân có thể được sử dụng để kích hoạt ba loại ngắt như ngắt trên giá trị thấp, tăng hoặc giảm mức ngắt và thay đổi giá trị ngắt.

  • Chân 13, 14, 15 và 16: Giao tiếp SPI. Khi bạn không muốn dữ liệu được truyền đi không đồng bộ, bạn có thể sử dụng các chân ngoại vi nối tiếp này. Các chân này hỗ trợ giao tiếp đồng bộ với SCK. Mặc dù phần cứng có tính năng này nhưng phần mềm Arduino lại không có. Vì vậy, bạn phải sử dụng thư viện SPI để sử dụng tính năng này.

  • Chân 16: Led. Khi bạn sử dụng chân 16, đèn led trên bo mạch sẽ sáng.

  • Chân 18, 19, 20, 21, 22, 23, 24, 25 và 26 : Ngõ vào/ra tương tự. Như đã đề cập trước đó UNO có 6 chân đầu vào tương tự nhưng Arduino Nano có 8 đầu vào tương tự (19 đến 26), được đánh dấu A0 đến A7. Điều này có nghĩa là bạn có thể kết nối 8 kênh đầu vào tương tự để xử lý. Mỗi chân tương tự này có một ADC có độ phân giải 1024 bit (do đó nó sẽ cho giá trị 1024). Theo mặc định, các chân được đo từ mặt đất đến 5V. Nếu bạn muốn điện áp tham chiếu là 0V đến 3.3V, có thể nối với nguồn 3.3V cho chân AREF (pin thứ 18) bằng cách sử dụng chức năng analogReference (). Tương tự như các chân digital trong Nano, các chân analog cũng có một số chức năng khác.

  • Chân 23, 24 như A4 và A5: chuẩn giao tiếp I2C. Khi giao tiếp SPI cũng có những nhược điểm của nó như cần 4 chân và giới hạn trong một thiết bị. Đối với truyền thông đường dài, cần sử dụng giao thức I2C. I2C hỗ trợ chỉ với hai dây. Một cho xung (SCL) và một cho dữ liệu (SDA). Để sử dụng tính năng I2C này, chúng ta cần phải nhập một thư viện có tên là Thư viện Wire.

  • Chân 18: AREF. Điện áp tham chiếu cho đầu vào dùng cho việc chuyển đổi ADC.

  • Chân 28: RESET. Đây là chân reset mạch khi chúng ta nhấn nút rên bo. Thường được sử dụng để được kết nối với thiết bị chuyển mạch để sử dụng làm nút reset.

ICSP là viết tắt của In Circuit Serial Programming , đại diện cho một trong những phương pháp có sẵn để lập trình bảng Arduino. Thông thường, một chương trình bộ nạp khởi động Arduino được sử dụng để lập trình một bảng Arduino, nhưng nếu bộ nạp khởi động bị thiếu hoặc bị hỏng, ICSP có thể được sử dụng thay thế. ICSP có thể được sử dụng để khôi phục bộ nạp khởi động bị thiếu hoặc bị hỏng.

Mỗi chân ICSP thường được kết nối với một chân Arduino khác có cùng tên hoặc chức năng. Ví dụ: MISO của Nano nối với MISO / D12 (Pin 15). Lưu ý, các chân MISO, MOSI và SCK được ghép lại với nhau tạo nên hầu hết giao diện SPI.


2.4. GIỚI THIỆU VỀ LCD I2C

2.4.1. Giới thiệu LCD 16x2



Hình 11. Màn hình LCD 16x2

2.4.2. Thông số kỹ thuật LCD 16x2


LCD 16x2 được sử dụng để hiển thị trạng thái hoặc các thông số.

  • LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN).

  • 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.

  • Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.

  • Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi.

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm.

Bảng 6. Chức năng của các chân LCD

Chân

Ký hiệu

Mô tả

1

Vss

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển.

2

VDD

Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển.

3

VEE

Điều chỉnh độ tương phản của LCD.

4


RS


Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.

  • Logic “0”: bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read).

  • Logic “1”: bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.

5

R/W

Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

6

E


Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.

  • Ở chế độ ghi: dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.

  • Ở chế độ đọc: dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.

7 - 14

DB0 đến DB7


Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này:

  • 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.

15

-

Nguồn dương cho đèn nền.

16

-

GND cho đèn nền.

Hoạt động của LCD được điều khiển thông qua 3 tín hiệu E, RS, R/W.



  • Tín hiệu E là tín hiệu cho phép gửi dữ liệu. Để gửi dữ liệu đến LCD, chương trình phải thiết lập E=1, sau đó đặt các trạng thái điều khiển thích hợp lên RS, R/W và bus dữ liệu, cuối cùng là đưa E về 0. Hoạt động chuyển đổi từ cao-xuống-thấp cho phép LCD nhận dữ liệu hiện thời trên các đường điều khiển cũng như trên bus dữ liệu.

  • Tín hiệu RS là tín hiệu cho phép chọn thanh ghi (Register Select). Khi RS=0, dữ liệu được coi như là một lệnh hay một chỉ thị đặc biệt (như là xóa màn hình, đặt vị trí con trỏ…). Khi RS=1, dữ liệu được coi là dữ liệu dạng văn bản và sẽ được hiển thị trên màn hình.

  • Tín hiệu R/W là tín hiệu “Đọc/Ghi”. Khi R/W=1, thông tin trên bus dữ liệu được ghi vào LCD. Khi R/W=0, chương trình sẽ đọc LCD.

  • Bus dữ liệu gồm 4 hoặc 8 đường tùy thuộc vào chế độ hoạt động mà người sử dụng lựa chọn.

2 .4.3. Module LCD I2C


LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển. 


Hình 12. Module LCD I2C
Module I2C LCD ra đời và giải quyết vấn để này cho bạn.

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.

Ưu điểm:


  • Tiết kiệm chân cho vi điều khiển

  • Dễ dàng kết nối với LCD.

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

  • 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.

SƠ ĐỒ ĐẤU NỐI



Hình 13. Sơ đồ đấu nối giao tiếp IC2 với LCD 16×2.

Bảng 7. Giao tiếp I2C LCD Arduino



Module I2C LCD 16×2 

Arduino Nano/Uno

GND

GND

VCC

5V

SDA

A4/SDA

SCL

A5/SCL



2.5. GIỚI THIỆU IC THỜI GIAN THỰC DS1307



Hình 14. Module DS1307
I C thời gian thực (RTC) DS1307 có chức năng cung cấp thông tin thời gian hiện tại (thời gian thực): giờ, phút, giây, thứ, ngày tháng, năm một cách chính xác ngay cả khi thiết bị đã bị tắt (ngắt điện ngoài). Giao tiếp với vi điều khiển thông qua chuẩn I2C, và đóng vai trò là slave khi kết nối đến bus I2C này. Có thể đếm thời gian theo định dạng 24 giờ hoặc 12 giờ với chỉ thị AM/PM. Ngoài ra bên trong chíp có bộ dò phát hiện mất nguồn và tự động chuyển sang sử dụng nguồn pin dự phòng. Một số tính năng nổi bật của IC RTC DS1307 được đề cập dưới đây.

  • Lưu trữ và cung cấp các thông tin thời gian thực: ngày, tháng, năm, giờ, phút, giây,…

  • Khả năng thiết lập ngày đến năm 2100.

  • Tiêu thụ điện năng thấp: dòng tiêu thụ dưới 500nA khi hoạt động bằng pin.

  • Tự động chuyển sang nguồn pin trong trường hợp mất điện.

  • Đồng hồ 24 giờ hoặc 12 giờ với chỉ báo AM/PM.

  • Sử dụng chuẩn giao tiếp I2C.

Link datasheet DS1307: https://bom.to/54otVe

SƠ ĐỒ CHÂN DS1307






Hình 15. Sơ đồ chân DS1307


Bảng 8. Sơ đồ chân Module thời gian thực DS1307

Chân

Tên

Chức năng

1

X1

Đây là các chân kết nối với thạch anh tần số 32.768 KHz để kích hoạt bộ dao động nội.

2

X2

3

VBAT

Chân này được kết với cực dương pin Lithium 3V để cấp nguồn nuôi dự phòng

4

GND

Chân nối đất

5

SDA

Chân dữ liệu nối tiếp (Serial Data). Đây là chân dữ liệu vào/ra của giao thức I2C. Chân này cần đưa lên nguồn 5V thông qua điện trở 10kΩ

6

SCL

Chân đầu vào xung đồng hồ nối tiếp (Serial Clock). Đây là chân ngõ vào xung nhịp của giao thức I2C. Chân này cũng phải được kéo đến 5V thông qua một điện trở 10kΩ.

7

SQW/OUT

Ngõ xuất ra xung vuông, tần số có thể lập trình để thay đổi từ 1Hz, 4Khz, 8Khz, 32Khz. Nếu không được sử dụng, chân này có thể được thả nổi.

8

VCC

Chân cấp nguồn chính, khoảng 5VDC. Nếu VCC không có mà VBAT có thì DS1307 vẫn hoạt động bình thường nhưng không ghi và đọc được dữ liệu.



2.6. GIAO TIẾP ARDUINO VỚI IC THỜI GIAN THỰC DS1307


Hình 16. Sơ đồ nguyên lý DS1307 với Arduino



2.7. GIAO TIẾP ARDUINO VỚI CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11


Cảm biến nhiệt độ và độ ẩm DHT11 ra đời sau và được sử dụng thay thế cho dòng SHT1x ở những nơi không cần độ chính xác cao về nhiệt độ và độ ẩm. Cảm biến sử dụng giao tiếp số theo chuẩn 1 dây.

Hình 17. Module DHT11


ỨNG DỤNG:

- Dùng để đo nhiệt độ , độ ẩm

- Các ứng dụng đo nhiệt độ , độ ẩm khác.
THÔNG SỐ KỸ THUẬT


- Nguồn: 3 -> 5 VDC.

- Dòng sử dụng: 2.5mA max (khi truyền dữ liệu).

- Đo tốt ở độ ẩm 20-80%RH với sai số 5%.

- Đo tốt ở nhiệt độ 0 to 50°C sai số ±2°C.

- Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)

- Kích thước 15mm x 12mm x 5.5mm.

- 4 chân, khoảng cách chân 0.1mm.

SƠ ĐỒ KẾT NỐI

Hình 18. Sơ đồ nguyên lý DHT11 với Arduino


CHƯƠNG 3. THI CÔNG VÀ THIẾT KẾ MẠCH

3.1. QUÁ TRÌNH ĐO NHIỆT ĐỘ, ĐỘ ẨM, ĐỌC GIÁ TRỊ THỜI GIAN


Quy trình đo:


3.2. SƠ ĐỒ KHỐI CỦA MẠCH




Nguyển lý hoạt động chung của mạch: Khối nguồn có nhiện vụ cấp nguồn 5V chung cho toàn bộ mạch hoạt đông. Cảm biến đo nhiệt độ, độ ẩm ở đây là DHT11 với tín hiệu vào là nhiệt độ, độ ẩm, tín hiệu ra là tín hiệu tương tự chuyển cho khối vi điều khiển Arduino Nano .Khối vi diều khiển gồm Arduino Nano có nhiệm vụ chuyển tín hiệu tương tự nhận được sang tín hiệu số, đọc giá trị thời gian thực của Module DS1307 và hiển thị ra LCD.

3.3. LƯU ĐỒ THUẬT TOÁN



3.4. SƠ ĐỒ NGUYÊN LÝ (MÔ PHỎNG TRÊN PROTEUS)


Hình 19. SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH


3.5. KẾT QUẢ MÔ PHỎNG TRÊN PROTEUS


Hình 20. Kết quả mô phỏng trên phần mềm proteus


CHƯƠNG 5. KẾT LUẬN



Ưu điểm:

- Phần cứng được thiết kế nhỏ gọn và được lắp ráp theo kiểu module nên dễ dàng thay thế cũng như kiểm tra các linh kiển trong mạch

- Phần mềm chạy khá ổn định,sai lệch nhiệt độ trong khoảng cho phép.

- Có thế ứng dụng trong thực tế.

Nhược điểm:

- Phần cứng thiết kế chưa đươc đẹp.

- Sai số mạch còn lớn.

Như trên chúng em đã trình bày về đề tài tiểu luận môn học : MẠCH ARDUINO ĐO VÀ HIỂN THỊ NHIỆT ĐỘ, ĐỘ ẨM, THỜI GIAN THỰC LÊN LCD ”.

Sau thời gian tìm hiểu và thực hiện cho đến nay đề tài của nhóm em đã hoàn thành. Nhóm em đã nỗ lực cố gắng để hoàn thành đề tài được giao. Trong quá trình thực hiện em đã nhận được sự giúp đỡ nhiệt tình của bạn bè trong lớp và đặc biệt là sự hướng dẫn nhiệt tình của thầy" Đàm Xuân Định" giúp chúng em đã thực hiện được đề tài tiểu luận được giao. Chúng em xin chân thành cảm ơn.

Tuy vậy, do kiến thức còn hạn chế, chúng em không tránh khỏi gặp sai sót, chúng em mong được sự đóng góp và chỉ bảo của thầy cô và các bạn giúp cho đề tài của Chúng em thêm hoàn thiện hơn.

Em xin chân thành cảm ơn!

Sinh viên thực hiện

Vương Trường Giang

Phan Văn Chính

Nguyễn Trọng Chuyên

PHỤ LỤC


  1. THƯ VIỆN LCD I2C

Link tải thư viện: https://bom.to/L1LWf7

  1. THƯ VIỆN ĐỒNG HỒ THỜI GIAN THỰC

Link tải thư viện: https://bom.to/I4gU1w

  1. THƯ VIỆN CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM

Link tải thư viện: https://bom.to/LVe8Nz

  1. CODE ARDUINO ĐỌC NHIỆT ĐỘ, ĐỘ ẨM, THỜI GIAN THỰC

Link tải: https://bom.to/svZpOx

  1. CODE ARDUINO ĐIỀU KHIỂN LED – MOTOR – SERVO

Link tải: https://bom.so/rfAZ2V

  1. VIDEO ĐIỀU KHIỂN LED – MOTOR – SERVO BẰNG PHẦN MỀM C#

Link tải: https://bom.so/9hNXrg

  1. LINK TẢI GIAO DIỆN: https://bom.so/dWNC8y

TÀI LIỆU THAM KHẢO

Tiếng việt:

. Ngô Diên Tập, “Đo lường và điều khiển bằng máy tính”, NXB Khoa học và kỹ thuật, năm 1999.

. Trần Quang Vinh, “Cấu trúc máy vi tính”, NXB Giáo dục, năm 1996.

. Trần Quang Vinh, “Nguyên lý phần cứng và kỹ thuật ghép nối máy tính”, NXB Giáo dục, năm 2003.

. Hướng dẫn sử dụng Arduino cơ bản.

https://bom.to/4KnvFj



Truy cập ngày 18/11/2021

Tiếng Anh

. Beginning Arduino - Mike McRoberts

. Arduino cookbook – Michael Margolis


tải về 3.37 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   4   5   6   7   8   9   10   11   12




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương