TRƯỜNG CAO ĐẲNG NGHỀ ĐỒNG THÁP
KHOA ĐIỆN – ĐIỆN TỬ
GIÁO TRÌNH
MƠN HỌC: LẬP TRÌNH VI ĐIỀU KHIỂN NÂNG CAO
NGÀNH, NGHỀ: CN T ĐI N, ĐI N T
TRÌNH ĐỘ: CAO ĐẲNG/TRUNG CẤP
(Ban hành kèm theo Quyết định Số: /QĐ-CĐNĐT ngày… tháng…năm 2018
của Hiệu trưởng Trường Cao đẳng nghề Đồng Tháp)
LỜI NÓI ĐẦU
ờ n
ut nt
xn
lờ
o n
n
sn sn v n
n n t u
o Đ n–Đ nt C
n n
n
n Ar u no
?V y
Ar u no l
? Ar u no t t r l m t o m
v x lý ợ ùn ể l p tr n
t ơn t vớ
t t ị p n ứn n
m
n, n ơ, èn oặ
t t
ịk
Đặ
ểm nổ
t ủ Ar u no l mô tr ờn p t tr ển ứn ụn ự
kỳ ễ s
ụn , vớ m t n ôn n ữ l p tr n
t ể
m t
n n
n
n y
vớ n ờ ít m ểu về
n t v l p tr n V
ều l m n n
n
t ợn Ar u no ín l mứ
rất t ấp v tín
ất n uồn mở từ p n ứn tớ
p n mềm
Sự r ờ ủ m
Ar u no t ú ẩy sự y u t í , t m tị n
n ứu, ứn
ụn tự n
a , ro ot
v o ờ sốn v ôn n
p Vớ n ữn u ểm
r n ủ m n , Ar u no ã n n
n nổ t n to n t
ớ v
ợ
ớ
s n , s n v n, ớ n
n ứu, n ữn n ờ y u t í kỹ t u t, n ữn
n ờ t í l m ồ tự
s ụn r n rã T V t N m, số l ợn n ờ s
ụn m
Ar u no n y n tăn Để úp
n t m ểu Ar u no, t l u
n y ã ợ
n so n T l u ồm 3 p n, ợ
n so n từ ơn n n
p ứ t p T l u ợ v tm t
n ắn n, ễ ểu, v o n ữn vấn ề
ốt lõ tron v s ụn Ar u no o u sốn
ặ ù ã ố ắn tron qu tr n
n so n t l u, n n
ắ
ắn tài
l u k ôn t ể tr n k ỏ s s t tron qu tr n
n so n Rất mon n n ợ
sự p ý ân t n ủ
n ểt
t ể o n t n ơn nữ t l u
này.
2
Mục lục
LỜI NÓI ĐẦU ..................................................................................................... 1
T NG QUAN .................................................................................................. 1
11
n m ........................................................................................................ 1
1 2 Cấu trú v
1 3 Cấu trú
ứ năn
k ố ...................................................................... 1
ủ m t k t r u no ........................................................................... 4
1.4 Arduino IDE .................................................................................................... 8
15C
ặt IDE.................................................................................................... 10
16C
ặt driver arduino uno r3 ........................................................................ 11
NGƠN NGỮ LẬP TRÌNH ........................................................................... 14
2 1 Cấu trú n ôn n ữ l p tr n .......................................................................... 14
22V or
ữ l u ................................................................................................ 20
2 2 1 xuất ữ l u r m t p n ............................................................................... 20
23C
n ắt......................................................................................................... 23
2.4 ADC .............................................................................................................. 28
2 5 G o t p I2C, UART, SPI ............................................................................ 30
3 LẬP TRÌNH GIAO TI P AR UINO VỚI C C LINH KIỆN, C M
I N, OAR .................................................................................................. 46
T N ÀI: G o
p d
l no
T N ÀI: G o
p An lo o p
on
PWM
d no ......................................... 47
on
d no.......................... 56
I
T N ÀI: G o
p n lo
T N ÀI: G o
p Uart, I2C. ........................................................................ 68
T N ÀI: N
on A d no I. MỤC TIÊU CỦA BÀI:........................... 73
T N ÀI: Th
np
n A d no Uno .................................... 62
k hệ hốn đ ề kh ển vớ
d no .................................... 76
II
1. T NG QUAN
1.1 Khái niệm
V đ ề kh ển l m t máy tính
ể
ều k ển
thi t bị
V
nt
u suất ủ ùn v
x lý
m y tín ) k t ợp vớ
ợ tí
ều k ển, t ự
t n t ấp (k
k ố n o
v n
số s n t ơn tự v t ơn tự s n số,
ựn
ở
V
íp v m
ều k ển t
n ều tron
p
dụng cụ
ơn t n, dây chuyền tự
ợp tr n m t chíp, n t
ất, l m t
vớ
b nhớ,
ờn
t ốn
v x lý
các mô
ụn
o ồm m t vi
năn
ùn tron
,
mô un
n ổ
mơ un t
ờn
ợ xây
N xuất
nk
un v o/r
Ở m y tín t
ợ s
n o
ờn
ợ
nt
ng,
,t
ùn
t ị
ể xây ựn
h thống nhúng
n, máy giặt, lị vi sóng,
n tho i,
u
c DVD, thi t bị a
v.v.
1.2 Cấu trúc và chức năn các khối
1.2.1 Cấu trúc
H n 3 1: ấu trú
ủ v
ều k ển AVG
1
1.2.2 chức năng các khối
1.2.2.1 Bộ nhớ
B n ớ ủ v
B n ớ
B n ớ
ều k ển AVR
ứ n
ơn tr n
tr n v
ồm 2 p n:
ể
n ớ Fl s l p tr n v x
ơn tr n v t
B n ớ ữ l u (D t m mory): Đây l
ủ y u truy
C
p
ứ năn (R
(từ 0x00 -> 0x1F) v
t ứ tự R0-R31 C
ểt ự
n
C
t
,
n ớ
t n
v op nn y
n y ùn
p, k
l p
5 p n:
st r f l ): tất
8
ơn
nstru t on, ây
n ớ qu n tr n n ất ủ
ều l t n
p AVR ều
t C
ể truy
xuất n p (I/O R
ot pv
ều k ển,
ều k ển vớ
ủ
t
R
st r f l
p trự t p
st r): I/O R
t
t ịn o
DDRB,DDRC,DDRD ùn
R m tĩn (Int rn l SRA
t
p sẽ lo
mã l n
32 t n
ợ
ặt t n t o
nstru t on, ùn
p ép to n,
t n
n õ
o
n ớ n y D t m mory ồm
t n
u ủ
p T p s u nt rrupts v tors l
pt ự t ,
ợ
v tor n ắt( nt rrupts v tors) v
nt rrupts v tors nằm ở p n
tùy v o từn lo
mã l n
tr n
s u:
ơn tr n (Pro r m m mory) :
ơn tr n ( nstru t on) C
l
ợ tổ
ểk
st r ồm 60 t n
t ị n o v , tất
v
t n
ều nằm ở ây Ví ụ n
o tr n t
): l k ơn
n
I/O
ứ
o
,l
tr n
t n
Port B,C,D.
n tron qu tr n t ự
ơn tr n
R mn o
ểs
(Ext rn l SRA ):
ụn t m
n, v p n
p AVR
n ớn y
ỉ tồn t
t ể ắn t m
k
ps
n ớn o
ụn t m
nhớ n o
2
EEPRO
ủ v
(El tr
lly Er s l Pro r mm l RO ) : l
ều k ển AVR,
ùn
n ớ n y l RO
ể l u trữ ữ l u B n ớ EEPRO
n n k ôn
ợ t
ịx
n ớk
qu n tr n
mất
nn n
ợ
ị
ỉ ắt
k
r n vớ 4 p n tr n v
u 0x00.
1.2.2.2 ALU
ểu
Theo Hình 3.1
tron R
ũn
ễn ấu tron
st r F l
n tron
ủ 1 AVR B n t ấy rằn 32 t n
ợ k t nố trự t p vớ Ar t m t
ợ x m l CPU ủ AVR) ằn 2 l n , v t
ùn lú 2 t n
RF
ỉ tron 1
u kỳ xun
o
A U
lo k (vùn
Un t -ALU (ALU
t ể truy xuất trự t p
ợ k o n tròn m u ỏ
trong hình 4).
C
nstru t on
t n
ợ
16
t B n ớ
và 1 nstru t on
ứ tron
r
st r, nstru t on r
t ự t
ịn
ứ tron
ơn tr n
st r t
n
m
ơn tr n Fl s m mory
ợ truy
pro r m m mory sẽ
Tron lú t ự t
ở m t
n ớ
p tron mỗ
ợ lo
n v lự
nr
st r f l
ơn tr n , ị
ỉ ủ
òn l n
n
u kỳ xung clock
v o tron
ũn n
ơn tr n – PC (Pro r m ount r) Đ
ớ
nstru t on
RA
n t ự t
ín l
oA U
ợ quy t
t ứ
o t
ủ AVR
AVR
xun
u
lo k, v v y
k ển k
n
ểm l
u
t
nstru t on ều
t ể n uồn lo k lớn n ất
PIC n
n t ờ
nt ự t
o AVR
vẫn n n
ợ t ự t
tron 1
u kỳ
t ể n ỏ ơn 1 số v
ều
ơn
1.2.2.3 I/O
x m xét
n
ổn
I/O ủ AVR t
t p
xét tớ 3 t n
t
DDxn,PORTxn,PINxn.
C
DDRx ùn
t DDxn ể truy
ể
ều k ển
p
ớn
o ị
ỉ xuất n p DDRx B t DDxn tron t n
ữl u ủ
ân ủ
ổn n y
hi
trị lo
3
„0‟ v o ất k
t
tn o ủ t n
n yt
n sẽ trở t n lố v o, òn
„1‟ v o
t
n trở t n lố r
C
t PORTxn ể truy
trị 1 k
ân
ổn ) N ắt
r C
ấu t o n
ỉ xuất n p PORTx
ổn r t
ổn l 3 tr n t
o t
C
n trở kéo l
ợ
k
PORTx
ủ
trị 0 oặ
1
n (
ân
ều k n r s t l tí
ợ
ợ nố vớ
n n
ự t m
ổn
í xun
ồn
ổn
ỉ ể
n
t PINxn ể truy
,
ị
n trở kéo r , PORTx
ân ủ
ồ k ôn
pt
ổn n y
t ể
pt
ị
ỉ xuất n p PINx PINx l
tr n t
,v
PINx
o p ép t
k ôn p
l t n
,v
lo
ủ PORTx PINx k ôn p
trị lo
PINx
tr n
ân ủ PORTx
o p ép t
trị lo
l t n
ú ý PINx
tr n
ân ủ
PORTx.
1.2.2.4 Các khối khác
ADC: C o p ép
uyển ổ tín
SPI, I2C, Us rt: l
k ố
ợ xây
uy n ụn , … t ôn qu
PW :
u từ t ơn tự s n tín
ot ự
o p ép t o r
xun
n
o p ép
u số
o t p vớ m y tín , mo ul
uẩn Us rt, I2C, SPI
o t n số 50Hz n
n
rôn xun
t ểt y
ổ
1.3 Cấu trúc của một kit arduino
P nn yn
n y Do ây l t
n
nt
t
về p n ứn
l u
ov
uy n sâu ơn t
ớn
s
ụn
ẫn
ủ Ar u no Uno R3, m t o m
n n n nt
o r m
n y N un
t ểt mk ot w st
ín t ứ
ỉ
ờ
t ôn
ụn
r n ữn k n t ứ
n
ơ
n n ữn k n t ứ
ủ Ar u no: r u no
4
H n 3 2 Cấu t o ủ
r u no uno r3
1. Cáp USB Đây l
ây
v o m y tín
ủ m y tín
ển p
ể
ơn tr n
o o o t
từ o Ar u no l n m y tín
tr n o Ar u no,
u1
pt
ùn
n
Dây
ể
n
quy
n y l n uồn DC
n
o ov
N o
p
p USB òn
2
u,
pt r
u
u1
ợ l p tr n n
p ùn
ể ắm
ợ
ợ
ùn
ùn
ể ắm v o ổn USB
m t
ể truyền ữ l u
uyển ổ USB –to-Serial
o t ứ S r l ( ùn
ồn n oà Cổn n uồn n o
y
n kèm t o o, ây
ây ồn t ờ ũn lấy n uồn từ n uồn us
r
o t p vớ m y tín t ôn qu
3 Cổn n
p n,
ợ
ể ắm v o ổn USB tr n m y tín
2. IC Atmega 16U2 IC n y
ùn
ờn
n ằm s
ụn n uồn
n
n
n ấp v o ổn
o o Ar u no o t
nt
từ 6V
s n xuất k uy n ùn l từ 7
n 12V
n 20V, tuy n
4 Cổn US Cổn USB tr n o Ar u no ùn
ổn CO )
N uồn
n
ể k t nố vớ
u
nt
nn o
n
tốt n ất m
p USB
5
5. Nút reset Nút r s t
ơn tr n
y ặp lỗ , n
6 ICSP củ
Pro r mm n
t
ờn ít
6U
ân
S
n
y Đơ k
ơn tr n
ICSP l
ữ v t tắt
o t p SPI ủ
p Atm
C tất
ấu ~ l n ữn
ân
s n
ủ
ụn tron v
14
ân xuất tín
ủ
In-Circuit Serial
16U2 C
ân n y
n rất rõ n ữn
328 l l n
t u t p ữ l u từ
ồn ủ
m
3 8C
s
t ể
ều k ển tố
ân ể ăm xung này.
om
Ar u no Uno, IC n y
n, x lý ữ l u, xuất tín
ân ICSP ủ ATm
o t p SPI (S r l P r p r l Int rf
ân n y, ví ụ n
u r tron Ar u no Uno,
t ể ăm xun (PW ), tứ
èn H n 2 t ể
9 Chân ICSP củ ATme
ụn
ơn tr n
ự n về Ar u no
8. IC ATmega 328 IC Atm
o
ểr s tl
t ểr s tl
ín h ệ
ơ oặ
ợ s
ụn
ùn
ATme
ợ s tron
ân
n
ờ
Đây l
7 Chân x ấ
n ữn
ợ s
), m t số ứn
328
ụn
u r ,…
ợ s
ụn
ủ Ar u no
ụn mo ul RFID RC522 vớ Ar u no
s
y Et rn t
l vớ Ar u no
0 Chân lấy ín h ệ An lo C
từ
m
n ể IC Atm
ân n y lấy tín
328 x lý C tất
6
u An lo (tín
ân lấy tín
u t ơn tự)
u An lo , từ A0
n
A5.
Chân cấp n
ị
nn o
( ân nố
n
ất,
ân n y m n
ồn cho cảm b n C
rol ,
m
ân âm),
ờ s
IOREF Tuy n
n
ể ấp n uồn
n, RC s rvo,…tr n k u vự n y
ân 5V,
ụn k ôn
n, rol , r s rvo,…N o
ân n y ùn
ân 3 3V n
nt
t ị
ợ t ể
n ổ
nở
nk
o
sẵn
t
t
ân GND
n 2 N ờ n ữn
ấp n uồn
o
m
r tr n k u vự n y ịn có chân Vin và chân reset, chân
ân n y t
ờn ít
ợ s
ụn n n tron t l u n y x n k ôn
sâu về n
6
Các l nh k ện khác
n bo d A d no Uno N o
n tr n, Ar u no Uno òn 1 số l n k n
n
úýk
o ồm 1 l
t o
ã
l
C
n
ợ l
t ôn qu
l l
on o r (tứ l
ơn
l
n uồn (l
ON n ằm
o
Tx v Rx sẽ n ấp n y k
n m k ôn
ổn USB
tr n o), l
n ùn t m l
ợ
ln k n ãl tk
Tr n o
tất
ấp n uồn), 2 l
4 èn l ,
Tx v Rx, 1
ữ l u truyền từ o r l n m y tín
ợ
ợ k t nố vớ
n y
úp n
ờ
ân số 13
ùn
t ểt ự
n y
oặ
ợ
n
n o
Hình 3.3: các chân trên arduino uno r3
7
H n 3 4 C ứ năn
ân tr n r u no uno r3
1.4 Arduino IDE
T
r u no IDE
B ớ 1: v o tr n w
r u no
( n 3 5)
H n 3 5: Tr n
u ủ
r u no
8
B ớ 2: C n mụ
ownlo
ểl
n
ơn tr n IDE t í
ợp ( n 3 6)
H n 3 6: m n
n l
n
ơn tr n IDE t í
ợp
B ớ 3: C n
ều
C 2 tùy
z p f l for non
m y, tùy
n tùy
n
n t í
o
ợp
ều
n W n ows l W n ows nst ll r v W n ows
m n nst ll Tùy
nt ứ2
on
n t ứ n ất ùn
ờ k ôn p
on
ờ l
m n ủ m y T ôn t
mn ủ
ờn
số
n t ứ n ất, tứ W n ows nst ll r
B ớ 4: T IDE
Ar u no
ownlo
r 2 lự
về ùn quy n
n,
p ( ontr ut
n 6 Ar u no mon muốn n
ãn , mứ quy n
o ồm
ờ
n
ỉ ownlo
về (just ownlo ) v
ownlo ), n
ùn n u
ợ t ể
ều k n ãy quy n
nở
p ủn
p t ấp n ất l 3USD ( n 3 7)
H n 3 7: tùy
n ownlo
IDE
9
5 Cà đặt IDE
S uk
n
n
t
về t
ợn f l Ar u noForV su lStu o ms
yfl
v l mn
ớ (hình 3.8)
H n 3 8:
ớ
ặt IDE
10
6 Cà đặt driver arduino uno r3
T
ớn
ớn
ẫn n y
ẫn
ỉ
ặt tr n r v r
n
o
o r u no o r
n n o ùn t
mụ
ã
ợ
sẵn n n p n
ặt sẵn tron f l nén ZIP
Chọn Start Menu, click chuột phải "Computer", và chọn "Manage". (hình 3.9)
Hình 3.9: vào trình cài đặt driver
C n "D v
*Bo r N m *" p í
n
r" p í
ớ "Ot r
n tr , t m òn "Unknown
v
H n 3 10:
Cl k
u tp
v o "Unknown
v
" oặ "Ar u no
s" (Hình 3.10)
n rv r
v
n n ủ
r u no
" oặ "Ar u no *Bo r N m *" v
n
"Update Driver Software". (hình 3.11)
11
H n 3 11: C p n t r v r
S u
n "Brows my omput r for Dr v r softw r "
H n 3 12: x
Cuố
ùn
on Brows v t m
ịn
n t
ờn
mụ
ẫn
pn t rv r
ứ fl
r v r tron t
mu
r u no( ví ụ tr n m y ủ tơ l F:\Program Files\arduino-1.0.5\drivers) (hình 3.13)
12
H n 3 13:
N u w n ows
n t ôn
ờn
o n y ãy
ẫn
n rv r
n "Install this driver software anyway".
(hình 3.14)
H n 3 14:
t qu s u k
pn tt n
pn t rv r
ôn
H n 3 15:
pn tt n
ôn
13
2. NGƠN NGỮ LẬP TRÌNH
2.1 Cấu trúc ngơn ngữ lập trình
2.1.1 Cấu trúc chương trình
ơn tr n Ar u no
ợ t ot n
Đ u t n l fun t on s tup N sẽ
ợ s
ụn
ể
o
l k ở t o
n
Fun t on t ứ
n
s u
y, s u k
t ự
t n ữn
n tron
ơn tr n
l loop Đây l
n l to n
n ấn C ều
t ờ
o
n
ã
ốt lõ ủ m
fun t on s tup ã
nk
fun t on
y v o lú k ở t o -
o Ar u no
n
ở ít n ất
ỉ m t l n uy n ất và
ợ k t nố v ở âu, ũn n
ơn tr n Ar u no
y xon , fun t on loop sẽ
oặ l
y qu tất
ị mất n uồn oặ
n ể o n t n m t loop p ụ t u
Ar u no
ôn tắ r s t
v op n o
o ,
ợ
ợ
ứ tron n
D ớ
ây l m t sơ ồ m n
H n 3 16: ấu trú
ớ tron m t
ủ
ơn tr n v
ơn tr n :
ều k ển ùn
r u no
Ví ụ 3 1:
14
C ún t
ãy ùn x m o
ợ v tn
t
D ớ
ây l n
ơn tr n Bl nk v x m
function setup và loop
n o n é!
un fun t on s tup:
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
}
C
òn
ắt
ún k ơn
u vớ //
ợ t
ín l
S u
,t x m
nl
ịn
omm nt
l n Ar u no V v y tron t ự t ,
fun t on s tup n y Đ l
C ân 13
ỉ ơn
ân
òn l n "T
tl p
ân 13 t n
t í
ỉ
on
ờ
,v
m t òn
o
tron
u r (output)"
m t èn ED built-in.
n fun t on loop():
void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000); // wait for a second
}
2.1.2 Biên dịch và nạp chương trình
B n sẽ
n 3 t ứ s u:
Arduino IDE
Mạch Arduino UNO R3
15
Dây cáp USB 2 đầu Type A-B
Hãy tu n tự t ự
n t o từn
ớ t o
ớn
ẫn s u
Bước 1: Kết nối Arduino UNO R3 vào máy tính
Hình 3.17: kết nối arduino với pc
Bước 2: Tìm cổng kết nối của Arduino Uno R3 với máy tính
Ar u no Uno R3 k t nố vớ m y tín , n
(Communication port - ổn
qu l
t ôn qu
ổn CO
nhau,
np
B n mở
ữ l u o) ể m y tín v
ổn này. W n ows
n
ợ s
mở
ứ năn D v
sổ Run v
ụn
t ể qu n lí
ể m y tín v m
n
sẽ s
om
ụn
m t ổn
t ể truyền t
n 256 ổn CO
Ar u no UNO R3
Để t m
CO
ữl u
ợ
o t p vớ
r ủ W n ows
õ l n mmc devmgmt.msc.
Hình 3.18: khởi động msc
16
S u
ấm Ent r,
sổ Device Manager sẽ
n l n.
Hình 3.18: cửa sổ msc device manager
ở mụ Ports (COM & LPT),
n sẽ t ấy ổn CO
Ar u no Uno R3
n k t
nố
Hình 3.19: Xác định tên cổng com giao tiếp với arduino uno
Cổn k t nố ở ây l COM3.
17
T ôn t
ờn , tron n ữn l n k t nố t p t o, W n ows sẽ s
CO 3 ể k t nố n n
n k ôn
nt ự
nt mt ot
t m ổn CO
ụn l
ổn
n y nữ
Bước 3: Cấu hình phiên làm việc cho Arduino IDE
Vào menu Tools -> Board ->
n Arduino Uno
Hình 3.20: chọn loại kit arduino đang sử dụng
Vào menu Tools -> Serial Port ->
n ổn Ar u no
n k t nố vớ m y tín
Ở
m y ủ m n l COM3.
18
Hình 3.21: chọn cổng com đang kết nối arduino
X
n n ổn CO
ủ Ar u no IDE ở
ớ ùn
np
sổ l m v
Hình 3.22: xác nhận đã kết nối cổng com
n AVR ISP
Vào menu Tools -> Programmer ->
Hình 3.23: chọn kiểu nạp chương trình
B ớ 4: n p
ơn tr n
Bấm tổ ợp p ím Ctrl + U ể t
t ấy IDE x
n n ã l p tr n t n
ơn tr n l n m
ôn n
n
Ar u no Uno R3 B n sẽ
ớ
19
Hình 3.24: nạp code thành cơng
2.2 Vào ra dữ liệu
2.2.1 xuất dữ liệu ra một pin
Để xuất ữ l u r m t p n tr n r u no t
X
ịn
l mv
nt ự
n
ớ s u:
ủ p n l out t ôn qu l n
pinMode(pin, mode)
P n: l
mo :
G
ân muôn xuất ữ l u
trị l OUTPUT
ữ l u r p n t ôn qu l n
digitalWrite(pin,value)
P n: l
v lu :
ân muôn xuất ữ l u
trị l 0( OW) oặ 1(HIGHT)
Ví ụ 3 2:
void setup() {
20
// put your setup code here, to run once:
pinMode(8,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(8,HIGH);
delay(1000);
digitalWrite(8,LOW);
delay(1000);
}
2.2.2 Đọc dữ liệu từ một port
Để xuất ữ l u r m t p n tr n r u no t
X
ịn
l mv
nt ự
n
ớ s u:
ủ p n l out t ôn qu l n
pinMode(pin, mode)
G
P n: l
ân muôn xuất ữ l u
mo :
trị l INPUT
ữ l u r p n t ôn qu l n
X = digitalRead(pin)
P n: l
X: là m t
ân muôn xuất ữ l u
nn o
21