You are on page 1of 70

S TAY ARDUINO

LP TRNH IU KHIN
ARDUINO
CHO NGI MI
BT U V1

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
NI DUNG CHNH:

1 .GII THIU S LC V ARDUINO UNO R3.

2 .GII THIU S LC V ARDUINO PRO MINI.

3 .GII THIU S LC V ARDUINO NANO.

4 .GII THIU S LC V ARDUINO MEGA 2560.

5 .HNG DN CI TH VIN CHO ARDUINO IDE.

6. NGN NG LP TRNH ARDUINO.

7. MT S V D LP TRNH ARDUINO C BN.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
1. Arduino Uno R3:

Arduino Uno c xy dng vi phn nhn l vi iu khin ATmega328P s


dng thch anh c chu k dao ng l 16 MHz. Vi vi iu khin ny, ta c tng
cng 14 pin (ng) ra / vo c nh s t 0 ti 13 (trong c 6 pin PWM, c
nh du ~ trc m s ca pin). Song song , ta c thm 6 pin nhn tn hiu
analog c nh k hiu t A0 - A5, 6 pin ny cng c th s dng c nh cc
pin ra / vo bnh thng (nh pin 0 - 13). cc pin c cp, pin 13 l pin c
bit v ni trc tip vi LED trng thi trn board.

Trn board cn c 1 nt reset, 1 ng kt ni vi my tnh qua cng USB v 1 ng


cp ngun s dng jack 2.1mm ly nng lng trc tip t AC-DC adapter hay
thng qua c-quy ngun.

Khi lm vic vi Arduino board, mt s thut ng sau cn c lu :

Flash Memory: b nh c th ghi c, d liu khng b mt ngay c khi tt


in. V vai tr, ta c th hnh dung b nh ny nh cng cha d liu
trn board. Chng trnh c vit cho Arduino s c lu y. Kch
thc ca vng nh ny thng thng da vo vi iu khin c s dng,

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
v d nh ATmega8 c 8KB flash memory. Loi b nh ny c th chu
c khong 10,000 ln ghi / xo.
RAM: tng t nh RAM ca my tnh, s b mt d liu khi ngt in
nhng b li tc c ghi xo rt nhanh. Kch thc nh hn Flash
Memory nhiu ln.
EEPROM: mt dng b nh tng t nh Flash Memory nhng c chu k
ghi / xo cao hn - khong 100,000 ln v c kch thc rt nh. c /
ghi d liu ta c th dng th vin EEPROM ca Arduino.

Ngoi ra, board Arduino cn cung cp cho ta cc pin khc nhau nh pin cp ngun
3.3V, pin cp ngun 5V, pin GND...

Thng s k thut ca Arduino board c tm tt trong bng sau:

Vi iu khin ATmega328P
in p hot ng 5V
in p vo khuyn dng 7-12V
in p vo gii hn 6-20V
Digital I/O pin 14 (trong 6 pin c kh nng bm xung)
PWM Digital I/O Pins 6
Analog Input Pins 6
Cng dng in trn mi I/O pin 20 mA
Cng dng in trn mi 3.3V pin 50 mA
Flash Memory 32 KB (ATmega328P)
0.5 KB c s dng bi bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Tc 16 MHz
Chiu di 68.6 mm
Chiu rng 53.4 mm
Trng lng 25 g

Lp trnh cho arduino uno:

bi vit ny cc bn s c hng dn cch np chng trnh n gin iu


khin n LED nhp nhy theo chu k 2 giy cho Arduino Uno R3.
Trc tin hy m bo rng my tnh ca bn ci t Arduino IDE v Arduino
driver .
Khi phn mn xong ta hy chun b phn cng nh sau:
+ Mt board Arduino uno r3.
+ Mt si dy cp ( kt ni arduino vi my tnh).
Cc bn hy lm theo cc bc sau np c chng trnh cho arduino uno r3.
Bc 1: Kt ni arduino uno r3 vi my tnh.

Kt ni arduino uno r3 vi my tnh


Bc 2: Tm cng kt ni ca Arduino Uno R3 vi my tnh.
Khi Arduino Uno R3 kt ni vi my tnh, n s s dng mt cng COM my
tnh v bo mch c th truyn ti d liu qua li thng qua cng ny. Windows c
th qun l n 256 cng COM. tm c cng COM ang c s dng
my tnh v mch Arduino UNO R3 giao tip vi nhau, bn phi m chc nng
Device Manager ca Windows.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

M ca s Device Manager ln tm cng COM kt ni vi arduino uno r3


M mc Ports (COM & LPT), bn s thy cng COM Arduino Uno R3 ang kt
ni.

y arduino uno r3 c kt ni vi COM3


Thng thng Windows s s dng li cng COM3 kt ni nn bn khng cn
thc hin thm thao tc tm cng COM ny na.
Bc 3: Np chng trnh cho arduino uno r3.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Ta hy th np chng trnh c sn trong arduino IDE trc. Trc tin bn hy
lm cc thao tc sau.

Cc bn lu nh chn ng board ardunio minhd s dng


Tip theo vo menu Tools -> Serial Port -> chn cng Arduino ang kt ni vi
my tnh.

Chn cng COM cho arduino IDE


Xc nhn cng COM ca Arduino IDE gc di cng bn phi ca s lm vic.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Xc nhn cng COM


Vo menu Tools -> Programmer -> chn AVR ISP

Lu cc bn phi chn AVR ISP


Tip theo ta np m ngun chng cho arduino uno r3.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

M chng trnh mu ca arduino IDE

Bn s thy Arduino IDE m mt ca s mi cha m ngun Blink. Chng


trnh ny c chc nng l iu khin n LED 13 mu cam trn mch Arduino
Uno R3 nhp nhy vi chu k 1 giy.

Ca s chng trnh "Blink" hin ra


V ta lm 1 thao tc cui cng np chng trnh.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

p chut vo ch ch ca du mi tn chng trnh xung arduino uno r3

CHC CC BN THNH CNG!!!

2. Arduino Pro Mini ( l board Arduino rt nh, s dng chip ATmega328


SMD ).

c bit thch hp cho cc ng dng thc t i hi s gn gng.


Board Arduino Pro Mini 5V 16MHz mc nh s dng ngun 5V v
IC ATmega328 chy xung nhp 16MHZ. Tuy nhin trn board c sn ng vo

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
RAW cp ngun thng qua mch iu p. Ngun vo cho ng RAW c th t
3.3V - 12V (max 12V)
+ RAW: cp ngun thng qua mch iu p
+ Vcc: cp ngun 5V hoc 3.3V (Lu : ngun > 5.5V s gy hng IC)

V s dng chung dng chip ATmega328 nn vic lp trnh v thit k ng dng


hon ton tng t board Arduino Uno R3. Ngoi ra c 1 s khc bit nh l
board Arduino Pro Mini c ti 8 cng analog (thay v 6 nh trn Arduino Uno
R3). Trong 2 ng analog A6,A7 khng th xut tn hiu digital!
Arduino Pro Mini khng c sn giao tip USB.
iu ny c ngha l bn khng th cm trc tip board Arduino Pro Mini vo my
tnh nh Arduino Mega 2560, Arduino Uno R3, Arduino Nano.
Nu bn cn 1 board arduino kch thc nh, c sn cng USB kt ni vi my
tnh th Arduino Nano l s la chn thch hp hn l Arduino Pro Mini.
Tuy nhin bn c th d dng s dng board Arduino Uno R3 sn c ca mnh
lp trnh cho Arduino Pro Mini.
Cch lm nh sau:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
+ Tho chip ATmega328 trn board Arduino Uno R3 ra.
+ Gn chn theo s sau:
Arduino Pro Mini Arduino Uno R3
RST RESET
Vcc 5V
Gnd Gnd
Tx Tx
Rx Rx

+ Cm Arduino Uno R3 vo cng USB trn my tnh. Nu ln u s dng


Arduino Pro Mini, bn s thy LED trn Arduino Pro Mini nhp nhy.
+ Chn: Tools > Board > Arduino Pro or Pro Mini (5V, 16MHz) w/ ATmega
328
+ Chn cng COM thch hp
Nh vy l bn c th Upload chng trnh ca mnh cho Arduino Pro Mini ri.

*Cc bn c th np code cho Board Pro Mini bng Board USB to Serial
UART (CP2102,). Cch kt ni nh sau mch np vi Arduino Pro Mini nh
sau:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
+ Chn: Tools > Board > Arduino Pro or Pro Mini (5V, 16MHz) w/ ATmega
328
+ Chn cng COM thch hp

3. Arduino Nano ( Nh, tin li, mang trn mnh tinh hoa ca Arduino Uno).

Khi tip xc vi Arduino Nano, l s tin dng, n gin, c th lp trnh trc


tip bng my tnh (nh UNO R3) v c bit hn c l kch thc ca n. Kch
thc ca Arduino Nano cc k nh ch tng ng ng 2 nghn gp li 2 ln thi
(1.85cm x 4.3cm), rt thch hp cho cc newbie, v gi r hn Arduino Uno nhng
dng c tt c cc th vit ca mch ny. Hm nay, t vit bi ny nhm mc ch
gii thiu v mch Arduino Nano v cc thng s k thut, cng vi l nhng gi
ng dng khi bt u vi mch ny.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Mt vi thng s ca Arduino Nano:

Cc thng s k thut ca Arduino Nano hu nh ging hon arduino uno r3, v vy


cc th vin trn Arduino Uno u hot ng tt trn Arduino Uno. Tuy nhin, Nano
c mt li th cc k quan trng, nh Arduino Nano c ng dng rt nhiu trong
cc d n DIY, chnh l kch hc ca n. ng thi Nano cn s lng chn Analog

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
nhiu hn Uno (2 chn A6, A7 ch dng c) cng vi dng ra ti a ca mi chn IO
ln n 40mA. Nhng, c mt im tr nh cho Nano, l mch ny Nano cn n
2KB b nh cho bootloader ( Uno l 0.5KB). Tuy nhin, bn ng lo lng, bn cn n
tn 30KB b nh flash lp trnh, dng ht c 30KB ny vi ti, l c "mt
vn lp trnh"

Cng kt ni vi Arduino Nano


Khc vi Arduino uno s dng cng USB type B, Nano li s dng mt cng nh hn
c tn l mini USB. V s dng cng ny nn kch thc board (v chiu cao) cng gim
i kh nhiu

Lp trnh cho Arduino Nano


Cng tng t nh bn Arduino uno r3, Arduino Nano s dng chng trnh Arduino
IDE lp trnh, v ngn ng lp trnh cho Arduino cng tn l Arduino (c xy dng
trn ngn ng C). Tuy nhin, nu mun lp trnh cho Arduino Nano, bn cn phi thc
hin mt s thao tc trn my tnh. Sau y, t s hng dn bn tng bc c th lp
trnh cho Arduino Nano.

1. u tin, bn cn ci Driver ca Arduino Nano v ti v bn Arduino IDE mi


nht cho my tnh, cc bc ci t hon ton tng t nh Arduino Uno R3, bn
c th tham kho ti y: http://tdhshop.com.vn/cai-dat-chuong-trinh-arduino-ide-
va-driver-cho-may-tinh

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
2. Trng hp my tnh khng nhn cng COM bn c th ci thm driver CH340G
Cho my tnh. Link ti: http://www.mediafire.com/file/5xwofcifc1n8xsm/CH341SER.zip
Sau , bn cm li board lc my tnh s nhn cng COM kt ni vi arduino nano.

Sau khi hon thnh qu trnh ci t, nu mun quay li lp trnh cho Arduino Uno,
th bn ch cn chnh tn board l Arduino Uno v "Serial Port" thnh cng Serial m con
Uno ca bn ang kt ni.

4. Arduino Mega 2560:

Chc hn cc bn qu quen thuc vi Arduino Uno R3 ri. Hm nay bi vit ny s


gii thiu cho cc bn mt loi Arduino mi c ng dng nhiu hn v c s dng
rng ri hn: Arduino Mega2560.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Thnh phn Arduino Mega:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Arduino Mega2560 l mt vi iu khin bng cch s dng ATmega2560.

Bao gm:

54 chn digital (15 c th c s dng nh cc chn PWM)


16 u vo analog,
4 UARTs (cng ni tip phn cng),
1 thch anh 16 MHz,
1 cng kt ni USB,
1 jack cm in,
1 u ICSP,
1 nt reset.

N cha tt c mi th cn thit h tr cc vi iu khin.

Arduino Mega2560 khc vi tt c cc vi x l trc gi v khng s dng FTDI


chip iu khin chuyn tn hiu t USB x l. Thay vo , n s dng
ATmega16U2 lp trnh nh l mt cng c chuyn i tn hiu t USB. Ngoi ra,
Arduino Mega2560 c bn vn ging Arduino Uno R3, ch khc s lng chn
v nhiu tnh nng mnh m hn, nn cc bn vn c th lp trnh cho con vi iu
khin ny bng chng trnh lp trnh cho Arduino Uno R3.

5 Chn GND
3 chn 5V

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
1 chn 3.3v
1 nt reset
16 chn analog
4 chn UART
54 Chn digital trong c 15 chn chng ta c th s dng nh PWM
6 Chn lp trnh ISP

V nhiu thnh phn khc...

Lp trnh cho arduino mega 2560 ging ht nh Arduino uno r3 ch khc ch


cc bn chn board l arduino mega 2560.

5. Hng dn ci th vin vo arduino IDE, H tr cho vic lp


trnh:

Th vin trong Arduino cha cc m ngun c nhng c im chung, c


xy dng thnh mt gi bao gm file:examples, .h, .cpp,...Nhm gip ngi s
dng gii quyt c vn nhanh chng, trong bi vit ny ti s dng th
vin I2C lm v d ci t vo Arduino IDE.
Lu : Tt c th vin ca arduino ta ti v nn lu bn trong th mc Libraries
ca arduino.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Sau khi ti th vin I2C v vi file .zip, ta vo Sketch/ Include Library/Add
sau chn file va mi lu trong th mc Libraries:

Cc bc ci th vin vo Arduino IDE

Nu ca s Arduino IDE bo dng ch di y th ci thnh cng.

Dng trong l bo ci th vin vo arduino IDE thnh cng

Tt c th vin ca arduino IDE ta nn t trong 1 file.


Ci xong ta reset li Arduino IDE v xem li th vin I2C c trong IDE
cha.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Nh vy l ci xong th vin I2C vo arduino IDE


CHC CC BN THNH CNG!!!

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
6. Ngn Ng Lp Trnh Arduino: gm 3 phn chnh l Cu lnh cu
trc Gi tr - Hm v th tc

a. Cu lnh cu trc:

SETUP() v LOOP()

Nhng lnh trong setup() s c chy khi chng trnh ca bn khi ng.

Bn c th s dng n khai bo gi tr ca bin, khai bo th vin, thit lp cc


thng s,

Sau khi setup() chy xong, nhng lnh trong loop() s c chy.

Chng s lp i lp li lin tc cho ti khi no bn ngt ngun ca board Arduino


mi thi.
Bt c khi no bn nht nt Reset, chng trnh ca bn s tr v li trng thi nh
khi Arduino mi c cp ngun.
V d
int led = 10;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(5000);
digitalWrite(led, LOW);
delay(5000);
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Gii thch:
Khi bn cp ngun cho Arduino, lnh pinMode(led, OUTPUT); s c chy 1
ln khai bo.
Sau khi chy xong lnh setup(), lnh loop() s c chy v c lp i lp li
lin tc, to thnh mt chui:

digitalWrite(led, HIGH);
delay(5000);
digitalWrite(led, LOW);
delay(5000);
digitalWrite(led, HIGH);
delay(5000);
digitalWrite(led, LOW);
delay(5000);
digitalWrite(led, HIGH);
delay(5000);
digitalWrite(led, LOW);
delay(5000);

if....else

Trc khi c lnh if ... else th chng ta phi tm hiu v mt s ton t SAU:

Ton t logic:
Ton t ngha V d tham kho

(a && b) tr v TRUE nu a v b u mang gi tr


and
TRUE. Nu mt trong a hoc b l FALSE th (a &&
(&&) V
b) tr v FALSE

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
(a || b) tr v TRUE nu c t nht 1 trong 2 gi tr a
or ( || ) Hoc
v b l TRUE, tr v FALSE nu a v b u FALSE

Nu a mang gi tr TRUE th (!a) l FALSE v


not ( ! ) Ph nh
ngc li

(a ^ b) tr v TRUE nu a v b mang hai gi tr


xor (^) Loi tr TRUE/FALSE khc nhau, cc trng hp cn li tr
v FALSE

Ton t SO SNH:
Cc ton t so snh thng dng so snh 2 s c cng mt kiu
d liu.
ngha v d
Ton t
== so snh bng (a == b) tr v TRUE nu a bng b v ngc li

so snh
!= (a != b) tr v TRUE nu a khc b v ngc li
khng bng

(a > b) tr v TRUE nu a ln hn b v FALSE


> so snh ln
nu a b hn hoc bng b

(a < b) tr v TRUE nu a b hn b v FALSE


< so snh b
nu ngc li

B hn hoc
<= (a <= b) tng ng vi ((a < b) or (a = b))
bng

Ln hn hoc
>= (a >= b) tng ng vi ((a > b) or (a = b))
bng

Cu lnh if

C php:
if ([biu thc 1] [ton t so snh] [biu thc 2]) { //biu thc iu kin
[cu lnh 1]
} else {

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
[cu lnh 2]
}

Nu biu thc iu kin tr v gi tr TRUE, [cu lnh 1] s c thc hin, ngc


li, [cu lnh 2] s c thc hin.
V d:
int a = 0;
if (a == 0) {
a = 10;
} else {
a = 1;
}
// a = 10

Lnh if khng bt buc phi c nhm lnh nm sau t kha else


int a = 0;
if (a == 0) {
a = 10;
}
// a = 10

Bn c th kt hp nhiu biu thc iu kin khi s dng lnh if. Ch rng mi biu
thc con phi c bao bng mt ngoc trn v phi lun c mt cp ngoc trn bao
ton b biu thc con.

switch / case:

M t lnh switch / case:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Ging nh if, switch / case cng l mt dng lnh nu th, nhng n c thit k
chuyn bit bn x gi tr trn mt bin chuyn bit.
V d, bn c mt bin l action s nhn tr t nhng module khc qua serial. Nhng
action s nm trong mt cc gi tr no th lc ny bn hy s dng switch / case.

C php lnh switch / case

switch (var) {
case label:
//on lnh
break;
case label:
// on lnh
break;
/*
case ... more and more
*/
default:
// statements
}

Tham s lnh switch / case

Var : bin m bn mun so snh


label: s em gi tr ca bin SO SNH BNG vi nhn ny

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Hm For:

Gii thiu hm for:

Hm for c chc nng lm mt vng lp. Vy vng lp l g? Hy hiu mt cch n


gin, n lm i lm li mt cng vic c mt tnh cht chung no . Chng hn, bn
bt tt mt con LED th dng digitalWrite xut HIGH delay ri li LOW ri li delay.
Nhng nu bn mun lm nhiu hn 1 con LED th mi on code ca bn s di ra
(khng p v khi chnh sa th chng l ngi sa li tng dng?
Vi 1 con led, bn lp trnh nh th ny:
digitalWrite(led1,HIGH);
delay(1000);
digitalWrite(led1,LOW);
delay(1000);
Vi 10 con led, nu bn khng dng for, on code n s di nh th ny:
digitalWrite(led1,HIGH);
delay(1000);
digitalWrite(led1,LOW);
delay(1000);
digitalWrite(led2,HIGH);
delay(1000);
digitalWrite(led2,LOW);
delay(1000);
...
digitalWrite(led10,HIGH);
delay(1000);
digitalWrite(led10,LOW);
delay(1000);
By gi chng ta hy ly mt v d n gin khc:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Ti mun xut 10 ch s (t 1 - 10) ra Serial. V vit thc hin nh sau
Nu bn cha c bi ny v cng cha bit kin thc v for, bn s lp trnh nh sau
nu bn khng bit cu lnh for:
void setup() {
Serial.begin(9600);
Serial.println(1);
Serial.println(2);
Serial.println(3);
Serial.println(4);
Serial.println(5);
Serial.println(6);
Serial.println(7);
Serial.println(8);
Serial.println(9);
Serial.println(10);
}
void loop() {
// khng lm g;
}

Cu trc lnh for:

Theo quan im ca ti, nu bn cha bit v vng lp hoc hm for, hiu c


hm for, bn cn nm c 4 phn:

1. Hm for l mt vng lp c gii hn - ngha l chc chn n s kt thc


(khng sm thi mun).
2. N s bt u t mt v tr xc nh v i n mt v tr kt thc.
3. C mi bc xong, n li thc hin mt on lnh
4. Sau , n li bc i tip, n c th bc 1 bc hoc nhiu bc, nhng
khng c thay i theo thi gian.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Theo v d trn, ta c on code s dng hm for nh sau:
for (i = 1;i<=10;i = i + 1) {
Serial.println(i);
}

Gm c 2 lnh for l tin v for li:

For tin (xut pht t mt v tr nh chy n v tr ln hn) <v tr xut


pht> b hn <v tr kt thc>
For li (xut pht t mt v tr ln chy v v tr nh hn) <v tr xut pht>
ln hn <v tr kt thc>

V khi hiu c mt cch su sc th y l c php chnh ca hm For:

for (<bin chy> = <start>;<iu kin>;<bc>) {


//lnh
}

Lnh while:
Gii thiu lnh cu trc while

Vng lp while l mt dng vng lp theo iu kin, mnh khng th bit trc s ln
lp ca n nhng mnh qun l lc no th n ngng lp!
Ging nh lnh for, cng c vi khi nim m bn cn nm

C php lnh cu trc while

while (<iu kin>) {


//cc on lnh;
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
V d lnh cu trc while

int day = 1;
int nam = 2014; // Nm 2014
while (day < 365) { //Chng no day < 365 th cn chy (<=364). Khi day == 365 th
ht 1 nm...
day += 1; //
delay(60*60*24);// Mt ngy c 24 gi, mi gi c 60 pht, mi pht c 60 giy
}
nam += 1; //... by gi l mt nm mi !

Lnh Continue:
Gii thiu lnh cu trc continue

continue l mt lnh c chc nng b qua mt chu k lp trong mt vng lp


(for, do, while) cha n trong . Khi gi lnh continue, nhng lnh sau n v
trong cng vng lp vi n s b b qua thc hin nhng chu k lp k tip.

V d lnh cu trc continue

int a = 0;
int i = 0;
while (i < 10) {
i = i + 1;
continue;
a = 1;
}
//a vn bng 0

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Lnh Break:

Gii thiu lnh cu trc Break

break l mt lnh c chc nng dng ngay lp tc mt vng lp (do, for, while)
cha n trong . Khi dng vng lp, tt c nhng lnh pha sau break v trong
vng lp chu nh hng ca n s b b qua.

V d lnh cu trc Break

int a = 0;
while (true) {
if (a == 5) break;
a = a + 1;
}
//a = 5

while (true) {
while (true) {
a++;
if (a > 5) break;
}
a++;
if (a > 100) break;
}
//a = 101

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Lnh Return:
Gii thiu lnh cu trc return

return c nhim v tr v mt gi tr (cng kiu d liu vi hm) m n c gi!

C php lnh cu trc return

return;
return value; // c 2 u ng

Thng s

value: bt k gi tr hoc mt i tng.

V d lnh cu trc return

//Hm kim tra gi tr ca cm bin c hn mt ngng no hay khng


int checkSensor(){
if (analogRead(0) > 400) {
return 1;
else{
return 0;
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Lnh goto:

Gii thiu Lnh cu trc goto

N c nhim v tm dng chng trnh ri chuyn n mt nhn c nh


trc, sau li chy tip chng trnh!

C php Lnh cu trc goto

label: //Khai bo mt nhn c tn l label


goto label; //Chy n nhn label ri sau thc hin tip nhng on chng trn
h sau nhn

Th thut

Khng nn dng lnh goto trong chng trnh Program hay bt c chng trnh
no s dng ngn ng C. Nhng nu s dng mt cch khn ngoan bn s ti u
ha c nhiu iu trong mt chng trnh!
Vy n hu ch khi no, l lc bn ang dng nhiu vng lp qu v mun thot
khi n mt cch nhanh chng!

V d Lnh cu trc goto

for(byte r = 0; r < 255; r++){


for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto bailout;}
//thm nhiu cu lnh na
}
}
}bailout:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

C php m rng {} du ngoc nhn:

Gii thiu C php m rng {} du ngoc nhn

Rt n gin, {} l mt cp du ngoc nhn, nn mt khi bn m ngoc th phi


ng ngoc li cho n!
Nhim v ca n l cung cp mt c php gi nhng lnh cho nhng cu trc
c bit nh (if, while, for,...)
Tt nht l cc bn xem cc v d sau y, th chc chn s hiu c iu
m {} mun ni!

Cch s dng C php m rng {} du ngoc nhn


Trong hm v th tc

void myfunction(<kiu d liu> <tham s>){


<lnh>;
}

Vng lp

while (<iu kin>)


{
<cu lnh>
}

do
{
<cu lnh>
} while (<iu kin>);

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

for (<khi to>; <iu kin>; <bc>)


{
<cu lnh>
}

Lnh r nhnh

if (<iu kin 1>)


{
<lnh 1>
}

else if (<iu kin 2>)


{
<lnh 2>
}
else
{
<lnh 3>
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Comments - Vit ghi ch trong khi vit
code
Gii thiu v Comments - Vit ghi ch trong khi vit code Arduino

Bn rt kh ghi nh tng dng code mt trong mt chng trnh tht l di, vi


nhng thut ton phc tp, v vy Arduino lm cho bn mt c php gii
quyt vn ny, l Comments. Comments s gip bn ghi ch cho tng dng
code hoc trnh by nhim v ca n bn hoc nhng ngi khc c th hiu
c chng trnh ny lm c nhng g. V comments s khng c Arduino
bin dch nn cho d bn vit n di n u th cng khng nh hng n b nh
flash ca vi iu khin. comments trong Arduino, bn c 2 cch.

V d v Comments - Vit ghi ch trong khi vit code Arduino

x = 5; // y l kiu "single line comment", lm c iu ny, bn g "//"


// n s ghi ch tt c nhng ch (text, cu lnh,... everything) nm sau du //
cho n khi ht dng

/* Cn y l "multiline comment" - Bn bt u ghi ch vi k t kia.


N s "ghi ch" tt c nhng g nm trong cp du "/ *" v "* /" ( khng c du cc
h nh)
if (gwb == 0){ // ngoi ra bn c th dng single line trong ny.
x = 3; /* nhng dng mt multiline comment khc th s b li c php ngay
*/
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
b. Hm GI TR trong chng trnh Arduino:

Kiu d liu int

Kiu int l kiu s nguyn chnh c dng trong chng trnh Arduino.

Kiu int chim 2 byte b nh !


Trn mch Arduino Uno, n c on gi tr t -32,768 n 32,767 (-215 n 215-1)
(16 bit)
Trn mch Arduino Due, n c on gi tr t -2,147,483,648 n 2,147,483,647 (-
231 n 231-1) (32 bit) (lc ny n chim 4 byte b nh)

V d v kiu d liu int:

int ledPin = 13;

C php kiu d liu int:

int var = val;

var: tn bin
val: gi tr

Kiu d liu float:

nh ngha 1 kiu s thc, bn c th s dng kiu d liu float.

Mt bin dng kiu d liu ny c th t mt gi tr nm trong khong -


3.4028235E+38 n 3.4028235E+38. N chim 4 byte b nh.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Vi kiu d liu float bn c t 6-7 ch s c ngha nm bn mi bn du
".". iu c ngha rng bn c th t mt s thc di n 15 k t (bao gm
du .)

Lu trong s dng kiu d liu float:

biu din gi tr thc ca mt php chia bn phi 2 s thc chia cho ln nhau.
V d: bn x l php tnh 5.0 / 2.0 th kt qu s tr v l 2.5. Nhng nu m bn
x l php tnh 5 / 2 th kt qu s l 2 (v hai s nguyn chia nhau s ra mt s
nguyn).
V d v kiu d liu float:

float myfloat;
float sensorCalbrate = 1.117;

C php kiu d liu float:

float var = val;

var: tn bin
val: gi tr
Code tham kho s dng kiu d liu float:

int x;
int y;
float z;
x = 1;
y = x / 2; // y s tr v kt qu l 0
z = (float)x / 2.0; //z s c kt qu l 0.5 (bn nhp 2.0, ch khng phi l 2)

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Kiu d liu char:

Kiu d liu char l kiu d liu biu din cho 1 k t.

Nu bn cn biu din mt chui trong chng trnh Arduino - bn cn s dng


kiu d liu String. Kiu d liu ny chim 1 byte b nh!
Kiu char ch nhn cc gi tr trong bng m ASCII.
Kiu char c lu di dng 1 s nguyn byte c s m (c cc gi tr t -127 -
128), thay v thit t mt bin kiu char c gi tr l 'A', bn c th t l 65.
hiu r hn bn xem v d di y.
V d v kiu d liu char:

char myChar = 'A';


char myChar = 65; // c 2 cch khai bo u hp l

Kiu d liu void:

M t v kiu d liu Void

"void" l mt t kha ch dng trong vic khai bo mt function. Nhng function


c khai bo vi "void" s khng tr v bt k d liu no khi c gi.

V d v kiu d liu Void

led = 13;
void setup() {
pinMode(led, OUTPUT);
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
void loop() {
blink();
}
void blink() {
digitalWrite(led, LOW);
delay(1000);
digitalWrite(led, HIGH);
delay(1000);
}

Gii thch

"blink" l mt function c nh ngha vi t kha "void", do n khng


tr v mt gi tr no. Nhim v ca "blink" ch l lm nhp nhy n LED
chn s 13 trn mch Arduino.
Bn c th thy rng nhng function kiu ny khng dng lnh "return"
tr v gi tr ca function.

Kiu d liu byte:

Gii thiu v kiu d liu byte

L mt kiu d liu biu din s nguyn nm trong khong t 0 n 255. Bn s


mt 1 byte b nh cho mi bin mang kiu byte

V d v kiu d liu byte

byte a = 123; //khai bo bin a mang kiu byte, c gi tr l 123

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Kiu d liu string:

Gii thiu v kiu d liu string

string ting Anh ngha l chui. Trong mt chng trnh Arduino c 2 cch nh
ngha chui, cch th nht l s dng mng k t biu din chui. Bi vit ny
xin m t chi tit v cch th nht.

Cch khai bo v kiu d liu string

char Str1[15]; // khai bo chui c di l 15 k t.

char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; //khai bo chui c di ti a l 8 k t
v t n gi tr ban u l arduino (7 k t). Buc phi khai bo chui nm gia h
ai du nhy n nh!

char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};//khai bo chui c di ti a l 8 k
t v t n gi tr ban u l arduino<k t null> (8 k t)

char Str4[ ] = "arduino";// Chng trnh dch s t ng iu chnh kch thc cho
chui Str4 ny v ngoi ra bn phi t mt chui trong du ngoc kp

char Str5[8] = "arduino";// Mt cch khai bo nh Str3


char Str6[15] = "arduino"; // Mt cch khai bo khc vi di ti a ln hn

CH : mi chui u cn c 1 k t NULL, nu bn khng khai bo k t


NULL (\0) cui th trnh bin dch s t ng thm vo. l l do v sao Str2,
Str4 li c di l 8 nhng ch cha mt chui 7 k t. K t NULL ny lm
g? N dng trnh bin dch bit im dng ca mt chui! Nu khng n s
c tip nhng phn b nh khc (m phn y khng lu chui)

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Bn c th khai bo mt chui di nh sau:
char myString[] = "This is the first line"
" this is the second line"
" etcetera"

Mng chui

Khi cn phi thao tc vi mt lng ln chui (v d nh trong cc ng dng tr


li ngi dng bng LCD) th bn cn s dng mt mng chui. M bn cht ca
chui l mng cc k t. V vy khai bo 1 mng chui bn cn s dng mt
mng 2 chiu!
khai bo mt mng chui, rt n gin:
char* myStrings[] = {"I'm number 1", "I'm number 2"};

Ch cn thm du * sau ch char v trong du ngoc vung pha sau myStrings bn


c th thit t s lng phn t ti a ca mng chui!

V d v kiu d liu string

char* myStrings[]={"This is string 1", "This is string 2", "This is string 3",
"This is string 4", "This is string 5","This is string 6"};
void setup(){
Serial.begin(9600);
}
void loop(){
for (int i = 0; i < 6; i++){
Serial.println(myStrings[i]);
delay(500);
}
}

Kiu d liu array:


Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao
S TAY ARDUINO

Gii thiu v kiu d liu mng array

Array l mng (tp hp cc gi tr c lin quan v c nh du bng nhng ch


s). Array c dng trn Arduino chnh l Array trong ngn ng lp trnh C.

Cc cch khi to mt mng

int myInts[6]; // to mng myInts cha ti a 6 phn t (c nh du t 0-5), cc


phn t ny u c kiu l int => khai bo ny chim 2*6 = 12 byte b nh

int myPins[] = {2, 4, 8, 3, 6}; // to mng myPins cha 5 phn t (ln lt l 2, 4, 8


, 3, 6). Mng ny khng gii hn s lng phn t v c khai bo l "[]"

int mySensVals[6] = {2, 4, -8, 3, 2}; // to mng mySensVals cha ti a 6 phn t


, trong 5 phn t u tin c gi tr ln lt l 2, 4, -8, 3, 2

char message[6] = "hello"; // to mng k t (dng chui) c ti a 6 k t!

Truy cp cc phn t trong mng

Ch : Phn t u tin trong mng lun c nh du l s 0.


mySensVals[0] == 2, mySensVals[1] == 4, vng vng

iu ny c ngha rng, vic khai bo mt mng c ti a 10 phn t, th phn t


cui cn (th 10) c nh du l s 9
int myArray[10]={9,3,2,4,3,2,7,8,9,11};
// myArray[9] c gi tr l 11
// myArray[10] s tr v mt gi tr "hn xui" nm trong khong gi tr ca int

V vy, hy ch trong vic truy cp n gi tr trong mng, nu bn mun truy


cp n phn t cui cng th hy truy n n gii hn ca mng - 1.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Hy ghi nh rng, trong trnh bin dch ngn ng C, n khng kim tra bn c truy
cp n mt c nm trong b nh hay khng! Nn nu khng cn thn trong vic
truy cp mng, chng trnh ca bn s mc li logic v rt kh tm li y!

Gn mt gi tr cho mt phn t

mySensVals[0] = 10;

c mt gi tr ca mt phn t v gn cho mt bin no cng kiu d liu

x = mySensVals[0]; //10

Dng mng trong vng lp

Mng rt thng c dng trong vng lp (chng hn nh dng lu cc chn


digital qun l n led). Trong , bin chy ca hm for s i ht (hoc mt phn)
ca mng, ty thuc vo yu cu ca bn m thi! V d v vic in 5 phn t u
ca mng myPins:
int i;
for (i = 0; i < 5; i = i + 1) {
Serial.println(myPins[i]);
}

c. Hm v Th Tc:
Hm ton hc min():

M t v hm ton hc min()

Hm min c nhim v tr v gi tr nh nht gia hai bin.

C php v hm ton hc min()

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
min(x, y);

Tham s

x: s th nht, mi kiu d liu u c chp nhn.


y: s th hai, mi kiu d liu u c chp nhn.

Tr v

S nh nht trong 2 s.

Gi

Hm min c dng ly chn trn (khng gi tr vt qu mt mc quy nh


no ).

Cnh bo c php v hm ton hc min()

min(a++, 100); // nu bn nhp nh th ny th s b li y


a++;
min(a, 100); // nhng nu nhp nh th ny th n! V hy ghi nh l khng c
bt c php tnh no bn trong.

Hm thi gian delay():

Gii thiu v hm thi gian delay

delay c nhim v dng chng trnh trong thi gian mili giy. V c mi 1000
mili giy = 1 giy.

C php v hm thi gian delay

delay(ms)

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Thng s

ms: thi gian mc mili giy. ms c kiu d liu l unsigned long

V d v hm thi gian delay

iu khin n LED sng nhp nhy theo yu cu bng arduino uno R3.

void setup() {

pinMode(13, OUTPUT);

void loop() {

digitalWrite(13, HIGH); // turn the LED on

delay(1000); // led sng trong vng 1 giy.

digitalWrite(13, LOW); // turn the LED off

delay(1000); // led tt trong vng 1 giy.

Hm thi gian micros():

Gii thiu v hm thi gian micros()

micros() c nhim v tr v mt s - l thi gian (tnh theo micro giy) k t lc


mch Arduino bt u chng trnh ca bn. N s trn s v quay s 0 (sau
tip tc tng) sau 70 pht. Tuy nhin, trn mch Arduino 16MHz (v d
Duemilanove v Nano) th gi tr ca hm ny tng ng 4 n v micro giy.
V d micros() tr v gi tr l 10 th c ngha chng trnh ca bn chy c

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
40 microgiy. Tng t, trn mch 8Mhz (v d LilyPad), hm ny c gi tr tng
ng 8 micro giy.
Lu : 106 micro giy = 1 giy

Tr v

mt s nguyn kiu unsigned long l thi gian k t lc thng trnh Arduino


c khi ng.

V d v hm thi gian micros()

unsigned long time;

void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("Time: ");
time = micros();
// in ra thi gian k t lc chng trnh c bt u
Serial.println(time);
// i 1 giy trc khi tip tc in
delay(1000);
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Hm thi gian milis():

Gii thiu v hm thi gian millis()


millis() c nhim v tr v mt s - l thi gian (tnh theo mili giy) k t lc mch
Arduino bt u chng trnh ca bn. N s trn s v quay s 0 (sau tip tc
tng) sau 50 ngy.

Tr v
Mt s nguyn kiu unsigned long l thi gian k t lc thng trnh Arduino c
khi ng

V d v hm thi gian millis()


unsigned long time;
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("Time: ");
time = millis();
// in ra thi gian k t lc chng trnh c bt u
Serial.println(time);
// i 1 giy trc khi tip tc in
delay(1000);
}

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Lu quan trng v hm thi gian millis()
Cc hm v thi gian trong Arduino gm millis() v micros() s b trn s sau 1 thi
gian s dng. Vi hm millis() l khong 50 ngy. Tuy nhin, do l kiu s nguyn
khng m (unsigned long) nn ta d dng khc phc iu ny bng cch s dng hnh
thc p kiu.
unsigned long time;
byte ledPin = 10;
void setup()
{
// khi to gi tr bin time l gi tr hin ti
// ca hm millis();
time = millis();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop()
{
// Lu cc du ngoc khi p kiu
// on chng trnh ny c ngha l sau mi 1000 mili giy
// n Led chn s 10 s thay i trng thi
if ( (unsigned long) (millis() - time) > 1000)
{
// Thay i trng thi n led
if (digitalRead(ledPin) == LOW)
{
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
}
// cp nht li bin time
time = millis();
}
}

Thng thng, nu ta c 2 s A, B v B ln hn A ( B > A) th php tr thu c A-B


l mt s m. Nhng khi p kiu unsigned long l kiu s nguyn dng, khng c
s m nn gi tr tr v l 1 s nguyn dng ln.
V d: kt qu ca php tr:
unsigned long ex = (unsigned long) (0 - 1);

l 4294967295, con s ny chnh l gi tr ln nht ca kiu s unsigned long.

Xung PWM chng trnh arduino:

Kin thc cn nm v xung:

Xung l cc trng thi cao / thp v mc in p c lp i lp li. i lng


c trng cho 1 xung PWM (Pulse Width Modulation) bao gm tn s (frequency)
v chu k xung (duty cycle).
Vy tn s tn s l g???
Tn s l s ln lp li trong 1 n v thi gian. n v tn s l Hz, tc l s
ln lp li dao ng trong 1 giy.
Ly v d, 1Hz = 1 dao ng trong 1 giy. 1KHz = 1000 dao ng trong 1 giy.
16MHz = 16 triu dao ng trong 1 giy.
Cch xc nh 1 dao ng nh th no? a phn cc bn mi nghin cu in
t thng mc sai lm vic xc nh 1 dao ng. Dao ng c xc nh t
trng thi bt u v kt thc ngay trc khi trng thi bt u c lp li.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Khong cch gia hai vch l 1 dao ng

Nh vy thng thng, 1 dao ng s bao gm 2 trng thi in: mc cao (x


giy) v mc thp (y giy). T l phn trm thi gian gia 2 trng thi in ny
chnh l chu k xung.
Vi x/y = 0% ta c xung cha ton b in p thp.
Vi x/y = 50% th 50% thi gian u, xung c in p cao, 50% sau xung c in
p thp.
Vi x/y=100% ta c xung cha ton b in p cao.
Tm li, vi 1 xung ta c:
+ Tn s: tnh ton ra c thi gian ca 1 xung
+ Chu k xung: bao nhiu thi gian xung c mc p cao, bao nhiu thi gian
xung c mc p thp.

V trong arduino khi nim xung PWM ta hiu nh th no??

Hm analogWrite() trong Arduino gip vic to 1 xung d dng hn. Hm ny


truyn vo tham s cho php thay i chu k xung. Tn s xung c Arduino thit
lp mc nh.
i vi board Arduino Uno, xung trn cc chn 3,9,10,11 c tn s l 490Hz, xung
trn chn 5,6 c tn s 980Hz.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Xung c s dng vi hm analogWrite trong Arduino

Hm nhp xut analogWrite():

Nhim v ca hm analogWrite():

analogWrite() l lnh xut ra t mt chn trn mch Arduino mt mc tn hiu


analog (pht xung PWM). Ngi ta thng iu khin mc sng ti ca n LED
hay hng quay ca ng c servo bng cch pht xung PWM nh th ny.
Bn khng cn gi hm pinMode() t ch OUTPUT cho chn s dng
pht xung PWM trn mch Arduino.

C php hm analogWrite():

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
analogWrite([chn pht xung PWM], [gi tr xung PWM]);

Gi tr mc xung PWM nm trong khong t 0 n 255, tng ng vi mc duty


cycle t 0% n 100%
V d hm analogWrite():

int led = 10;

void setup() {
}

void loop() {
for (int i = 0; i <= 255; i++)
{
analogWrite(led,i);
delay(20);
}
}

on code trn c chc nng lm sng dn mt n LED c kt ni vo chn s


10 trn mch Arduino.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Hm nhp xut analogRead():

Nhim v ca hm analogRead():

L c gi tr in p t mt chn Analog . Trn mch Arduino UNO c 6 chn


Analog In, c k hiu t A0 n A5. Trn cc mch khc cng c nhng chn
tng t nh vy vi tn ch "A" ng u, sau l s hiu ca chn.
analogRead() lun tr v 1 s nguyn nm trong khong t 0 n 1023 tng ng
vi thang in p (mc nh) t 0 n 5V. Bn c th iu chnh thang in p ny
bng hm analogReference().
Hm analogRead() cn 100 micro giy thc hin.
C php hm analogRead():

analogRead(chn c in p);

V d hm analogRead():

int voltage = analogRead(A0);

Trong A0 l chn dng c gi tr in p.


Nu bn cha kt ni chn c in p, hm analogRead() s tr v mt gi tr
ngu nhin trong khong t 0 n 1023. khc phc iu ny, bn phi mc
thm mt in tr c tr s ln (khong 10k ohm tr ln) hoc mt t in 104 t
chn c in p xung GND.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
S u ni dy ca arduino o in p s dng hm analogRead(chn c
in p):

s u ni dy ca arduino o in p s dng hm analogRead

s u ni trc tip s dng in tr 10k v mch arduino

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Hm nhp xut analogReference():


Hm analogReference() c nhim v:

t li mc (in p) ti a khi c tn hiu analogRead. ng dng nh sau, gi s


bn c mt tn hiu dng analog c hiu in th t 0-1,1V. Nhng m nu dng
mc in p ti a mc nh ca h thng (5V) th khong gi tr s ngn hn dn
n chnh xc km hn v v vy hm ny ra i gii quyt vic .
C php hm analogReference():

analogReference(type)

type: mt trong cc kiu gi tr sau: DEFAULT, INTERNAL, INTERNAL1V1,


INTERNAL2V56, hoc EXTERNAL
Trong :
+ DEFAULT : t mc in p ti a l 5V (nu trn mch dng ngun 5V lm
nui chnh) hoc l 3,3V (nu trn mch dng ngun 3,3V lm ngun nui chnh).
+ INTERNAL : t li mc in p ti a l 1,1 V (nu s dng vi iu khin
ATmega328 hoc ATmega168)
t li mc in p ti a l 2,56V (nu s dng vi iu khin ATmega8).
+ INTERNAL1V1 : t li mc in p ti a l 1,1 V ( Ch c trn Arduino
Mega).
+ INTERNAL2V56 : t li mc in p ti a l 2,56 V (Ch c trn Arduino
Mega).
+ EXTERNAL : t li mc in p ti a BNG vi mc in p c cp vo
chn AREF ( Ch c cp vo chn AREF mt in p nm trong khong 0-5V ).
Ch :
Trng hp, bn s dng kiu EXTERNAL cho hm analogReference th
bn phi cp n mt ngun nm trong khong t 0-5V, v nu bn cp mt

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
ngun in tha mn iu kin trn vo chn AREF th bn phi gi dng
lnh analogReference(EXTERNAL) trc khi s dng analogRead() ( nu
khng s lm h mch ca bn).

Lnh digitalRead ():

C php lnh digitalRead():

digitalRead(pin)

Thng s lnh digitalRead():

pin (chn) : gi tr ca digital mun c

Tr v gi tr

HIGH hoc LOW


V d v lnh digitalRead():

V d ny s lm cho n led ti pin 13 nhn gi tr nh gi tr ti pin 2


int ledPin = 13; // chn led 13
int inPin = 2; // button ti chn 2
int val = 0; // bin "val" dng lu tn hiu t digitalRead
void setup()
{
pinMode(ledPin, OUTPUT); // t pin digital 13 l output
pinMode(inPin, INPUT); // t pin digital 2 l input
}
void loop()

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
{
val = digitalRead(inPin); // c tn hiu t digital2

digitalWrite(ledPin, val); // thay i gi tr ca n LED l gi tr ca digital 2


}

Lnh digitalWrite():

Xut tn hiu ra cc chn digital, c 2 gi tr l HIGH hoc l LOW


Nu mt pin c thit t l OUTPUT bi pinMode(). V bn dng digitalWrite
xut tn hiu th in th ti chn ny s l 5V (hoc l 3,3 V trn mch 3,3 V)
nu c xut tn hiu l HIGH, v 0V nu c xut tn hiu l LOW.
Nu mt pin c thit t l INPUT bi pinMode(). Lc ny digitalWrite s bt
(HIGH) hoc tt (LOW) h thng in tr pullup ni b. Chng ti khuyn bn
nn dng INPUT_PULLUP nu mun bt h thng in tr pullup ni b.

Lnh digitalWrite() c c php:

digitalWrite(pin,value)

Thng s ca lnh digitalWrite():

pin: S ca chn digital m bn mun thit t


value: HIGH hoc LOW

V d v lnh digitalWrite()

int ledPin = 13; // n LED c kt ni vi chn digital 13


void setup()
{

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
pinMode(ledPin, OUTPUT); // thit t chn ledPin l OUTPUT
}
void loop()
{
digitalWrite(ledPin, HIGH); // bt n led
delay(1000); // dng trong 1 giy
digitalWrite(ledPin, LOW); // tt n led
delay(1000); // dng trong 1 giy
}

Lnh pinMode():

Cu hnh mt pin (chn) quy nh hot ng nh l mt u vo (INPUT) hoc


u ra (OUTPUT).
Nh trong phin bn Arduino IDE n c th kch hot cc in tr pullup ni b
vi ch INPUT_PULLUP. Ngoi ra, ch INPUT v hiu ha mt cch r
rng in tr pullups ni b.

Cu lnh c c php: pinMode ( pin, mode)

Thng s lnh: pinMode()

pin : S ca chn digital m bn mun thit t


mode : c th l INPUT, OUTPUT hoc INPUT_PULLUP.
V d v cu lnh pinMode():

int ledPin = 13; //iu khin n LED chn s 13 ca arduino


void setup()
{

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
pinMode(ledPin, OUTPUT); // thit t chn ledPin l OUTPUT
}
void loop()
{
digitalWrite(ledPin, HIGH); // bt n led
delay(5000); // dng trong 5 giy
digitalWrite(ledPin, LOW); // tt n led
delay(5000); // dng trong 5 giy
}

7. MT S V D LP TRNH ARDUINO C BN:

7.1. iu khin nhy nhy led n theo yu cu:

Vi nhng ai mun hc v arduino th mnh khuyn nn bt u hc t iu


khin led n, rt n gin v d hiu l nn tng gip ta s nm bt c
nhng chng trnh kh hn phc tp hn.

Nu bn c n trang ny tht s bn hc arduino i ng hng, mnh


tin chc bn s thnh cng.

Chng ta hy cng bt tay vo thc hnh.

Chun b linh kin:

1 arduino uno R3/ mega (mi hc bn nn bt u t Uno R3).


1 led n.
1 boartest.
Dy cm test.

Cc bn c th ti code ti y hn ch li:

http://tdhshop.com.vn/lap-trinh-dieu-khien-arduino-cho-nguoi-moi-bat-dau

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Lp trnh cho arduino:


/*

Blink - Nhp nhy

*/

// chn digital 13 cn c kt ni vi n LED

// v chn digital 13 ny s c t tn l 'led'. Bin 'led' ny c kiu d liu l int v c gi tr


l 13

int led = 13;


// Hm setup chy mt ln duy nht khi khi ng chng trnh

void setup() {
// t 'led' l OUTPUT

pinMode(led, OUTPUT);

}
// Hm loop chy mi mi sau khi kt thc hm setup()

void loop() {

digitalWrite(led, HIGH); // bt n led sng

delay(2000); // dng chng trnh trong 2 giy => thy n sng c 2 giy

digitalWrite(led, LOW); // tt n led

delay(5000); // dng chng trnh trong 5 giy => thy n ti c 5 giy

Trc tin, c mi khi dng mt con LED, chng ta


phi pinMode OUTPUT chn Digital m ta s dng cho con n LED. Trong v

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
d, chng ta s dng chn LED l chn digital 13. Nn on code sau cn nm
trong void setup()

pinMode(13, OUTPUT);

bt mt con n LED, bn phi digitalWrite HIGH cho chn s 13 (chn


Digtal c kt ni vi con LED). on code ny nm trong void loop()

digitalWrite(13,HIGH);

Dng lnh trn s cp mt in th l 5V vo chn s Digital 13. in th s i qua


in tr 220ohm ri n n LED (s lm n sng m khng b chy, ngoi ra bn
c th cc loi in tr khc <= 10kOhm). tt mt n LED, bn s dng hm:

digitalWrite(13,LOW);

Lc ny in th ti chn 13 s l 0 V => n LED tt. V thy c trng thi


bt v tt ca n LED bn phi dng chng trnh trong mt khong thi gian
lu mt cm nhn c. V vy, hm delay c to ra lm vic ny (Dng
hn chng trnh bao nhiu mili giy( 1000 mili giy = 1 giy).

Upload chng trnh cho arduino:

Trc khi upload chng trnh cho arduino cc bn cn lu chn ng board


cha? Cng COM ng cha? V chn programmer ng cha??? l 3 im
cn lu . Cc bn c th xem hng dn np chng trnh arduino ti:
http://tdhshop.com.vn/huong-dan-nap-chuong-trinh-cho-arduino-uno-r3-
chuong-trinh-arduino

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

S ni dy:

Trng hp cc bn c kit t hc arduino ny th qu tin gip hc nhanh hn v


d hiu hn, nhng khng sao mnh s hng dn chi tit.

Trng hp cc bn khng c kit t hc th cc bn ni dy theo hnh di:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Ni dy thng qua breadboard mini:

Sau khi np code xong cc bn se thy led sng 2 giy v tt 5 giy , vn sng
tt ca led cc bn c th thay i thi gian c.

Chc cc bn thnh cng!!!

7.2. iu khin 8 n theo yu cu:


By gi chng ta s iu khin 8 led n vi hiu ng chay led ca rt n gin.

Chun b linh kin:

1 arduino uno R3/ mega (mi hc bn nn bt u t Uno R3).


8 led n.
8 in tr 500 Ohm
1 boartest.
Dy cm test.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
Cc bn c th ti code ti y hn ch li:

http://tdhshop.com.vn/lap-trinh-dieu-khien-arduino-cho-nguoi-moi-bat-dau

Lp trnh cho arduino:


int del=100; // 100 milliseconds

void setup()

pinMode(2, OUTPUT);

pinMode(3, OUTPUT);

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

void loop()

digitalWrite(2, HIGH); // turn on LED on pin 2

delay(del); // dng chng trnh 100 mili giy

digitalWrite(2, LOW); // turn it off

digitalWrite(3, HIGH); // turn on LED on pin 3

delay(del); // dng chng trnh 100 mili giy

digitalWrite(3, LOW); // turn it off

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
digitalWrite(4, HIGH); // turn on LED on pin 4

delay(del); // dng chng trnh 100 mili giy

digitalWrite(4, LOW); // turn it off

digitalWrite(5, HIGH); // turn on LED on pin 5

delay(del); // dng chng trnh 100 mili giy

digitalWrite(5, LOW); // turn it off

digitalWrite(6, HIGH); // turn on LED on pin 6

delay(del); // dng chng trnh 100 mili giy

digitalWrite(6, LOW); // turn it off

digitalWrite(7, HIGH); // turn on LED on pin 7

delay(del); // dng chng trnh 100 mili giy

digitalWrite(7, LOW); // turn it off

digitalWrite(8, HIGH); // turn on LED on pin 8

delay(del); // dng chng trnh 100 mili giy

digitalWrite(8, LOW); // turn it off

digitalWrite(9, HIGH); // turn on LED on pin 9

delay(del); // dng chng trnh 100 mili giy

digitalWrite(9, LOW); // turn it off

digitalWrite(8, HIGH); // turn on LED on pin 8

delay(del); // dng chng trnh 100 mili giy

digitalWrite(8, LOW); // turn it off

digitalWrite(7, HIGH); // turn on LED on pin 7

delay(del); // wait

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
digitalWrite(7, LOW); // turn it off

digitalWrite(6, HIGH); // turn on LED on pin 6

delay(del); // wait

digitalWrite(6, LOW); // turn it off

digitalWrite(5, HIGH); // turn on LED on pin 5

delay(del); // dng chng trnh 100 mili giy

digitalWrite(5, LOW); // turn it off

digitalWrite(4, HIGH); // turn on LED on pin 4

delay(del); // dng chng trnh 100 mili giy

digitalWrite(4, LOW); // turn it off

digitalWrite(3, HIGH); // turn on LED on pin 3

delay(del); // dng chng trnh 100 mili giy

digitalWrite(3, LOW); // turn it off

Cc bn cm thy chng trnh qu di nhng khng sao mnh mi hc th s


dng lnh c bn nht, phn di mnh s a chng trnh ngn gn hn
nht nhiu.

S kt ni:

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

Sau khi kt ni xong cc bn Upload code cho arduino nh v hiu ng sng tt


lien tc t led s 1 n led s 8. V thi gian sng tt ca led chng ta c th thay
i c.

V y l code gn hn v tn b nh ca chip iu khin:

byte ledPin[] = {2,3,4,5,6,7,8,9}; // Mng lu v tr cc chn Digital m cc n


LED s dng theo th t t 1->8. Bn c th thm cc LED bng cch thm cc
chn digital vo mng ny

byte pinCount; // Khai bo bin pinCount dng cho vic lu tng s chn LED

void setup() {

pinCount = sizeof(ledPin);

for (int i=0;i<pinCount;i++) {

pinMode(ledPin[i],OUTPUT); //Cc chn LED l OUTPUT

digitalWrite(ledPin[i],LOW); //Mc nh cc n LED s tt

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO
}

void loop() {

/*

Bt tun t cc n LED

*/

for (int i=0; i < pinCount; i++) {

digitalWrite(ledPin[i],HIGH); //Bt n

delay(500); // Dng cc n LED sng dn

/*

Tt tun t cc n LED

*/

for (int i = 0;i < pinCount; i += 1) {

digitalWrite(ledPin[i],LOW); // Tt n

delay(500); // Dng cc n LED tt dn

Qu gn phi khng cc bn chc nng ging nh chng trnh trn. Bn


c th upload chng trnh v xem kt qu ha.

Chc cc bn thnh cng!!!

Vic hc arduino qu th v phi khng cc bn mnh s upload ti liu hc


lp trnh cho ngi mi bt u V2 ln sau ha.

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao


S TAY ARDUINO

iu khin led chn s 13 trn board arduino uno r3

Web: tdhshop.com.vn Chuyn Kit T Hc Arduino t c bn n nng cao

You might also like