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

ĐỒ ÁN CẢM BIẾN MƯA MẠCH GIÀN PHƠI TỰ ĐỘNG

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 (2.01 MB, 23 trang )

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN
KHOA ĐIỆN TỬ VIỄN THÔNG.

ĐỒ ÁN 1
ĐỀ TÀI : MẠCH HOẠT ĐỘNG MÁI CHE MƯA TỰ ĐỘNG SỬ DỤNG ARDUINO VÀ
CẢM BIẾN MƯA

NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN-ĐIỆN TỬ
TRÌNH ĐỘ ĐÀO TẠO: ĐẠI HỌC

GIẢNG VIÊN HƯỚNG DẪN
SINH VIÊN THỰC HIỆN :
LỚP :
MSSV :

Thành phố Hồ Chí Minh, Tháng 11 Năm 2018


MỤC LỤC

CHƯƠNG 1 : TỔNG QUAN VỀ ARDUINO UNO R3, L298N VÀ CẢM BIẾN MƯA.............................2
1.1.1 Một vài thông số của Arduino UNO R3...............................................................................................2
1.1.2 ATMEGA328P Vi điều khiển 8 bit.......................................................................................................2
1.1.3 Các chân năng lượng..........................................................................................................................4
1.1.4 Bộ nhớ..................................................................................................................................................6
1.1.5 Các cổng vào/ra...................................................................................................................................6
1.1.6 Lập trình cho Arduino..........................................................................................................................8
1.1.7 MODULE L298N...................................................................................................................................9
1.1.8 Cảm biến mưa...................................................................................................................................11
CHƯƠNG 2: THIẾT KẾ CODE ARDUINO VÀ NGUYÊN LÝ HOẠT ĐỘNG......................................13


2.1 Sơ đồ khối.............................................................................................................................................13
2.2 Lưu đồ giải thuật..................................................................................................................................13
2.3 Code cho ARDUINO..............................................................................................................................14
2.4 Nguyên lý hoạt động............................................................................................................................15
CHƯƠNG 3 : ỨNG DỤNG...........................................................................................................................19
3.1 Mái che mưa tự động..........................................................................................................................19
3.2 Giàn phơi đồ thông minh.....................................................................................................................19
CHƯƠNG 4 : KẾT LUẬN............................................................................................................................20
4.1 Bảng báo giá.........................................................................................................................................20
4.2 Ưu điểm................................................................................................................................................20
4.3 Hạn chế.................................................................................................................................................21
4.4 Hướng phát triển..................................................................................................................................21
4.5 Kết thúc đồ án......................................................................................................................................21

2


Lời mở đầu
Trong sự phát triển ngày càng nhanh chóng và hiện đại của khoa học kỹ thuật, ngành điện
tử tự động đã tạo nên một dấu ấn quan trọng trong lĩnh vực sản xuất và chế tạo. Chúng
luôn thay đổi và phát triển từng giờ, không dừng lại ở đó trong những năm gần đây ngành
điện tử tự động đã ngày càng gần gũi hơn với đời sống con người, hỗ trợ con người trong
cuộc sống hàng ngày.
Khi thời tiết mưa âm u luôn là nỗi ám ảnh của nhiều người và nhất là các bà nội trợ khi
quần áo phơi mãi không khô, thậm chí là phơi nắng hàng tuần mà quần áo vẫn bị ẩm và
xuất hiện theo mùi hôi khó chịu. Vậy làm sao để đối phó với những thời tiết như thế này?
Làm sao để quần áo nhanh khô nhất? Lúc này mái che mưa tự động chính là biện pháp
nhanh nhất để giải quyết mối lo quần áo giúp quần áo mau khô thơm tho ngay cả khi trời
mưa trời âm u.


1


CHƯƠNG 1 : TỔNG QUAN VỀ ARDUINO UNO R3, L298N VÀ CẢM BIẾN
MƯA
1.1.1 Một vài thông số của Arduino UNO R3

1.1.2 ATMEGA328P Vi điều khiển 8 bit

2


Atmega328 là một chíp vi điều khiển được sản xuất bời hãng Atmel thuộc họ MegaAVR
có sức mạnh hơn hẳn Atmega8. Atmega 328 là một bộ vi điều khiển 8 bít dựa trên kiến
trúc RISC bộ nhớ chương trình 32KB ISP flash có thể ghi xóa hàng nghìn lần, 1KB
EEPROM, một bộ nhớ RAM vô cùng lớn trong thế giới vi xử lý 8 bít (2KB SRAM)
Với 23 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. Ngoà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.

3


Atemega328 có khả năng hoạt động trong một dải điện áp rộng (1.8V – 5.5V), tốc độ
thực thi (thông lượng) 1MIPS trên 1MHz
Thông số chính Atmega328P-PU:
+ Kiến trúc: AVR 8bit

+ Xung nhịp lớn nhất: 20Mhz
+ Bộ nhớ chương trình (FLASH): 32KB
+ Bộ nhớ EEPROM: 1KB
+ Bộ nhớ RAM: 2KB
+ Điện áp hoạt động rộng: 1.8V – 5.5V
+ Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit
+ Số kênh xung PWM: 6 kênh (1timer 2 kênh)

Atmega328P-PU
1.1.3 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.

4


3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
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.
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Ω.
Lưu ý:
Arduino UNO không có bảo vệ cắm ngược nguồn vào. Do đó bạn phải hết sức cẩn thận,
kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO. Việc làm chập
mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy. mình
khuyên bạn nên dùng nguồn từ cổng USB nếu có thể.

Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị
khác, không phải là các chân cấp nguồn vào. Việc cấp nguồn sai vị trí có thể làm hỏng
board. Điều này không được nhà sản xuất khuyến khích.
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm
hỏng board.
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển
ATmega328.
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu
vượt quá 200mA sẽ làm hỏng vi điều khiển.
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng
vi điều khiển.
5


Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt
quá 40mA sẽ làm hỏng vi điều khiển. Do đó nếu không dùng để truyền nhận dữ liệu, bạn
phải mắc một điện trở hạn dòng.
1.1.4 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.
1.1.5 Các cổng vào/ra


6


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:
2 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
7


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.
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.
1.1.6 Lập trình cho Arduino
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng. Ngôn ngữ này dựa
trên ngôn ngữ Wiring được viết cho phần cứng nói chung. Và Wiring lại là một biến thể
của C/C++. Một số người gọi nó là Wiring, một số khác thì gọi là C hay C/C++. Riêng
mình thì gọi nó là “ngôn ngữ Arduino”, và đội ngũ phát triển Arduino cũng gọi như vậy.
Ngôn ngữ Arduino bắt nguồn từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu. Nếu
học tốt chương trình Tin học 11 thì việc lập trình Arduino sẽ rất dễ thở đối với bạn.

8


Để 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 đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là
Arduino IDE (Intergrated Development Environment) như hình dưới đây.

Đoạn mã nguồn như trong hình sẽ điều khiển một đèn LED nhấp nháy với chu kì 1 giây.
1.1.7 MODULE L298N
Thông số kỹ thuật:
Driver: L298N tích hợp hai mạch cầu H.

9


Điện áp điều khiển: +5 V ~ +12 V
Dòng tối đa cho mỗi cầu H là: 2A (=>2A cho mỗi motor)
Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
Dòng của tín hiệu điều khiển: 0 ~ 36mA (Arduino có thể chơi đến 40mA nên khỏe re nhé

các bạn)
Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃)
Nhiệt độ bảo quản: -25 ℃ ~ +130 ℃

L298 gồm các chân:
12V power, 5V power. Đây là 2 chân cấp nguồn trực tiếp đến động cơ.
Bạn có thể cấp nguồn 9-12V ở 12V.
Bên cạnh đó có jumper 5V, nếu bạn để như hình ở trên thì sẽ có nguồn 5V ra ở cổng 5V
power, ngược lại thì không. Bạn để như hình thì ta chỉ cần cấp nguồn 12V vô ở 12V
power là có 5V ở 5V power, từ đó cấp cho Arduino
10


Power GND chân này là GND của nguồn cấp cho Động cơ.
Nếu chơi Arduino thì nhớ nối với GND của Arduino
Jump A enable và B enable, để như hình, đừng rút ra bạn nhé!
Gồm có 4 chân Input. IN1, IN2, IN3, IN4. Chức năng các chân này tôi sẽ giải thích ở
bước sau:
+Tưởng tượng, chân IN1 là chân OutA.1, chân IN2 là chân OutA.2.
+Bạn cấp cực dương vào IN1, cực âm vào IN2 => motor quay một chiều (chiều 1).
+Bạn cấp cực âm vào IN1, cực dương vào IN2 => motor quay chiều còn lại (chiều 2)!
+Cực dương ở đây là điện thế 5V, cực âm ở đây là điện thế 0V. Hiện điện thế được tính là
điện thế ở IN1 trừ hiệu điện thế IN2.
+Giả sử, hiệu điện thế 5V sẽ là mạnh nhất trong việc điều khiển động cơ. Như vậy, chỉ
cần

hạ hiệu điện thế xuống là động cơ sẽ bị yếu đi.

+Và nếu hiệu điện thế < 0 => động cơ sẽ đảo chiều!


1.1.8 Cảm biến mưa

11


Mạch cảm biến mưa gồm 2 phần:
mạch cảm biến mưa được gắn ngoài trời
mạch điều chỉnh độ nhạy cần được che chắn
Mạch cảm biến mưa hoạt động bằng cách so sánh hiệu điện thế của mạch cảm biến nằm
ngoài trời với giá trị định trước (giá trị này thay đổi được thông qua 1 biến trở màu xanh)
từ đó phát ra tín hiệu đóng / ngắt rơ le qua chân D0. Vì vậy, chúng ta dùng một chân
digital để đọc tín hiệu từ cảm biến mưa.
Khi cảm biến khô ráo (trời không mưa), chân D0 của module cảm biến sẽ được giữ ở
mức cao (5V). Khi có nước trên bề mặt cảm biến (trời mưa), đèn LED màu xanh sẽ sáng
lên, chân D0 được kéo xuống thấp (0V).

12


CHƯƠNG 2: THIẾT KẾ CODE ARDUINO VÀ NGUYÊN LÝ HOẠT ĐỘNG
2.1 Sơ đồ khối

Cảm biến

Mô tơ hoạt
động

Vi xử lý

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

Bắt đầu

Sai
a # mua

Đúng
a = mua

Không mưa
(mua = 1 )

Sai

Đúng
Motor chạy nghịch 5s rồi dừng

Ngưng 3s

13

Motor chạy thuận 5s rồi dừng


2.3 Code cho ARDUINO
int rainSensor = 6; // Chân tín hiệu cảm biến mưa ở chân digital 6 (arduino)
int a = HIGH;
void setup()
{
pinMode(rainSensor,INPUT);// Đặt chân cảm biến mưa là INPUT, vì tín hiệu sẽ được
truyền đến cho Arduino


Serial.begin(9600);// Khởi động Serial ở baudrate 9600

Serial.println("Da khoi dong xong");
pinMode(13,OUTPUT);// cổng 13 là đầu ra
pinMode(8,OUTPUT);// cổng 8 là đầu ra
}
void loop()
{
int mua = digitalRead(rainSensor); //Đọc tín hiệu cảm biến mưa
Serial.println("mua = ");
Serial.println(mua);
if (mua != a)

14


{
a = mua; Serial.println("a=");
Serial.println(a);
if (mua == HIGH) { Serial.println("Dang khong mua");
digitalWrite(13, HIGH); // cấp nguồn 5v cho mạch đầu a mạch
delay(5000); // thời gian cấp nguồn 5 s
digitalWrite(13, LOW);
}
Else
{
Serial.println("Dang mua");
digitalWrite(8, HIGH); // cấp nguồn 5v cho mạch đầu a mạch
delay(5000); // thời gian cấp nguồn 5 s

digitalWrite(8, LOW);
}
}
delay(3000);//đợi 3s cho lần kiểm tra tiếp theo
}

2.4 Nguyên lý hoạt động
15


Arduino cấp nguồn 5v cho cảm biến mưa
Cảm biến mưa gửi tín hiệu digital vào chân số 6 của arduino.

Sản phẩm hoàn thiện.

16


17


Arduino nhận tín hiệu từ chân số 6 sau đó tín hiệu ra của Arduino là từ chân số 8 và chân
số 13 truyền vào Module L298N để đảo chiều động cơ.

18


CHƯƠNG 3 : ỨNG DỤNG
3.1 Mái che mưa tự động
Với mái che kéo chúng ta có thể lắp motor Động Cơ Giảm Tốc 550 DC 12V 30RPM giá

200.000 đ (Momen xoắn cực đại: 50kg.cm chạm mức kéo 50kg khi vật cách trục 1cm,
thì motor sẽ ngừng quay) vào trục quay để kéo mái ra và vào thay cho kéo tay.
Với 12v cho động cơ giảm tốc thì chúng ta sẽ cấp nguồn riêng cho motor và dung bằng rơ
le.

3.2 Giàn phơi đồ thông minh
Tương tự như mái che mưa tự động nhưng thay vào đó chúng ta làm bằng ròng rọc để
đưa đồ vào mái che cố định.

19


CHƯƠNG 4 : KẾT LUẬN
4.1 Bảng báo giá

STT

Tên Linh Kiện

Số Lượng

Giá Tiền

1

Arduino uno r3

1

160.000đ


2

L298N

1

65.000đ

3

Cảm biến mưa

1

25.000đ

4

Dây nối

10

500đ

5

Motor

1


20.000đ

6

Pin 9v

2

10.000đ

TỔNG CỘNG

295.000đ

4.2 Ưu điểm
- Lắp đặt đơn giản và dễ dàng sử dụng.
- Giúp giảm thiểu thời gian và sức lực.
20


- Có thể mở rộng dễ dàng phát triển.
- Ứng dụng ngay vào thực tế
4.3 Hạn chế
- Giá thành khá cao để lắp đặt.
- Mạch hoạt động liên tục.
4.4 Hướng phát triển
- Có thể nâng cấp thiết bị kết hợp với các cộng nghệ cao hơn như internet, Bluetooth để
điều khiển từ xa.
- Áp dụng tốt vào thực tế và có thể thương mại hóa.

4.5 Kết thúc đồ án
Sau thời gian thực hiện đồ án môn học, cùng với sự hướng dẫn của thầy, em đã hoàn
thành đồ án đúng theo yêu cầu đặt ra. Để thực hiện được yêu cầu của đề tài, em đã vận
dụng được kiến thức đã học từ trước cộng với sự tìm hiểu những vấn đề liên quan đến đề
tài. Vì thế kiến thức và kinh nghiệm từ đồ án 1 này mang lại cho em là rất lớn. Một lần
nữa, em xin chân thành cảm ơn!

21



×