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

Tiểu luận mạch Arduino Uno và thực hành mạch sáng tạo

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 (507.46 KB, 12 trang )

TRƯỜNG ĐẠI HỌC – MỎ ĐỊA CHẤT
BỘ MÔN MẠNG MÁY TÍNH
*******

BÀI TIỂU LUẬN
KIẾN TRÚC VÀ HẠ TẦNG MẠNG IOT - 7080713
ĐỀ TÀI 3

Họ tên: ?
Lớp: ?
Mã sinh viên: ?
Nhóm mơn học: ?
Giảng viên: ?
Năm học: 2021-2022

HÀ NỘI - 2021


HUMG

MỤC LỤC
I.

II.

MỞ ĐẦU..............................................................................................
 Lời dẫn........................................................................................
 Mục đích đề tài...........................................................................
 Phương pháp nghiên cứu............................................................
NỘI DUNG..........................................................................................
 Thông tin về các thành phần mạch.............................................


1. Vẽ sơ đồ mạch điện và viết chương trình hiển thị tên .......................

III.
IV.

I.

2. Vẽ và viết chương trình đèn giao thông ở ngã tư.......................
KẾT LUẬN .........................................................................................
TÀI LIỆU THAM KHẢO..................................................................

MỞ ĐẦU
Tuy đã nhe nhóm từ lâu nhưng kỷ nguyên Internet Of Things chỉ thực sự

được biết đến và bùng nổ mạnh mẽ trong những năm gần đây, sau sự phát triển
của smartphone, tablet và những kết nối không dây.
Và ngay sau khi nhận được sự chú ý của cộng đồng thì IOT đã cho thấy
tiềm năng của mình với những số liệu kinh ngạc. Ví dụ như: theo nhà cung cấp
mạng hàng đầu Cisoc đã dự báo đến năm 2022, sẽ có khoảng 50 tỷ đồ vật kết
nối vào Internet, bao gồm hàng tỷ thiết bị di động, tivi, máy giặt… Khơng chỉ
dừng lại ở đó IOT ngày càng mở rộng và được tích hợp vào nhiều ngành khác
nhau như giải trí, sản suất, kinh doanh… nhằm đáp ứng nhu cầu ngày càng cao.

1|Page


HUMG

Hiện nay, IOT chưa thực sự được áp dụng rổng rãi ở nước ta, do những
điều kiện về kỹ thuật, kinh tế, nhu cầu sử dụng. Nhưng chắc chắn trong tương

lai nó sẽ phát triển và đầy tiềm năng tăng trưởng.
Từ khi được học bộ môn Kiến Trúc và Hạ Tầng Mạng IOT này, từ việc
chỉ nghe qua và những lý thuyết mơ hồ thì em đã hiểu rõ và sâu hơn về các kỹ
thuật và ứng dụng trong IOT. Và cũng hết sức tự tin thi thực hành về các sản
phẩm IOT. Vì vậy em xin trình bày bài tiểu luận của cá nhân em trong bài này.
 Mục đích của đề tài
-Tăng thêm nhiều sự hiểu biết về các thiết bị điện tử và linh kiện.
- Có thể tự mình phát triển sáng tạo ra các chương trình và tạo ra các mơ hình từ
các thiết bị mình đã tìm hiểu.
-Tạo thêm kiến thức tìm tịi học hỏi nhiều hơn để ứng dụng vào đời sống.
-Những nhiệm vụ cần tìm hiểu trong đề tài.
-Tìm hiểu các linh kiện điện tử và các thiết bị cảm biến.
-Tự tìm tịi và sáng tạo đoạn mạch.
 Phương pháp tìm hiểu
-Tìm kiếm trên internet và trên sách báo và TV…
-Tìm hiểu thơng qua thầy, cơ và bạn bè.
-Tìm hiểu đời sống thực tiễn hàng ngày.

II.

NỘI DUNG

 Giới thiệu các thành phần linh kiện trong bài
 Mạch Arduino Uno R3: kit Arduino UNO thế hệ thứ 3
Thông số:
- Vi điều khiển: ATmega328P(8bits)
- Điện áp hoạt động: 5V
- Tần số hoạt động: 16 MHz
- Điện áp đầu vào khuyên dùng: 7VDC - 12VDC
- Đ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 1 (5V) 500 mA
- Dòng ra tối đa 2 (3.3V) 50 mA
2|Page


HUMG

- Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
- SRAM 2 KB (ATmega328)
- EEPROM 1 KB (ATmega328)
- Clock Speed: 16 MHz

 Màn hình hiển thị LCD
Thơng số:
- VSS: tương đương với GND - cực âm
- VDD: tương đương với VCC - cực dương (5V)
- VEE: điều khiển độ tương phản của màn hình
- RS - Register Select: chọn thanh ghi. Nối chân RS với logic “0” (GND) hoặc
logic “1” (5V) để chọn thanh ghi.
- RW - Read/Write: lựa chọn chế độ đọc hoặc ghi, LOW là ghi còn HIGH là đọc
- E - Enable pin: Cho phép ghi vào LCD. Sau khi các tín hiệu được đặt lên bus
D0-D7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
- D0 - D7: là các chân tín hiệu ngõ vào LCD, mỗi chân sẽ có giá trị HIGH hoặc
LOW, LOW là ghi cịn HIGH là đọc

 Traffic light
Gồm 3 chân tương ứng với các

3 màu của đèn giao thông

1. Nội dung thứ nhất
Yêu cầu đề bài: Vẽ sơ đồ mạch điện , viết chương trình trên arduino IDE.
Mơ phỏng mạch hiển thị tên của sinh viên và hiển thị trên màn hình tinh thể
lỏng (LCD).
Bài làm:
 Hình vẽ sơ đồ mạch
Em xinh trình bày hành ảnh vẽ mạch trên phần mềm Proteus bên dưới:

3|Page


HUMG

Thành phần trong bản vẽ này em sử dụng: mạch Arduino Uno và màn hình
LCD 16x2 để hiển thị họ và tên & mã số sinh viên.
 Pin 12 nối với chân RS trên LCD.
 Pin 11 nối với chân E trên LCD .
 Pin 5 nối với chân D4 trên LCD.
 Pin 4 nói với chân D5 trên LCD.
 Pin 3 nói với chân D6 trên LCD.
 Pin 2 nói với chân D7 trên LCD.
 Chân VEE trên LCD nối với nguồn điện 5V.
 Chân VDD trên LCD nối với ngồn điện 5V.
 Chân VSS và RW được nối đất.
 Bài code trên Arduino IDE
Khi đã vẽ xong mạch thì tiếp đến em lâp trình trên Arduino IDE rồi nạp vào
mạch để hiển thị tên & MSSV. Dưới đây là hình ảnh mã code:


4|Page


HUMG

 Đầu tiên em khai báo thư viện LiquidCrytal có tác dụng điều khiển LCD
trên Arduino.
 Tiếp đến khởi tạo các chân nối từ LCD tới mạch Arduino Uno.
 Phần hàm setup(), em dùng hàm begin() có sẵn trong thư viện để khơi tạo
vùng hiển thị trên màn hình LCD với 16 cột và 2 hàng.
 Phần hàm loop(), dòng đầu em dùng hàm clear() để xóa bỏ nội dung hiển
thị mỗi vòng lặp. dòng thứ 2 dùng hàm setCursor() đặt con trỏ vào vị trí
đầu tiên rồi dùng hàm print() để hiện thị họ và tên. Sau cùng, thì đặt con
trỏ vào cột 0 dòng 1 bằng hàm setCursor() và hiển thị mã sinh viên bằng
hàm print(). Và kết quả ta được như hình ảnh mạch bên trên.
2. Nội dung thứ 2
Yêu cầu đề bài: Xây dựng một hệ thống đèn giao thơng ở ngã tư có 2
luồng đèn sử dụng mạch Arduino mà em lựa chọn.
- Mô tả bài toán và các chức năng. (yêu cầu tối thiểu có chức năng: Có ít nhất
hai luồng đèn của và thay đổi thời gian sáng, tắt hợp lí và khuyến khích sáng tạo
xây dựng các module hợp lí khác)
5|Page


HUMG

- Lựa chọn các thiết bị (giải thích sự lựa chọn đó)
- Vẽ sơ đồ đấu nối chi tiết, mơ tả nguyên tắc hoạt động của sơ đồ. Giải thích
hoạt động
- Viết chương trình trên arduino IDE và giải thích code


Bài làm:
 Hình vẽ sơ đồ mạch
Em xinh trình bày hành ảnh vẽ mạch trên phần mềm Proteus bên dưới:

Thành phần trong bản vẽ bao gồm: mạch Arduino Uno, 4 đèn tín hiệu
giao thơng(traffic light x 4), và sử dụng 24 nhãn(label) để nối mạch thay vì nối
dây dài, khó nhìn và dễ gây rối.
Theo như bản vẽ, em quy ước có 2 luồng giao thơng gồm: đường thẳng
và đường ngang.
Với đương thẳng có 2 đèn tìn hiệu giao thơng (LED2 và LED 4) và được
quy ước theo thứ tự đèn(xanh-vàng-đỏ):
 Nhãn led2-1 nối với pin 10
6|Page


HUMG

 Nhãn led2-2 nối với pin 9
 Nhãn led2-3 nối với pin 8
 Nhãn led4-1 nối với pin 4
 Nhãn led4-2 nối với pin 3
 Nhãn led4-3 nối với pin 2
Với đương ngang có 2 đèn tìn hiệu giao thơng (LED1 và LED 3) và
được quy ước theo thứ tự đèn(xanh-vàng-đỏ):
 Nhãn led1-1 nối với pin 13
 Nhãn led1-2 nối với pin 12
 Nhãn led1-3 nối với pin 11
 Nhãn led3-1 nối với pin 7
 Nhãn led3-2 nối với pin 6

 Nhãn led3-3 nối với pin 5
 Nội dung phần code trên Arduino IDE
Khi đã vẽ xong mạch thì tiếp đến em lâp trình trên Arduino IDE rồi nạp vào
mạch để hiển thị tín hiệu đèn giao thơng. Dưới đây là hình ảnh mã code:

7|Page


HUMG

8|Page


HUMG

Đầu tiên em khai báo 4 array để lưu các giá trị chân nối của đèn led tín
hiệu giao thơng. Quy ước index trong mảng từ 0 đến 2 theo thứ tự màu XanhVàng-Đỏ:
 Mảng Led 1 nối vào pin 13,12,11
 Mảng Led 2 nối vào pin 10, 9, 8
 Mảng Led 3 nối vào pin 7, 6, 5
 Mảng Led 4 nối vào pin 4, 3, 2
Khi đã khai báo các chân tiếp xúc xong, tiếp đến hàm setup(), em cho
chạy vòng lặp FOR 3 lần và dùng hàm pinMode() để lấy giá trị OUTPUT của
từng pin.

9|Page


HUMG


Sau đó đến hàm loop(), em chia thành 4 trạng thái cơ bản của đèn giao thông
của đường thẳng và đường ngang đã quy ước bên trên. Và tắt bật đèn trong
bài code đều dùng hàm digitalWrite() với đối sô HIGH/LOW:
 Trạng thái 1: bật đèn xanh của đường ngang và đèn đỏ đường thẳng với
đối số HIGH
 Trạng thái 2: sau 3s, chuyển đèn vàng với đối số HIGH và tắt đèn xanh
với đối số LOW của đường ngang. Đồng thời giữ đèn đỏ bật ở đường
thẳng
10 | P a g e


HUMG

 Trạng thái 3: sau 1s, tắt đèn vàng với đối số LOW và bật đèn đỏ với đối
số HIGH của đường ngang.
Bật đèn xanh với đối số HIGH và tắt đèn đỏ với đối số LOW của đường
thẳng
 Trạng thái 4: sau 3s, tắt đèn xanh với dối số LOW và bật đèn vàng với
tham số HIGH của đường thẳng.
Vẫn giữ nguyên đèn đỏ bật tại đường ngang. Sau 1s, tắt đèn vàng đường
thẳng với đối số LOW và tắt đèn đỏ đường ngang với tham số LOW.
Từ đó quay lại vịng lặp loop() thì ta được cách vận hành đèn tín hiệu
giao thơng tại ngã tư cơ bản.
III.

Kết luận
Như vậy bằng cách vận dụng những kiến thức đã học và tìm hiểu thêm

qua internet… em đã hiểu rõ hơn về IOT và hoàn hành bài tiểu luận của mình
tai đây.

IV.

Tài liệu tham khảo

 Slide bài giảng của cơ
 Thông tin về linh kiện: arduino.vn/bai-viet/42-arduino-uno-r3-la-gi


Bài tham khảo về đèn giao thông 2 cụm đèn: youtu.be/T1-fShdhuW8

11 | P a g e



×