Hướng dẫn sử dụng cơ bản Arduino - Hàng không dân dụng | Học viện Hàng Không Việt Nam

Hướng dẫn sử dụng cơ bản Arduino - Hàng không dân dụng | Học viện Hàng Không Việt Nam được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

HàC VIâN HÀNG KHÔNG VI T NAM â
KHOA ĐIâN TĀ VIàN THÔNG
---
÷
÷
÷
÷÷
ö
ö
ö
öö---
H¯à ¾NG D N SĀ D N ARDUINO ĀNG C¡ BÀ
TP.HCM, Tháng 5, Năm 2014.
MĀC LĀC:
Li nói đầu.
Ch°¢ng 1: Tổng quan v Arduino Uno. ........................................................................... 1
1. T ng quan. ................................................................................................................. 1
2. S¢ đồ chân ca Arduino. .......................................................................................... 2
Ch°¢ng 2: Cài đặt ch°¢ng trình Arduino IDE và Driver cho Arduino ....................... 4
1. Cài đặt ch°¢ng trình Arduino IDE ......................................................................... 4
2. Cài đặt Driver ............................................................................................................ 5
3. Arduino IDE .............................................................................................................. 7
Ch°¢ng 3: H°áng d t b n mô ph ng Arduino trên Proteus. ......................... 11 ¿n cài đặ Á
Ch°¢ng 4: Giao tiếp Arduino v i m t s linh ki n t . ......................................... 13 á ß ãn điã ā
1) Project 1: Led nhp nháy. ...................................................................................... 13
2) Project 2 : Đèn sáng khi nhấn phím. ..................................................................... 18
3) Project 3 : Led sáng d n t ÿ led 1 đến led 10 và ng°ÿc l¿i. .................................. 21
4) Project 4 : Led sáng d n t ÿ led 1 đến led 10 và ng°ÿc l¿i thi gian delay thay
đổi đ°ÿc. ......................................................................................................................... 24
5) Project 5: Điều khi n t ß ốc đß đßng c¢ bằng PWM. ............................................... 27
6) Project 6 : Điề ßn đßng c¢ bu khi ng L293D. ........................................................ 31
7) Project 7: Giao ti p Arduino v i LCD 16x2.ế á ........................................................ 34
8) Project 8: Giao ti p v i máy tính.ế á .......................................................................... 47
9) Project 9. Đo nhiãt đß môi tr°ờ ng dùng LM35D hi n th LCD và Serial ß ß
Monitor. .......................................................................................................................... 49
10) Project 10: Giao ti p Arduino v i Servo motor.ế á ............................................... 54
Tài li u tham kh o. ........................................................................................................... 56 ã Á
L u.i Nói Đầ
Arduino đã và đang đưÿc s dāng rt r ng rãi trên th gi i, và ngày càng ch ng t ế
đưÿc s c m nh ca chúng thông qua vô s ng d āng độc đáo của ngưßi dùng trong c ng
đồ ng ngu n má. Arduino th c s đã gây sóng gió trên trưßng ngưß thß i dùng trên toàn
thế giới trong vài năm gần đây ÿng ngưß, s i dùng cc l ng vớn và đa dạ ới trình độ tri
rng t b c ph thông lên đến đạ ác đã làm cho ngay cả ững ngưßi h nh i to ra chúng ph i
ngc nhiên v m ức độ ph bi n.Tuy nhiên t i Vi t Nam Arduino vế ã ẫn còn chưa đưÿc biết
đế n nhi u, các tài li u liêã n quan đến nó vn còn rt h n ch ế. Đưÿ c s gii thi u và ch d n ã
ca th y Nguyán Thanh Dũng, sau mt th i gian tìm hi u tác gi biên so n tài li u ß ß đã ã
<H¯àNG D¾N SĀ DĀNG C¡ BÀN ARDUINO=. Trong tài liãu này cung c p cho b n
đác một lưÿng kiến thc cơ bn nh t v Arduino c ũ ưng nh các ā ng d ng th c tế ca nó.
Tài li u g m có các n i dung sau: ã
Chương 1: Tổng quan v Arduino Uno.
Chương 2: Cài đặt chương trình Arduino IDE và Driver cho Arduino.
Chương 3: Hướ ẫn cài đặng d t bn mô ph ng Arduino trên Proteus.
Chương 4: Giao tiếp Arduino vi mt s linh kiện điện t.
Khi biên so n, tác gi tham kh o m đã t s tài li u ã nước ngoài đß đả tài liãu v a m
bo v m c ni dung v a có th ti p c n c v ß ế đưÿ i b n c. đá
Khi vi t tác gi g tài li u c hoàn ch nh nh t song ch c ch n không ế đã ng đß ã đưÿ
tránh kh i sai sót, vì v y r t mong nh c s góp ý c a b n ận đưÿ đác.
Mái ý kiến đóng góp xin liên h : trungtin.vaa@gmail.com ã
Tác gi Á
SV: NGUYàN TRUNG TÍN
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
1
Ch°¢ng 1: Tng quan v Arduino Uno.
1. Tng quan.
Arduino th t ra là m t bo mch vi x lý đưÿc dùng đß ập trình tương tác vớ l i các
thiết b phß n cứng như cả ến, động cơ, đèn hoặ khác. Đặc đißm bi c các thiết bß m n i b t
của Arduino môi trưßng phát trißn ng dāng cc k dá s dāng, vi mt ngôn ng
lp trình th h c m t cách nhanh chóng ngay c v i ít am hi u vß á ới ngưß ß điãn t
lập trình. điề ãn tưÿu làm nên hi ng Arduino chính mc grt thp tính cht
ngun má t ph n c ng t i ph n m m.
Arduino Uno là s d ng chip Atmega328 ā . có 14 chân digital I/O, 6 chân đầu vào
(input) analog, th ng 16Mhz. M t s thông sạch anh dao độ k thu ật như sau :
Chip
ATmega328
Điãn áp cấp nguồn
5V
Điãn áp đầu vào (input) (kiến
nghß )
7-12V
Điãn áp đầu vào giới hạn( )
6-20V
Số chân Digital I/O
14 (có 6 chân điều chế độ rộng xung PWM)
Số chân Analog (Input )
6
DC Current per I/O Pin
40 mA
DC Current for 3.3V Pin
50 mA
Flash Memory
32KB (ATmega328) với 0.5KB sử dāng
bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Xung nhßp
16 MHz
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
2
2. S¢ đồ chân ca Arduino.
Hình 1: Arduino Uno.
a) USB (1).
Arduino s d ng cáp USB giao ti p v i máy tính. Thông qua cáp USB chúng ta ā đß ế
thß Upload chương trình cho ạt độArduino ho ng, ngoài ra USB còn ngu n cho
Arduino.
b) Ngu n ( 2 và 3 ).
Khi không s d ng USB làm ngu n thì chúng ta có th s d ng ngu n ngoài thông ā ß ā
qua jack c m 2.1mm ( c gi a ) ho c có th s d ng 2 chân V c p ực dương á ß ā
in
và GND đß
ngun cho Arduino.
Bo m ch ho ng v i ngu n ngoài n áp t 5 20 volt. Chúng ta th c p ạt độ á điã ß
mt áp lớn hơn tuy nhiên chân 5V sẽmực điãn áp lớn hơn 5 volt. Và nếu s d ng ngu n ā
lớn hơn 12 volt thì s ãn tưÿ hi ng nóng và làm hng bo mch. Khuyết cáo các bn nên
dùng ngu n ổn đßnh là 5 đến dưới 12 volt.
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
3
Chân 5V chân 3.3V (Output voltage) : các chân này dùng đß l y ngu n ra t ngu n
mà chúng ta đã cung cấp cho Arduino. Lưu ý : không đưÿc cp ngun vào các chân này vì
s làm h ng Arduino.
GND: chân mass.
c) Chip Atmega328.
Chip Atmega328 Có 32K b nh flash trong đó 0.5k sử dāng cho bootloader. Ngoài
ra còn có 2K SRAM, 1K EEPROM.
d) Input và Output ( 4, 5 và 6).
Arduino Uno 14 chân digital v i ch d ng các hàm ức năng input output sử ā
pinMode(), digitalWrite() digitalRead() đß điều khi n các chân này tôi s c p chúng ß đề
á các phn sau.
Cũng trên 14 chân digital này chúng ta còn mộ ức năng đó là:t s chân ch
Serial : chân 0 (Rx ), chân 1 ( Tx). truy n (Tx) và nh n (Rx) Hai chân này dùng đß
d liêu n i ti p TTL. Chúng ta th s d giao ti p v i c ng COM c a m ế ß āng đß ế t s
thiết b ho c các linh ki n có chu n giao ti p nß ã ế i ti p. ế
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo m ch có d ấu <~=
các chân PWM chúng ta th s d u khi n t ng c sáng c a ß āng đß điề ß ốc độ độ ơ, độ
đèn…
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này h tr giao ti p theo ÿ ế
chun SPI.
I2C: Arduino h tr giao ti p theo chu n I2C. Các chân A4 (SDA) và A5 (SCL) cho ÿ ế
phép chúng tao giao ti p gi a Arduino v i các linh ki n có chuế ã n giao ti p là I2C. ế
e) Reset (7): dùng đß reset Arduino.
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
4
Ch°¢ng 2: Cài đặt ch°¢ng trình Arduino IDE và Driver cho
Arduino
1. Cài đặt ch°¢ng trình Arduino IDE
Các b n truy c p vào trang web http://arduino.cc/en/Main/Softwaret i v chương
trình Arduino IDE phù h p v i h u hành c a máy mình bao g m Windown, Mac OS ÿ ã đi
hay Linux i v i Windown có b n cài t (.exe) và b n i v i Zip thì ch c n gi i . Đố đặ Zip, đố
nén và ch y ch trình không c n cài t. ương đặ
Sau khi cài t xong thì giao di n ch trình nh sau: đặ ã ương ư
Hình 2: Arduino IDE
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
5
2. Cài đặt Driver
S dāng cáp USB k t nế i Arduino v i máy tính, lúc này b n s th y èn led power đ
ca bo sáng. Máy tính s nh n d ng thi t b và b n s nh n ế ß đưÿc thông báo:
<Device driver software was not successfully installed=
Hình 3: Driver Software Installation.
Bây gi b n click vào ch n k n chúng ta ch n ß Start Menu á Control Panel ế đế á System
and Security, click và sau ch n System đó á Device Manager.
Hình 4: Device Manager.
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
6
Chúng ta s th y c nh báo màu vàng thi u driver trên Arduino. Click chu t ph i trên ế
Arduino Uno icon sau ch n đó á <Update Driver Software=
Hình 5: Right click và ch n á =Update Driver Software=
Chán <Browse my computer for driver software=.
Hình 6: Click ch n á <Browse my computer for driver software=
Chán đưßng dn ti folder <driver= nơi mà phầ ềm Arduino đưÿc lưu trữn m .
Hình 6: Driver
Click <Next= Windown t động cài đt driver, qua trình cà t driver hoàn t t. i đặ
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
7
3. Arduino IDE
Arduino IDE là n so n th o code, ki m tra l i và upload code cho arduino ơi đß ß
Hình 7: Arduino IDE.
a) Arduino Toolbar: có m t s button và chức năng của chúng như sau :
Hình 8: Arduino Toolbar.
Verify : ki m tra code có l i hay không ß
Upload: nạp code đang soạn tho vào Arduino
New, Open, Save : T o m i, m á và Save sketch
Serial Monitor : n th d li u t Arduino g i lên Đây màn hình hiß ß ã
máy tính
b) Arduino IDE Menu:
Hình 9: IDE Menu
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
8
File menu:
Hình 10: File menu.
Trong file menu chúng ta quan tâm t i m c Examples là n ch a code m ā đây ơi u ví
dā nh : cách s d ng các chân digital, analog, sensor ư ā
Hình 11: Click Examples.
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
9
Edit menu:
Hình 11: Edit menu
Sketch menu
Hình 12: Sketch menu
Trong Sketch menu :
Verify/ Compile : ch m tra l i code. ức năng kiß
Show Sketch Folder : hi n th ß ß nơi code đưÿc lưu.
Add File : thêm vào m t Tap code m i.
Import Library : thêm thư viãn cho IDE
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
10
Tool memu:
Hình 13: Tool menu.
Trong Tool menu ta quan tâm các m c Board và Serial Port ā
Māc Board : các bn c n ph i la chán bo m ch cho phù h ÿp vi lo i bo mà b n s
dāng n u là Arduino Uno thì ph i chế á ưn nh hình:
Hình 14: Ch n Board á
Nếu các bn s dāng loi bo khác thì phi ch n á đúng loi bo mình ang có nđ ếu
sai thì code Upload vào chip s b l ß i.
Serial Port: y là n l a ch n c ng Com c a Arduino. Khi chúng ta cài t driver đâ ơi á đặ
thì máy tính s hi n thông báo tên c ng Com c a Arduino bao nhiêu, ta ch vi c vào ã ã
Serial Port ch n c n p code, n u ch n sai thì không th n p code cho á đúng ng Com đß ế á ß
Arduino đưÿc.
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
11
Ch°¢ng 3 ¿n cài đặ: H°áng d t bÁn mô phng Arduino trên
Proteus.
Đß ư ã phng đưÿc Arduino trên proteus thì chúng ta cn ph i download th vi n
arduino cho proteus c th viên này các b n c n truy c p vào trang web: . Đß đưÿ ư
http://blogembarcado.blogspot.com/search/label/Proteus
Hình 15: Th vi n mô ph ng Arduino. ư ã
Sau khi download v các b n chép 2 file ARDUINO.IDX ARDUINO.LIB vào
thư m c: ā
Proteus 7:
C:\Program Files (ho c x86) \Labcenter Electronics\Proteus 7 Professional\LIBRARY
Proteus 8:
C:\Program Files (ho c x86) \Labcenter Electronics\Proteus 8
professional\Data\LIBRARY
Trong th vi n này h tr 5 lo i board Arduino khác nhau trong g m có Arduino ư ã ÿ đó
Uno, MEGA, NANO, LILYPAD và UNO SMD và mt cm bi n siêu âm Untrasonic. ế
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
12
Sau khi chép xong chúng ta kh i ng Proteus lên vào th vi n linh ki n b ng cách á độ ư ã ã
bm phím P và t khoá ARDUINO chúng s hi n ra danh sách các board hi n ã ã á
đây tôi chán Arduino Uno.
Hình 16: Mô ph ng Arduino b ng Proteus.
Lưu ý chúng ta cn ph i c p ngu n vào 2 chân 5V và Gnd trên m ch nh hình trên. ư
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
13
Ch°¢ng 4: ãn điãGiao tiếp Arduino vái mßt s linh ki n tā.
1) Project 1: Led nh p nháy.
Sau đây tôi s t o m t project nh p nháy led th i gian delay 1 giây s d ng proteus ß ā
đß mô ph ng.
Sơ đồ mch:
Hình 17: Led nhp nháy.
Code chương trình.
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Sau khi gõ code vào ch trình so n th o b n c n click và ki m tra l i. ương đß ß
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
14
To File Hex.
Chúng ta c n ph i có file Hex đß cung c p cho proteus và khi b m play ch trình ương
mi ho t động c. Cách t o file Hex trên Arduino IDE nh sau: đưÿ ư
Click vào File ch n Preferences. á
Hình 18: Click Preferences.
Các b n check vào compilation và OK.
Hình 19: Check compilation.
Sau ti p t c b m đó ế ā
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
15
Chương trình s t động built mt file hex đưÿc lưu á đư ß ưng d n nh hình i
Hình ng d n ch a file hex. 20: Đưß
Các b n chép file hex ra m t th m c nào ư ā đó sau đó má proteus lên và double click vào
Aruino Uno.
Hình 21: Add file Hex cho Proteus.
Bm vào v trí s 1 và ch n n l file hex trên ch n ti p Open, OK và Play. ß á ơi ưu á á ế
Các b n s th y led nh p nháy t t và sáng th i gian delay là 1s. ß
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
16
Giải thích chương trình.
int ledPin = 9;
Khai báo mt giá trß bi n integer là ế ledPin = 9.
void setup() {
pinMode(ledPin, OUTPUT); }
Trong Arduino sketch c n ph i hàm setup() loop() n u không thì ch ế ương
trình báo l i. Hàm Setup() ch ch y m t l n k t khi b t u ch trình. Hàm này ß đầ ương
chc n thi t l p ch ăng ế ế độ vào, ra cho các chân digital hay t c độ baud cho giao ti p Serial... ế
Cu trúc c a hàm là nh sau: pinMode() ư
pinMode(pin,Mode);
pin : là v trí chân digital. ß
Mode: là ch ế độ vào ( INPUT), ra (OUTPUT).
Lãnh tiếp theo.
pinMode(ledPin, OUTPUT);
Lãnh này thiết lp chân s 9 trên board chân ngõ ra ( OUTPUT). N u không khai ế
báo ì b n có th vi t cách sau nh ý ngh< int ledPin = 9; = th ß ế ưng ĩa không thay đổi:
pinMode(9, OUTPUT);
Bt bu c khai báo m t hàm loop() trong Arduino IDE. Hàm này là vòng l p vô h n
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
HàC VIâN HÀNG KHÔNG SV: NGUY N TRUNG TÍN à
17
delay(1000);
}
Tiếp theo ta s phân tích hàm digitalWrite( ledPin, HIGH); lãnh này ý ngh a ĩ
xut ra chân digital tên ledPin ( chân 9) mc cao ( HIGH), m c ng cao tướ ng 5
volt.
delay(1000);
Lãnh này t o m t kho ng tr vá i thßi gian là 1 giây. Trong hàm delay() c a IDE thì
1000 tương ng vi 1 giây.
digitalWrite(ledPin, LOW);
Cũng gi ng nh ư digitalWrite( ledPin, HIGH); lãnh này xu t ra chân ledPin m c th p
(LOW) t c là 0 volt.
Và ti p t c là m t hàm delay(). ế ā
Như v y chúng ta th th y ch ß ương trình s th c hiãn tt sáng led liên t c không ā
ngng tr khi ta ng t ngu n.
| 1/20

Preview text:


HàC VIâN HÀNG KHÔNG VIâT NAM
KHOA ĐIâN TĀ VIàN THÔNG ---÷ö---
H¯àNG D¾N SĀ DĀNG C¡ BÀN ARDUINO TP.HCM, Tháng 5, Năm 2014. MĀC LĀC:
Li nói đầu.
Ch°¢ng 1: Tổng quan v Arduino Uno. ........................................................................... 1
1. Tng quan. ................................................................................................................. 1
2. S¢ đồ chân ca Arduino. .......................................................................................... 2
Ch°¢ng 2: Cài đặt ch°¢ng trình Arduino IDE và Driver cho Arduino ....................... 4
1. Cài đặt ch°¢ng trình Arduino IDE ......................................................................... 4
2. Cài đặt Driver ............................................................................................................ 5
3. Arduino IDE .............................................................................................................. 7
Ch°¢ng 3: H°áng d¿n cài đặt bÁn mô phng Arduino trên Proteus. ......................... 11
Ch°¢ng 4: Giao tiếp Arduino vái mßt s linh kiãn điãn tā. ......................................... 13
1) Project 1: Led nhp nháy. ...................................................................................... 13
2) Project 2 : Đèn sáng khi nhấn phím. ..................................................................... 18
3) Project 3 : Led sáng dn tÿ led 1 đến led 10 và ng°ÿc l¿i. .................................. 21
4) Project 4 : Led sáng dn tÿ led 1 đến led 10 và ng°ÿc l¿i thi gian delay thay
đổi đ°ÿc. ......................................................................................................................... 24
5) Project 5: Điều khißn tốc đß đßng c¢ bằng PWM. ............................................... 27
6) Project 6 : Điều khißn đßng c¢ bằng L293D. ........................................................ 31
7) Project 7: Giao tiếp Arduino vái LCD 16x2. ........................................................ 34
8) Project 8: Giao tiếp vái máy tính. .......................................................................... 47
9) Project 9. Đo nhiãt đß môi tr°ờng dùng LM35D hißn thß LCD và Serial
Monitor.
.......................................................................................................................... 49
10) Project 10: Giao tiếp Arduino vái Servo motor. ............................................... 54
Tài liãu tham khÁo. ........................................................................................................... 56
Li Nói Đầu.
Arduino đã và đang đưÿc sử dāng rất rộng rãi trên thế giới, và ngày càng chứng tỏ
đưÿc sức mạnh của chúng thông qua vô số ứng dāng độc đáo của ngưßi dùng trong cộng
đồng nguồn má. Arduino thực sự đã gây sóng gió trên thß trưßng ngưßi dùng trên toàn
thế giới trong vài năm gần đây, 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.Tuy nhiên tại Viãt Nam Arduino vẫn còn chưa đưÿc biết
đến nhiều, các tài liãu liên quan đến nó vẫn còn rất hạn chế. Đưÿc sự giới thiãu và chỉ dẫn
của thầy Nguyán Thanh Dũng, sau một thßi gian tìm hißu tác giả đã biên soạn tài liãu
NG D¾N SĀ DĀNG C¡ BÀN ARDUINO=. Trong tài liãu này cung cấp cho bạn
đác một lưÿng kiến thức cơ bản nhất về Arduino cũng như các ứng dāng thực tế của nó.
Tài liãu gồm có các nội dung sau:
Chương 1: Tổng quan v Arduino Uno.
Chương 2: Cài đặt chương trình Arduino IDE và Driver cho Arduino.
Chương 3: Hướng dẫn cài đặt bn mô phng Arduino trên Proteus.
Chương 4: Giao tiếp Arduino vi mt s linh kiện điện t.
Khi biên soạn, tác giả đã tham khảo một số tài liãu nước ngoài đß tài liãu vừa đảm
bảo về mặc nội dung vừa có thß tiếp cận đưÿc với bạn đác.
Khi viết tác giả đã có gắng đß tài liãu đưÿc hoàn chỉnh nhất song chắc chắn không
tránh khỏi sai sót, vì vậy rất mong nhận đưÿc sự góp ý của bạn đác.
Mái ý kiến đóng góp xin liên hã: trungtin.vaa@gmail.com Tác giÁ SV: NGUYàN TRUNG TÍN
Ch°¢ng 1: Tng quan v Arduino Uno.
1. Tng quan.
Arduino thật ra là một bo mạch vi xử lý đưÿc dùng đß lập trình tương tác với các
thiết bß phần cứng như cảm biến, động cơ, đèn hoặc các thiết bß khác. Đặc đißm nổi bật
của Arduino là môi trưßng phát trißn ứng dāng cực kỳ dá sử dāng, với một ngôn ngữ
lập trình có thß hác một cách nhanh chóng ngay cả với ngưßi ít am hißu về điãn tử và
lập trình. Và điều làm nên hiãn tưÿng Arduino chính là mức giá rất thấp và tính chất
nguồn má từ phần cứng tới phần mềm.
Arduino Uno là sử dāng chip Atmega328. Nó có 14 chân digital I/O, 6 chân đầu vào
(input) analog, thạch anh dao động 16Mhz. Một số thông số kỹ thuật như sau : Chip ATmega328 Điãn áp cấp nguồn 5V
Điãn áp đầu vào (input) (kiến 7-12V nghß )
Điãn áp đầu vào(giới hạn) 6-20V Số chân Digital I/O
14 (có 6 chân điều chế độ rộng xung PWM) Số chân Analog (Input ) 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory
32KB (ATmega328) với 0.5KB sử dāng bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Xung nhßp 16 MHz
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 1
2. S¢ đồ chân ca Arduino. Hình 1: Arduino Uno. a) USB (1).
Arduino sử dāng cáp USB đß giao tiếp với máy tính. Thông qua cáp USB chúng ta
có thß Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn cho Arduino. b) Nguồn ( 2 và 3 ).
Khi không sử dāng USB làm nguồn thì chúng ta có thß sử dāng nguồn ngoài thông
qua jack cắm 2.1mm ( cực dương á giửa ) hoặc có thß sử dāng 2 chân Vin và GND đß cấp nguồn cho Arduino.
Bo mạch hoạt động với nguồn ngoài á điãn áp từ 5 – 20 volt. Chúng ta có thß cấp
một áp lớn hơn tuy nhiên chân 5V sẽ có mực điãn áp lớn hơn 5 volt. Và nếu sử dāng nguồn
lớn hơn 12 volt thì sẽ có hiãn tưÿng nóng và làm hỏng bo mạch. Khuyết cáo các bạn nên
dùng nguồn ổn đßnh là 5 đến dưới 12 volt.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 2
Chân 5V và chân 3.3V (Output voltage) : các chân này dùng đß lấy nguồn ra từ nguồn
mà chúng ta đã cung cấp cho Arduino. Lưu ý : không đưÿc cấp nguồn vào các chân này vì sẽ làm hỏng Arduino. GND: chân mass. c) Chip Atmega328.
Chip Atmega328 Có 32K bộ nhớ flash trong đó 0.5k sử dāng cho bootloader. Ngoài
ra còn có 2K SRAM, 1K EEPROM.
d) Input và Output ( 4, 5 và 6).
Arduino Uno có 14 chân digital với chức năng input và output sử dāng các hàm
pinMode(), digitalWrite() digitalRead() đß điều khißn các chân này tôi sẽ đề cập chúng á các phần sau.
Cũng trên 14 chân digital này chúng ta còn một số chân chức năng đó là:
Serial : chân 0 (Rx ), chân 1 ( Tx). Hai chân này dùng đß truyền (Tx) và nhận (Rx)
dữ liêu nối tiếp TTL. Chúng ta có thß sử dāng nó đß giao tiếp với cổng COM của một số
thiết bß hoặc các linh kiãn có chuẩn giao tiếp nối tiếp.
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có dấu <~=
là các chân PWM chúng ta có thß sử dāng nó đß điều khißn tốc độ động cơ, độ sáng của đèn…
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này hỗ trÿ giao tiếp theo chuẩn SPI.
I2C: Arduino hỗ trÿ giao tiếp theo chuẩn I2C. Các chân A4 (SDA) và A5 (SCL) cho
phép chúng tao giao tiếp giửa Arduino với các linh kiãn có chuẩn giao tiếp là I2C.
e) Reset (7): dùng đß reset Arduino.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 3
Ch°¢ng 2: Cài đặt ch°¢ng trình Arduino IDE và Driver cho Arduino
1. Cài đặt ch°¢ng trình Arduino IDE
Các bạn truy cập vào trang web http://arduino.cc/en/Main/Software và tải về chương
trình Arduino IDE phù hÿp với hã điều hành của máy mình bao gồm Windown, Mac OS
hay Linux. Đối với Windown có bản cài đặt (.exe) và bản Zip, đối với Zip thì chỉ cần giải
nén và chạy chương trình không cần cài đặt.
Sau khi cài đặt xong thì giao diãn chương trình như sau: Hình 2: Arduino IDE
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 4
2. Cài đặt Driver
Sử dāng cáp USB kết nối Arduino với máy tính, lúc này bạn sẽ thấy đèn led power
của bo sáng. Máy tính sẽ nhận dạng thiết bß và bạn sẽ nhận đưÿc thông báo:
Hình 3: Driver Software Installation.
Bây giß bạn click vào Start Menu chán Control Panel kế đến chúng ta chán System
and Security, click System và sau đó chán Device Manager. Hình 4: Device Manager.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 5
Chúng ta sẽ thấy cảnh báo màu vàng thiếu driver trên Arduino. Click chuột phải trên Arduino Uno icon sau đ ó chán
Hình 5: Right click và chán =Update Driver Software=
Chán Hình 6: Click chán Chán đưßng dẫn tới folder Hình 6: Driver Click
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 6 3. Arduino IDE
Arduino IDE là nơ iđß soạn thảo code, kißm tra lỗi và upload code cho arduino Hình 7: Arduino IDE.
a) Arduino Toolbar: có một số button và chức năng của chúng như sau : Hình 8: Arduino Toolbar.
 Verify : kißm tra code có lỗi hay không
 Upload: nạp code đang soạn thảo vào Arduino
 New, Open, Save : Tạo mới, má và Save sketch
 Serial Monitor : Đây là màn hình hißn thß dữ liãu từ Arduino gửi lên máy tính b) Arduino IDE Menu: Hình 9: IDE Menu
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 7  File menu: Hình 10: File menu.
Trong file menu chúng ta quan tâm tới māc Examples đây là nơi chứa code mẫu ví
dā như: cách sử dāng các chân digital, analog, sensor … Hình 11: Click Examples.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 8  Edit menu: Hình 11: Edit menu  Sketch menu Hình 12: Sketch menu Trong Sketch menu :
 Verify/ Compile : chức năng kißm tra lỗi code.
 Show Sketch Folder : hißn thß nơi code đưÿc lưu.
 Add File : thêm vào một Tap code mới.
 Import Library : thêm thư viãn cho IDE
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 9  Tool memu: Hình 13: Tool menu.
Trong Tool menu ta quan tâm các māc Board và Serial Port
Māc Board : các bạn cần phải lựa chán bo mạch cho phù hÿp với loại bo mà bạn sử
dāng nếu là Arduino Uno thì phải chán như hình: Hình 14: Chán Board
Nếu các bạn sử dāng loại bo khác thì phải chán đúng loại bo mà mình đang có nếu
sai thì code Upload vào chip sẽ bß lỗi.
Serial Port: đây là nơi lựa chán cổng Com của Arduino. Khi chúng ta cài đặt driver
thì máy tính sẽ hiãn thông báo tên cổng Com của Arduino là bao nhiêu, ta chỉ viãc vào
Serial Port chán đúng cổng Com đß nạp code, nếu chán sai thì không thß nạp code cho Arduino đưÿc.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 10
Ch°¢ng 3: H°áng d¿n cài đặt bÁn mô phng Arduino trên Proteus.
Đß mô phỏng đưÿc Arduino trên proteus thì chúng ta cần phải download thư viãn
arduino cho proteus. Đß có đưÿc thư viên này các bạn cần truy cập vào trang web:
http://blogembarcado.blogspot.com/search/label/Proteus
Hình 15: Thư viãn mô phỏng Arduino.
Sau khi download về các bạn chép 2 file ARDUINO.IDX và ARDUINO.LIB vào thư māc: Proteus 7:
C:\Program Files (hoặc x86) \Labcenter Electronics\Proteus 7 Professional\LIBRARY Proteus 8: C:\Program Files (hoặc x86) \Labcenter Electronics\Proteus 8 professional\Data\LIBRARY
Trong thư viãn này hổ trÿ 5 loại board Arduino khác nhau trong đó gồm có Arduino
Uno, MEGA, NANO, LILYPAD và UNO SMD và một cảm biến siêu âm Untrasonic.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 11
Sau khi chép xong chúng ta khái động Proteus lên vào thư viãn linh kiãn bằng cách
bấm phím P và gõ từ khoá là ARDUINO chúng sẽ hiãn ra danh sách các board hiãn có á đây tôi chán Arduino Uno.
Hình 16: Mô phỏng Arduino bằng Proteus.
Lưu ý chúng ta cần phải cấp nguồn vào 2 chân 5V và Gnd trên mạch như hình trên.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 12
Ch°¢ng 4: Giao tiếp Arduino vái mßt s linh kiãn điãn tā.
1) Project 1: Led nhp nháy.
Sau đây tôi sẽ tạo một project nhấp nháy led thßi gian delay là 1 giây sử dāng proteus đß mô phỏng.  Sơ đồ mạch: Hình 17: Led nhấp nháy.  Code chương trình. int ledPin = 9; void setup() {
pinMode(ledPin, OUTPUT); } void loop() {
digitalWrite(ledPin, HIGH); delay(1000);
digitalWrite(ledPin, LOW); delay(1000); }
Sau khi gõ code vào chương trình soạn thảo bạn cần click và đß kißm tra lổi.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 13 Tạo File Hex.
Chúng ta cần phải có file Hex đß cung cấp cho proteus và khi bấm play chương trình
mới hoạt động đưÿc. Cách tạo file Hex trên Arduino IDE như sau:
Click vào File chán Preferences. Hình 18: Click Preferences.
Các bạn check vào compilation và OK. Hình 19: Check compilation. Sau đ ó tiếp tāc bấm
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 14
Chương trình sẽ tự động built một file hex đưÿc lưu á đưßng dẫn như hình dưới
Hình 20: Đưßng dẫn chứa file hex.
Các bạn chép file hex ra một thư māc nào đó sau đó má proteus lên và double click vào Aruino Uno.
Hình 21: Add file Hex cho Proteus.
Bấm vào vß trí số 1 và chán nơ ilưu file hex á trên chán tiếp Open, OK và Play.
Các bạn sẽ thấy led nhấp nháy tắt và sáng thßi gian delay là 1s.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 15
 Giải thích chương trình. int ledPin = 9;
Khai báo một giá trß biến integer là ledPin = 9. void setup() {
pinMode(ledPin, OUTPUT); }
Trong Arduino sketch cần phải có hàm setup() và loop() nếu không có thì chương
trình báo lỗi. Hàm Setup() chỉ chạy một lần kß từ khi bắt đầu chương trình. Hàm này có
chức năng thiết lập chế độ vào, ra cho các chân digital hay tốc độ baud cho giao tiếp Serial...
Cấu trúc của hàm pinMode() là như sau: pinMode(pin,Mode);
pin : là vß trí chân digital.
Mode: là chế độ vào ( INPUT), ra (OUTPUT). Lãnh tiếp theo.
pinMode(ledPin, OUTPUT);
Lãnh này thiết lập chân số 9 trên board là chân ngõ ra (OUTPUT). Nếu không khai
báo < int ledPin = 9; = thì bạn có thß viết cách sau nhưng ý nghĩa không thay đổi: pinMode(9, OUTPUT);
Bắt buộc khai báo một hàm loop() trong Arduino IDE. Hàm này là vòng lặp vô hạn void loop() {
digitalWrite(ledPin, HIGH); delay(1000);
digitalWrite(ledPin, LOW);
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 16 delay(1000); }
Tiếp theo ta sẽ phân tích hàm digitalWrite( ledPin, HIGH); lãnh này có ý nghĩa là
xuất ra chân digital có tên là ledPin ( chân 9) mức cao ( HIGH), mức cao tướng ứng là 5 volt. delay(1000);
Lãnh này tạo một khoảng trá với thßi gian là 1 giây. Trong hàm delay() của IDE thì
1000 tương ứng với 1 giây.
digitalWrite(ledPin, LOW);
Cũng giống như digitalWrite( ledPin, HIGH); lãnh này xuất ra chân ledPin mức thấp (LOW) tức là 0 volt.
Và tiếp tāc là một hàm delay().
Như vậy chúng ta có thß thấy chương trình sẽ thực hiãn tắt sáng led liên tāc không
ngừng trừ khi ta ngắt nguồn.
HàC VIâN HÀNG KHÔNG SV: NGUYàN TRUNG TÍN 17