Chương 1: Tổng quan Giới thiệu sơ lược về tình hình nghiên cứu hiện nay cũng như tính cấp thiết của đề tài. Chương 2: Cơ sở lý thuyết Nêu các lý thuyết cần thiết để sử dụng trong đề tài. Chương 3: Thiết kế và xây dựng hệ thống Trình bày sơ đồ hệ thống và giải thích hoạt động của hệ thống. Đưa ra các phương pháp lựa chọn phần cứng và xác định lựa chọn phù hợp với yêu cầu của đề tài.
Tính toán đưa ra giải thuật, thuật toán phần mềm. Chương 4: Kết quả thực hiện Trình bày kết quả đã thực hiện về phần cứng và phần mềm, đưa ra nhận xét. Chương 5: Kết luận và phạm vi ứng dụng Nêu các ưu điểm và nhược điểm của đề tài, hướng khắc phục và phạm vi sử dụng trong thực tế. 3 do an CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.
BOARD ARDUINO MEGA 2560 2. Giới thiệu về board Arduino Mega 2560 a. Giới thiệu board Arduino Mega 2560 Hình 2. 1: Board Arduino Mega 2560 Arduino Mega 2560 sử dụng vi điều khiển ATmega2560.
Vi điều khiển này có thể xử lí những tác vụ như điều khiển đèn led nhấp nháy, điều khiển động cơ, điều khiển LCD, nhận các tín hiệu từ cảm biến,.Được lập trình bằng ngôn ngữ C, ASM,. 1: Thông số chi tiết của Arduino Mega 2560 Vi điều khiển ATmega2560 Điện áp hoạt động 5V Nguồn ngoài 7V - 12V Số chân Digital 54 (15 chân PWM) Số chân Analog 16 Giao tiếp UART 4 bộ UART Giao tiếp SPI 1 bộ dùng với thư viện của Arduino Giao tiếp I2C 1 bộ Ngắt ngoài 6 chân Bộ nhớ Flash 256 KB, 8 KB sử dụng cho Bootloader SRAM 8 KB EEPROM 4 KB Xung clock 16 MHz 4 do an b. Năng lượng hoạt động của Arduino Mega 2560 Arduino Mega có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu không có sẵn nguồn từ cổng USB.
Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng Arduino Mega. Các chân năng lượng: Chân GND: Cực âm của nguồn điện cấp cho Arduino Mega. Khi 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. Chân 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. Chân Vin (Voltage Input): Để cấp nguồn ngoài cho Arduino Mega, 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. Chân IOREF: Điện áp hoạt động của vi điều khiển trên Arduino Mega có thể được đo ở chân này.
Và dĩ nhiên nó luôn là 5V. Mặc dù vậy 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. Chân 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ớ của Arduino Mega 2560 256 KB 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, có 8 KB sử dụng cho bootloader.
8 KB cho SRAM: giá trị các biến khai báo khi lập trình sẽ lưu ở đây. 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 bị đầy. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
4 KB cho EEPROM: đâ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. Cổng vào/ra Arduino Mega 2560 Arduino Mega có 54 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 5 do an chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển Atmega2560 (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: Arduino Mega có 4 bộ UART : dùng để gửi (Transmit – TX) và nhận (Receive – RX) dữ liệu TTL Serial. Arduino Mega có thể giao tiếp với thiết bị khác thông qua 2 chân này. Arduino Mega có 15 chân PWM: Cho phép xuất ra xung PWM với độ phân giải 8 bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V). 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.
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. Chân giao tiếp I2C: 20 (SDA) và 21 (SCL). Hai chân này hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
Led 13: Trên Arduino Mega có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, 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 Mega có 16 chân Analog (A0 → A15) cung cấp độ phân giải tín hiệu 10 bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, 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 ta 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à 10 bit. Phương thức lập trình trên Arduino Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn ngữ riêng.
Ngôn ngữ này dựa trên ngôn ngữ Wiring (một biến thể của C/C++) được viết cho phần cứng. Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++. Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do nó rất dễ học, dễ hiểu. Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cung cấp đến cho người dùng một môi trường lập trình cho Arduino được gọi là Arduino IDE như hình dưới đây.
6 do an Hình 2. 2: Chương trình Arduino IDE 2. LCD HIỂN THỊ LCD có rất nhiều dạng phân biệt theo kích thước từ vài ký tự đến hàng chục ký tự, từ 1 hàng đến vài chục hàng. LCD 16 x 2 có nghĩa là có 2 hàng, mỗi hàng có 16 ký tự như hình 2.
7 do an LCD có nhiều loại và số chân của chúng cũng khác nhau nhưng có 2 loại phổ biến là loại 14 chân và loại 16 chân, sự khác nhau là các chân nguồn cung cấp, còn các chân điều khiển thì không thay đổi. Trong 16 chân của LCD được trình bày Hình 2. 3: LCD 16 x 2 trong bảng 2.2 được chia ra làm 3 dạng tín hiệu như sau: Các chân cấp nguồn: chân số 1 là chân nối GND (0V), chân thứ hai là Vdd nối với nguồn +5V. Chân thứ ba dùng để chỉnh độ tương phản thường nối với biến trở.
Các chân điều khiển: chân số 4 là chân RS dùng để điều khiển lựa chọn thanh ghi. Chân R/W dùng để điều khiển quá trình đọc và ghi. Chân E là chân cho phép dạng xung chốt. Các chân dữ liệu D7 D0: chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD.
2: Các chân trong LCD Thứ tự Tên tín hiệu I/O Mô tả 1 VSS Nguồn GND 2 VDD Nguồn +5V 3 VO Điện áp Điều khiển ánh sáng nền 4 RS INPUT Register Select 5 R/W INPUT Read/Write 6 E INPUT Enable (strobe) 7 D0 I/O DATA LSB 8 D1 I/O DATA 9 D2 I/O DATA 10 D3 I/O DATA 11 D4 I/O DATA 12 D5 I/O DATA 13 D6 I/O DATA 14 D7 I/O DATA MSB 15 A I Nguồn dương +5V 16 K I GND 8 do an Các lệnh điều khiển Để điều khiển LCD thì có các IC chuyên dùng được tích hợp bên dưới LCD. Trong IC này có bộ nhớ RAM dùng để lưu trữ dữ liệu cần hiển thị và thực hiện điều khiển LCD hiển thị. Các lệnh điều khiển được thể hiện trong bảng 2. 3: Các lệnh trong LCD Lệnh xóa màn hình "Clear Display": khi thực hiện lệnh này thì LCD sẽ bị xóa và bộ đếm địa chỉ được xóa về 0.
Lệnh di chuyển con trỏ về đầu màn hình "Cursor Home": khi thực hiện lệnh này thì bộ đếm địa chỉ được xóa về 0, phần hiển thị trở về vị trí gốc đã bị dịch trước đó. Nội dung bộ nhớ RAM hiển thị DDRAM không bị thay đổi. Lệnh thiết lập lối vào "Entry mode set": lệnh này dùng để thiết lập lối vào cho các ký tự hiển thị, bit ID = 1 thì con trỏ tự động tăng lên 1 mỗi khi có 1 byte dữ liệu ghi vào bộ hiển thị, khi ID = 0 thì con trỏ sẽ không tăng, dữ liệu 9 do an mới sẽ ghi đè lên dữ liệu cũ. Bit S = 1 thì cho phép dịch chuyển dữ liệu mỗi khi nhận 1 byte hiển thị.
Lệnh điều khiển con trỏ hiển thị "Display Control": lệnh này dùng để điều khiển con trỏ (cho hiển thị thì bit D = 1, tắt hiển thị thì bit D = 0), tắt mở con trỏ (mở con trỏ thì bit C = 1, tắt con trỏ thì bit C = 0), và nhấp nháy con trỏ (cho nhấp nháy thì bit B = 1, tắt thì bit B = 0). Lệnh di chuyển con trỏ "Cursor/Display Shift": lệnh này dùng để điều khiển di chuyển con trỏ hiển thị dịch chuyển (SC = 1 cho phép dịch chuyển, SC = 0 thì không cho phép), hướng dịch chuyển (RL = 1 thì dịch phải, RL = 0 thì dịch trái). Nội dung bộ nhớ DDRAM vẫn không đổi. Lệnh thiết lập địa chỉ cho bộ nhớ RAM phát ký tự "Set CGRAM Addr": lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM phát ký tự.
Lệnh thiết lập địa chỉ cho bộ nhớ RAM hiển thị "Set DDRAM Addr": lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM lưu trữ các dữ liệu hiển thị. CẢM BIẾN KHÍ GAS MQ-2 2. Giới thiệu Cảm biến MQ-2 là loại cảm biến khí, dùng để phát hiện các khí có thể gây cháy.