TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BÁO CÁO ĐỒ ÁN 1
Tìm hiểu và thiết kế một bo
mạch
Arduino Uno
TRẦN VĂN HỢP
Ngành Kỹ thuật điều khiển và tự động hóa
Giảng viên hướng dẫn:
Bộ mơn:
Viện:
TS. Nguyễn Hồng Nam
Kỹ thuật đo và tin học công nghiệp
Điện
Hà Nội, 6-2020
NHẬN XÉT CỦA GIẢNG VIÊN
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
……………………………………………………………
Ký tên
1
Mở đầu
Ngày nay trên thế giới với sự phát triển mạnh mẽ của khoa học – cơng nghệ
đã góp phần giúp chất lượng cuộc sống con người không ngừng được nâng
cao. Thêm vào đó sự xâm nhập trực tiếp của internet vào cuộc sống của
chúng ta ngày càng nhiều. Nhu cầu của con người ngày càng cao đưa đến
những thách thức những địi hỏi khơng ngừng của các ngành, lĩnh vực khác
nhau cho đến nhu cầu thiết yếu của con người trong cuộc sống . Arduino là
một bo mạch thông dụng hiện nay. Được giới thiệu vào năm 2005, những
nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng,
khơng tốn kém cho những người u thích, sinh viên và giới chuyên nghiệp
để tạo ra những thiết bị có khả năng tương tác với mơi trường thơng qua
các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những
người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt
độ và phát hiện chuyển động. Đi cùng với nó là một mơi trường phát triển
tích hợp (IDE) chạy trên các máy tính cá nhân thơng thường và cho phép
người dùng viết các chương trình cho Aduino bằng ngơn ngữ C hoặc C++ .
Dưới sự hướng dẫn của thầy Nguyễn Hoàng Nam và dựa trên cơ sở kiến
thức đã học tìm hiểu, em xin thực hiện đề tài : Thiết kế mạch Arduino
UNO
2
3
Lời cảm ơn
Trước hết em xin gửi lời cảm ơn tới thầy Nguyễn Hoàng Nam đã hướng
dẫn chỉ dạy để em hồn thành bản báo cáo đồ án này. Vì hiểu biết còn hạn
hẹp và lần đầu làm đồ án nên đồ án của em cịn nhiều thiếu sót, em mong
nhận được những sự góp ý, sửa đổi từ phía thầy để đồ án của em được hoàn
thiện hơn
Em xin chân thành cảm ơn!
Hà nội, 6-2020
3
MỤC LỤC
Chương 1. Tổng quan về bo mạch Arduino..............................................7
1.1 Giới thiệu về Arduino...........................................................................7
1.2 Các loại bo mạch Arduino....................................................................8
Chương 2: Giới thiệu Arduino Uno...........................................................9
2.1 Cấu tạo Arduino Uno...........................................................................9
2.2 Thông số kỹ thuật...............................................................................10
2.3 Vi điều khiển của Arduino Uno..........................................................11
2.4 Nguồn.................................................................................................11
Chương 3: Thiết kế mạch Arduino Uno..................................................13
3.1 Giới thiệu qua phần mềm Altium 18..................................................13
3.1.1 Altium Designer là gì?.................................................................13
3.1.2 Đặc trưng của Altium Designer...................................................13
3.2 Thiết kế mạch Arduino Uno trên Altium Designer 18.......................14
3.2.1 Sơ đồ nguyên lý...........................................................................14
3.2.1.1 Thiết kế nguồn.......................................................................15
3.2.1.2 Thiết kế mạch dao động.........................................................17
3.2.1.3 Thiết kế mạch reset................................................................17
3.2.1.4 Thiết kế mạch nạp..................................................................18
3.2.1.5 Thiết kế vi điều khiển Atmega328-PU...................................19
3.2.2 Bảng mạch PCB...........................................................................19
3.2.2.1 Các phím tắt trong thiết kế PCB............................................19
3.2.2.2 Quy trình vẽ mạch PCB.........................................................20
3.2.3 Các linh kiện trong mạch.............................................................25
TÀI LIỆU THAM KHẢO........................................................................27
4
DANH MỤC
Hình 1.1 Các loại mạch Arduino...................................................................8
Hình 2.1 Ảnh Arduino Uno...........................................................................9
Hình 2.2 Ảnh chi tiết Arduino Uno và vị trí linh kiện................................10
Hình 2.3 Vi điều khiển của Arduino Uno R3..............................................11
Hình 3.1 Giao diện schematic Altium Designer 18.....................................13
Hình 3.2 Sơ đồ nguyên lý của Arduino.......................................................15
YHình 3.3 Sơ đồ cấp nguồn qua Jack DC...................................................15
Hình 3.4 Sơ đồ cấp nguồn qua USB...........................................................16
Hình 3.5 Sơ đồ mạch giao động..................................................................17
Hình 3.6 Sơ đồ mạch Reset.........................................................................17
Hình 3.7 Sơ đồ mạch nạp............................................................................18
YHình 3.8 Sơ đồ vi điều khiển Atmega328-PU..........................................19
Hình 3.9 Up file Schematic sang PCB........................................................20
Hình 3.10 Engneering Change Order..........................................................21
Hình 3.11 Hình sau khi xuất file sang PCB................................................21
Hình 3.12 Sắp xếp các linh kiện..................................................................22
YHình 3.13 Hiển thị các chân cần đấu với nhau.........................................22
YHình 3.14 Các layer trong PCB................................................................23
Hình 3.15 Nối dây các linh kiện..................................................................23
Hình 3.16 Sơ đồ PCB mặt trước.................................................................24
Hình 3.17 Sơ đồ PCB mặt sau.....................................................................24
5
DANH MỤC HÌNH VẼ
Bảng 3.1 Các linh kiện trong mạch 5
6
Chương 1. Tổng quan về bo mạch Arduino
1.1 Giới thiệu về Arduino.
Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng
dụng điện tử tương tác với nhau hoặc với môi trường được thuận lợi hơn.
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những
người tự chế ra sản phẩm của mình) trên tồn thế giới trong vài năm gần
đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di
động. Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc
phổ thông lên đến đại học đã làm cho ngay cả những người tạo ra chúng
phải ngạc nhiên về mức độ phổ biến.
- Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh
viên trại Interaction Design Institute Ivrea tại Ivrea, Italy.
- Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương
tác với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm
một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel
8bit, hoặc ARM Atmel 32-bit. Những Model hiện tại được trang bị gồm 1
cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương
thích với nhiều board mở rộng khác nhau.
- Arduino là một nền tảng mà mọi thiết bị phần cứng đều được làm sẵn và
chuẩn hóa, người dùng chỉ việc chọn những thứ mình cần, ráp lại là có thể
chạy được. Bạn muốn làm xe điều khiển từ xa ? Arduino cung cấp cho bạn
module điều khiển động cơ có sẵn, mạch điều khiển có sẵn, mạch thu phát
sóng khơng dây có sẵn.
Arduino có thể kết nối những gì
- Hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, gia tốc,
vận tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện
chuyển động, phát hiện kim loại, khí độc,…),…
7
- Các thiết bị hiển thị (màn hình LCD, đèn LED,…).
-
Các module chức năng (shield) hỗ trợ kêt nối có dây với các thiết bị khác hoặc
các kết nối không dây thông dụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz,
2.4Ghz,…), …
-
Định vị GPS, nhắn tin SMS,…
1.2 Các loại bo mạch Arduino.
Có 5 loại Arduino phổ biến:
- Arduino Uno
-
Arduino Ethernet
-
Arduino Yun
-
Arduino Nano
- Arduino Mega ADK
Một số hình ảnh về các loại bo mạch Arduino
Hình 1.1 Các loại mạch Arduino
8
Chương 2: Giới thiệu Arduino Uno
2.1 Cấu tạo Arduino Uno
Hình 2.1 Ảnh Arduino Uno
Arduino Uno là một bo mạch vi điều khiển dựa trên chip Atmega328P.
Uno có 14 chân I/O digital ( trong đó có 6 chân xuất xung PWM), 6 chân
Input analog, 1 thạch anh 16MHz, 1 cổng USB, 1 jack nguồn DC, 1 nút
reset.
- Cổng USB: đây là loại cổng giao tiếp để ta upload code từ PC lên vi điều
khiển. Đồng thời nó cũng là giao tiếp serial để truyền dữ liệu giữa vi điều
khiển và máy tính.
- Jack nguồn: để chạy Arduino thỉ có thể lấy nguồn từ cổng USB ở trên,
nhưng không phải lúc nào cũng có thể cắm với máy tính được . Lúc đó ta
cần một nguồn từ 9V đến 12V.
- Có 14 chân vào/ra số đánh số thứ tự từ 0 đến 13, ngồi ra có một chân nối
đất (GND) và một chân điện áp tham chiếu (AREF).
- Vi điều khiển AVR: đây là bộ xử lí trung tâm của tồn bo mạch. Với mỗi
mẫu Arduino khác nhau thì con chip là khác nhau. Ở con Arduino Uno này
9
thì sử dụng ATMega328.
Sơ đồ chi tiết của Uno R3:
Hình 2.2 Ảnh chi tiết Arduino Uno và vị trí linh kiện
2.2 Thông số kỹ thuật
Vi xử lý:
Atmega328
Điện áp hoạt động:
5V
Điện áp đầu vào:
7-12V
Điện áp đầu vào (Giới hạn):
6-20V
Chân vào/ra (I/O) số:
14 ( 6 chân có thể cho đầu ra PWM)
Chân vào tương tự:
6
Dòng điện trong mỗi chân I/O:
40mA
Dòng điện chân nguồn 3.3V:
50mA
Bộ nhớ trong:
32 KB (ATmega328)
SRAM:
2 KB (ATmega328)
EEPROM:
1 KB (ATmega328)
Xung nhịp:
16MHz
10
2.3 Vi điều khiển của Arduino Uno
Hình 2.3 Vi điều khiển của Arduino Uno R3
- Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8,
ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản
như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa,
làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,…
- Thiết kế tiêu chuẩn của Arduino UNO sử dụng vi điều khiển ATmega328
với giá khoảng 90.000đ. Tuy nhiên nếu yêu cầu phần cứng của bạn không
cao hoặc túi tiền khơng cho phép, bạn có thể sử dụng các loại vi điều khiển
khác có chức năng tương đương nhưng rẻ hơn như ATmega8 (bộ nhớ flash
8KB) với giá khoảng 45.000đ hoặc ATmega168 (bộ nhớ flash 16KB) với
giá khoảng 65.000đ.
2.4 Nguồn
Có hai cách cấp nguồn chính cho bo mạch Uno: cổng USB và jack DC.
Giới hạn điện áp cấp cho Uno là 6 – 20V. Tuy nhiên, dải điện áp khuyên
dùng là 7 – 12 V (tốt nhất là 9V). Lý do là nếu nguồn cấp dưới 7V thì điện
áp ở ‘chân 5V’ có thể thấp hơn 5V và mạch có thể hoạt động khơng ổn
định; nếu nguồn cấp lớn hơn 12V có thể gấy nóng bo mạch hoặc phá hỏng.
Các chân nguồn trên Uno:
11
- Vin : chúng ta có thể cấp nguồn cho Uno thơng qua chân này. Cách cấp
nguồn này ít được sử dụng.
- 5V : Chân này có thể cho nguồn 5V từ bo mạch Uno. Việc cấp nguồn vào
chân này hay chân 3.3 V đều có thể phá hỏng bo mạch.
- 3.3V : Chân này cho nguồn 3.3 V và dòng điện maximum là 50mA.
- GND: chân đất.
Chương 3: Thiết kế mạch Arduino Uno
12
3.1 Giới thiệu qua phần mềm Altium 18
3.1.1 Altium Designer là gì?
- Altium Designer trước kia có tên gọi quen thuộc là Protel DXP, là một
trong những công cụ vẽ mạch điện tử mạnh nhất hiện nay. Được phát triển
bởi hãng Altium Limited. Altium designer là một phần mềm chuyên
nghành được sử dụng trong thiết kế mạch điện tử. Nó là một phần mềm
mạnh với nhiều tính năng thú vị, tuy nhiên phần mềm này cịn được ít
người biết đến so với các phần mềm thiết kế mạch khác như orcad hay
proteus.
- Giao diện Altium Designer 18
Hình 3.1 Giao diện schematic Altium Designer 18
3.1.2 Đặc trưng của Altium Designer
- Giao diện thiết kế, quản lý và chỉnh sửa thân thiện, dễ dàng biên dịch, quản
lý file, quản lý phiên bản cho các tài liệu thiết kế.
- Hỗ trợ mạnh mẽ cho việc thiết kế tự động, đi dây tự động theo thuật tốn
tối ưu, phân tích lắp ráp linh kiện. Hỗ trợ việc tìm các giải pháp thiết kế
13
hoặc chỉnh sửa mạch, linh kiện, netlist có sẵn từ trước theo các tham số
mới.
- Mở, xem và in các file thiết kế mạch dễ dàng với đầy đủ các thơng tin linh
kiện, netlist, dữ liệu bản vẽ, kích thước, số lượng…
- Hệ thống các thư viện linh kiện phong phú, chi tiết và hoàn chỉnh bao gồm
tất cả các linh kiện nhúng, số, tương tự…
- Đặt và sửa đối tượng trên các lớp cơ khí, định nghĩa các luật thiết kế, tùy
chỉnh các lớp mạch in, chuyển từ schematic sang PCB, đặt vị trí linh kiện
trên PCB.
- Mơ phỏng mạch PCB 3D, đem lại hình ảnh mạch điện trung thực trong
không gian 3 chiều, hỗ trợ MCAD-ECAD, liên kết trực tiếp với mơ hình
STEP, kiểm tra khoảng cách cách điện, cấu hình cho cả 2D và 3D
-
Hỗ trợ thiết kế PCB sang FPGA và ngược lại.
3.2 Thiết kế mạch Arduino Uno trên Altium Designer 18
Thiết kế mạch Arduino Uno bao gồm 2 phần:
- Sơ đồ nguyên lý (schematic)
- Bảng mạch PCB 3D
3.2.1 Sơ đồ nguyên lý
Sơ đồ nguyên lý của mạch Arduino Uno được thiết kế bao gồm:
- Khối nguồn
- Khối mạch dao động
- Khối reset
- Khối mạch nạp
- Khối vi điều khiển Atmega328-PU
14
Hình 3.2 Sơ đồ nguyên lý của Arduino Uno
3.2.1.1 Thiết kế nguồn
Có 2 cách cấp nguồn cho Board mạch
- Qua Jack Dc
- Qua USB
Hình 3.3 Sơ đồ cấp nguồn qua Jack DC
15
Hình 3.4 Sơ đồ cấp nguồn qua USB
.
Đối với Jack DC.
- Nguồn cấp vào Jack DC có thể là Pin. Dải điện áp khuyên dùng là 7 – 12 V
(tốt nhất 9V)
- Điện áp từ Jack DC sau khi qua Diode bảo vệ D2 thì được gọi là điện
áp VIN.
- Diode D2 có nhiệm vụ bảo vệ, duy trì dịng DC vào mạch.
- Tụ C4 có các dụng cung cấp điện áp tạm thời cho chân Vin khi nguồn đột
ngột bị sụt áp.
- Tụ C5 và C6 để lọc điện áp cấp cho tải tiêu thụ lấy từ chân OUT của IC
MC3326D-3.3G, tụ C5 có các dụng cung cấp điện áp tạm thời cho tải khi
điện áp tải đột ngột bị sụt áp, tụ C6 trở kháng lớn, C6 có tác dụng lọc nhiễu
điện áp đầu ra.
Đối với USB
- F1 là một cầu chì tự phục hồi, trong trường hợp bạn chỉ sử dụng dây cáp
USB để cấp nguồn thì tổng dịng tiêu thụ khơng được q 500mA. Nếu
khơng cầu chì sẽ ngăn khơng cho dịng điện chạy qua.
Trong trường hợp chỉ có 1 trong 2 nguồn cung cấp thì Board Arduino sẽ sử
dụng nguồn cung cấp đó. Trong trường hợp có cả 2 nguồn cung cấp thì
Arduino sẽ ưu tiên lựa chọn nguồn cung cấp từ Jack DC thay vì từ cổng
USB.
16
3.2.1.2 Thiết kế mạch dao động
Hình 3.5 Sơ đồ mạch dao động
- Mạch giao động tạo ra các xung clock giúp cho vi điều khiển hoạt động,
thực thi lệnh… Board mạch Arduino Uno sử dụng thạch anh 16Mhz làm
nguồn dao động.
- Mạch giao động tạo ra các xung clock giúp cho vi điều khiển hoạt động,
thực thi lệnh
3.2.1.3 Thiết kế mạch reset
Hình 3.6 Sơ đồ mạch reset
Để vi điều khiển thực hiện khởi động lại thì chân RESET phải ở mức logic
LOW (~0V) trong 1 khoản thời gian đủ yêu cầu.
Chức năng của mạch Reset:
17
- Reset bằng tay: Khi nhấn nút, chân RESET nối với GND, làm cho MCU
RESET. Khi không nhấn nút chân Reset được kéo 5V.
- Reset tự động: Reset tự động được thực hiện ngay khi cấp nguồn cho vi
điều khiển nhờ sự phối hợp giữa điện trở nối lên nguồn và tụ điện nối đất.
Thời gian tụ điện nạp giúp cho chân RESET ở mức LOW trong 1 khoản
thời gian đủ để vi điều khiển thực hiện reset.
- Khởi động vi điều khiển trước khi nạp chương trình mới.
3.2.1.4 Thiết kế mạch nạp
Hình 3.7 Sơ đồ mạch nạp
- Máy tính giao tiếp với Board mạch Arduino qua chuẩn giao tiếp USB
(D+/D-), thông qua một IC FT232RL của FTDI . IC này có nhiệm vụ
chuyển đổi chuẩn giao tiếp USB thành chuẩn giao tiếp UART để nạp
chương trình hoặc giao tiếp truyền nhận dữ liệu với máy tính (Serial).
- Mạch có thể hoạt động tốt ở chế độ 5V hoặc 3V3, trên mạch có sẵn 2 led
cho tín hiệu TXD và RXD, giúp theo dõi trực tiếp trạng thái tín hiệu.
- Driver hỗ trợ Mac OS X, Linux, Windows.
18
3.2.1.5 Thiết kế vi điều khiển Atmega328-PU
Hình 3.8 Sơ đồ vi điều khiên Atmega328-PU
3.2.2 Bảng mạch PCB
3.2.2.1 Các phím tắt trong thiết kế PCB
Các phím tắt trong thiết kế mạch in:
+ A - A: Đi dây tự động
+ Ctrl + M: Đo kích thước
+ Ctrl + Shift + Lăn chuột: chuyển lớp
+ D - O: Chỉnh thông số của mạch.
+ D - R: Thay đổi các luật cho bản vẽ (kích thước đường dây, lỗ via,
khoảng cách các linh kiện,...)
+ D - S - R: Định lại kích thước bo mạch
+ D - T - A: Hiển thị hết tất cả các lớp
+ D - T - S: Hiển thị các lớp tín hiệu (Top - Bottom - Multi)
+ L: Khi đang di chuyển linh kiện lật linh kiện giữa lớp Top và Bottom
(Bottom và Top)
+ P - T: Đi dây bằng tay
19
+ P - V: Lấy lỗ via
+ P - G: phủ đồng
+ P - L: Định kích thước cho mạch (Keep Out Layer)
+ P - R: Vẽ đường mạch theo ý muốn
+ Q (Ctrl + Q): Thay đổi đơn vị (mm <-> mil)
+ Shift + R: Thay đổi các chế độ đi dây (Cắt - Không cho cắt - Đẩy dây)
+ Shift + S: Chỉ cho phép hiện 1 lớp đang chọn (các lớp còn lại được ẩn)
+ Shift + Space: Thay đổi các chế độ đường dây (Tự do - Theo luật Vuông 90 độ - Cong)
+ TAB: Hiện cửa sổ thay đổi thông tin khi đang thao tác.
+ T - U - A: Xóa tất cả các đường mạch
+ T - E: Bo tròn đường dây chân linh kiện
+ V - B: Xoay bản vẽ 180 độ
+ V - F: Hiển thị tồn bộ bản vẽ
3.2.2.2 Quy trình vẽ mạch PCB
Quy trình vẽ bảng mạch PCB
- Bước 1: Sau khi vẽ xong sơ đồ Schematic và kiểm tra đầy đủ, thì ta
nhấn vào Design và chọn Update PCB Document <Tên_file>.PcbDoc
Hình 3.9 Up file Schematic sang PCB
- Bước 2: Cửa sổ Engneering Change Order xuất hiện
Tiếp theo mình chọn Validate Changes
Excute Changes. Nếu 2
hàng được tích v hết thì File của bạn khơng bị lỗi, cịn tích x thì phải đi
sửa lỗi x đó.
20
Hình 3.10 Engneering Change Order
Sau khi xuất sang PCB ta được hình như sau:
Hình 3.11 Hình sau khi xuất file sang PCB
- Bước 3: Đưa các linh kiện vào và sắp xếp theo từng khối như schematic
Sắp xếp các linh kiện phù hợp theo từng khối như trong hình vẽ schematic.
21
Hình 3.12 Sắp xếp các linh kiện
- Bước 4: Nối dây của các linh kiện với nhau
a) Nhấn Ctrl+ vị trí chân cần đấu.
Hình 3.13 Hiển thị các chân cần đấu với nhau
b) Sử dụng các layer khác nhau để hồn thiện bản vẽ
Có rất nhiều loại layer trong thiết kế PCB: Bottom Layer, Top Layer,
Mechanical 1, Mechanical 13… Trong hình vẽ này sử dụng 2 lớp layer là
22