Tải bản đầy đủ (.pdf) (23 trang)

Mạch giám sát mực nước sử dụng vi điều khiển ATMEGA16

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1013.76 KB, 23 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HỒ CHÍ MINH

ĐỒ ÁN MƠN HỌC: VI ĐIỀU KHIỂN

MẠCH GIÁM SÁT MỰC NƯỚC

Ngành:

ĐIỆN TỬ VIỄN THÔNG

Lớp:

19DDTA1

Tp.HCM, ngày … tháng … năm …


Mục Lục
CHƯƠNG 1: TỔNG QUAN ............................................................................................... 1
1.1

Giới thiệu chung ..................................................................................................... 1

1.2

Tổng quan về hệ thống ........................................................................................... 1

1.3

Nội dung thực hiện ................................................................................................. 1



CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .................................................................................... 1
2.1

Các phương pháp giám sát mực nước .................. Error! Bookmark not defined.

2.2

ATMEGA16 .......................................................................................................... 1

2.3

Màn hình LCD ....................................................................................................... 3

2.4

Chuẩn giao tiếp I2C. .............................................................................................. 4

2.5

Ngơn ngữ C ............................................................................................................ 5

CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ ....................................................................... 6
3.1

Giới thiệu ............................................................................................................... 6

3.2

Thiết kế sơ đồ khối hệ thống .................................................................................. 7


3.3

Tính tốn tồn mạch............................................................................................... 7

3.4

Sơ đồ ngun lý toàn mạch .................................................................................... 9

3.4.1

Nguyên lý hoạt động ....................................................................................... 9

3.4.2

Sơ đồ ngun lý ............................................................................................. 10

CHƯƠNG 4: THI CƠNG .................................................................................................. 10
4.1

Mơ phỏng mạch trên protues ............................................................................... 10

4.2

Vẽ PCB ch o mạch và 3D .................................................................................... 13

4.3

Lặp trình hệ thống ................................................................................................ 15


CHƯƠNG 5: KẾT LUẬN ................................................................................................. 18
Tài liệu tham khảo ............................................................................................................. 19

i


Danh mục các từ viết tắt
I/O: Input/output
USART: truyền bất/ đồng bộ
SPI : Serial Peripheral Interface
I2C: Giao thức truyền thông nối tiếp
RAM: Random Access Memory)
ROM: Read-Only Memory
ADC: Analog-to-Digital Converter
PWM: Pulse Width Modulation
LCD: Liquid Crystal Display
LED: Light Emitting Diode
VDC: Điện một chiều

ii


Danh mục hình ảnh
Hình 1: Sơ đồ chân ATMEGA16 ........................................................................................ 3
Hình 2: Sơ đồ chân LCD ..................................................................................................... 4
Hình 3: Ngơn ngữ C ............................................................................................................ 5
Hình 4: Sơ đồ khối của mạch .............................................................................................. 7
Hình 5: Chiều của dịng điện ............................................................................................... 8
Hình 6: Sơ đồ ngun lý của tồn mạch ............................................................................ 10
Hình 7: QUARTER LEVEL Motor running ..................................................................... 11

Hình 8: HALF LEVEL Motor running ............................................................................. 11
Hình 9: 3/4 LEVEL Motor running ................................................................................... 12
Hình 10: Tank Is Full ........................................................................................................ 12
Hình 11: PCB..................................................................................................................... 13
Hình 12: Ảnh 3D ............................................................................................................... 14
Hình 13: Lưu đồ giải thuật ................................................................................................ 15

iii


CHƯƠNG 1: TỔNG QUAN
1.1Giới thiệu chung
-

Hệ thống giám sát mực nước điều khiển từng chế độ theo dõi mực nước trong bể
chứa đảm bảo được lượng nước tiêu thụ. Quản lý được chặt chẽ mực nước trong bể
để biết được khi nào cần bơm hay tắt nước theo một cách chuẩn xác.

1.2Tổng quan về mạch
-

Mạch được thiết kế hoàn thiện dễ dàng đơn giản mang tính hiệu quả cao với chỉ
vài linh kiện được kết nối với con chip sử lý ATMEGA16. Thích hợp sửa dụng tại
các nhà máy, xí nghiệp, các hộ gia đình. Mạch hoạt động tương đối ổn định,
khơng sử dụng q nhiều linh kiện, chi phí thi công thấp

1.3Nội dung thực hiện
 Thực hiện vẽ sơ đồ nguyên lý
 Chọn linh kiện
 Viết Code cho mạch

 Mô phỏng mạch chạy trên Proteus
 Vẽ PCB
 In ảnh 3D mạch

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1Các phương pháp giám sát mực nước
-

Có nhiều Giải pháp đo nước đáp ứng nhu cầu giám sát mức nước. Tuy nhiên để
chọn đúng ứng dụng và đúng cảm biến địi hỏi cần có một chút kiến thức về các
dòng cảm biến đo mức.

2.2ATMEGA16
 Giới thiệu
-

Atmega16 là một chíp vi điều khiển được sản xuất bời hãng Atmel thuộc họ
MegaAVR. Atmega16 là một bộ vi điều khiển 8 bit dựa trên kiến trúc RISC bộ
nhớ chương trình 16KB ISP flash có thể ghi xóa hàng nghìn lần, 512B
1


EEPROM, một bộ nhớ RAM vô cùng lớn trong thế giới vi xử lý 8 bit (1KB
SRAM).
-

Với 32 chân có thể sử dụng cho các kết nối vào hoặc ra i/O, 32 thanh ghi, 3 bộ
timer/counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector
ngắt), giao thức truyền thông nối tiếp USART, SPI, I2C. Ngồi ra có thể sử
dụng bộ biến đổi số tương tự 10 bít (ADC/DAC) mở rộng tới 8 kênh, khả năng

lập trình được watchdog timer, hoạt động với 5 chế độ nguồn, có thể sử dụng
tới 6 kênh điều chế độ rộng xung (PWM), hỗ trợ bootloader.

 Thông số kỹ thuật
-

Loại chip: 8bit

-

Đóng gói: DIP4

-

I/O Pin: 32

-

Tốc độ: 16 MHz

-

Bộ nhớ chương trình: 16 kB

-

RAM: 1 kB (SRAM)

-


ROM: 512B (EEPROM)

-

Điện áp hoạt động: 4.5 V-5.5 V

-

Giao tiếp: I2C,JTAG,SPI,USART

-

Timer: 3

-

ADC: 8 kênh (10bit)

-

PWM: 4 kênh

-

Nhiệt độ: -40 C ~ +85 C

2


Hình 1: Sơ đồ chân ATMEGA16


 Chức năng
* Atmega16 có cấu trúc RISC với:
+ 131 lệnh,hầu hết được thực thi trong 1 chu kì xung nhịp.
+ 32x8 thanh ghi đa dụng
+ Full static operation
+ Tốc độ làm việc 16MPIS,với thạch anh 16MHz
+ Trong chip có 2 chức năng hỗ trợ go roi và lập trình saon chương trình

2.3Màn hình LCD
 Khái niệm
-

Thiết bị hiển thị LCD 1602 (Liquid Crystal Display) được sử dụng trong rất
nhiều các ứng dụng của VĐK. LCD 1602 có rất nhiều ưu điểm so với các
dạng hiển thị khác như: khả năng hiển thị kí tự đa dạng (chữ, số, kí tự đồ
họa); dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác
nhau, tiêu tốn rất ít tài nguyên hệ thống, giá thành rẻ,…
3


 Thông số kỹ thuật
-

Điện áp MAX : 7V

-

Điện áp MIN : - 0,3V


-

Hoạt động ổn định : 2.7-5.5V

-

Điện áp ra mức cao : > 2.4

-

Điện áp ra mức thấp : <0.4V

-

Dòng điện cấp nguồn : 350uA - 600uA

-

Nhiệt độ hoạt động : - 30 - 75 độ C

 Chức năng

Hình 2: Sơ đồ chân LCD

+ Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều
khiển
+ Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của
mạch điều khiển
+ Chân số 3 - VE : điều chỉnh độ tương phản của LCD
+ Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":


2.4Chuẩn giao tiếp I2C.
-

Là một loại bus nối tiếp hai chiều với hai dây tín hiệu được phát triển bởi
hãng sản xuất linh kiện điện tử Philips (nay là hãng NXP Semiconductors)
cho quá trình giao tiếp giữa các IC. Truyền thơng với bus I²C là q
trình truyền thơng đồng bộ nối tiếp, hỗ trợ nhiều master và slave trên đường
4


truyền. I²C phù hợp với các ngoại vi mà sự ưu tiên về kết nối đơn giản và
chi phí sản xuất thấp quan trọng hơn là yêu cầu về tốc độ truyền..

2.5Ngôn ngữ C
 Khái niệm
-

C được hiểu là ngôn ngữ bậc trung bởi vì nó kết hợp những yếu tố của
những ngôn ngữ cấp cao và những chức năng của hợp ngữ (ngôn ngữ cấp
thấp). C cho phép thao tác trên những thành phần cơ bản của máy tính như
bits, bytes, địa chỉ…. Hơn nữa, mã C rất dễ di chuyển nghĩa là phần mềm
viết cho loại máy tính này có thể chạy trên một loại máy tính khác. Mặc dù
C có năm kiểu dữ liệu cơ bản, nhưng nó khơng được xem ngang hàng với
ngơn ngữ cao cấp về mặt kiểu dữ liệu. C cho phép chuyển kiểu dữ liệu. Nó
cho phép thao tác trực tiếp trên bits, bytes, word và con trỏ (pointer). Vì vậy,
nó được dùng cho lập trình mức hệ thống.

Hình 3: Ngơn ngữ C


 Chức năng
-

Một ngôn ngữ cốt lõi đơn giản, với các chức năng quan trọng chẳng hạn như
là những hàm hay việc xử lý tập tin sẽ được cung cấp bởi các bộ thư viện
các thủ tục.

-

Tập trung trên mẫu hình lập trình thủ tục, với các phương tiện lập trình theo
kiểu cấu trúc.

5


-

Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép tốn khơng có ý nghĩa
thực dụng.

-

Dùng ngơn ngữ tiền xử lý, tức là các câu lệnh tiền xử lý C, cho các nhiệm
vụ như là định nghĩa các macro và hàm chứa nhiều tập tin mã nguồn (bằng
cách dùng câu lệnh tiền xử lý dạng #include chẳng hạn).

-

Mức thấp của ngôn ngữ cho phép dùng tới bộ nhớ máy tính qua việc sử
dụng kiểu dữ liệu pointer


-

Số lượng từ khóa rất nhỏ gọn

-

Các tham số được đưa vào các hàm bằng giá trị, không bằng địa chỉ.

-

Hàm các con trỏ cho phép hình thành một nền tảng ban đầu cho tính
đóng và tính đa hình.

-

Hỗ trợ các bản ghi hay các kiểu dữ liệu kết hợp do người dùng từ khóa định
nghĩa struct cho phép các dữ liệu liên hệ nhau có thể được tập hợp lại và
được điều chỉnh như là tồn bộ.

CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ
3.1Giới thiệu
-

Đề tài yên cầu thiết kế hệ thống điều khiển giám sát mức nước thơng qua
màn hình hiển thị và các nút điều khiển button theo từng mức nước mà ta
cần.

Bộ xử lý trung tâm
 Điện áp 5 VDC

 Giao tiếp với màn hình
 Xử lý thơng
Bộ điều khiển
 Bật tắt các chế độ giám sát lượng nước
 Đo lượng nước
 Chuyển đổi thái
Bộ hiển thị
 Hiển thị chế độ đang hoạt động

6


3.2Thiết kế sơ đồ khối hệ thống

 Khối hiển thị
-

Hình 4: Sơ đồ khối của mạch

Hiển thị thông tin mực nước sau khi xử lí

 Khối điều khiển
-

Điều khiển mạch theo từng chế độ của mực nước theo nhu cầu của người
dùng bằng cách nhấn các nút BUTTON

 Khối xử lý trung tâm
-


Sau khi nhấn nút các tín hiệu này được chuyền vào khối xử lí để đưa ra màn
hình thông báo chế độ đang hoạt động theo đúng chế độ mà người dùng
chọn

 Khối báo trạng thái hoạt động
-

Thông báo mạch đang hoạt động thực hiện các chế độ của người dùng chọn

3.3Tính tốn tồn mạch
 Mạch điện song song
Khi chưa đóng cơng tắt:
*Điện trở
-

R = 10kΩ

-

R tồn mạch = 4 * 1/(10*10^3)=4*(10^-4)Ω
7


*Điện áp
-

V = 5V

*Dịng điện
-


I = 5e-008A.

Khi đóng tất cả các cơng tắt:
*Điện áp
-

V tồn mạch= 4.99995e-005V = Vr1=Vr2=Vr3=Vr4

* Dịng điện
-

Ir1=Ir2=Ir3=Ir4=5.00095e-013=>I tồn mạch = (5.00095e-013)*4 =
2.4A

*Cơng suất
P tồn mạch = 20.4W
*Giá trị của led khi mạch hoạt động
-

V = 2.76511V

-

I = 0.111744A

*Chiều của dịng điện chạy trong mạch:

Hình 5: Chiều của dòng điện


8


3.4Sơ đồ nguyên lý toàn mạch
3.4.1 Nguyên lý hoạt động
-

Mạch giảm sát mực nước gồm vi điều khiển ATMEGA 16 làm trung tâm xử lý,
LCD hiển thị thơng tin, có tất cả 4 nút BUTTON bật tắt và chọn chế độ cần hoạt
động , đèn LED hiển thị trạng thái hoạt động của máy, 4 điện trở và một số linh
kiện nhỏ khác.

-

Sơ đồ nguyên lý được vẽ trên phần mềm Proteus.
 Phần Cứng.

-

Vi điều khiển ATMEGA16 là bộ vi điều khiển với cơng suất thấp 40 chân được
lập trình bằng ngơn ngữ C với trình biên dịch là Mirochip studio Compiler. Sau
khi được biên dịch, chương trình C mà chúng ta thực thi sẽ được dịch và tạo thành
một file có đi chấm hex hay cịn gọi là mã máy và file chấm hex này là file mà
vi điều khiển ATMEGA16 có thể có thể đọc và thực thi được, ta thực hiện nạp
code cho ATMEGA16 bằng công cụ PICKIT 4 được kết nối với máy tính thơng
qua cổng USB 2.0

-

Nút BUTTON gồm có 4 nút để chọn và thực hiện lần lượt các chế độ hoạt động

của mạch được kết nối với 4 chân DATA(PA3 đến PA6) của ATMEGA16

-

LCD LM017L được kết nối với ATMEGA16 thông qua 11 chân IO gồm 3 chân
RS, RW, RE và 8 chân DATA (D0 đến D7). #include “lcd_lochan.h được tạo bởi
người dùng để dễ dàng sử dụng và thực thi thao tác được trên LCD.

-

Điện trở 10k giúp hiệu suất mạch làm việc ổn định tạo thành bộ chia điện áp khi
đóng công tắt.

-

Đèn LED khi LED sáng báo hiệu chế độ của mạch đang trong tình trạng hoạt động
và ngược lại nếu LED tắt đồng nghĩa với việc chế độ hoạt động này của mạch đã
tắt.
 Phần mềm.

-

Bên trong trương trình phần mềm được nạp vào ATMEGA16 ta tiến hành #iclude
thư viện và khai báo một số biến, tiếp đến bên trong hàm int main(void) ta cho
hiển thị thông tin chờ lên màn hình LCD và tạo một vịng lặp while chạy vô tận đề
9


khi ta lần lược nhấn từng nút BUTTON thì mạch sẽ hoạt động theo đúng chức
năng mà ta muốn lúc này LED sẽ sáng báo mạch đang chạy có tất cả 4 chế độ hoạt

động (QUARTER LEVEL, HALF LEVEL, ¾ LEVEL, TANK IS FULL) tương
ứng với 4 nút BUTTON. Khi cả 4 nút đều mở thì mạch sẽ dừng và LCD sẽ quay
lại màn hình chờ lúc ban đầu và LED tắt.
3.4.2 Sơ đồ nguyên lý

Hình 6: Sơ đồ nguyên lý của tồn mạch

CHƯƠNG 4: THI CƠNG
4.1Mơ phỏng mạch trên proteus
 Bước 1: Chọn chế độ hoạt động cho mạch
Có 4 chế độ hoạt động của mạch
- QUARTER LEVEL: Chế độ cấp một phần tư chế độ nước
- HALF LEVEL: chế độ cấp một nửa chế độ nước
- ¾ LEVEL: chế độ cấp ¾ chế độ nước
- TANK IS FULL: chế độ cấp chế độ nước đầy
- Bước 2: Tiến hành nhấn lần lượt các Button
 Chế độ Quarter level:
- Nhấn và giữ lần lược các Button 2 , Button 3, Button 4 đến khi nào đèn báo sáng
thì chế độ hoạt đã được kích hoạt khi này màng hình LCD sẽ hiện thông báo
QUARTER LEVEL Motor running.
10


Hình 7: QUARTER LEVEL Motor running
 Chế độ Half level:
- Nhấn và giữ lần lược các , Button 3, Button 4 đến khi nào đèn báo sáng thì chế độ
hoạt đã được kích hoạt khi này màng hình LCD sẽ hiện thơng báo Half level
Motor running.

Hình 8: HALF LEVEL Motor running

 Chế độ 3/4 leve:
- Nhấn và giữ lần Button 4 đến khi nào đèn báo sáng thì chế độ hoạt đã được kích
hoạt khi này màng hình LCD sẽ hiện thông báo 3/4 level Motor running.

11


Hình 9: 3/4 LEVEL Motor running
 Chế độ Tank Is Full:
- Nhấn và giữ lần tất cả 4 Button đến khi nào đèn báo sáng thì chế độ hoạt đã được
kích hoạt khi này màng hình LCD sẽ hiện thơng báo Tank Is Full.

Hình 10: Tank Is Full

12


4.2Vẽ PCB cho mạch và 3D

Hình 11: PCB

13


Hình 12: Ảnh 3D

14


4.3Lặp trình hệ thống

 Lưu đồ giải thuật

Hình 13: Lưu đồ giải thuật


Code

Main program:
#define F_CPU 8000000UL
#include <avr/io.h>
#include<util/delay.h>
#include "lcd_lochan.h"
int main(void)
{
lcd_init();
lcdstring(" Water level ");
lcd_cmd(0xc0);
15


lcdstring("Controller");
_delay_ms(1000);
lcd_cmd(0x01);
DDRC=0xff;
while(1)
{
if(PINA==0x00)
{
PORTC=0x01;
lcd_cmd(0x80);

lcdstring("Tank is empty");
lcd_cmd(0xc0);
lcdstring("Motor start");
_delay_ms(1000);
lcd_cmd(0x01);
}
else if(PINA==0x08)
{
PORTC=0x01;
lcdstring("Quarter level");
lcd_cmd(0xc0);
lcdstring("Motor running");
_delay_ms(1000);
lcd_cmd(0x01);
}
else if(PINA==0x18)
{
PORTC=0x01;
lcdstring("Half level");
lcd_cmd(0xc0);
lcdstring("Motor running");
_delay_ms(1000);
16


lcd_cmd(0x01);
}
else if(PINA==0x38)
{
PORTC=0x01;

lcdstring("3/4th level");
lcd_cmd(0xc0);
lcdstring("Motor running");
_delay_ms(1000);
lcd_cmd(0x01);
}
else if(PINA==0x78)
{
PORTC=0x00;
lcdstring("Tank is Full");
lcd_cmd(0xc0);
lcdstring("Motor stop");
_delay_ms(1000);
lcd_cmd(0x01);
}
}

17


CHƯƠNG 5: KẾT LUẬN
5.1 Kết luận đề tài
Mục tiêu của đề là chế tạo một thiết bị tích hợp vào máy bơm nước để quản lý mực
của hồ chứa tại các nhà máy, cơng ty, xí nghiệp, gia đình. Sau khi hoàn thiện mạch
đạt được những mục tiêu đã đề ra ban đầu em đã học những kiến thức mới củng như
cũng cố lại những kiến thức cũ, ngoài ra cũng đã thực hiện được việc ứng dụng khoa
học công nghệ vào thực tiễn đời sống. Hình thành một sản phẩm có ý nghĩa giúp tăng
hiệu suất làm việc cho con người.
Mạch điều khiển thực hiện được các yêu cầu sau:
- Hệ thống mạch chạy ổn định

- Mạch đơn giản chi phí thấp
5.2 Hướng phát triển
Đề tài nhóm em đã hồn thành, có thể phát triển và mở rộng thêm như sau:
- Thêm chức năng tự động thông báo khi nào cần bơm nước vào bể
- Độ chính xác cao hơn
- Đo độ ô nhiễm của nước

18


Tài liệu tham khảo
Sách
1. Sách Vi Điều Khiển, tác giả Phạm Quốc Phương, Thông tin xuất bản: TP.HCM :
Hutech, 2015.
2. Sách thiết kế hệ thống số, tác giả Nguyễn Trọng Hải, Thơng tin xuất
bản: TP.HCM :Hutech , 2017.
3. Giải Tích Mạch Điện, Tác giả: Ngô Cao Cường, Nguyễn Quý, Thông tin xuất
bản: TP.HCM :Hutech, 2015.
4. Kỹ Thuật điện tử, Biên soạn: Nguyễn Thành Trung

Web

1.

Atmega328P, />
2. Ngơn Ngữ lập trình C, />3. Kỹ Thuật điện tử, biên soạn: Nguyễn Thành Trung,
/>
19




×