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

ĐIỀU KHIỂN các THIẾT bị điện TRONG NHÀ từ XA QUA BLUETOOTH TRÊN THIẾT BỊ ANDROID

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.07 MB, 53 trang )

BỘ GIAO THÔNG VẬN TẢI

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM

NGUYỄN NGỌC HUY

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ TỪ XA QUA
BLUETOOTH TRÊN THIẾT BỊ ANDROID
NGÀNH: ĐIỆN TỬ –ĐIỆN TỬ TÀU BIỂN ;

MÃ SỐ: D52027

CHUYÊN NGÀNH: ĐIỆN TỬ - VIỄN THÔNG

Người hướng dẫn: ThS. VŨ VĂN RỰC

HẢI PHÒNG – 2015
1


LỜI CẢM ƠN
Để có được một đề tài như mình mong muốn, có thể hoàn thành được đề tài
đó trong thơi gian quy định và đạt được một kết quả đề ra. Việc đó không chỉ là
sự nỗ lực của bản thân mà còn có sự giúp đỡ , sự chỉ bảo nhiệt tình của các thầy
cô cùng những tham gia đó góp ý kiến của bạn bè. Em xin chân thành cảm ơn :
Sự chỉ dẫn và góp ý chân thành của thầy ... Cám ơn thầy đã nhiệt tình cung cấp
tài liệu, thông tin hướng dẫn và hỗ trợ kiểm tra, khắc phục các thông tin chưa
chuẩn xác. Các bạn sinh viên trong lớp đã giúp đỡ rất nhiều về mặt phương tiện,


sách vở, ý kiến . . .Do chư có nhiều kinh nghiêm và kiến thức chuyên môn còn
kém nên trong quá trình làm đề tài sẽ có những sai sót nhất định. Rất mong nhận
được sự phê bình, góp ý, của quý thầy cô và các bạn sinh viên.

2


LỜI CAM ĐOAN
Em xin cam đoan :
1. Nhưng nội dung của đề tài trên là do em thực hiện dưới sự hướng dẫn trực tiếp
của thầy Vũ Văn Rực.
2. Mọi tài liệu tham khảo đề là có các trang web.
3. Mọi sự sao chép không hợp lệ, vi phạm quy chế đào tạo hay giam tra em xin tự
chụi hoàn toàn trách nhiệm.
Sinh viện
Nguyễn Ngọc Huy

3


DANH MỤC BẢNG
STT
Bảng 2.1
Bảng 2.2
Bảng 2.3
Bảng 2.4

Tên bảng
Mô tả chức năng các chân của module
Một số lệnh AT cho module Bluetooth HC-05

Một số thông số của Arduino UNO
Một số câu lệnh thường gặp

4

Trang
8
10
15
20


DANH MỤC BẢNG
STT

Tên hình

Trang

Hình 2.1

Modul Bluetooth HC-05

6

Hình 2.2

Sơ đồ chân modul Bluetooth HC-05

7


Hình 2.3

Các chân vào ra của Arduino Uno

15

Hình 2.4

File chạy phần mềm

17

Hình 2.5

Bốn lớp chính của hệ điều hành Android

22

Hình 2.6

Activity Satck

24

Hình 2.7

Chu kỳ sống của Activity

25


Hình 2.8

Giao diện My Projects

28

Hình 2.9

Giao diện bên trong Projects

29

Hình 2.10

Các thành phần của thanh công cụ

29

Hình 3.1

Sơ đồ tổng quát hệ thống

32

Hình 3.2

Giao diện phần mềm điều khiển

34


Hình 3.3

Giao diện Hercules Setup Untility Serial

37

Hình 3.4

Kit mạch Arduino

38

Hình 3.5

Giao diện Disigner của đồ án

44

5


MỤC LỤC

6


LỜI NÓI ĐẦU
Ngày nay việc ứng dụng cho các hệ thống điều khiển tự động ngày càng
trở nên phổ biến, từ những ứng dụng đơn giản như điều khiển một chốt đền giao

thông định thời, đếm sản phẩm trong dây chuyền sản xuất, điều khiển động cơ
điện một chiều, xoay chiều, … đến những ứng dụng phức tạp như điều khiển
robot, hệ thống kiểm soát, các hệ thống tự động, các thiết bị máy móc tự
động,..Với mong muốn giới thiệu những ứng dụng cơ bản của hệ thống điều
khiển tự động trong đời sống hiện đại và để mọi người biết đến ứng dụng cũng
như tầm quan trọng của các hệ thống điều khiển tự động. Em đã tìm hiểu và
thực hiện đề tài “ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ TỪ XA
QUA BLUETOOTH TRÊN THIẾT BỊ ANDROID”.

7


CHƯƠNG 1 : GIỚI THIỆU
1.1.LÝ DO CHỌN ĐỀ TÀI
Trong những năm qua, khoa học máy tính và xử lý thông tin có những
bước tiến vượt bậc và ngày càng phát triển mạnh. Đặc biệt sự ra đời và phát
triển nhanh chóng của kỹ thuật số đã làm cho ngành điện tử trở nên phong phú
và đa dạng hơn. Đã góp phần rất lớn trong việc đưa kỹ thuật hiện đại vào mọi
lĩnh vực của hoạt động sản xuất, kinh tế và đời sống xã hội.Từ những hệ thống
máy tính lớn đến những hệ thống máy tính cá nhân, từ những việc điều khiển
các máy công nghiệp đến các thiết bị phục vụ đời sống hằng ngày của con
người. Công nghệ số thực sự là một bước tiến lớn cho công nghệ hiện nay.Với
mong muốn áp dụng công nghệ số vào thực tiễn. Vì vậy em đã chọn đề tài :
“ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ TỪ XA QUA
BLUETOOTH TRÊN THIẾT BỊ ANDROID”.
1.2.MỤC ĐÍCH CỦA ĐỀ TÀI
Mục đích nghiên cứu của đề tài này là nghiên cứu họ vi điều khiển họ 8 bít
AVR cụ thể là Atmega328 , phương pháp lập trình cho AVR bằng ngôn ngữ C
trên trình biên dịch Codevison AVR, lập trình ứng dụng android dùng SDK,
giao tiếp không dây Bluetooth…

1.3.ĐỐI TƯỢNG VÀ PH ẠM VI NGHIÊN CỨU
- Vi điều khiển sử dụng là AVR Atmega328, để nắm được cấu trúc phần
cứng, lập trình phần mềm và ứng dụng vào thực tế.
- Phần mềm điều khiển trên android.
- Modul bluetooth HC-05
1.4. HƯỚNG NGHIÊN CỨU VÀ PHÁT TRIỂN
- Hiện nay trong thời kỳ kinh tế đang phát triển, đời sống được nâng cao. Mọi
người gần như ai cũng được sở hữu một chiếc điện thoại thông minh. Mà điện
thoại luôn ở bên cạnh chúng ta. Vì vậy e có ý tưởng dùng chính chiếc điện thoại
đó để có thể điều khiển các thiết bị điện trong nhà khi ta ngồi ở bất kì vị trí nào
trong ngôi nhà.
- Nắm bắt được cấu trúc phần cứng, sơ đồ khối, bố trí chân, tập lệnh điều khiển
cho AVR ATMega328.
8


- Tìm hiểu về lập trình phần mềm android giao tiếp Bluetooth.
- Kết quả cuối cùng là điều khiển tắt mở bóng đèn và điều khiển tốc độ động cơ
cũng như điều khiển độ sáng của đèn một các ổn định. Bằng phần mềm Android
trên điện thoại.
1.5. TỔNG QUAN VỀ ĐỒ ÁN
Nội dung của đồ án được chia làm 4 phần chính
- Tìm hiểu về hệ điều hành và giao tiếp ngoại vi.
- Tìm hiểu về kit Arduino.
- Tìm hiểu về các lập trình Ardroid.
- Thiết kế bộ điều khiển android và trên Kit arduino thông qua module
Bluetooth HC05.
- Kết quả và hướng phát triển

9



CHƯƠNG 2 :TÌM HIỂU VỀ HỆ ĐIỀU HÀNH VÀ GIAO TIẾP NGOẠI VI
2.1. CÔNG NGHỆ KHÔNG DÂY BLUETOOTH
2.1.1. Khái niệm
Bluetooth là một công nghệ cho phép truyền thông giữa các thiết bị với
nhau mà không cần cáp và dây dẫn. Nó là một chuẩn điện tử, điều đó có nghĩa là
các hãng sản xuất muốn có đặc tính này trong sản phẩm thì họ phải tuân theo
các yêu cầu của chuẩn này đối cho sản phẩm của mình. Những chỉ tiêu kỹ thuật
này bảo đảm cho các thiết bị có thể nhận ra và tương tác với nhau khi sử dụng
công nghệ Bluetooth. Ngày nay phần lớn các nhà máy đều sản xuất các thiết bị
có sử dụng công nghệ Bluetooth. Các thiết bị này gồm có điện thoại di động,
máy tính và thiết bị hỗ trợ khác. Công nghệ Bluetooth là một công nghệ dựa trên
tần số vô tuyến và bất cứ một thiết bị nào có tích hợp bên trong công nghệ này
đều có thể truyền thông với các thiết bị khác với một khoảng cách nhất định về
cự ly để đảm bảo công suất cho việc phát và nhận sóng. Công nghệ này thường
được sử dụng để truyền thông giữa hai loại thiết bị khác nhau.
2.1.2. Đặc điểm của công nghệ Bluetooth
a. Ưu điểm.
- Tiêu thụ năng lượng thấp, cho phép ứng dụng được nhiều loại thiết bị
bao gồm các thiết bị cầm tay và điện thoại di động.
- Giá thành ngày một giảm .
- Khoảng cách giao tiếp cho phép giữa hai thiết bị đầu cuối có thể lên đến
10m, khoảng cách giữa thiết bị đầu cuối có thể lên tới 100m.
- Bluetooth sử dụng băng tần 2.4GHz. Tốc độ truyền dữ liệu có thể đạt tới
mức tới đa 1Mbps mà các thiết bị không cần phải trực tiếp thấy nhau .
- Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng
này với một ứng dụng khác thông qua chuẩn Bluetooth profiles, do đó có thể
độc lập về phần cứng cững như hệ điều hành sử dụng. - Tính tương thích cao,
được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗ trợ.

b. Khuyết điểm.
10


- Khoảng cách kết nối còn ngắn so với công nghệ mạng không dây khác.
- Tốc độ truyền không cao.
2.1.3. Hoạt động Bluetooth HC 05.
Bluetooth là thiết bị không dây cho phép các thiết bị điện và thiết bị điện
tử, có thể giao tiếp với nhau băng sóng vô tuyến trong phạm vi ngắn và trong
băng tần từ 2,4 Ghz đến 2,485Ghz. Bluetôth được thiết kế để hoạt động trên
79tần số đơ lẻ khác nhau. Sau khi đã kết nối , bluetooth sẽ tự tìm ra tần số tương
thích với nó, sau đó nó sẽ di chuyển tới các thiết bị bluetooth đó trong khoảng
cách nhất định để việc kết nối không bị gián đoạn
Về khoảng cách giữa các thiết bị có Bluetooth thì còn phụ thuộc và công
suất . Gồm ba loại: Loại thứ nhất công suất 100mW thì sẽ phủ sóng được trong
khoảng 100met. Loai thứ hai với công suất 2.5mW thì tâm phủ sóng chỉ khoảng
10met. Và loại cuối cùng 1mW chỉ có thế kết nối trong phạm vi 5met.
2.1.4. Vấn đề bảo mật trong công nghệ Bluetooth.
a. Bảo mật .
Về tính bảo mật thì bluetooth cũng rất là quan tâm, vì nó cũng là một thiết
bị để truyền thông tin. Để có thể an toàn thì khi các thiết bị bluetooth kết nối với
nhau phải có mật khẩu riêng, mà chỉ có các thiết bị được trao đổi biết mật khẩu
này.
Tùy thuộc vào cấu mà công nghệ Bluetooth , mà có thể có có chuỗi ký tự
bảo mật ngắn hay là dài.
b. Các phương pháp bảo vệ.
- Tắt bluetooth khi không dùng.
- Để chế độ bluetooth trong chế độ ẩn.
- Sử dụng Bluetooth trong chế độ ẩn.


11


2.1.5. Module Bluetooth HC-05
a. Giới thiệu Module Bluetooth HC-05

Hình 2.1: Modul Bluetooth HC-05
Module Bluetooth HC-05 được thiết kế đễ sử dụng giao giao tiếp Bluetooth
qua Serial Port, truyền dữ liệu nối tiếp qua wireless.
Đặc điểm kỹ thuật:
- Chuẩn Bluetooth : V2.0+EDR - Điện áp hoạt động : 3,3VDC/ 30mA
- Chế độ hoạt động : Master , Slave, Loopback
- Kích thước 28mm x 15mm x 2.35mm
- Tần số: 2.4GHz ISM band
- Tốc độ: Asynchronous : 2.1 Mbs (Max)/160kbps Synchronous :
1Mbps/1Mbps - Bảo mật : Authentication and encryption - Giao tiếp : Bluetooth
serial port
- Baud Rate mặc định : 38400, databits : 8, Stopbit : 1, Parity : No. Hỗ trợ
tốc độ baud : 9600,19200,38400,57600,115200,230400,460800.
- Nhiệt độ làm việc : -20 ~ 75 độ C - Độ nhạy : -80dBm
- Công suất truyền : +4dBm
- Tự động kết nối với pincode mặc định “1234” or “1111”

12


- Tự động reconnect trong 30 phút nếu bị đứt kết nối Module có 2 chế độ
làm việc (có thể chọn chế độ làm việc bằng cahcs thay đổi trạng thái chân KEY34:
- Tự động kết nối
- Đáp ứng theo lệnh: khi làm việc ở chế độ này, chúng ta có thể gửi các

lệnh AT để giao tiếp với module
Gaio tiếp với module bằng giao tiếp nối tiếp không đồng bộ qua hai đường
RX và TX Bằng cách thay đổi trạng thái chân KEY chúng ta có thể cấu hình chế
độ hoạt động cho modue
- Để module làm việc ở chế độ tự động kết nối: KEY phải ở trạng thái
Floating ( trạng thái không kết nối )
- Để module làm việc ở chế độ đáp ứng theo lệnh : KEY=’0’, cấp nguồn
cho module, chuyển KEY = ‘1’, lúc này có thể giao tiếp với modul bằng tập lệnh
AT
Ở chế độ SLAVE: chúng ta cần thiết lập kết nối từ smartphone, laptop, usb
bluetooth để dò tìm module và ghép nối với pincode mặc định ”1234”
Ở chế độ MASTER : modul sẽ tự động dò tìm thiết bị Bluetooth khác và
tiến hành ghép nối chủ động mà không cần thiết lập gì. Module tương thích với
các vi diều khiển 5V mà không cần chuyển đổi mức giao tiếp 5V về 3.3V như
nhiều loại module khác
b. Phần cứng Bluetooth HC 05
Sơ đồ chân :

Hình 2. 2: Sơ đồ chân modul Bluetooth HC-05
13


Bảng 2.0.1: mô tả chức năng các chân của module:
Tên chân
GND
3.3v VCC
AIO0
AIO1

STT Chân

13,21,22
12
9
10

Loại chân
VSS
Chân 3.3v
2 hướng
2 hướng

PIO0

23

2 hướng RX EN

PIO1

24

2 hướng TX EN

PIO2
PIO3
PIO4
PIO5
PIO6
PIO7
PIO8

PIO9
PIO10
PIO11

25
26
27
28
29
30
31
32
33
34

ResetB_RST

11

2 hướng
2 hướng
2 hướng
2 hướng
2 hướng
2 hướng
2 hướng
2 hướng
2 hướng
2 hướng
Cmos input with weak

internal pull-up

UART_CTS

3

UART_RX

2

UART_TX

1

Cmos input with weak
internal pull-down
Cmos input with weak
internal pull-down
Cmos output, tri-stable
with weak internal pullup.

SPI_MOSI

17

Cmos input with weak
internal pull-down.

SPI_CSB


16

Cmos input with weak
internal pull-up.

SPI_CLK

19

Cmos input with weak
14

Mô tả chân
Chân đất
Chân nguồn
Lập trình I/O
Lập trình I/O
Lập trình I/O, điều
khiển output cho
LNA nếu được
trang bị.
Lập trình I/O, điều
khiển LA nếu
được trang bị.
Lập trình I/O
Lập trình I/O
Lập trình I/O
Lập trình I/O
Lập trình I/O
Lập trình I/O

Lập trình I/O
Lập trình I/O
Lập trình I/O
Lập trình I/O
Reset nếu LOW
UART
UART xóa khi
gửi, hoạt động
LOW.
Dữ liệu vào
UART
Dữ liệu ra UART
Serial peripheral
interface data
input
Chip select for
serial peripheral
interface, active
low.
Serial peripheral


internal pull-down.
Cmos input with weak
internal pull-down

SPI_MISO

18


USBUSB+
NC

15
20
14

2 hướng
2 hướng

PCM CLK

5

2 hướng

PCM_OUT

6

Cmos output

PCM_IN

7

Cmos input

PCM_ SYNC


8

2 hướng

interface clock
Serial peripheral
interface data
output

Synchronous PCM
data clock
Synchronous PCM
data output
Synchronous PCM
data input
Synchronous PCM
data strobe

c. Tập lệnh AT cho module Bluetooth HC-05
Bảng 2.2: một số lệnh AT cho module Bluetooth HC-05
Lệnh
AT
AT+RESET

Trả về
OK
OK
+VERSION: <Param>
AT+VERSION?
OK


Tham số
None
None

Chức năng
Test
Reset

Version number

Kiểm tra phiên bản

AT+ORGL

OK

None

AT+ADDR?
AT+NAME=aram>

+ADDR:<Param>OK

Bluetooth address

Khôi phục trạng
thái mặc định
Địa chỉ bluetooth

Đặt tên cho
Module

Bluetooth device
name

Tên thiết bị (mặc
định HC05)

Tên thiết bị
Bluetooth

Đồ trên Module

AT+NAME?
AT+RNAME?

AT+ROLE?
AT+PSWD
=
AT+PSWD?
AT+UART
=<Param>,

OK
1. +NAME:<Param >
OK---success 2.
FAIL---failure
1. +NAME:<Param 2>
OK---success 2.

FAIL---failure

0---Slave role 1--+ROLE:<Param> OK Master role 2--Slaver-Loop role
OK

Pincode

+PSWD:<Param>
OK

Pincode
Param1: Baud
rate Param2: stop
15

Truy vấn chức
năng modul Mặc
định :0
Đặt mã Pin Mặc
định:”1234”
Cấu hình cho cổng
UART


<Param2>,
<Param3>
AT+UART?

UART=<Param>,a m2>,<Param3> OK


bit Param: parity
bit
Param1: Baud
rate Param2: stop
bit Param: parity
bit

Truy vấn thông tin
cổng UART

2.2. KIT MẠCH ARDUINO
2.2.1. Giới thiệu về Arduino.
Arduino là một bo mạch vi điều khiển do một nhóm giáo sư và sinh viên
Ý thiết kế và đưa ra đầu tiên vào năm 2005. Mạch Arduino được sử dụng để
cảm nhận và điều khiển nhiều đối tượng khác nhau. Nó có thể thực hiện nhiều
nhiệm vụ từ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, và nhiều đối
tượng khác. Ngoài ra mạch còn có khả năng liên kết với nhiều module khác
nhau như module đọc thẻ từ, ethernet shield, sim900A, ….để tăng khả ứng dụng
của mạch.
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,…. Hiện phần cứng của
Arduino có tất cả 6 phiên bản, Tuy nhiên phiên bản thường được sử dụng
nhiều nhất là Arduino Uno và Arduino Mega. Arduino Uno được sử dụng rất
rộng rãi trên thế giới, rất nhiều ví dụ trên youtube hoặc các trang hướng dẫn về
Arduino sử dụng mạch này. Vì vậy đối với các bạn mới học Arduino, việc chọn
Arduino Uno sẽ giúp các bạn có thể tự học dễ dàng.
Phần mềm để lập trình cho mạch Arduino là phần mềm IDE. Đây là phần
mềm mã nguồn mở, và có thể được download từ trang web của Arduino:
arduino.cc. Việc hướng dẫn download và sử dụng phần mềm này sẽ được đề cập

đến trong những phần sau.

16


2.2.2. Phần cứng của Arduino UNO R3

2: Chân ICSP atemega 16 U2
3:Giác cấp nguồn cho mạch

1 Cáp USB

4:Cổng USB
5:Nút Reset
1a:Giác cắm USB đầu của Arduino

6:Chân ICSP của Atemega 16U2
7:Chân xuất tín

1b:Giác cắm USB đầu của máy tính

hiệu ra

8: IC Atemega 328

ICSP của Atemega 328
11:Chân cấp nguồn cho cảm
biến lấy tín hiệu9:Chân
10:Chân
Analog

1. Cáp USB
Đây là dây cáp thường được bán kèm theo bo, dây cáp dùng để cắm vào
máy tính để nạp chương trình cho bo và dây đồng thời cũng lấy nguồn từ nguồn
usb của máy tính để cho bo hoạt động. Ngoài ra cáp USB còn được dùng để
truyền dữ liệu từ bo Arduino lên máy tính. Dây cáp có 2 đầu, đầu 1a được dùng
để cắm vào cổng USB trên bo Arduino, đầu 1b dùng để cắm vào cổng USB trên
máy tính.
2. Chân ICSP atemega 16 U2
IC này được lập trình như một bộ chuyển đổi USB –to-Serial dùng để
giao tiếp với máy tính thông qua giao thức Serial (dùng cổng COM).
3. Giác cấp nguồn cho mạch

17


Cổng nguồn ngoài nhằm sử dụng nguồn điện bên ngoài như pin, bình
acquy hay các adapter cho bo Arduino hoạt động. Nguồn điện cấp vào cổng
này là nguồn DC có hiệu điện thế từ 6V đến 20V, tuy nhiên hiệu điện thế tốt
nhất mà nhà sản xuất
4. Cổng USB
Cổng USB trên bo Arduino dùng để kết nối với cáp USB.
5. Nút Reset
Nút reset được sử dụng để reset lại chương trình đang chạy. Đôi khi
chương trình chạy gặp lỗi,người dùng có thể reset lại chương trình..
6. Chân ICSP của Atemega 16U2
ICSP là chữ viết tắt của In-Circuit Serial Programming. Đây là các chân
giao tiếp SPI của chip Atmega 16U2. Các chân này thường ít được sử trong các
dự án về Arduino.
7. Chân xuất tín hiệu ra
Có tất cả 14 chân xuất tín hiệu ra trong Arduino Uno, những chân có dấu ~

là những chân có thể băm xung (PWM), tức có thể điều khiển tốc độ động cơ
hoặc độ sáng của đèn. Hình 2 thể hiện rất rõ những chân để băm xung này.
8. IC Atmega 328
IC Atmega 328 là linh hồn của bo mạch Arduino Uno, IC này được sử
dụng trong việc thu thập dữ liệu từ cảm biến, xử lý dữ liệu, xuất tín hiệu ra,…
9. Chân ICSP của Atmega 328
Các chân ICSP của ATmega 328 được sử dụng cho các giao tiếp
SPI (Serial Peripheral Interface), một số ứng dụng của Arduino có sử dụng
chân này, ví dụ như sử dụng module RFID RC522 với Arduino hay Ethernet
Shield với Arduino.
10.Các chân lấy tín hiệu Analog
Các chân này lấy tín hiệu Analog (tín hiệu tương tự) từ cảm biến để IC
Atmega 328 xử lý. Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5.
11.Chân cấp nguồn cho cảm biến
Các chân này dùng để cấp nguồn cho các thiết bị bên ngoài như role, cảm
biến, RC servo,…trên khu vực này có sẵn các chân GND (chân nối đất, chân
âm), chân 5V, chân 3.3V như được thể hiện ở hình 2. Nhờ những chân này mà
người sử dụng không cần thiết bị biến đổi điện khi cấp nguồn cho cảm biến,
18


role, rc servo,…Ngoài ra trên khu vực này còn có chân Vin và chân reset, chân
IOREF. Tuy nhiên các chân này thường ít được sử dụng nên trong tài liệu này
xin không đi sâu về nó.
12.Các linh kiện khác trên board mạch Arduino
Ngoài các linh kiện đã liệt kê bên trên, Arduino Uno còn 1 số linh kiện
đáng chú ý khác. Trên bo có tất cả 4 đèn led, bao gồm 1 led nguồn (led ON
nhằm cho biết boa đã được cấp nguồn), 2 led Tx và Rx, 1 led L. Các led Tx và
Rx sẽ nhấp nháy khi có dữ liệu truyền từ board lên máy tính hoặc ngược lại
thông qua cổng USB. Led L được được kết nối với chân số 13. Led này được

gọi là led on board (tức led trên bo), led này giúp người dùng có thể thực hành
các bài đơn giản mà không phải dùng thêm led bên ngoài.
Trong 14 chân ra của bo còn có 2 chân 0 và 1 có thể truyền nhận dữ liệu
nối tiếp TTL. Có một số ứng dụng cần dùng đến tính năng này, ví dụ như ứng
dụng điều khiển mạch Arduino Uno qua điện thoại sử dụng bluetooth
HC05.Thêm vào đó, chân 2 và chân 3 cũng được sử dụng cho lập trình ngắt
(interrupt), đồng thời còn 1 vài chân khác có thể được sử dụng cho các chức
năng khác, như được thể hiện ở hình 3. Bảng 1 thể hiện thêm các thông số cho
bo Arduino Uno R3.

Hình 2.3:. Các chân vào ra của Arduino Uno
Bảng 2. 3. Một số thông số của Arduino UNO
19


Vi điều khiển

ATmega328 (họ 8bit)

Điện áp hoạt động

5V – DC (chỉ được cấp qua cổng USB)

Tần số hoạt động

16 MHz

Dòng tiêu thụ

30mA


Điện áp vào khuyên dùng

7-12V – DC

Điện áp vào giới hạn

6-20V – DC

Số chân Digital I/O

14 (6 chân 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 (5V)

500 mA

Dòng ra tối đa (3.3V)
Bộ nhớ flash

50 mA
32 KB (ATmega328) với 0.5KB dùng bởi
bootloader

SRAM

EEPROM

2 KB (ATmega328)
1 KB (ATmega328)

2.2.3. Phần mềm lập trình cho Arduino
1. Vào trang chủ của Arduino: arduino.cc

2. Nhấn vào nút Download

20


3. Chọn hện điều hành
Có 2 tùy chọn cho hệ điều hành Windows là Windows installer và
Windows zip file for non admin install. Tùy chọn thứ nhất dùng cho người là
admin của máy, tùy chọn thứ 2 cho người không phải admin của máy. Thông
thường đa số chọn tùy chọn thứ nhất, tức Windows installer.
4. Download chương trình về để cài đặt

5. Cài đặt
Phiên bản được viết trong bài này là phiên bản IDE 1.6.4. Đây là phiên
bản mới nhất của phần mềm IDE. Sau này có thể sẽ có những phiên bản kế
tiếp, tuy nhiên về cơ bản thì cách cài đặt giống nhau.Sau khi download về thì
người dùng sẽ được 1 file .exe như hình 7 bên dưới. Để cài đặt, người dùng
nhấp đúp vào file đó, phần mềm sẽ bắt đầu cài đặt.

Hình 2..4: File chạy phần mềm

21



Một thông báo có thể sẽ được hiện lên với hàng chữ: “do you want to run
this file?”, tức là bạn có muốn chạy file này không? Người dùng click và run
(chạy) để cài chương trình.
6. Giao diện phần mềm
Phần này nói về giao diện của phần mền IDE, hình bên dưới thể hiện
những phần cơ bản của giao diện. Người dùng có thể tìm hiểu sâu hơn về giao
diện này, tuy nhiên đây là phần cơ bản nhất và thường dùng nhất để có thể học
nhanh Arduino, khi có thời gian các bạn có thể tìm hiểu thêm các bài viết về nó
trên arduino.cc hoặc google,… Các chức năng cơ bản của các biểu tượng trên
phần mềm được trình bày chi tiết ở các phần bên dưới.
a
c
b

d

e

Giao diện của phần mềm IDE có nhiều phần, tuy nhiên chúng ta chú ý
đến những phần quan trọng như được nêu ra trong hình trên. Chức năng của
từng phần như sau:
a. Vùng kiểm tra
Dùng để kiểm tra xem chương trình được viết có lỗi không. Nếu chương
trình bị lỗi thì phần mềm sẽ hiển thị thông tin lỗi ở vùng (e).
b. Vùng nạp chương trình cho bo mạch Arduino
Dùng để nạp chương trình được viết xuống mạch Arduino. Trong quá trình
nạp, chương trình sẽ được kiểm tra lỗi trước sau đó mới thực hiện nạp xuống
mạch Arduino

c. Vùng hiển thị màn hình giao tiếp với máy tính

22


Khi nhấp vào biểu tượng cái kính lúp thì phần giao tiếp với máy tính sẽ
được mở ra. Phần này sẽ hiển thị các thông số mà người dùng muốn đưa lên
màn hình. Muốn đưa lên màn hình phải có lệnh Serial.print() mới có thể đưa
thông số cần hiển thị lên màn hình
d. Vùng lập trình
Vùng này để người lập trình thực hiện việc lập trình cho chương trình của
mình.
e. Vùng thông báo thông tin
Có chức năng thông báo các thông tin lỗi của chương trình hoặc các
vấn đề liên quan đến chương trình được lập.
f. Sử dụng một số menu thông dụng trong phần mềm
Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là menu
File, ngoài những tính năng như mở một file mới hay lưu một file, phần menu này
có một mục đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để
người lập trình có thể tham khảo, giảm bớt thời gian lập trình. Hình bên dưới thể
hiện việc chọn một ví dụ cho led chớp tắt (blink) để nạp cho mạch Arduino. Ví dụ
về led chớp tắt này thường được dùng để kiểm tra bo khi mới mua về.
Một menu thường được sử dụng khác là menu Tools. Khi mới kết nối bo
Arduino với máy tính ta click vào Tools->board để chọn loại board sử dụng.
Phần mềm chọn sẵn kiểu bo là bo Arduino Uno, nếu người dùng dùng kiểu
bo khác thì chọn kiểu bo đang dùng.
Bên cạnh việc chọn bo thì một phần quan trọng nữa là chọn cổng COM.
Hình bên dưới minh họa cho việc chọn cổng COM. Khi lần đầu gắn mạch
Arduino vào máy tính, người sử dụng cần nhấn chọn cổng COM bằng cách vào
Tools -> Serial Port (một số phiên bản dùng từ Port) sau đó nhấn chọn cổng

COM, ví dụ như COM1. Những lần sau khi đưa chính board Arduino đó vào
máy tính thì không cần chọn cổng COM, nếu đưa bo Arduino khác vào máy
thì cần phải chọn lại cổng COM, quy trình thực hiện cũng tương tự.
Sau khi thực hiện các bước trên xong, người dùng sẽ bắt tay vào việc lập
trình. Phần kế tiếp sẽ trình bày cấu trúc của một chương trình trong phần mềm IDE.
7. Cấu trúc chương trình của phần mềm
a. Khai báo biến
23


Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên
board một số kiểu khai báo biến thông dụng.
#define
Nghĩa của từ define là định nghĩa, hàm #define có tác dụng định nghĩa, hay
còn gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên.
Ví dụ #define led 13
Chú ý: sau #define thì không có dấu “,” (dấy phẩy)
*Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…
Các bạn có thể tham khảo thêm các kiểu biến cũng như công dụng tại
arduino.cc
b. Thiết lập (void setup())
Phần này dùng để thiết lập cho chương trình, cần nhớ rõ cấu trúc của nó
void setup()
{
…..
}
Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này
khi kiểm tra chương trình thì chương trình sẽ báo lỗi.
Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra
hay chân vào.

c. Vòng lặp (void )
Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các
nhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng:
void loop()
{
……………….
}
Một số câu lệnh, cấu trúc thường gặp:
Bảng 2.4. Một số câu lệnh thường gặp
Ký hiệu, câu lệnh Ý nghĩa
//
Dấu // dùng để giải thích, khi nội dung giải thích nằm
trên 1 dòng, khi kiểm tra chương trình thì phần kiểm tra
sẽ bỏ qua phần này, không kiểm tra.
/*

Ký hiệu này cũng dùng để giải thích, nhưng giải thích dành

….

cho 1 đoạn, tức có thể xuống dòng được
24


#define biến chân Define nghĩa là định nghĩa, xác định. Câu lệnh này nhằm
gán tên 1 biến vào 1 chân nào đó. Ví dụ #define led 13,
tức là gán biến led cho chân 13 hay dùng chân 13 để điều
khiển led.
digitalWrite(chân,t Dùng để tắt, mở 1 chân ra. Cú pháp của nó là
rạng thái);


digitalWrite(chân,trạng thái
chân);. Ở đây trạng thái chân có thể là HIGH hoặc LOW.
Ở trạng thái HIGH chân có điện, dòng điện có điện áp là
5V; ở trạng thái LOW, chân không có điện, điện áp bằng 0.
Ví dụ: digital(led,HIGH); , hoặc digital(led,LOW); . Chú
dấu chấm phẩy đằng sau câu lệnh.

analogWrite(chân, Có ý nghĩa dùng để băm xung (PWM), thường dùng để
giá trị);
điều khiển tốc độ động cơ, độ sáng led,..
digitalRead(chân); Read nghĩa là đọc, lệnh này dùng để đọc giá trị digital tại
chân muốn đọc
analogRead(chân); Read nghĩa là đọc, lệnh này dùng để đọc giá trị analog tại
delay(thời gian);

chân muốn đọc
Delay nghĩa là chờ, trì hoãn, duy trì. Lệnh này dùng để
duy trì trạng thái đang thực hiện chờ một thời gian. Thời
gian ở đây được tính bằng mili giây, 1 giây bằng 1 ngàn
mili giây.

if()

if nghĩa là nếu, sau if là dấu (), bên trong dấu ngoặc là

{

một biểu thứ so


Các câu lệnh

sánh. Ví dụ trong bài về cảm biến độ ẩm đất (phần 5) thì:

}

if (giatriAnalog>500) //nếu giá trị đọc được của biến

else ()

giatriAnalog lớn hơn 500

{

{

Các câu lệnh

digitalWrite(Led,HIGH); //Ra lệnh cho led sáng

}

delay(1000);//chờ 1s
}
else nghĩa là ngược lại
25


×