CHƯƠNG 1 GIỚI THIỆU TỔNG QUÁT 1. CẤU TRÚC ĐIỀU KHIỂN BẰNG MÁY TÍNH MÁY TÍNH NGƯỜI ĐIỀU HÀNH MODULE MASTER Module Slave 1 Module Slave 2 Module Slave 3 CẢM CƠ CẢM CƠ CẢM CƠ BIÉN CẤU BIÉN CẤU BIÉN CẤU Hình 1.1 Cấu trúc điều khiển bằng máy tính 1.1 Giới Thiệu Giao Tiếp Chuẩn I2C: I2C là tên viết tắt của cụm từ tiếng anh “Inter-Integrated Circuit”. Nó là một giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền tín hiệu. Đây là một loại giao thức giao tiếp nối tiếp đồng bộ.
*Đặc Điểm: 1 Chỉ cần có hai đường bus (dây) chung để điều khiển bất kỳ thiết bị / IC nào trên mạng I2C. Không cần thỏa thuận trước về tốc độ truyền dữ liệu như trong giao tiếp UART. Vì vậy, tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết. Cơ chế đơn giản để xác thực dữ liệu được truyền.
Sử dụng hệ thống địa chỉ 7 bit để xác định một thiết bị / IC cụ thể trên bus I2C. Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối đơn giản với hai đường bus chung I2C.2 Hai đường bus chung I2C *Master và Slave? Các thiết bị kết nối với bus I2C được phân loại hoặc là thiết bị Chủ (Master) hoặc là thiết bị Tớ (Slave). Ở bất cứ thời điểm nào thì chỉ có duy nhất một thiết bị Master ở trang thái hoạt động trên bus I2C.
Nó điều khiển đường tín hiệu đồng hồ SCL và quyết định hoạt động nào sẽ được thực hiện trên đường dữ liệu SDA. Bởi vì I2C sử dụng địa chỉ, nhiều thiết bị Slave có thể được điều khiển từ một thiết bị Master duy nhất. Với 7 bit địa chỉ tương ứng 128 (27) địa chỉ duy nhất có sẵn. Kết nối giữa 1 Module Master và 3 Module Slave khác nhau: Với nguyên lý tương tự như trên chúng ta sẽ có được: 2 Hình 1.3 Giao diện ngoại vi 3 CHƯƠNG 2 GIỚI THIỆU CẤU TRÚC PHẦN CỨNG 2.1 ARDUINO UNO R3 Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30 mA Dòng ra tối đa (5V) 500 mA Dòng ra tối đa (3.3V) 50 mA 32 KB (ATmega328) với 0.5KB dùng bởi Bộ nhớ flash bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Hình 2.1 Thông số kỹ thuật Các chân năng lượng • GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO.
Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau. • 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA. Dòng tối đa cho phép ở chân này là 50mA.2 Arduino UNO • Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.
• IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn. 4 • RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.
Bộ nhớ Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng: • 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu. • 2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM.
Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất. • 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM. Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu.
Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối). Các cổng vào/ra Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA.
Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối). Một số chân digital có các chức năng đặc biệt như sau: • Chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây.
Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết • Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác. 5 • Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.
• LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này được người dùng sử dụng, LED sẽ sáng.
• Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit. • Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.3 Màn hình LCD 4x16 THÔNG SỐ MÀN HÌNH LCD 1604 • Kích thước: 86,96 x 60 x 13mm • Diện tích hiển thị: 62,3 x 27,6mm • Số lượng ký tự: 16 x 4 • Màu xanh dương chữ trắng • Điện áp ổ đĩa: nguồn 3,3V / 5V • Nhiệt độ làm việc: -20 độ đến +70 độ • Nhiệt độ lưu trữ: -30 độ đến +80 độ • Chân 1: VSS chân GND • Chân thứ 2: VDD chân dương 5V 6 • Chân 3: V0 là đầu điều chỉnh độ tương phản LCD.
Khi kết nối công suất dương, độ tương phản là yếu nhất. Khi sử dụng công suất nối đất, độ tương phản là cao nhất. Khi độ tương phản quá cao, sẽ xảy ra hiện tượng tương phản thông qua chiết áp 10K. • Chân 4: RS là lựa chọn thanh ghi.
Khi mức cao được chọn, thanh ghi dữ liệu được chọn và khi mức thấp được chọn, thanh ghi lệnh được chọn. • Chân 5: R / W là đường tín hiệu đọc / ghi. Khi ở mức cao, nó thực hiện thao tác đọc và khi ở mức thấp, nó sẽ thực hiện thao tác ghi. Khi RS và RW ở mức thấp cùng nhau, có thể ghi địa chỉ lệnh hoặc hiển thị.
Khi RS thấp, RW có thể đọc tín hiệu bận và khi RS ở mức cao, RW có thể được ghi vào dữ liệu. • Chân 6: Thiết bị đầu cuối E là thiết bị đầu cuối cho phép. Khi thiết bị đầu cuối E thay đổi từ mức cao sang mức thấp, mô đun tinh thể lỏng thực hiện lệnh. • Chân 7 đến 14: D0 đến D7 là các đường dữ liệu hai chiều 8 bit.
• Chân 15: Đèn nền dương • Chân 16: Đèn nền âm 2.3 Module chuyển đổi giao tiếp I2C cho LCD THÔNG SỐ MẠCH CHUYỂN ĐỔI GIAO TIẾP I2C • Kích thước: 41.3MM(H) • Trọng lượng: 5g • Điện áp hoạt động: 2.5v-6v • Jump chốt: Cung cấp đèn cho LCD hoặc ngắt • Biến trở xoay độ tương phản cho LCD Hình 2.4 Module chuyển đổi giao tiếp I2C 7 Sơ đồ chân: Hình 2.5 Sơ đồ chân kết nối LCD 2.4 Cảm biến nhiệt độ độ ẩm DHT11 THÔNG SỐ KĨ THUẬT • Điện áp hoạt động : 5VDC. • Chuẩn giao tiếp: TTL, 1 wire. • Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH. • Khoảng đo nhiệt độ:0-50 °C sai số ± 2°C.
• Tần số lấy mẫu tối đa 1Hz (1 giây / lần). • Kích thước : 28mm x 12mm x10mm.6 Cảm biết nhiệt độ & độ ẩm CÔNG DỤNG SẢN PHẨM • Cảm biến độ ẩm, nhiệt độ DHT11 ra chân được tích hợp sẵn điện trở 5,1k giúp người dùng dễ dàng kết nối và sử dụng hơn so với cảm biến DHT11 chưa ra chân, module lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp 1 dây). • Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn có được dữ liệu chính xác mà không cần phải qua bất kỳ tính toán nào. Module được thiết kế hoạt động ở mức điện áp 5VDC.5 Cảm biến cường độ ánh sáng quang trở 8 Hình 2.7 Cảm biến ánh sáng quang trở Cảm biến cường độ ánh sáng quang trở rất nhạy cảm với cường độ ánh sáng môi trường thường được sử dụng để phát hiện độ sáng môi trường xung quanh và cường độ ánh sáng.
Khi cường độ ánh sáng môi trường xung quanh bên ngoài vượt quá một ngưỡng quy định, ngõ ra của module D0 là mức logic thấp. Ngoài ra còn có ngõ ra Analog ở chân A0 để xử lí mức độ ánh sáng.