Professional Documents
Culture Documents
Arduino Cho Nguoi Moi Bat Dau PDF
Arduino Cho Nguoi Moi Bat Dau PDF
T HC NHANH
ARDUINO CHO NGI
MI BT U
PHIN BN 1
LI NI U
T ng ha, robot ha l xu hng ca nhn loi ngy nay. T ngn xa, con ngi lun c
ao c nhng c my lm vic thay th mnh. Trong thi i hin nay, vi s pht trin mnh
m ca khoa hc k thut, con ngi dn to ra nhng my mc thng minh, gip mnh t
cc cng vic thng ngy n nhng cng vic kh khn nguy him. Cc my t ng, cc
robot thng minh, t hnh do con ngi to nn khng ch tn ti tri t m cn c mt ti
mt trng, sao ha, trong khng gian.
i cng vi nhp iu pht trin ca khoa hc k thut trn th gii, ngi Vit Nam cng ang
rt n lc trong nghin cu khoa hc k thut, c bit l trong lnh vc t ng ha, robot ha,
phc v cho i sng hng ngy, cho cng cuc xy dng v bo v t nc Vit Nam thn
yu. S n lc gip cho ngi Vit dn nm bt, lm ch cc cng ngh tin tin trn th
gii, t xy cu dy vng n lm hm Si Gn v hin nay l thc hin cng trnh tu in
ngm ti Vit Nam. Ngi Vit vi s cn c sng to v tnh yu qu hng t nc mnh
m, cng v tr a l chin lc ca quc gia nht nh s thc hin thnh cng s nghip cng
nghip ha, hin i ha ca mnh v nht nh trong tng lai gn s bt kp cc nc pht trin
trong khu vc v khoa hc v k thut.
D c gng nhiu trong qu trnh vit ti liu, nhng chc chn ti liu khng th trnh khi
sai st trong qu trnh bin son. Tc gi rt mong nhn c s gp chn thnh ca cc bn
tc gi c th hon thin hn na ti liu ny. Mi kin ng gp xin gi v a ch email:
hmphubt@gmail.com. Tc gi xin chn thnh cm n.
Tc gi
MC LC
Ni dung Trang
1. Arduino l g?
Arduino l mt bo mch vi iu khin do mt nhm gio s v sinh vin thit k v a ra
u tin vo nm 2005. Mch Arduino c s dng cm nhn v iu khin nhiu i tng
khc nhau. N c th thc hin nhiu nhim v t ly tn hiu t cm bin n iu khin n,
ng c, v nhiu i tng khc. Ngoi ra mch cn c kh nng lin kt vi nhiu module
khc nhau nh module c th t, ethernet shield, sim900A, . tng kh ng dng ca mch.
Phn cng bao gm mt board mch ngun m c thit k trn nn tng vi x l AVR Atmel
8bit, hoc ARM, Atmel 32-bit,. Hin phn cng ca Arduino c tt c 6 phin bn, Tuy nhin
phin bn thng c s dng nhiu nht l Arduino Uno v Arduino Mega. Arduino Uno
c s dng rt rng ri trn th gii, rt nhiu v d trn youtube hoc cc trang hng dn v
Arduino s dng mch ny. V vy i vi cc bn mi hc Arduino, vic chn Arduino Uno s
gip cc bn c th t hc d dng.
Phn mm lp trnh cho mch Arduino l phn mm IDE. y l phn mm m ngun m, v
c th c download t trang web ca Arduino: arduino.cc. Vic hng dn download v s
dng phn mm ny s c cp n trong nhng phn sau.
2. T hc Arduino nh th no cho hiu qu?
Hin trn th gii c rt nhiu knh youtube v rt nhiu trang web, cc nhn chuyn hng dn
v chia s min ph cc d n v Arduino. V vy nu cc bn c vn ting Anh kh th c th t
hc t trn internet, t cc trang web nc ngoi.
Vit Nam hin cng c nhiu trang web v knh youtube hng dn t hc Arduino. Bn thn
tc gi cng c 1 knh youtube chia s code v cc d n v Arduino. Hin tc gi c 97
clip hng dn v Arduino vi y m code km theo v chia s min ph cho cng ng.
Cc bn c th tm lot clip trn youtube vi t kha: Lp trnh vi iu khin, Hunh Minh
Ph. Trong qu trnh t hc, cc bn khng nn copy c m code m t code mu, cc bn hy
t tay mnh nh li tng dng lnh, t phn tch ti sao li vit nh vy, ri kim tra chng
trnh, ri np chng trnh cho bo. Nh vy cc bn c th hiu r hn, cng nh s thy nhng
sai st khi mnh nh, t hiu cc li , cng nh hiu hn cch vit chng trnh..
3. Ti sao li chn Arduino?
Hin ti Vit Nam v trn th gii cng c nhiu bo mch vi iu khin khc nhau. Tuy nhin
Arduino c mt s u im m khin n tr nn ni ting v hin ang c s dng rng ri
trn th gii. Nhng u im l: r, tng thch c vi nhiu h iu hnh, chng trnh
lp trnh n gin, r rng, d s dng, s dng m ngun m v c th kt hp vi nhiu
module khc nhau.
4. Mua cc mch Arduino u?
Hin tc gi c 1 shop ring bn mch Arduino, shop K Thut Ph Hng, cc bn c th tham
kho ti a ch: www.ktphuhung.com.
7. Chn xut
tn hiu ra
1b. u cm
cng USB
8. IC Atmega
my tnh
328
1. Cp USB
y l dy cp thng c bn km theo bo, dy cp dng cm vo my tnh np chng
trnh cho bo v dy ng thi cng ly ngun t ngun usb ca my tnh cho bo hot ng.
Ngoi ra cp USB cn c dng truyn d liu t bo Arduino ln my tnh. Dy cp c 2
u, u 1a c dng cm vo cng USB trn bo Arduino, u 1b dng cm vo cng
USB trn my tnh.
2. IC Atmega 16U2
IC ny c lp trnh nh mt b chuyn i USB to-Serial dng giao tip vi my tnh
thng qua giao thc Serial (dng cng COM).
3. Cng ngun ngoi
Cng ngun ngoi nhm s dng ngun in bn ngoi nh pin, bnh acquy hay cc adapter cho
bo Arduino hot ng. Ngun in cp vo cng ny l ngun DC c hiu in th t 6V n
20V, tuy nhin hiu in th tt nht m nh sn xut khuyn dng l t 7 n 12V
4. Cng USB
Cng USB trn bo Arduino dng kt ni vi cp USB
5. Nt reset
Nt reset c s dng reset li chng trnh ang chy. i khi chng trnh chy gp li,
ngi dng c th reset li chng trnh..
6. ICSP ca ATmega 16U2
ICSP l ch vit tt ca In-Circuit Serial Programming. y l cc chn giao tip SPI ca chip
Atmega 16U2. Cc chn ny thng t c s trong cc d n v Arduino.
7. Chn xut tn hiu ra
C tt c 14 chn xut tn hiu ra trong Arduino Uno, nhng chn c du ~ l nhng chn c th
bm xung (PWM), tc c th iu khin tc ng c hoc sng ca n. Hnh 2 th hin
rt r nhng chn bm xung ny.
8. IC ATmega 328
IC Atmega 328 l linh hn ca bo mch Arduino Uno, IC ny c s dng trong vic thu thp
d liu t cm bin, x l d liu, xut tn hiu ra,
9. Chn ICSP ca ATmega 328
Cc chn ICSP ca ATmega 328 c s dng cho cc giao tip SPI (Serial Peripheral
Interface), mt s ng dng ca Arduino c s dng chn ny, v d nh s dng module RFID
RC522 vi Arduino hay Ethernet Shield vi Arduino.
10. Chn ly tn hiu Analog
Cc chn ny ly tn hiu Analog (tn hiu tng t) t cm bin IC Atmega 328 x l. C tt
c 6 chn ly tn hiu Analog, t A0 n A5.
11. Chn cp ngun cho cm bin
Cc chn ny dng cp ngun cho cc thit b bn ngoi nh role, cm bin, RC servo,trn
khu vc ny c sn cc chn GND (chn ni t, chn m), chn 5V, chn 3.3V nh c th
hin hnh 2. Nh nhng chn ny m ngi s dng khng cn thit b bin i in khi cp
ngun cho cm bin, role, rc servo,Ngoi ra trn khu vc ny cn c chn Vin v chn reset,
chn IOREF. Tuy nhin cc chn ny thng t c s dng nn trong ti liu ny xin khng i
su v n.
12. Cc linh kin khc trn board Arduino Uno
Ngoi cc linh kin lit k bn trn, Arduino Uno cn 1 s linh kin ng ch khc. Trn bo
c tt c 4 n led, bao gm 1 led ngun (led ON nhm cho bit boa c cp ngun), 2 led
Tx v Rx, 1 led L. Cc led Tx v Rx s nhp nhy khi c d liu truyn t board ln my tnh
hoc ngc li thng qua cng USB. Led L c c kt ni vi chn s 13. Led ny c gi
l led on board (tc led trn bo), led ny gip ngi dng c th thc hnh cc bi n gin m
khng cn dng thm led ngoi.
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
2. Nhn vo mc download
5. Ci t
Phin bn c vit trong bi ny l phin bn IDE 1.6.4. y l phin bn mi nht ca phn
mm IDE. Sau ny c th s c nhng phin bn k tip, tuy nhin v c bn th cch ci t
ging nhau.
Sau khi download v th ngi dng s c 1 file .exe nh hnh 7 bn di. ci t, ngi
dng nhp p vo file , phn mm s bt u ci t.
Mt thng bo v cc iu khon khi s dng phn mm s hin ra. Ngi dng nhn vo I
Agree (ti ng ), tip tc ci t chng trnh.
s dng phn mm. Biu tng ca phn mm s xut hin trn mn hnh Desktop v by gi
ngi dng ch vic nhp p vo n s dng nh cc phn mm khc.
4. Vng lp trnh
5. Vng thng bo
thng tin
Giao din ca phn mm IDE c nhiu phn, tuy nhin chng ta ch n nhng phn quan
trng nh c nu ra trong hnh trn. Chc nng ca tng phn nh sau:
1. Nt kim tra chng trnh
Dng kim tra xem chng trnh c vit c li khng. Nu chng trnh b li th phn
mm s hin th thng tin li vng s 5.
2. Nt np chng trnh xung bo Arduino
Dng np chng trnh c vit xung mch Arduino. Trong qu trnh np, chng trnh s
c kim tra li trc sau mi thc hin np xung mch Arduino.
3. Hin th mn hnh giao tip vi my tnh
Khi nhp vo biu tng ci knh lp th phn giao tip vi my tnh s c m ra. Phn ny s
hin th cc thng s m ngi dng mun a ln mn hnh. Mun a ln mn hnh phi c
lnh Serial.print() mi c th a thng s cn hin th ln mn hnh
4. Vng lp trnh
Vng ny ngi lp trnh thc hin vic lp trnh cho chng trnh ca mnh.
5. Vng thng bo thng tin:
C chc nng thng bo cc thng tin li ca chng trnh hoc cc vn lin quan n
chng trnh c lp.
6. S dng mt s menu thng dng trn phn mm IDE
C vi menu trong phn mm IDE, tuy nhin thng dng nht vn l menu File, ngoi nhng
tnh nng nh m mt file mi hay lu mt file, phn menu ny c mt mc ng ch l
Example. Phn Example (v d) a ra cc v d sn ngi lp trnh c th tham kho, gim
bt thi gian lp trnh. Hnh bn di th hin vic chn mt v d cho led chp tt (blink)
np cho mch Arduino. V d v led chp tt ny thng c dng kim tra bo khi mi mua
v.
Bn cnh vic chn bo th mt phn quan trng na l chn cng COM. Hnh bn di minh ha
cho vic chn cng COM. Khi ln u gn mch Arduino vo my tnh, ngi s dng cn nhn
chn cng COM bng cch vo Tools -> Serial Port (mt s phin bn dng t Port) sau nhn
chn cng COM, v d nh COM1. Nhng ln sau khi a chnh board Arduino vo my
tnh th khng cn chn cng COM, nu a bo Arduino khc vo my th cn phi chn li
cng COM, quy trnh thc hin cng tng t.
Sau khi thc hin cc bc trn xong, ngi dng s bt tay vo vic lp trnh. Phn k tip s
trnh by cu trc ca mt chng trnh trong phn mm IDE.
Phn ny s a ra cu trc ca mt chng trnh trong IDE, ng thi gii thch mt s lnh
thng c s dng thun tin cho ngi dng.
Xt 1 v d n gin, v d lm cho led nhp nhy:
#define led = 13 // khai bo chn led l chn 13
void setup() {
pinMode(led, OUTPUT); //Thit lp chn led (chn 13) l chn ra (OUTPUT)
}
void loop() {
digitalWrite(led, HIGH); // Ra lnh m led
delay(1000); // M trong 1s (1000ms), c th thay i gi tr ny
digitalWrite(led, LOW); // ra lnh tt led
delay(1000); // Tt trong 1s (1000ms), c th thay i gi tr ny
}
Sau y chng ta s cng tm hiu cu trc ca mt chng trnh trong Arduino qua v d ny.
1. Phn 1: Khai bo bin
y l phn khai bo kiu bin, tn cc bin, nh ngha cc chn trn board mt s kiu khai
bo bin thng dng:
* #define
Ngha ca t define l nh ngha, hm #define c tc dng nh ngha, hay cn gi l gn, tc l
gn mt chn, mt ng ra no vi 1 ci tn.
V d #define led 13
Ch : sau #define th khng c du , (dy phy)
*Khai bo cc kiu bin khc nh: int (kiu s nguyn), float,
Cc bn c th tham kho thm cc kiu bin cng nh cng dng ti arduino.cc
2. Phn 2: Thit lp (void setup())
Phn ny dng thit lp cho chng trnh, cn nh r cu trc ca n
void setup()
{
..
}
Cu trc ca n c du ngoc nhn u v cui, nu thiu phn ny khi kim tra chng
trnh th chng trnh s bo li.
Phn ny dng thit lp cc tc truyn d liu, kiu chn l chn ra hay chn vo. Trong
:
Serial.begin(9600); Dng truyn d liu t board Arduino ln
my tnh.
pinMode(bin, kiu vo hoc ra); V d: Dng xc nh kiu chn l vo hay ra
pinMode(ChanDO, INPUT);
3. Phn 3: Vng lp
Dng vit cc lnh trong chng trnh mch Arduino thc hin cc nhim v m chng ta
mong mun, thng bt u bng:
void loop()
{
.
}
Mt s cu lnh, cu trc thng gp:
Bng 2. Mt s cu lnh thng gp
K hiu, cu lnh ngha
// Du // dng gii thch, khi ni dung gii thch nm trn 1 dng, khi
kim tra chng trnh th phn kim tra s b qua phn ny, khng kim
tra,
/* K hiu ny cng dng gii thch, nhng gii thch dnh cho 1 on, tc
. c th xung dng c
*/
#define bin chn Define ngha l nh ngha, xc nh. Cu lnh ny nhm gn tn 1 bin
vo 1 chn no . V d #define led 13
digitalWrite(chn, Dng tt, m 1 chn ra. C php ca n l digitalWrite(chn,trng thi
trng thi); chn);. y trng thi chn c th l HIGH hoc LOW. V d:
digital(led,HIGH); , hoc digital(led,LOW); . Ch du chm phy ng sau
cu lnh.
analogWrite(chn, C ngha dng bm xung (PWM), thng dng iu khin tc
gi tr); ng c, sng led,..
digitalRead(chn); Read ngha l c, lnh ny dng c gi tr digital ti chn mun c
analogRead(chn); Read ngha l c, lnh ny dng c gi tr analog ti chn mun c
delay(thi gian); Delay ngha l ch, tr hon, duy tr. Lnh ny dng duy tr trng thi
ang thc hin ch mt thi gian. Thi gian y c tnh bng mili
giy, 1 giy bng 1 ngn mili giy.
if() if ngha l nu, sau if l du (), bn trong du ngoc l mt biu th so
{ snh. V d trong bi v cm bin m t (phn 5) th:
Cc cu lnh if (giatriAnalog>500) //nu gi tr c c ca bin giatriAnalog ln hn
} 500
else () {
{ digitalWrite(Led,HIGH); //Ra lnh cho led sng
Cc cu lnh delay(1000);//ch 1s
} }
else ngha l ngc li
www.ktphuhung.com
Ch HIGH l ch khi Arduino xut ra tn hiu HIGH (hay gi tr 1) th s kch rle hot
ng, ng tip im thng m.. Thng thng khi mua v th ch mc nh ca Rle l ch
HIGH
7. Chn ngun +
L chn cp ngun +, 5V cho Rle, chn ny c ni vi chn 5V ca board Arduino.
8. Chn ngun m:
L chn ni vi ngun m, chn ny c ni vi chn GND ca board Arduino
9. Chn ly tn hiu iu khin t Arduino
Chn ny s ni vi cc chn ra ca Arduino nhm iu khin ra rle nh ngi lp trnh
mong mun.
Hnh 21 th hin rt r nt hn v cc chn 7,8,9 trong module Rle.
www.ktphuhung.com 9. Chn ly tn
1. Chn thng
m hiu iu khin
t Arduino
2. Chn chung
8. Chn ngun
(DC-)
3. Chn thng
ng 7. Chn ngun
+(DC+)
4. Kh nng 5. Ch
chu ti LOW 6. Ch
HIGH
www.ktphuhung.com
III. CODE V D
Sau y s l mt v d vi Rle, code s dng l code trong bi n led nhp nhy. Trong v d
ny chn IN ca role s c ni vi chn 13, chn DC+ c ni vi chn 5V trn Arduino,
chn DC- c ni vi chn GND trn board Arduino.
Mch ny c th ng dng dng ti lan, trng nm, ch cn thay i thi gian delay th c
th thay i thi gian my bm nc chy.
1. Cch ni dy
www.ktphuhung.com Ngun cp
DC- cho ng
c
DC+
13 IN
Chn
GND COM
5V
Chn NO
ng c
2. M code
Phn ny s dng m code ca v d cho n led nhp nhy, role s ng ngt lun phin trong 1
giy. Sau y l m code :
ng c s quay v tt tun t trong 1s, 1s quay, 1 giy tt. Ngun in pin 9V c th c thay
th bng bnh acquy hoc in 220V (khi s dng ng c 220V AC). Trc khi s dng role
iu khin cc thit b in 220V, cc bn nn thc hnh th vi in ca acquy, pin, c
th nm vng phn ny v trnh cc s c ng tic c th xy ra. Hnh 23 th hin module rle
hot ng khi cp ngun cho h thng, mi ln led 13 sng l n led tc ng ca rle cng
sng theo.
www.ktphuhung.com
BI 3. S DNG MCH CU H
Mch cu H l module rt thng dng khi cn iu khin tc v chiu quay ca ng c,
thng c s dng trong cc xe t hnh trnh vt cn, hay cc robot. Bi vit ny hng dn
cc bn cch s dng mch cu H L298N iu khin ng tc v chiu ca ng c. Mc
ch ca bi ny l gip cc bn c th t kt ni mch cu H vi ng c, lm mt v d nho
nh v o chiu v iu chnh tc ca ng c.
1. Gii thiu v mch cu H L298N
Trn th trng hin c nhiu loi mch cu H, tuy nhin loi thng dng v thch hp vi board
Arduino l mch cu H L298N. Loi mch cu H ny chu c dng ti a l 2A, in p iu
khin t 5V n 35V, c th iu khin c 2 ng c. Hnh bn di l module mch cu H
L298.
Module ny gm c IC L298N, 1 khi iu khin ng c A, 1 khi iu khin ng c B, cc
chn cp ngun, 2 jump.
2. Khi iu khin ng c A
Khi ny c 2 chn nhm kt ni vi ng c A
3. Khi iu khin ng c B
Khi ny cng c 2 chn nhm kt ni vi ng c B
4. Cc chn cp ngun
Chn cp ngun gm 2 chn, chn GND ni vi ngun m cn chn +12V ni vi ngun dng
ca acquy hoc adapter 12V. Chn +5V dng khi cn s ly ngun 5V t mch cu H ra
dng. Thng th chn ny t s dng.
5. Cc jump
C 2 jump ti ENA v ENB khi 2 jump ny 2 v tr nh trn th s iu khin ng c chy
100% cng sut, ENA c dng cho ng c A v ENB c dng cho ng B. Ta c th rt 2
jump ny ra v kt ni cc ENA, ENB vi cc chn bm xung ca Arduino. Vic ny s gip
ngi s dng iu khin c tt ca ng c.
6. Cc chn IN1, IN2, IN3, IN4
Cc chn ny dng kt ni vi chn ra ca Arduino nhm iu khin chiu ca ng c. IN1,
IN2 dng cho ng c A v IN3, IN4 c dng cho ng c B.
Vic iu khin chiu ca ng c c thc hin nh sau:
Bng 3. Bng iu khin ng c A
Chn Trng thi ng c A
IN1 LOW Chiu thun
IN2 HIGH
IN1 HIGH Chiu nghch
IN2 LOW
IN1 LOW Thng ng c
IN2 LOW
IN4 LOW
IN3 LOW Thng ng c
IN4 LOW
L298N www.ktphuhung.com
Khi iu
khin ng c
A
Chn iu
khin ng c
B
Chn cp
ngun
Jump
www.ktphuhung.com
Mn hnh LCD l mt trong nhng thit b thng c s dng trong hin th cc thng s
trong qu trnh s dng Arduino. Bi vit ny hng dn cch s dng mn hnh lcd 16x2 thng
dng trn th trng.
1. Dng c thc hnh:
1 mch Arduino Uno, 1 mn hnh lcd 16x2, 1 ro c n, 1 bin tr 10K, 10 dy c c, 10
dy c ci.
2. Mn hnh lcd 16x2:
Mn hnh lcd 16x2 l loi mn hnh c 2 dng, mi dng c th vit c 16 k. Loi mn hnh
ny cn c dng km 1 bin tr 10K chnh tng phn ca ch so vi nn. Nu khng
c bin tr ny th c th khng thy c ch hin th.
3. Cch ni dy
-Chn VSS (GND) ni vi chn GND trn board Arduino
-Chn VDD(tng ng chn VCC trong hnh 26) ni vi chn 5V trn board Arduino
-Chn V0 (chn chnh tng phn) ni vi chn gia ca bin tr 10K (xem hnh 26)
-Chn RS ni vi chn s 12
-Chn RW ni vi 1 chn ca bin tr 10K, chn ny ca bin tr cng c ni vi chn GND
-Chn E (vit tt ca Enable) ni vi chn s 11
-Chn D4 ni vi chn s 5
-Chn D5 ni vi chn s 4
-Chn D6 ni vi chn s 3
-Chn D7 ni vi chn s 2
-Ngoi ra chn cn li ca bin tr cng c ni vi ngun 5V nh c minh ha hnh 26