You are on page 1of 31

T HC NHANH ARDUINO CHO NGI MI BT U

T HC NHANH
ARDUINO CHO NGI
MI BT U

PHIN BN 1

BIN SON: THC S HUNH MINH PH


TP.HCM, NGY 24 THNG 05 NM 2015

Thc S Hunh Minh Ph 1 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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.

S ra i ca mch Arduino thc y s yu thch, tm ti nghin cu, ng dng t ng ha ,


robot ha vo i sng v cng nghip. Vi nhng u im ring ca mnh, Arduino nhanh
chng ni ting ton th gii v c gii hc sinh, sinh vin, gii nghin cu, nhng ngi yu
thch k thut, nhng ngi thch lm t ch s dng rng ri. Ti Vit Nam, s lng ngi
s dng mch Arduino ngy cng tng. p ng nhu cu tm hiu Arduino, ti liu ny
c bin son. Ti liu gm c 6 phn, ch yu p ng nhu cu t hc ca cc bn mi bt
u tm hiu v Arduino. Ti liu c vit mt cch ngn gn, d hiu, i vo nhng vn ct
li trong vic s dng Arduino cho cuc sng.

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

Thc S Hunh Minh Ph

Thc S Hunh Minh Ph 2 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

MC LC
Ni dung Trang

Phn 1: Gii thiu v Arduino.4

Phn 2: Phn cng ca Arduino Uno R3 5

Phn 3: Download v ci t chng trnh IDE cho Arduino.9

Phn 4: Giao din ca phn mm IDE.14

Phn 5: Cu trc ca mt chng trnh trong phn mm IDE17

Phn 6: 4 bi tp trong b t hc Arduino cn bn.20

Bi 1. Ly tn hiu tng t v tn hiu s t cm bin20

Bi 2. S dng module Rle..22

Bi 3. S dng mch cu H26

Bi 4. S dng mn hnh LCD30

Thc S Hunh Minh Ph 3 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

PHN 1: GII THIU V ARDUINO

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.

Thc S Hunh Minh Ph 4 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

PHN 2: PHN CNG CA ARDUINO UNO R3


Phn ny ni v phn cng ca Arduino Uno R3, mt bo mch thng dng hin nay. Do y l
ti liu hng dn hc nhanh nn tc gi ch a ra nhng kin thc c bn cn thit cho vic s
dng board mch ny. Nu ngi hc cn nhng kin thc chuyn su hn th c th tham kho
ti website chnh thc ca Arduino: arduino.cc.

2. IC Atmega 3. Cng ngun


1. Cp 16U2 ngoi
USB
4. Cng USB
1a. u
cm cng 5. Nt reset
USB mch
Arduino
6. ICSP ca
Atmega 16U2

7. Chn xut
tn hiu ra
1b. u cm
cng USB
8. IC Atmega
my tnh
328

11. Chn cp ngun cho cm 10. Chn ly tn hiu 9. Chn ICSP ca


bin Analog Atmega 328

Hinh 1. Mch Arduino Uno

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

Thc S Hunh Minh Ph 5 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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.

Thc S Hunh Minh Ph 6 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

Trong 14 chn ra ca bo cn c 2 chn 0 v 1 c th truyn nhn d liu ni tip TTL. C mt


s ng dng cn dng n tnh nng ny, v d nh ng dng iu khin mch Arduino Uno qua
in thoi s dng bluetooth HC05.
Thm vo , chn 2 v chn 3 cng c s dng cho lp trnh ngt (interrupt), ng thi cn 1
vi chn khc c th c s dng cho cc chc nng khc, nh c th hin hnh 3. Bng 1
th hin thm cc thng s cho bo Arduino Uno R3.

Hnh 2. Cc chn vo ra ca Arduino Uno

Bng 1. Mt s thng s ca Arduino Uno R3

Vi iu khin ATmega328 (h 8bit)


in p hot ng 5V DC (ch c cp qua cng USB)
Tn s hot ng 16 MHz
Dng tiu th 30mA
in p vo khuyn dng 7-12V DC
in p vo gii hn 6-20V DC
S chn Digital I/O 14 (6 chn PWM)
S chn Analog 6 ( phn gii 10bit)
Dng ti a trn mi chn
30 mA
I/O
Dng ra ti a (5V) 500 mA
Dng ra ti a (3.3V) 50 mA
32 KB (ATmega328) vi 0.5KB dng
B nh flash
bi bootloader

Thc S Hunh Minh Ph 7 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)

Hnh 3. Tham kho thm mt s chc nng ca cc chn trn Arduino.

Thc S Hunh Minh Ph 8 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

PHN 3: DOWNLOAD V CI T CHNG TRNH IDE


CHO ARDUINO

1. Vo trang ch ca Arduino: arduino.cc

Hnh 4. Trang ch ca Arduino

2. Nhn vo mc download

Hnh 5. Mn hnh ca phn download.


3. Chn h iu hnh, v d h iu hnh l Windows:
C 2 ty chn cho h iu hnh Windows l Windows installer v Windows zip file for non
admin install. Ty chn th nht dng cho ngi l admin ca my, ty chn th 2 cho ngi
khng phi admin ca my. Thng thng a s chn ty chn th nht, tc Windows installer.
4. Download chng trnh v ci t

Thc S Hunh Minh Ph 9 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

Arduino c a ra 2 la chn, bao gm ch download v (just download) v download v cng


quyn gp (contribute and download), nh c th hin hnh 6. Arduino mong mun ngi
dng nu c iu kin hy quyn gp ng h hng, mc quyn gp thp nht l 3USD.

Hnh 6. Mn hnh trang download phn mm.

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.

Hnh 7. File chy phn mm sau khi download v.


Mt thng bo c th s c hin ln vi hng ch: do you want to run this file?, tc l bn
c mun chy file ny khng? Ngi dng click v run (chy) ci chng trnh.

Hnh 8. Bng thng bo bt u ci t phn mm

Thc S Hunh Minh Ph 10 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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.

Hnh 9. Thng bo v iu khon phn mm


Mt mn hnh ngi dng la chn vic ci t cc phn lin quan c hin ra, nh hnh
10. Cc bn c th nguyn nh vy v bm Next tip tc qu trnh ci t.

Hnh 10. Cc la chn khi ci t


Phn mm s yu cu bn chn v tr ci t. Cc bn c th ni ci t mc nh nh phn
mm a ra, khng thay i g ri bm Install (Ci t).

Thc S Hunh Minh Ph 11 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

Hnh 11. Chn ng dn cho phn mm


Mn hnh th hin vic ci t s xut hin, ngi dng c th nhp vo Show detail (Xem chi
tit) xem chi tit qu trnh ci t.

Hnh 12. Qu trnh ci t ang c thc hin.


Trong qu trnh ci t 1 s phin bn s hi c ci driver USB cho phn mm IDE khng, nh
hnh 13 bn di, ngi dng nn tc chn vo vung Always trust software from Arduino
LLC, sau bm Install (Ci t) ci t driver USB. Cn phi ci driver ny th chng
trnh mi nhn cng USB ca mch Arduino

Hnh 13. Ci t driver USB cho IDE


Sau khi vic ci t hon thnh, trn mn hnh s xut hin dng ch Completed ( hon
thnh), lc ny ngi dng nhn nt Close (ng) hon tt qu trnh ci t v by gi c th

Thc S Hunh Minh Ph 12 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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.

Hnh 14. Phn mm c ci t xong


Phn k tip s ni v giao din ca chng trnh ngi dng c th hiu r v cch s dng
phn mm ny.

Thc S Hunh Minh Ph 13 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

PHN 4: GIAO DIN CA PHN MM IDE


Phn ny ni v giao din ca phn mn IDE, hnh bn di th hin nhng phn c bn ca
giao din. Ngi dng c th tm hiu su hn v giao din ny, tuy nhin y l phn c bn
nht v thng dng nht c th hc nhanh Arduino, khi c thi gian cc bn c th tm hiu
thm cc bi vit v n trn arduino.cc hoc google, Cc chc nng c bn ca cc biu tng
trn phn mm c trnh by chi tit cc phn bn di.

1. Nt kim tra 2. Nt np chng trnh 3. Hin th mn hnh


chng trnh xung bo Arduino giao tip vi my tnh

4. Vng lp trnh

5. Vng thng bo
thng tin

Hnh 15. Giao din ca phn mm IDE

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

Thc S Hunh Minh Ph 14 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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.

Hnh 16. Menu file trn phn mm IDE

Thc S Hunh Minh Ph 15 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

Mt menu thng c s dng khc l menu Tools. Khi mi kt ni bo Arduino vi my tnh


ta click vo Tools->board chn loi board s dng. Phn mm chn sn kiu bo l bo
Arduino Uno, nu ngi dng dng kiu bo khc th chn kiu bo ang dng.

Hnh 17. Cch chn bo trn mn hnh IDE

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.

Hnh 18. Cch chn cng COM trn mn hnh IDE

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.

Thc S Hunh Minh Ph 16 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

PHN 5: 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.

Thc S Hunh Minh Ph 17 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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

Thc S Hunh Minh Ph 18 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

Serial.print() In ra mn hnh my tnh, lnh ny in khng xung dng


Serial.println() In ra mn hnh my tnh, in xong xung dng, gi tr tip theo s c in
dng k tip

Thc S Hunh Minh Ph 19 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

PHN 6: 4 BI TP TRONG B T HC ARDUINO CN BN

BI 1. LY TN HIU TNG T V TN HIU S T CM


BIN
Mch ch ca bi ny l gip cc bn hiu cch ly tn hiu tng t (Analog) v tn hiu s
(digital) t cm bin. Cm bin c s dng trong v d ny l cm bin o m t. Cc bn
c th tham kho thm video hng dn trn youtube ca tc gi. Video c tiu l: Lp trnh
vi iu khin-phn 82-Cm bin m t.
1. Dng c thc hnh:
Dng c thc hnh bao gm 1 cm bin m t, 1 board Arduino Uno, 1 n led
2. Cm bin o m t:
Loi cm bin ny c s dng o m t, c dng trong vic ti tiu cho nng
nghip, cy cnh,. Cm bin c 4 chn, gm 2 chn cp ngun VCC v GND, 2 chn AO v
DO. Chn VCC ca cm bin o m t c ni vi chn 5V trn board Arduino Uno. Chn
AO l vit tt ca Analog Output v chn DO l vit tt ca Digital Output

www.ktphuhung.com

Hnh 19. Cm bin o m t.


2. Ni dy:
Chn VCC ni ngun 5V, chn GND ni chn GND trn board Arduino, chn AO ni chn,
chn DO ni chn s 4, led ni chn 12.
3. Lp trnh
ly c tn hiu digital, trong phn set up () ngi lp trnh cn khai bo pinMode cho chn
l INPUT, chn Analog khng cn khai bo, phn mm s t hiu.
4. Phn tch m code
Sau y l m code ca chng trnh:
//Chng trnh o m t vi loi cm bin o m t c bn thng dng Vit Nam
//Ngi vit: HUNH MINH PH
//Cch ni chn:
//AO ni vi A1, DO ni vi chn 4, GND ni ngun m, VCC ni ngun dng.
#define Analog 1// dng chn A1 trn board Arduino c tn hiu Analog

Thc S Hunh Minh Ph 20 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

#define Digital 4 //Dng chn digital s 4 c tn hiu digital


#define Led 12//chn 12 lm chn iu khin led
int giatriAnalog, giatriDigital; //Kiu bin ca giatriAnalog v giatriDigital l kiu int (s
nguyn)
void setup()
{
Serial.begin(9600); // thit lp tc truyn d liu
pinMode(Digital,INPUT); //xc nh kiu chn 4 l chn vo (INPUT)
pinMode(Led,OUTPUT); //Xc nh kiu chn led (chn 12) l chn ra (OUTPUT)
}
void loop()
{
giatriAnalog=analogRead(Analog); //Ly gi tr chn Analog (chn A1) bng hm analogRead()
giatriDigital=digitalRead(Digital); //Ly gi tr chn digital bng hm digitalRead()
Serial.print("Gia tri Analog: "); //In ra mn hnh my tnh hng ch: Gia tri Analog:
Serial.println(giatriAnalog); //In ra mn hnh gi tr ca bin giatriAnalog sau xung dng
Serial.print("Gia tri digital: "); //In ra mn hnh my tnh dng ch: Gia tri digital:
Serial.println(giatriDigital); // In ra mn hnh gi tr ca bin giatriDigital sau xung dng
delay(1000); //ch trong 1s
if (giatriAnalog>500) //nu gi tr c c ca bin giatriAnalog ln hn 500
{
digitalWrite(Led,HIGH); //Ra lnh cho led sng
delay(1000);//ch 1s
}
else if(giatriAnalog<=500) // nu gi tr c c ca bin giatriAnalog nh hn hoc bng 500
{
digitalWrite(Led,LOW);//Ra lnh cho led tt
delay(1000);//Ch 1 giy
}
}

Thc S Hunh Minh Ph 21 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

BI 2. S DNG MODULE RLE


Khi cn s dng Arduino ng ngt mt ng c vi trm Wat n vi KW, mt bng n
220V th cn phi s dng thm rle vi board Arduino. Role c tc dng nh mt cng tc m
thit b iu khin cng tc chnh l Arduino.
I. Cu to ca Rle
Mch Arduino bn cht l mt mch iu khin, dng qua Arduino rt nh, thng thng ch
chy led hoc RC Servo loi nh (loi 9g). Nu mun dng mch Arduino iu khin ng
ngt thit b c dng ln hn 0.5A th phi dng rle, nu khng dng rle m cm trc tip
ng c vo mch Arduino th s lm h mch. Rle (hay relay) l mt thit b trung gian dng
ng ngt cc thit b c cng sut ln nh cc ng c DC hay cc ng c AC, bao gm
my bm nc, qut my, n 220V, cc thit b gia dng khc,
Loi Rle c thng c s dng cng Arduino l Rle 5V, tc dng ngun 5V iu
khin. Hnh 20 th hin mt module role 5V c bn thng dng trn th trng.
II. Phn tch cc chc nng ca Module Rle
1. Chn thng m:
V bn cht, Rle ging nh mt cng tc in m thnh phn ra lnh n chnh l mch
Arduino. Chn thng m ngha l trng thi bnh thng, khi role khng nhn lnh t
Arduino th n m ra, khi no c lnh t Arduino th n ng li vi chn chung. Khi chn
thng m ng vi chn chung (ging nh cng tc c bt) th dng in s i t chn
chung qua chn thng ng.
2. Chn chung (chn COM)
Chn chung l chn ni vi ngun cn cp cho ng c, thng chn chung ny c ni vi
ngun dng ca pin, bnh acquy hoc dy nng ca in 220V.
3. Chn thng ng
Tri ngc vi chn thng m l chn thng ng. Chn thng ng l chn m bnh
thng, lc role cha nhn lnh g t mch Arduino, th n ng vi chn chung (chn com).
Khi chn thng m ng th chn thng ng ny s h ra, khng ni vi chn chung na.
Ch : chn thng ng v chn thng m c trng thi tri ngc nhau, ci ny ng th ci
kia s m.
4. Kh nng chu ti
Kh nng chu ti th hin ti tt a m rle c th chu c. Nh i vi module ny, thng s
trn rle ghi l 10A, 250VAC, tc l ti ti a i vi in xoay chiu 220V (250V) l 10A. Ly
2 thng s ny nhn vi nhau ta c cng sut ti, tc cng sut ti a l 2500W hay 2,5KW,
tng ng 1 my bm nc 2,5KW hay 3 nga. Tuy nhin y l cng sut ti a, khi s
dng th cng sut ca ti bng phn na hoc hai phn ba gi tr ghi trn rle l tt nht. Ci
thng s khc c hiu tng t.
5. Ch LOW
Loi Rle ny c 2 ch , LOW v HIGH. Khu vc c 3 chn, 1 chn gia v 2 chn LOW
v HIGH 2 bn, c 1 ci jump mu en, c th rt ra c, dng kt ni 2 chn vi chn
gia chn ch .
Ch LOW l ch m khi mch Arduino xut ra tn hiu LOW (hay gi tr bng 0) th s
kch rle hot ng, ng tip im thng m.
6. Ch HIGH

Thc S Hunh Minh Ph 22 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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

Hnh 20. Module role 1 knh cho Arduino.

www.ktphuhung.com

Hnh 21. Cc chn cp ngun v chn ly tn hiu t Rle

Thc S Hunh Minh Ph 23 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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

Hnh 22. Cch ni dy ca v d.

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 :

int 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
}
3. Kt qu:

Thc S Hunh Minh Ph 24 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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

Hnh 23. H thng ang hot ng.

Thc S Hunh Minh Ph 25 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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

Bng 4. Bng iu khin ng B


Chn Trng thi ng c B
IN3 LOW Chiu thun
IN4 HIGH
IN3 HIGH Chiu nghch

Thc S Hunh Minh Ph 26 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

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

+12V GND +5v

Jump

Hnh 24. Module mch cu H


7. Kt ni mch cu H vi Arduino
Phn ny a ra v d dng module mch cu H L298N, nh c th hin hnh 25, iu
khin ng c c hp gim tc, ngun cp c th l pin 9V, hoc acquy 12V hoc Adapter 12V.
V cch ni dy th mch ny c ni nh sau:
-ENA ni vi chn 10 trn Arduino
-IN1 ni vi chn 11
-IN2 ni vi chn 12.
Ngi dng c th thay i chn nhng ch l chn ENA nn ni vi chn c du ~ (chn c
th bm xung c th iu chnh tc ca ng c). V ngun in, nu ngi dng s dng
pin 9V th nn dng pin 9V mi v khi cp ngun qua mch cu H th cng sut s b tiu hao
dn n c th khng dng cp cho ng c chy nu dng pin 9V c. Ngi dng cng c
th s dng bnh acquy 12V hoc adapter 12V cho v d ny. Phn k tip s a ra mt v d v
o chiu, iu chnh tc ng c dng mch cu H.

Thc S Hunh Minh Ph 27 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

www.ktphuhung.com

Hnh 25. Mt v d v kt ni module mch cu H vi Arduino


8. M code:
Sau y l mt v d v dng mch cu H o chiu v tc ng c. o chiu ng c
DC (ng c in mt chiu) ta cn o cc cp ngun cho ng c. thay i tc , ta thay
i xung cp cho ENA, Arduino s dng chip AVR 328, y l chip dng 8 bit, nn kh nng
bm xung ca n l t 0 n 2 ly tha 8, tc 256, hay ni khc hn n c th bm xung t 0
n 255 (256 xung). y l v d cho iu khin 1 ng c, module mch cu H c th iu
khin ti a 2 ng c, ng c cn li c iu khin tng t.
//MT V DU V S DUNG MCH CU H
//NGI VIT: HUNH MINH PH.
#define ENA 10 //Xc nh ENA l chn 10
#define IN1 11 // Xc nh IN1 l chn 11
#define IN2 12 // Xc nh IN2 chn 12
void setup()
{
pinMode(ENA, OUTPUT); //Xc nh kiu chn ENA l chn xut tn hiu ra (OUTPUT)
pinMode(IN1, OUTPUT); // Xc nh kiu chn IN1 l chn xut tn hiu ra (OUTPUT)
pinMode(IN2, OUTPUT); // Xc nh kiu chn IN2 l chn xut tn hiu ra (OUTPUT)
}
void loop()
{
//Ban u cho ng c thng (phanh) li
digitalWrite(IN1, LOW); //Cho chn IN1 trng thi LOW
digitalWrite(IN2, LOW); //Cho chn IN2 trng thi LOW
analogWrite(ENA, 255); //Tc l 100% (255)
delay(1000); //Ch 1 giy
//Cho ng c chy ti
digitalWrite(IN1, HIGH); //Cho chn IN1 trng thi HIGH
digitalWrite(IN2, LOW); //Cho chn IN2 trng thi LOW
analogWrite(ENA, 120); //Tc l 120/255

Thc S Hunh Minh Ph 28 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

delay(3000); //cho chy trong 3 giy (ch trong 3 giy)


//Dng li o chiu, nu khng dng li m o chiu vn c, nhng v lu di khng tt
cho ng c
digitalWrite(IN1, LOW); //Cho chn IN1 trng thi LOW
digitalWrite(IN2, LOW); //Cho chn IN2 trng thi LOW
analogWrite(ENA, 255); // Tc l 100% (255)
delay(1000); //Ch trong 1 s
//Cho ng c chy lui, trng thi ca IN1 v IN2 trong phn chy lui s ngc vi trng thi
chy ti.
digitalWrite(IN1, LOW);//Cho chn IN1 trng thi LOW
digitalWrite(IN2, HIGH); //Cho chn IN2 trng thi HIGH
analogWrite(ENA, 255); //Chy 100% tc ng (255 xung)
delay(3000); //Chy trong 3s (ch 3s)
}

Thc S Hunh Minh Ph 29 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

BI 4. S DNG MN HNH LCD

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

Hnh 26. Cch ni dy cho mn hnh LCD 16x2 vi Arduino Uno

Thc S Hunh Minh Ph 30 www.ktphuhung.com


T HC NHANH ARDUINO CHO NGI MI BT U

4. M code ca chng trnh


Sau y l mt m code m cc bn c th test mn hnh LCD:
#include <LiquidCrystal.h>//S dng th vin mn hnh LCD, th vin ny c sn trong
Arduino
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//S dng th vin vi cc chn c kt ni nh phn
trn
void setup() {
// Thit lp s lng hng v ct ca LCD:
lcd.begin(16, 2);//c 2 hng, 16 ct (16 k t)
// Print a message to the LCD.
lcd.print("Toi yeu Arduino");//In ln mn hnh LCD dng ch Ti yu Arduino
//Dng ch ny s xut hin dng u tin, trong phn mm tnh l dng s 0
}
//Lp trnh in s giy t khi bt u chng trnh ln LCD
void loop() {
// Thit lp v tr in l ct s 0, dng 1
//Ch : dng 1 thc cht l dng 2 v phn mm tnh t 0
lcd.setCursor(0, 1);
// In s giy t khi bt u hoc t khi reset
lcd.print(millis()/1000);
}

Thc S Hunh Minh Ph 31 www.ktphuhung.com

You might also like