際際滷

際際滷Share a Scribd company logo
C S HA味 TNG MA味NG IoT
ThS.Tr畉n Th畛 Thu Th炭y
Khoa C担ng ngh畛 Th担ng tin
Tr動畛ng 畉i h畛c M畛 畛a ch畉t
XY D働味NG 働NG DU味NG IOT
CH働NG 3
T.T.T.THUY-MMT-CNTT 5
N畛i dung
 X但y d畛ng h畛 th畛ng IoT
 X但y d畛ng h畛 th畛ng IoT
 X叩c 畛nh bi to叩n v c叩c y畉u t畛 畉u vo, 畉u ra
 Th畛c hi畛n x但y d畛ng h畛 th畛ng IoT
 Arduino
 Gi畛i thi畛u Arduino
 L畉p tr狸nh cho arduino
 Gi畉 l畉p arduino tr棚n m叩y t鱈nh b畉ng ph畉n m畛m Proteus
 Gi畛i thi畛u c叩c ph畉n m畛m m担 ph畛ng h畛 th畛ng IoT kh叩c.
T.T.T.THUY-MMT-CNTT 6
XY D働味NG H味 THNG IOT
3.1
T.T.T.THUY-MMT-CNTT 7
IoT Architecture
 Three major components for
designing any IoT system
 Application devices: Hardware architecture,
smart sensors, cloud computing, energy
efficient devices
 Networks: Communication technology,
advanced internet protocol, wireless technology, RFID technology
 Security and privacy: Authentication procedure, secure device
discovery, secure inter-device communication
 Ref: NTNU IoT lab, Application development in IoT systems, http://www.item.ntnu.no/research/ninot/start
T.T.T.THUY-MMT-CNTT 8
X但y d畛ng h畛 th畛ng IoT
X但y d畛ng h畛 th畛ng IoT
X叩c 畛nh y棚u c畉u
X叩c 畛nh y畉u t畛 畉u vo 畉u ra
Ph動董ng 叩n th畛c hi畛n
T.T.T.THUY-MMT-CNTT 9
V鱈 d畛 1
 Nh畉p nh叩y led
Thi畉t k畉 h畛 th畛ng cho ph辿p nh叩y 竪n led theo chu k畛 5ms
T.T.T.THUY-MMT-CNTT 10
V鱈 d畛 2
 働ng d畛ng ki畛m tra n畛ng 畛 kh鱈 CO
M担i tr動畛ng ngy cng 担 nhi畛m. L動畛ng kh鱈 CO s畉n
sinh ra t畛 c叩c ph動董ng ti畛n giao th担ng, qu叩 tr狸nh 畛t
nhi棚n li畛u trong c叩c 畛ng c董, kh鱈 畛t chi畉m m畉t 畛
cao trong kh担ng kh鱈 s畉 g但y nguy hi畛m t畛i s畛c kh畛e
con ng動畛i.
T.T.T.THUY-MMT-CNTT 11
 Thi畉t k畉 畛ng d畛ng ki畛m tra v c畉nh b叩o n畛ng 畛 kh鱈 CO trong kh担ng kh鱈
Ph但n t鱈ch y棚u c畉u
 M畛c cho ph辿p: 0  70 ppm
 G但y tri畛u ch畛ng nh畉: 70  200 ppm
 Nguy hi畛m t畛i t鱈nh m畉ng: >400 ppm
T.T.T.THUY-MMT-CNTT 12
Y棚u c畉u h畛 th畛ng
 M畛c >400: 動a ra c畉nh b叩o
Y棚u c畉u 畛ng d畛ng
 o 動畛c n畛ng 畛 kh鱈 CO trong kh担ng kh鱈.
 L畉p tr狸nh 動a ra c叩c c畉nh b叩o:
 C畉nh b叩o b畉ng chu担ng b叩o.
 C畉nh b叩o b畉ng l畛i tho畉i ch畛 d畉n.
 C畉nh b叩o b畉ng tin nh畉n 畉n thi畉t b畛 動畛c ch畛 畛nh.
T.T.T.THUY-MMT-CNTT 13
ARDUINO
2.2
T.T.T.THUY-MMT-CNTT 14
C叩c ngu畛n ti li畛u
 Resource:
 Arduino ch鱈nh th畛c(IDE & AVR/ARM/x86 Board)
www.arduino.cc
 Arduino cho ESP8266 github.com/esp8266/Arduino
 Arduino cho ESP32 github.com/espressif/arduino-
esp32
 Arduino cho PIC32 chipkit.net/
 Arduino cho STM32 www.stm32duino.com/
C叩c d畛 叩n Arduino www.hackster.io/arduino
T.T.T.THUY-MMT-CNTT 15
Gi畛i thi畛u arduino
 www.arduino.cc:
 Arduino l n畛n t畉ng i畛n t畛 m達 ngu畛n m畛, d畛a tr棚n ph畉n c畛ng v ph畉n
m畛m, linh ho畉t v d畛 s畛 d畛ng.
 C叩c board Arduino c坦 kh畉 nng 畛c d畛 li畛u t畛 m担i tr動畛ng (叩nh s叩ng,
nhi畛t 畛, 畛 畉m,), tr畉ng th叩i n炭t nh畉n, tin nh畉n t畛 Twitter, v i畛u
khi畛n tr畛 l畉i v畛i c叩c thi畉t b畛 nh動 畛ng c董, 竪n LED, g畛i th担ng tin 畉n 1
n董i kh叩c,
 Ng担n ng動 l畉p tr狸nh
 ng担n ng畛 l畉p tr狸nh C++, 動畛c i畛u khi畛n bi棚n d畛ch b畛i Arduino IDE v
c叩c tr狸nh bi棚n d畛ch i k竪m ra m達 m叩y nh畛 ph但n.
T.T.T.THUY-MMT-CNTT 16
What is the Arduino
T.T.T.THUY-MMT-CNTT 17
todbot.com/blog/bionicarduino
働u i畛m Arduino
 Thi畉t k畉 IDE t畛t, c坦 th畛 d畛 dng t鱈ch h畛p nhi畛u lo畉i
compiler, nhi畛u lo畉i hardware m kh担ng h畛 gi畉m hi畛u
nng.
 C叩c th動 vi畛n 動畛c vi畉t d畛a tr棚n l畛p API tr棚n c湛ng, n棚n
a s畛 c叩c th動 vi畛n cho Arduino c坦 th畛 d湛ng 動畛c cho
t畉t c畉 c叩c chip. i畛n h狸nh l Arduino cho ESP8266 c坦
th畛 t畉n d畛ng tr棚n 90% c叩c th動 vi畛n cho Arduino kh叩c
 Tr狸nh bi棚n d畛ch cho Arudino l C/C++
 C叩c project cho Arduino 畛u opensource
 Arduino ch炭 tr畛ng t鱈nh a n畛n t畉ng, module h坦a cao,
ph湛 h畛p v畛i c叩c 畛ng d畛ng t畛 ph畛c t畉p t畛i c畛c k畛 ph畛c
t畉p.
T.T.T.THUY-MMT-CNTT 18
C叩c lo畉i boad arduino
 Arduino uno
 Arduino nano
 Arduino Mega
 .
T.T.T.THUY-MMT-CNTT 19
CU TA味O BOARD ARDUINO UNO
2.2. Arduino
T.T.T.THUY-MMT-CNTT 20
What is a Microcontroller
T.T.T.THUY-MMT-CNTT 21
 A small computer on a single chip
 containing a processor, memory, and input/output
 Typically "embedded" inside some device that they control
 A microcontroller is often small and low cost
 Examples
www.mikroe.com/chapters/view/1
What is a Development Board
 A printed circuit board
designed to facilitate
work with a particular
microcontroller.
T.T.T.THUY-MMT-CNTT 22
 Typical components include:
 power circuit
 programming interface
 basic input; usually buttons and LEDs
 I/O pins
C叩c thnh ph畉n tr棚n boad arduino
T.T.T.THUY-MMT-CNTT 23
Making-robots-with-arduino.pdf
C叩c thnh ph畉n tr棚n Arduino board
 1. USB
 giao ti畉p v畛i m叩y tinh
 Upload ch動董ng tr狸nh
cho Arduino ho畉t
畛ng
 C坦 th棚 c畉p ngu畛n
qua c担ng USB.
T.T.T.THUY-MMT-CNTT 24
C叩c thnh ph畉n tr棚n Arduino boad
 C叩c ch但n (2. 3)
 C畉p ngu畛n qua (2)
 C畉p ngu畛n qua Vin;
GND (3)
 Ch但n 5V v ch但n 3.3V
 Output voltage
 Kh担ng c畉p ngu畛n qua
ch但n ny
 GND:
 0 v
 mass
T.T.T.THUY-MMT-CNTT 25
C叩c thnh ph畉n tr棚n Arduino boad
 Vi i畛u khi畛n ATmega328 (6)
 Microcontroller
 tr叩i tim c畛a c叩c board m畉ch l畉p tr狸nh
 h達ng Atmel s畉n xu畉t
 i畛u khi畛n ton b担味 board m畉ch
T.T.T.THUY-MMT-CNTT 26
C叩c thnh ph畉n tr棚n Arduino boad
 Input v Output ( 4 v 5 ).
 Analog :
 A0 畉n A5
 Digital
 0->13
 C叩c ch但n truy畛n d動 li畛u n畛i ti畉p
 Serial : ch但n 0 (Rx ), ch但n 1 ( Tx)
 PWM (pulse width modulation)
 c叩c ch但n 3, 5, 6, 9, 10, 11 tr棚n bo
m畉ch c坦 d畉u ~s
T.T.T.THUY-MMT-CNTT 27
C叩c thnh ph畉n tr棚n Arduino boad
 SPI :
 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), c叩c
ch但n ny h畛 tr畛 giao ti畉p theo chu畉n SPI.
 I2C:
 Arduino h畛 tr畛 giao ti畉p theo chu畉n I2C.
 C叩c ch但n A4 (SDA) v A5 (SCL) cho ph辿p ch炭ng
tao giao ti畉p gi畛a Arduino v畛i c叩c linh ki畛n c坦
chu畉n giao ti畉p l I2C
 Reset (7):
 d湛ng 畛 reset Arduino.
T.T.T.THUY-MMT-CNTT 28
CAI 味T ARDUINO IDE
T.T.T.THUY-MMT-CNTT 29
Kh叩i ni畛m
 Hi畛u m畛t c叩ch 董n gi畉n, Arduino IDE l 1 ph畉n m畛m gi炭p
ch炭ng ta n畉p code 達 vi畉t vo board m畉ch v th畛c thi 畛ng
d畛ng.
 Arduino IDE : Arduino Integrated Development Environment,
 c叩c ph畉n ch鱈nh:
 Editor (tr狸nh so畉n th畉o vn b畉n, d湛ng 畛 vi畉t code),
 Debugger (c担ng c畛 gi炭p t狸m ki畉m v s畛a l畛i ph叩t sinh khi
build ch動董ng tr狸nh),
 Arduino IDE c嘆n h畛 tr畛 l畉p tr狸nh v畛i nhi畛u d嘆ng vi i畛u khi畛n
khh叩c
 ESP, ARM, PIC,
T.T.T.THUY-MMT-CNTT 30
Ci 畉t arduino
 B動畛c 0:
 Ci Java Runtime Environment (JRE)
 http://www.oracle.com/technetwork/java/javase/downloa
ds/jre8-downloads-2133155.html
 B動畛c 1: Download Arduino IDE.
 www.arduino.cc
 B動畛c 2: Ci 畉t Arduino IDE vo m叩y t鱈nh.
 H畛 i畛u hnh Windowns
 Ch炭ng ta c坦 th畛 download phi棚n b畉n Windowns
Installer (.exe) ho畉c Windowns Zip package.
T.T.T.THUY-MMT-CNTT 31
Ci 畉t arduino
T.T.T.THUY-MMT-CNTT 32
Ti畉p theo, ch畛n th動 m畛c ci 畉t (n棚n 畛
theo m畉c 畛nh) v ch畛 qu叩 tr狸nh ci 畉t
hon t畉t.
Arduino IDE
 M畛c 1:
 Menu bar
 g畛m c叩c t湛y ch畛n thi畉t l畉p cho
ph畉n m畛m Arduino v cho sketch
ang th畛c hi畛n
 M畛c 2:
 symbol bar
 c叩c n炭t nh畉n Verify 畛 bi棚n d畛ch
sketch,
 upload 畛 n畉p sketch vo board,
 New 畛 t畉o sketch m畛i,
 Open 畛 m畛 sketch,
 Save l動u sketch
 Serial Monitor 畛 m畛 serial port.

 M畛c 3:
 V湛ng 畛 so畉n th畉o code cho
sketch.
 M畛c 4:
 V湛ng hi畛n th畛 th担ng tin khi bi棚n d畛ch, hi畛n
th畛 qu叩 tr狸nh n畉p sketch v c叩c th担ng b叩o
l畛i khi bi棚n d畛ch sketch (n畉u c坦).
T.T.T.THUY-MMT-CNTT 33
Arduino IDE Menu
T.T.T.THUY-MMT-CNTT 34
- File menu:
Examples 但y l n董i ch畛a code m畉u v鱈
d畛 nh動: c叩ch s畛 d畛ng c叩c ch但n digital, analog,
sensor 
- Edit menu
- Sketch menu
- Verify/ Compile : ch畛c nng ki畛m tra l畛i
code.
- Show Sketch Folder : hi畛n th畛 n董i code
動畛c l動u.
- Add File : th棚m vo m畛t Tap code m畛i.
- Import Library : th棚m th動 vi畛n cho IDE
Arduino toolbar
T.T.T.THUY-MMT-CNTT 35
Tool menu
T.T.T.THUY-MMT-CNTT 36
L動u 箪:
- M畛c Board :
- c畉n ph畉i l畛a ch畛n bo m畉ch cho ph湛 h畛p v畛i
lo畉i bo m b畉n s畛 d畛ng n畉u l Arduino Uno
th狸 ph畉i ch畛n nh動 h狸nh b棚n
- Serial Port:
- l畛a ch畛n c担ng Com c畛a Arduino.
- Khi ch炭ng ta ci 畉t driver th狸 m叩y t鱈nh s畉
hi畛n th担ng b叩o t棚n c担ng Com c畛a Arduino l
bao nhi棚u, ta ch畛 vi畛c vo Serial Port ch畛n
炭ng c担ng Com 畛 n畉p code,
- n畉u ch畛n sai th狸 kh担ng th畛 n畉p code cho
Arduino 動畛c.
Ci 畉t th動 vi畛n Arduino
 Kh畛i 畛ng arduino IDE v ch畛n m畛c Sketch  include
library  Manage libraries:
T.T.T.THUY-MMT-CNTT 37
Xu畉t firmware binary trong Arduino IDE
 Sketch > Export compiled Binary
 file .bin s畉 n畉m trong th動 m畛c c畛a Sketch.
T.T.T.THUY-MMT-CNTT 38
Ci 畉t board ESP8266
 M畛 Boards Manager 畛 m畛c Tools tr棚n thanh menu-bar 
t狸m board c畉n s畛 d畛ng v畛i keyword Generic 8266  ch畛n
board c畉n ci 畉t nh動 h狸nh v nh畉n vo install.
T.T.T.THUY-MMT-CNTT 39
I畛U KHI畛N LED
V鱈 d畛 c董 b畉n
T.T.T.THUY-MMT-CNTT 40
Y棚u c畉u
 X但y d畛ng 畛ng d畛ng cho ph辿p b畉t t畉t led theo chu k畛
T.T.T.THUY-MMT-CNTT 41
LED?
 Light Emitting Diodes
 B坦ng b叩n d畉n c坦 th畛 ph叩t s叩ng
v畛i mu s畉c kh叩c nhau t湛y thu畛c
vo ch畉t li畛u b叩n d畉n
 C畉n cung c畉p m畛c i畛n 叩p ch棚nh
l畛ch gi畛a c畛c 但m v c畛c d動董ng
c畛a b坦ng LED cao h董n m畛c i畛n
叩p Vf (datasheet), th動畛ng l 3.2v,
v d嘆ng i畛n nh畛 h董n m畛c ch畛u
畛ng c畛a n坦, th動畛ng l 15mA.
T.T.T.THUY-MMT-CNTT 42
畉u n畛i Led t畛i ch但n 13
File > Examples > Digital > Blink
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
T.T.T.THUY-MMT-CNTT 43
M畛 r畛ng
 B畉t t畉t Led theo chu k畛 30 ph炭t
 B畉t t畉t Led s畛 d畛ng n炭t nh畉n (c担ng t畉c)
T.T.T.THUY-MMT-CNTT 44
L畉P TRNH CHO ARDUINO
T.T.T.THUY-MMT-CNTT 45
Ng担n ng畛 l畉p tr狸nh tr棚n arduino
Ng担n ng畛 Arduino
c畉u tr炭c
(structure)
bi畉n s畛 (variable)
v h畉ng s畛
(constant)
hm v th畛 t畛c
(function).
T.T.T.THUY-MMT-CNTT 46
CU L味NH CU TRUC
T.T.T.THUY-MMT-CNTT 47
setup() v loop()
 Nh畛ng l畛nh trong setup()
 s畉 動畛c ch畉y khi ch動董ng tr狸nh kh畛i 畛ng.
 khai b叩o gi叩 tr畛 c畛a bi畉n, khai b叩o th動 vi畛n, thi畉t l畉p c叩c
th担ng s畛,
 Sau khi setup() ch畉y xong
 nh畛ng l畛nh trong loop() 動畛c ch畉y.
 l畉p i l畉p l畉i li棚n t畛c cho t畛i khi no ng畉t ngu畛n
c畛a board Arduino.
 Nh畉n n炭t Reset
 ch動董ng tr狸nh s畉 tr畛 v畛 l畉i tr畉ng th叩i nh動 khi
Arduino m畛i 動畛c c畉p ngu畛n.
T.T.T.THUY-MMT-CNTT 48
setup() v loop()
T.T.T.THUY-MMT-CNTT 49
V鱈 d畛
int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Gi畉i th鱈ch??
C畉u tr炭c re nh叩nh
 C炭 ph叩p:
if ([bi畛u th畛c 1] [to叩n t畛 so s叩nh] [bi畛u th畛c 2]) { //bi畛u th畛c i畛u ki畛n
[c但u l畛nh 1]
} else {
[c但u l畛nh 2]
}
N畉u bi畛u th畛c i畛u ki畛n tr畉 v畛 gi叩 tr畛 TRUE, [c但u l畛nh 1] s畉 動畛c th畛c hi畛n, ng動畛c
l畉i, [c但u l畛nh 2] s畉 動畛c th畛c hi畛n.
V鱈 d畛:
int a = 0;
if (a == 0) {
a = 10;
} else {
a = 1;
}

T.T.T.THUY-MMT-CNTT 50
C畉u tr炭c re nh叩nh if
 C叩c to叩n t動 so s叩nh
 x == y (x is equal to y)
 x != y (x is not equal to y)
 x < y (x is less than y)
 x > y (x is greater than y)
 x <= y (x is less than or equal to y)
 x >= y (x is greater than or equal to y)
T.T.T.THUY-MMT-CNTT 51
C畉u tr炭c re nh叩nh
 Vi畉t o畉n code
 X: s畛 nguy棚n
 N畉u x >2 v x nh畛 h董n 5 th狸 g叩n x=100
 N畉u x<=2 ho畉c x>=5 th狸 g叩n x=-1
T.T.T.THUY-MMT-CNTT 52
Switch ..case
C炭 ph叩p
switch (var) {
case label1:
// statements
break;
case label2:
// statements
break;
default:
// statements
break;
}
T.T.T.THUY-MMT-CNTT 53
Switch ..case
 Vd1: Cho bi畉n c ki畛u char , x ki畛u int
N畉u c=a g叩n x =-1
N畉u c=b g叩n x=5
Vd2:
Cho bi畉n c ki畛u char, ch但n 1 output
pinMode(1,OUTPUT)
N畉u c=a ghi i畛n 叩p ra l m畛c High cho ch但n 1
N畉u c=b ghi i畛n 叩p ra l m畛c LOW cho ch但n 1
T.T.T.THUY-MMT-CNTT 54
For
 C炭 ph叩p
 for (initialization; condition; increment) { // statement(s); }
 Vd:
G叩n gi叩 tr畛 cho bi畉n a l畉n l動畛t t畛 1-200. S畛 d畛ng c畉u tr炭c for
Int a,i;
For(i=1,i<=200,i++)
{a=i;}
T.T.T.THUY-MMT-CNTT 55
While
 C炭 ph叩p
while (<i畛u ki畛n>) {
//c叩c o畉n l畛nh;
}
T.T.T.THUY-MMT-CNTT 56
While
 V鱈 d畛:
 a bi畉n int, a bi畉n int
 G叩n gi叩 tr畛 cho bi畉n a l畉n l動畛t t畛 1-200. S畛 d畛ng c畉u
tr炭c while
T.T.T.THUY-MMT-CNTT 57
Continue
 b畛 qua m畛t chu k狸 l畉p trong m畛t v嘆ng l畉p (for, do, while) ch畛a n坦 trong 坦.
 Khi g畛i l畛nh continue, nh畛ng l畛nh sau n坦 v 畛 trong c湛ng v嘆ng l畉p v畛i n坦
s畉 b畛 b畛 qua 畛 th畛c hi畛n nh畛ng chu k狸 l畉p k畉 ti畉p.
V鱈 d畛
int a = 0;
int i = 0;
while (i < 10) {
i = i + 1;
continue;
a = 1;
}
//a v畉n b畉ng 0
T.T.T.THUY-MMT-CNTT 58
continue
 V鱈 d畛:
 Th畛c hi畛n ghi gi叩 tr畛 t畛 1 t畛i 200 cho bi畉n a. (b畛 qua gi叩
tr畛 t畛 (40 t畛i 120))
For (i=1, i<=200; i++)
{
If ( i>=40 && i<=120)
{ continue; }
a=i;
}
T.T.T.THUY-MMT-CNTT 59
return
 Ch畛c nng:
 return c坦 nhi畛m v畛 tr畉 v畛 m畛t gi叩 tr畛 (c湛ng ki畛u d畛 li畛u v畛i hm) m n坦
動畛c g畛i!
 C炭 ph叩p
return;
return value; // c畉 2 畛u 炭ng
 Th担ng s畛 value: b畉t k畛 gi叩 tr畛 ho畉c m畛t 畛i t動畛ng.
 V鱈 d畛
//Hm ki畛m tra gi叩 tr畛 c畛a c畉m bi畉n c坦 h董n m畛t ng動畛ng no 坦 hay
kh担ng
int checkSensor(){
if (analogRead(0) > 400) {
return 1;
else{
return 0;
 } T.T.T.THUY-MMT-CNTT 60
goto
 Ch畛c nng
 t畉m d畛ng ch動董ng tr狸nh
r畛i chuy畛n 畉n m畛t nh達n
達 動畛c 畛nh tr動畛c
 sau 坦 l畉i ch畉y ti畉p
ch動董ng tr狸nh!
 C炭 ph叩p
 label: //Khai b叩o m畛t
nh達n c坦 t棚n l label
 goto label; //Ch畉y 畉n
nh達n label r畛i sau 坦
th畛c hi畛n ti畉p nh畛ng
o畉n ch動董ng tr狸nh sau
nh達n 坦
T.T.T.THUY-MMT-CNTT 61
Comments - Vi畉t ghi ch炭 trong khi vi畉t
 x = 5; // 但y l ki畛u "single line comment",
 s畉 ghi ch炭 t畉t c畉 nh畛ng ch畛 (text, c但u l畛nh,... everything) n畉m sau
d畉u // cho 畉n khi h畉t d嘆ng
 /* C嘆n 但y l "multiline comment" - B畉n b畉t 畉u ghi ch炭 v畛i k箪 t畛 kia.
 s畉 "ghi ch炭" t畉t c畉 nh畛ng g狸 n畉m trong c畉p d畉u "/ *" v "* /" ( kh担ng c坦
d畉u c叩ch)
 if (gwb == 0){ // ngoi ra b畉n c坦 th畛 d湛ng single line trong ny.
x = 3; /* nh動ng d湛ng m畛t multiline comment kh叩c th狸 s畉 b畛 l畛i c炭
ph叩p ngay
*/
T.T.T.THUY-MMT-CNTT 62
BIN (VARIABLE)
T.T.T.THUY-MMT-CNTT 63
C叩c ki畛u d動 li畛u
T.T.T.THUY-MMT-CNTT 64
Ki畛u int
 Tr棚n m畉ch Arduino Uno, n坦 c坦 o畉n gi叩 tr畛 t畛 -32,768 畉n
32,767 (-215 畉n 215-1) (16 bit)
 C炭 ph叩p
 Int var=val
 var: t棚n bi畉n
 val: gi叩 tr畛
 V鱈 d畛
 Int ledpin =13
T.T.T.THUY-MMT-CNTT 65
Ki畛u float
 M畛t bi畉n d湛ng ki畛u d畛 li畛u ny c坦 th畛 畉t m畛t gi叩 tr畛 n畉m
trong kho畉ng - 3.4028235E+38 畉n 3.4028235E+38. N坦
chi畉m 4 byte b畛 nh畛.
 C炭 ph叩p
 float var = val;
 var: t棚n bi畉n
 val: gi叩 tr畛
 V鱈 d畛
 float myfloat;
 float sensorCalbrate = 1.117;
T.T.T.THUY-MMT-CNTT 66
Ki畛u d畛 li畛u char
 bi畛u di畛n cho 1 k箪 t畛.
 bi畛u di畛n m畛t chu畛i trong ch動董ng tr狸nh Arduino - ki畛u d畛 li畛u String.
 chi畉m 1 byte b畛 nh畛
 Ki畛u char ch畛 nh畉n c叩c gi叩 tr畛 trong b畉ng m達 ASCII.
 Ki畛u char 動畛c l動u d動畛i d畉ng 1 s畛 nguy棚n byte c坦 s畛 但m (c坦 c叩c gi叩 tr畛
t畛 -127 - 128),
 Vd: ki畛u char c坦 gi叩 tr畛 l 'A', t動董ng 畛ng 65.
 v鱈 d畛
T.T.T.THUY-MMT-CNTT 67
ki畛u d畛 li畛u Void
 "void" l m畛t t畛 kh坦a ch畛 d湛ng trong vi畛c khai b叩o m畛t
function.
 Nh畛ng function 動畛c khai b叩o v畛i "void" s畉 kh担ng
tr畉 v畛 b畉t k狸 d畛 li畛u no khi 動畛c g畛i.
 V鱈 d畛 v畛 ki畛u d畛 li畛u Void
led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop(){
blink();
}
void blink() {
digitalWrite(led, LOW); delay(1000); digitalWrite(led, HIGH);
delay(1000);
T.T.T.THUY-MMT-CNTT 68
Ki畛u d畛 li畛u byte
 L m畛t ki畛u d畛 li畛u bi畛u di畛n s畛 nguy棚n n畉m trong
kho畉ng t畛 0 畉n 255.
 Chi畉m 1 byte b畛 nh畛 cho m畛i bi畉n mang ki畛u byte
 V鱈 d畛:
 byte a = 123; //khai b叩o bi畉n a mang ki畛u byte,
c坦 gi叩 tr畛 l 123
T.T.T.THUY-MMT-CNTT 69
Ki畛u d畛 li畛u string:
 string ti畉ng Anh ngh挑a l chu畛i
 2 c叩ch 畛 畛nh ngh挑a chu畛i
 s畛 d畛ng m畉ng k箪 t畛
T.T.T.THUY-MMT-CNTT 70
Ki畛u d畛 li畛u string:
 Khai b叩o chu畛i di
char myString[] = "This is the first line"
" this is the second line"
" etcetera
 M畉ng chu畛i
 Khi c畉n ph畉i thao t叩c v畛i m畛t l動畛ng l畛n chu畛i (v鱈 d畛 nh動 trong c叩c
畛ng d畛ng tr畉 l畛i ng動畛i d湛ng b畉ng LCD) - c畉n s畛 d畛ng m畛t m畉ng
chu畛i.
 b畉n ch畉t c畛a chu畛i l m畉ng c叩c k箪 t畛. V狸 v畉y 畛 khai b叩o 1 m畉ng
chu畛i b畉n c畉n s畛 d畛ng m畛t m畉ng 2 chi畛u!
 畛 khai b叩o m畛t m畉ng :
 char* myStrings[] = {"I'm number 1", "I'm number 2"};
 Ch畛 c畉n th棚m d畉u * sau ch畛 char v trong d畉u ngo畉c vu担ng ph鱈a sau
myStrings b畉n c坦 th畛 thi畉t 畉t s畛 l動畛ng ph畉n t畛 t畛i a c畛a m畉ng
chu畛i! T.T.T.THUY-MMT-CNTT 71
V鱈 d畛 v畛 ki畛u d畛 li畛u string
 V鱈 d畛
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);
}
}
T.T.T.THUY-MMT-CNTT 72
Ki畛u d畛 li畛u array:
 Array l m畉ng (t畉p h畛p c叩c gi叩 tr畛 c坦 li棚n quan v 動畛c 叩nh
d畉u b畉ng nh畛ng ch畛 s畛).
 Ch鱈nh l Array trong ng担n ng畛 l畉p tr狸nh C.
T.T.T.THUY-MMT-CNTT 73
Truy c畉p c叩c ph畉n t畛 trong m畉ng
 Ph畉n t畛 畉u ti棚n trong m畉ng lu担n 動畛c 叩nh ch畛 s畛 0.
mySensVals[0] == 2, mySensVals[1] == 4, 
 i畛u ny c坦 ngh挑a r畉ng, vi畛c khai b叩o m畛t m畉ng c坦 t畛i a 10 ph畉n t畛, th狸
ph畉n t畛 cu畛i c畉n (th畛 10) 動畛c 叩nh ch畛 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畛 m畛t gi叩 tr畛 "h棚n xui" n畉m trong kho畉ng gi叩 tr畛
c畛a int
 V狸 v畉y, h達y ch炭 箪 trong vi畛c truy c畉p 畉n gi叩 tr畛 trong m畉ng, n畉u b畉n
mu畛n truy c畉p 畉n ph畉n t畛 cu畛i c湛ng th狸 h達y truy 畉n 畉n 担 gi畛i h畉n c畛a
m畉ng - 1.
T.T.T.THUY-MMT-CNTT 74
Ki畛u m畉ng
T.T.T.THUY-MMT-CNTT 75
 Ch但n 1,3,4,5,6,7 output
 G叩n gi叩 tr畛 i畛n 叩p cao cho c叩c ch但n t畛 1, 3,4,5,6,7.
 畛 tr畛 500ms
 D湛ng m畉ng
T.T.T.THUY-MMT-CNTT 76
HAM VA TH畛 TU味C
T.T.T.THUY-MMT-CNTT 77
Hm to叩n h畛c min()
 tr畉 v畛 gi叩 tr畛 nh畛 nh畉t gi畛a hai bi畉n.
 C炭 ph叩p : min(x, y);
 Tham s畛
 x: s畛 th畛 nh畉t, m畛i ki畛u d畛 li畛u 畛u 動畛c ch畉p nh畉n.
 y: s畛 th畛 hai, m畛i ki畛u d畛 li畛u 畛u 動畛c ch畉p nh畉n.
 Tr畉 v畛 : S畛 nh畛 nh畉t trong 2 s畛.
 G畛i 箪
 Hm min 動畛c d湛ng 畛 l畉y ch畉n tr棚n (kh担ng 畛 gi叩 tr畛 v動畛t qu叩
m畛t m畛c quy 畛nh no 坦).
 Ch炭 箪
 min(a++, 100); // s畉 b畛 l畛i
 a++; min(a, 100); // 炭ng
 kh担ng 動畛c 畛 b畉t c畛 ph辿p t鱈nh no b棚n trong.
T.T.T.THUY-MMT-CNTT 78
Hm th畛i gian delay():
 d畛ng ch動董ng tr狸nh trong th畛i gian mili gi但y.
 C炭 ph叩p: delay(ms)
 Th担ng s畛
 ms: th畛i gian 畛 m畛c mili gi但y. ms c坦 ki畛u d畛 li畛u l
unsigned long
 Delay(1000);// Tr畛 1s
 Delay(24*60*60*1000);
T.T.T.THUY-MMT-CNTT 79
V鱈 d畛 v畛 hm th畛i gian delay
T.T.T.THUY-MMT-CNTT 80
Hm th畛i gian micros():
 micros() tr畉 v畛 m畛t s畛 - l
th畛i gian (t鱈nh theo micro
gi但y) k畛 t畛 l炭c m畉ch
Arduino b畉t 畉u ch動董ng
tr狸nh
 Tr畉 v畛 : m畛t s畛 nguy棚n
ki畛u unsigned long l th畛i
gian k畛 t畛 l炭c th動董ng tr狸nh
Arduino 動畛c kh畛i 畛ng.
T.T.T.THUY-MMT-CNTT 81
hm th畛i gian millis()
 tr畉 v畛 m畛t s畛 - l th畛i gian (t鱈nh theo mili gi但y) k畛 t畛 l炭c
m畉ch Arduino b畉t 畉u ch動董ng tr狸nh c畛a b畉n. N坦 s畉 trn s畛
v quay s畛 0 (sau 坦 ti畉p t畛c tng) sau 50 ngy.
 Tr畉 v畛 : M畛t s畛 nguy棚n ki畛u unsigned long l th畛i gian k畛
t畛 l炭c th動董ng tr狸nh Arduino 動畛c kh畛i 畛ng
T.T.T.THUY-MMT-CNTT 82
V鱈 d畛 v畛 hm th畛i gian millis()
unsigned long time;
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("Time: ");
time = millis();
// in ra th畛i gian k畛 t畛 l炭c ch動董ng tr狸nh 動畛c b畉t 畉u
Serial.println(time);
// 畛i 1 gi但y tr動畛c khi ti畉p t畛c in
delay(1000); }
T.T.T.THUY-MMT-CNTT 83
L畛nh digitalRead ()
 C炭 ph叩p : digitalRead(pin)
 Th担ng s畛:
 pin (ch但n) : gi叩 tr畛 c畛a digital mu畛n 畛c
 Tr畉 v畛 gi叩 tr畛
 HIGH ho畉c LOW
T.T.T.THUY-MMT-CNTT 84
V鱈 d畛 v畛 l畛nh digitalRead():
竪n led t畉i pin 13 nh畉n gi叩 tr畛 nh動 gi叩 tr畛 t畉i pin 2
int ledPin = 13; // ch但n led 13
int inPin = 2; // button t畉i ch但n 2
int val = 0; // bi畉n "val" d湛ng 畛 l動u t鱈n hi畛u t畛 digitalRead
void setup()
{
pinMode(ledPin, OUTPUT); // 畉t pin digital 13 l output
pinMode(inPin, INPUT); // 畉t pin digital 2 l input
}
void loop()
{
val = digitalRead(inPin); // 畛c t鱈n hi畛u t畛 digital2
digitalWrite(ledPin, val); // thay 担i gi叩 tr畛 c畛a 竪n LED l gi叩 tr畛 c畛a digital 2
} T.T.T.THUY-MMT-CNTT 85
 Bt: 畛c gi叩 tr畛 i畛n 叩p tr棚n ch但n s畛 5. N畉u gi叩 tr畛 c畛a n坦 l
High th狸 b畉t led n畛i v畛i ch但n 13. N畉u gi叩 tr畛 n坦 l Low th狸 t畉t
led n畛i v畛i ch但n 13
 G畛i 箪:

T.T.T.THUY-MMT-CNTT 86
L畛nh digitalWrite():
 Xu畉t t鱈n hi畛u ra c叩c ch但n digital
 c坦 2 gi叩 tr畛 l HIGH ho畉c l LOW.
 N畉u m畛t pin 動畛c thi畉t 畉t l OUTPUT b畛i pinMode(). V d湛ng
digitalWrite 畛 xu畉t t鱈n hi畛u th狸 i畛n th畉 t畉i ch但n ny s畉 l 5V (ho畉c l
3,3 V tr棚n m畉ch 3,3 V) n畉u 動畛c xu畉t t鱈n hi畛u l HIGH, v 0V n畉u
動畛c xu畉t t鱈n hi畛u l LOW.
 N畉u m畛t pin 動畛c thi畉t 畉t l INPUT b畛i pinMode(). L炭c ny
digitalWrite s畉 b畉t (HIGH) ho畉c t畉t (LOW) h畛 th畛ng i畛n tr畛 pullup n畛i
b畛.
 c炭 ph叩p: digitalWrite(pin,value)
 Th担ng s畛 pin: S畛 c畛a ch但n digital m b畉n mu畛n thi畉t 畉t
value: HIGH ho畉c LOW
T.T.T.THUY-MMT-CNTT 87
V鱈 d畛 v畛 l畛nh digitalWrite()
int ledPin = 13; // 竪n LED 動畛c k畉t n畛i v畛i ch但n digital 13
void setup()
{
pinMode(ledPin, OUTPUT); // thi畉t 畉t ch但n ledPin l OUTPUT
}
void loop()
{
digitalWrite(ledPin, HIGH); // b畉t 竪n led
delay(1000); // d畛ng trong 1 gi但y
digitalWrite(ledPin, LOW); // t畉t 竪n led
delay(1000); // d畛ng trong 1 gi但y
}
T.T.T.THUY-MMT-CNTT 88
L畛nh pinMode():
 C畉u h狸nh m畛t pin (ch但n) quy 畛nh ho畉t 畛ng nh動 l
m畛t 畉u vo (INPUT) ho畉c 畉u ra (OUTPUT).
 c炭 ph叩p: pinMode ( pin, mode)
 Th担ng s畛 l畛nh:
 pin : S畛 c畛a ch但n digital m b畉n mu畛n thi畉t 畉t
 mode : c坦 th畛 l INPUT, OUTPUT ho畉c INPUT_PULLUP.
T.T.T.THUY-MMT-CNTT 89
Hm nh畉p xu畉t analogRead():
 畛c gi叩 tr畛 i畛n 叩p t畛 m畛t ch但n Analog .
 Tr棚n m畉ch Arduino UNO c坦 6 ch但n Analog In, 動畛c k鱈 hi畛u
t畛 A0 畉n A5.
 Tr棚n c叩c m畉ch kh叩c c滴ng c坦 nh畛ng ch但n t動董ng t畛 nh動 v畉y
v畛i t棚n ch畛 "A" 畛ng 畉u, sau 坦 l s畛 hi畛u c畛a ch但n.
 analogRead() lu担n tr畉 v畛 1 s畛 nguy棚n n畉m trong kho畉ng t畛 0
畉n 1023 t動董ng 畛ng v畛i thang i畛n 叩p (m畉c 畛nh) t畛 0 畉n
5V.
 B畉n c坦 th畛 i畛u ch畛nh thang i畛n 叩p ny b畉ng hm
analogReference().
 Hm analogRead() c畉n 100 micro gi但y 畛 th畛c hi畛n.
T.T.T.THUY-MMT-CNTT 90
Hm nh畉p xu畉t analogRead():
 C炭 ph叩p : analogRead(ch但n
畛c i畛n 叩p);
 V鱈 d畛
int voltage = analogRead(A0);
A0 l ch但n d湛ng 畛 畛c gi叩 tr畛 i畛n
叩p.
T.T.T.THUY-MMT-CNTT 91
Hm nh畉p xu畉t analogWrite():
 analogWrite() xu畉t ra t畛 m畛t ch但n tr棚n m畉ch Arduino m畛t m畛c t鱈n hi畛u
analog (ph叩t xung PWM).
 Ng動畛i ta th動畛ng i畛u khi畛n m畛c s叩ng t畛i c畛a 竪n LED hay h動畛ng quay
c畛a 畛ng c董 servo b畉ng c叩ch ph叩t xung PWM nh動 th畉 ny.
 Note: kh担ng c畉n g畛i hm pinMode() 畛 畉t ch畉 畛 OUTPUT cho ch但n s畉
d湛ng 畛 ph叩t xung PWM tr棚n m畉ch Arduino
 C炭 ph叩p analogWrite([ch但n ph叩t xung PWM], [gi叩 tr畛 xung PWM]);
 Gi叩 tr畛 m畛c xung PWM n畉m trong kho畉ng t畛 0 畉n 255, t動董ng 畛ng v畛i m畛c duty cycle
t畛 0% 畉n 100%
T.T.T.THUY-MMT-CNTT 92
V鱈 d畛 Hm nh畉p xu畉t analogWrite():
int led = 6;
void setup() { }
void loop()
{
for (int i = 0; i <= 255; i++)
{
analogWrite(led,i);
delay(20);
}
}
T.T.T.THUY-MMT-CNTT 93
M PH畛NG ARDUINO TRN
PROTEUS
T.T.T.THUY-MMT-CNTT 94
Ci 畉t Proteus, th動 vi畛n arduino
 Website ch鱈nh th畛c: https://www.labcenter.com/
 Ci 畉t th動 vi畛n Arduino cho Proteus
T.T.T.THUY-MMT-CNTT 95
M担 phong
 T畉o s董 畛 m畉ch
 N畉p file Hex
 Ch畉y m担 ph畛ng
T.T.T.THUY-MMT-CNTT 96
BT1: Nh畉p nh叩y LED
T.T.T.THUY-MMT-CNTT 97
Vd1 :T畉o s董 畛 m畉ch m担 ph畛ng v鱈 d畛 nh畉p nh叩y Led
BT2: Nh畉n n炭t led s叩ng.
 N炭t nh畉n : Button
 Nh畉n n炭t led s叩ng
T.T.T.THUY-MMT-CNTT 98
BT3: Led s叩ng t畛 led1 t畛i led 5
T.T.T.THUY-MMT-CNTT 99
BT4:
T.T.T.THUY-MMT-CNTT 100
Y棚u c畉u: N炭t b畉m th狸 l畉n l動畛t D1, D2, D3 s叩ng. Tr畛 v畛i th畛i gian
10s
Bt5: LED s叩ng d畉n
T.T.T.THUY-MMT-CNTT 101
Y棚u c畉u: C畉p i畛n 叩p t動董ng 畛ng t畛 0,5,10,..,255
Giao ti畉p LCD
16x2
- Vi畉t ch動董ng tr狸nh hi畛n th畛 t棚n c畛a b畉n ra mn h狸nh
- H動畛ng d畉n k畉t n畛i v畛i LCD 16x2 nh動 h狸nh tr棚n
T.T.T.THUY-MMT-CNTT 102
Bt6: k畉t n畛i v畛i LCD
Bi t畉p 7
T.T.T.THUY-MMT-CNTT 103
Good References
www.arduino.cc
www.ladyada.net/learn/arduino
www.EarthshineElectronics.com
T.T.T.THUY-MMT-CNTT 104

More Related Content

Similar to CSHT_IoT_C3.pdfhfisdhfihsdifhdsihfidsfihd (20)

Arduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdf
Arduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdfArduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdf
Arduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdf
Man_Ebook
Gi叩o tr狸nh vi i畛u khi畛n avr
Gi叩o tr狸nh vi i畛u khi畛n avr Gi叩o tr狸nh vi i畛u khi畛n avr
Gi叩o tr狸nh vi i畛u khi畛n avr
Ky Nguyen Ad
H動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.com
H動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.comH動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.com
H動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.com
Th湛y Linh
T狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docx
T狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docxT狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docx
T狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docx
Man_Ebook
03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf
03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf
03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf
DongNgo14
CHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdf
CHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdfCHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdf
CHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdf
TrungVo87
畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...
畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...
畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avr
anhhoi12345
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vn
bibibobo2007
Bai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptx
Bai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptxBai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptx
Bai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptx
HinPhmXun1
14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf
14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf
14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf
DongNgo14
Bao cao tom tat nckh2015
Bao cao tom tat nckh2015Bao cao tom tat nckh2015
Bao cao tom tat nckh2015
New Way
BTL-NMDT_GROUP4
BTL-NMDT_GROUP4BTL-NMDT_GROUP4
BTL-NMDT_GROUP4
Nhok Ly
BTL - NMT - Nh坦m 4 - MT1405
BTL - NMT - Nh坦m 4 - MT1405BTL - NMT - Nh坦m 4 - MT1405
BTL - NMT - Nh坦m 4 - MT1405
Nhok Ly
Bai 01 tong quan ve phan cung may tinh
Bai 01  tong quan ve phan cung may tinhBai 01  tong quan ve phan cung may tinh
Bai 01 tong quan ve phan cung may tinh
Quang Nguy畛n Th叩i
Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,
MaiPh2
Bai1-Tongquan.pptx
Bai1-Tongquan.pptxBai1-Tongquan.pptx
Bai1-Tongquan.pptx
HuyTin20
畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx
畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx
畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
BAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nh
BAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nhBAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nh
BAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nh
phuc140103
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
DongNgo14
Arduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdf
Arduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdfArduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdf
Arduino + GorillaShield + C叩c m担-un IO + mBlock5 + C叩c kh畛i m畛 r畛ng.pdf
Man_Ebook
Gi叩o tr狸nh vi i畛u khi畛n avr
Gi叩o tr狸nh vi i畛u khi畛n avr Gi叩o tr狸nh vi i畛u khi畛n avr
Gi叩o tr狸nh vi i畛u khi畛n avr
Ky Nguyen Ad
H動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.com
H動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.comH動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.com
H動畛ng d畉n lm quen v畛i stm8 f103 - tincanban.com
Th湛y Linh
T狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docx
T狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docxT狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docx
T狸m hi畛u v thi畉t k畉 m畛t bo m畉ch Arduino Uno.docx
Man_Ebook
03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf
03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf
03_LEDANGTUNG_LYGIAHIEN_DIEUKHIENNHIEULEDBANG_STM32F103C8T6.pdf
DongNgo14
CHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdf
CHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdfCHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdf
CHUONG 2123- KIEN TRUC AVR ATMEGA324P.pdf
TrungVo87
畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...
畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...
畛 N - Gi叩m s叩t nhi畛t 畛 畛 畉m v i畛u khi畛n thi畉t b畛 t畛 xa b畉ng NODEMCU ESP...
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
418 giaotrinh avr
418 giaotrinh avr418 giaotrinh avr
418 giaotrinh avr
anhhoi12345
Giaotrinh avr tech24.vn
Giaotrinh avr tech24.vnGiaotrinh avr tech24.vn
Giaotrinh avr tech24.vn
bibibobo2007
Bai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptx
Bai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptxBai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptx
Bai 2 - T狸m hi畛u v畛 Node MCU ESP8266.pptx
HinPhmXun1
14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf
14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf
14_L棚 H畛u An_Tr畉n Nh畉t Linh_L畉p tr狸nh STM32F103C8T6 hi畛n th畛 tr棚n LCD16x2.pdf
DongNgo14
Bao cao tom tat nckh2015
Bao cao tom tat nckh2015Bao cao tom tat nckh2015
Bao cao tom tat nckh2015
New Way
BTL-NMDT_GROUP4
BTL-NMDT_GROUP4BTL-NMDT_GROUP4
BTL-NMDT_GROUP4
Nhok Ly
BTL - NMT - Nh坦m 4 - MT1405
BTL - NMT - Nh坦m 4 - MT1405BTL - NMT - Nh坦m 4 - MT1405
BTL - NMT - Nh坦m 4 - MT1405
Nhok Ly
Bai 01 tong quan ve phan cung may tinh
Bai 01  tong quan ve phan cung may tinhBai 01  tong quan ve phan cung may tinh
Bai 01 tong quan ve phan cung may tinh
Quang Nguy畛n Th叩i
Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Ky_thuat_VXL.v1.4.pdf,,,,,,,,,,,,,,,,,,,,,,,,,,,,
MaiPh2
Bai1-Tongquan.pptx
Bai1-Tongquan.pptxBai1-Tongquan.pptx
Bai1-Tongquan.pptx
HuyTin20
畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx
畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx
畛 N - C但n i畛n t畛 s畛 d畛ng m畉ch arduino c坦 k畉t n畛i v畛i giao di畛n m叩y t鱈nh.docx
D畛ch V畛 Vi畉t Bi Tr畛n G坦i ZALO 0917193864
BAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nh
BAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nhBAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nh
BAO CAO TUAN 5 o l動畛ng v i畛u khi畛n m叩y t鱈nh
phuc140103
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
11_L棚 Minh Huy_L棚 Nguy畛n Tr畛ng Ti畉n_H畛 Th畛ng Kh坦a c畛a t畛 畛ng.pdf
DongNgo14

CSHT_IoT_C3.pdfhfisdhfihsdifhdsihfidsfihd

  • 1. C S HA味 TNG MA味NG IoT ThS.Tr畉n Th畛 Thu Th炭y Khoa C担ng ngh畛 Th担ng tin Tr動畛ng 畉i h畛c M畛 畛a ch畉t
  • 2. XY D働味NG 働NG DU味NG IOT CH働NG 3 T.T.T.THUY-MMT-CNTT 5
  • 3. N畛i dung X但y d畛ng h畛 th畛ng IoT X但y d畛ng h畛 th畛ng IoT X叩c 畛nh bi to叩n v c叩c y畉u t畛 畉u vo, 畉u ra Th畛c hi畛n x但y d畛ng h畛 th畛ng IoT Arduino Gi畛i thi畛u Arduino L畉p tr狸nh cho arduino Gi畉 l畉p arduino tr棚n m叩y t鱈nh b畉ng ph畉n m畛m Proteus Gi畛i thi畛u c叩c ph畉n m畛m m担 ph畛ng h畛 th畛ng IoT kh叩c. T.T.T.THUY-MMT-CNTT 6
  • 4. XY D働味NG H味 THNG IOT 3.1 T.T.T.THUY-MMT-CNTT 7
  • 5. IoT Architecture Three major components for designing any IoT system Application devices: Hardware architecture, smart sensors, cloud computing, energy efficient devices Networks: Communication technology, advanced internet protocol, wireless technology, RFID technology Security and privacy: Authentication procedure, secure device discovery, secure inter-device communication Ref: NTNU IoT lab, Application development in IoT systems, http://www.item.ntnu.no/research/ninot/start T.T.T.THUY-MMT-CNTT 8
  • 6. X但y d畛ng h畛 th畛ng IoT X但y d畛ng h畛 th畛ng IoT X叩c 畛nh y棚u c畉u X叩c 畛nh y畉u t畛 畉u vo 畉u ra Ph動董ng 叩n th畛c hi畛n T.T.T.THUY-MMT-CNTT 9
  • 7. V鱈 d畛 1 Nh畉p nh叩y led Thi畉t k畉 h畛 th畛ng cho ph辿p nh叩y 竪n led theo chu k畛 5ms T.T.T.THUY-MMT-CNTT 10
  • 8. V鱈 d畛 2 働ng d畛ng ki畛m tra n畛ng 畛 kh鱈 CO M担i tr動畛ng ngy cng 担 nhi畛m. L動畛ng kh鱈 CO s畉n sinh ra t畛 c叩c ph動董ng ti畛n giao th担ng, qu叩 tr狸nh 畛t nhi棚n li畛u trong c叩c 畛ng c董, kh鱈 畛t chi畉m m畉t 畛 cao trong kh担ng kh鱈 s畉 g但y nguy hi畛m t畛i s畛c kh畛e con ng動畛i. T.T.T.THUY-MMT-CNTT 11 Thi畉t k畉 畛ng d畛ng ki畛m tra v c畉nh b叩o n畛ng 畛 kh鱈 CO trong kh担ng kh鱈
  • 9. Ph但n t鱈ch y棚u c畉u M畛c cho ph辿p: 0 70 ppm G但y tri畛u ch畛ng nh畉: 70 200 ppm Nguy hi畛m t畛i t鱈nh m畉ng: >400 ppm T.T.T.THUY-MMT-CNTT 12 Y棚u c畉u h畛 th畛ng M畛c >400: 動a ra c畉nh b叩o
  • 10. Y棚u c畉u 畛ng d畛ng o 動畛c n畛ng 畛 kh鱈 CO trong kh担ng kh鱈. L畉p tr狸nh 動a ra c叩c c畉nh b叩o: C畉nh b叩o b畉ng chu担ng b叩o. C畉nh b叩o b畉ng l畛i tho畉i ch畛 d畉n. C畉nh b叩o b畉ng tin nh畉n 畉n thi畉t b畛 動畛c ch畛 畛nh. T.T.T.THUY-MMT-CNTT 13
  • 12. C叩c ngu畛n ti li畛u Resource: Arduino ch鱈nh th畛c(IDE & AVR/ARM/x86 Board) www.arduino.cc Arduino cho ESP8266 github.com/esp8266/Arduino Arduino cho ESP32 github.com/espressif/arduino- esp32 Arduino cho PIC32 chipkit.net/ Arduino cho STM32 www.stm32duino.com/ C叩c d畛 叩n Arduino www.hackster.io/arduino T.T.T.THUY-MMT-CNTT 15
  • 13. Gi畛i thi畛u arduino www.arduino.cc: Arduino l n畛n t畉ng i畛n t畛 m達 ngu畛n m畛, d畛a tr棚n ph畉n c畛ng v ph畉n m畛m, linh ho畉t v d畛 s畛 d畛ng. C叩c board Arduino c坦 kh畉 nng 畛c d畛 li畛u t畛 m担i tr動畛ng (叩nh s叩ng, nhi畛t 畛, 畛 畉m,), tr畉ng th叩i n炭t nh畉n, tin nh畉n t畛 Twitter, v i畛u khi畛n tr畛 l畉i v畛i c叩c thi畉t b畛 nh動 畛ng c董, 竪n LED, g畛i th担ng tin 畉n 1 n董i kh叩c, Ng担n ng動 l畉p tr狸nh ng担n ng畛 l畉p tr狸nh C++, 動畛c i畛u khi畛n bi棚n d畛ch b畛i Arduino IDE v c叩c tr狸nh bi棚n d畛ch i k竪m ra m達 m叩y nh畛 ph但n. T.T.T.THUY-MMT-CNTT 16
  • 14. What is the Arduino T.T.T.THUY-MMT-CNTT 17 todbot.com/blog/bionicarduino
  • 15. 働u i畛m Arduino Thi畉t k畉 IDE t畛t, c坦 th畛 d畛 dng t鱈ch h畛p nhi畛u lo畉i compiler, nhi畛u lo畉i hardware m kh担ng h畛 gi畉m hi畛u nng. C叩c th動 vi畛n 動畛c vi畉t d畛a tr棚n l畛p API tr棚n c湛ng, n棚n a s畛 c叩c th動 vi畛n cho Arduino c坦 th畛 d湛ng 動畛c cho t畉t c畉 c叩c chip. i畛n h狸nh l Arduino cho ESP8266 c坦 th畛 t畉n d畛ng tr棚n 90% c叩c th動 vi畛n cho Arduino kh叩c Tr狸nh bi棚n d畛ch cho Arudino l C/C++ C叩c project cho Arduino 畛u opensource Arduino ch炭 tr畛ng t鱈nh a n畛n t畉ng, module h坦a cao, ph湛 h畛p v畛i c叩c 畛ng d畛ng t畛 ph畛c t畉p t畛i c畛c k畛 ph畛c t畉p. T.T.T.THUY-MMT-CNTT 18
  • 16. C叩c lo畉i boad arduino Arduino uno Arduino nano Arduino Mega . T.T.T.THUY-MMT-CNTT 19
  • 17. CU TA味O BOARD ARDUINO UNO 2.2. Arduino T.T.T.THUY-MMT-CNTT 20
  • 18. What is a Microcontroller T.T.T.THUY-MMT-CNTT 21 A small computer on a single chip containing a processor, memory, and input/output Typically "embedded" inside some device that they control A microcontroller is often small and low cost Examples www.mikroe.com/chapters/view/1
  • 19. What is a Development Board A printed circuit board designed to facilitate work with a particular microcontroller. T.T.T.THUY-MMT-CNTT 22 Typical components include: power circuit programming interface basic input; usually buttons and LEDs I/O pins
  • 20. C叩c thnh ph畉n tr棚n boad arduino T.T.T.THUY-MMT-CNTT 23 Making-robots-with-arduino.pdf
  • 21. C叩c thnh ph畉n tr棚n Arduino board 1. USB giao ti畉p v畛i m叩y tinh Upload ch動董ng tr狸nh cho Arduino ho畉t 畛ng C坦 th棚 c畉p ngu畛n qua c担ng USB. T.T.T.THUY-MMT-CNTT 24
  • 22. C叩c thnh ph畉n tr棚n Arduino boad C叩c ch但n (2. 3) C畉p ngu畛n qua (2) C畉p ngu畛n qua Vin; GND (3) Ch但n 5V v ch但n 3.3V Output voltage Kh担ng c畉p ngu畛n qua ch但n ny GND: 0 v mass T.T.T.THUY-MMT-CNTT 25
  • 23. C叩c thnh ph畉n tr棚n Arduino boad Vi i畛u khi畛n ATmega328 (6) Microcontroller tr叩i tim c畛a c叩c board m畉ch l畉p tr狸nh h達ng Atmel s畉n xu畉t i畛u khi畛n ton b担味 board m畉ch T.T.T.THUY-MMT-CNTT 26
  • 24. C叩c thnh ph畉n tr棚n Arduino boad Input v Output ( 4 v 5 ). Analog : A0 畉n A5 Digital 0->13 C叩c ch但n truy畛n d動 li畛u n畛i ti畉p Serial : ch但n 0 (Rx ), ch但n 1 ( Tx) PWM (pulse width modulation) c叩c ch但n 3, 5, 6, 9, 10, 11 tr棚n bo m畉ch c坦 d畉u ~s T.T.T.THUY-MMT-CNTT 27
  • 25. C叩c thnh ph畉n tr棚n Arduino boad SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), c叩c ch但n ny h畛 tr畛 giao ti畉p theo chu畉n SPI. I2C: Arduino h畛 tr畛 giao ti畉p theo chu畉n I2C. C叩c ch但n A4 (SDA) v A5 (SCL) cho ph辿p ch炭ng tao giao ti畉p gi畛a Arduino v畛i c叩c linh ki畛n c坦 chu畉n giao ti畉p l I2C Reset (7): d湛ng 畛 reset Arduino. T.T.T.THUY-MMT-CNTT 28
  • 26. CAI 味T ARDUINO IDE T.T.T.THUY-MMT-CNTT 29
  • 27. Kh叩i ni畛m Hi畛u m畛t c叩ch 董n gi畉n, Arduino IDE l 1 ph畉n m畛m gi炭p ch炭ng ta n畉p code 達 vi畉t vo board m畉ch v th畛c thi 畛ng d畛ng. Arduino IDE : Arduino Integrated Development Environment, c叩c ph畉n ch鱈nh: Editor (tr狸nh so畉n th畉o vn b畉n, d湛ng 畛 vi畉t code), Debugger (c担ng c畛 gi炭p t狸m ki畉m v s畛a l畛i ph叩t sinh khi build ch動董ng tr狸nh), Arduino IDE c嘆n h畛 tr畛 l畉p tr狸nh v畛i nhi畛u d嘆ng vi i畛u khi畛n khh叩c ESP, ARM, PIC, T.T.T.THUY-MMT-CNTT 30
  • 28. Ci 畉t arduino B動畛c 0: Ci Java Runtime Environment (JRE) http://www.oracle.com/technetwork/java/javase/downloa ds/jre8-downloads-2133155.html B動畛c 1: Download Arduino IDE. www.arduino.cc B動畛c 2: Ci 畉t Arduino IDE vo m叩y t鱈nh. H畛 i畛u hnh Windowns Ch炭ng ta c坦 th畛 download phi棚n b畉n Windowns Installer (.exe) ho畉c Windowns Zip package. T.T.T.THUY-MMT-CNTT 31
  • 29. Ci 畉t arduino T.T.T.THUY-MMT-CNTT 32 Ti畉p theo, ch畛n th動 m畛c ci 畉t (n棚n 畛 theo m畉c 畛nh) v ch畛 qu叩 tr狸nh ci 畉t hon t畉t.
  • 30. Arduino IDE M畛c 1: Menu bar g畛m c叩c t湛y ch畛n thi畉t l畉p cho ph畉n m畛m Arduino v cho sketch ang th畛c hi畛n M畛c 2: symbol bar c叩c n炭t nh畉n Verify 畛 bi棚n d畛ch sketch, upload 畛 n畉p sketch vo board, New 畛 t畉o sketch m畛i, Open 畛 m畛 sketch, Save l動u sketch Serial Monitor 畛 m畛 serial port. M畛c 3: V湛ng 畛 so畉n th畉o code cho sketch. M畛c 4: V湛ng hi畛n th畛 th担ng tin khi bi棚n d畛ch, hi畛n th畛 qu叩 tr狸nh n畉p sketch v c叩c th担ng b叩o l畛i khi bi棚n d畛ch sketch (n畉u c坦). T.T.T.THUY-MMT-CNTT 33
  • 31. Arduino IDE Menu T.T.T.THUY-MMT-CNTT 34 - File menu: Examples 但y l n董i ch畛a code m畉u v鱈 d畛 nh動: c叩ch s畛 d畛ng c叩c ch但n digital, analog, sensor - Edit menu - Sketch menu - Verify/ Compile : ch畛c nng ki畛m tra l畛i code. - Show Sketch Folder : hi畛n th畛 n董i code 動畛c l動u. - Add File : th棚m vo m畛t Tap code m畛i. - Import Library : th棚m th動 vi畛n cho IDE
  • 33. Tool menu T.T.T.THUY-MMT-CNTT 36 L動u 箪: - M畛c Board : - c畉n ph畉i l畛a ch畛n bo m畉ch cho ph湛 h畛p v畛i lo畉i bo m b畉n s畛 d畛ng n畉u l Arduino Uno th狸 ph畉i ch畛n nh動 h狸nh b棚n - Serial Port: - l畛a ch畛n c担ng Com c畛a Arduino. - Khi ch炭ng ta ci 畉t driver th狸 m叩y t鱈nh s畉 hi畛n th担ng b叩o t棚n c担ng Com c畛a Arduino l bao nhi棚u, ta ch畛 vi畛c vo Serial Port ch畛n 炭ng c担ng Com 畛 n畉p code, - n畉u ch畛n sai th狸 kh担ng th畛 n畉p code cho Arduino 動畛c.
  • 34. Ci 畉t th動 vi畛n Arduino Kh畛i 畛ng arduino IDE v ch畛n m畛c Sketch include library Manage libraries: T.T.T.THUY-MMT-CNTT 37
  • 35. Xu畉t firmware binary trong Arduino IDE Sketch > Export compiled Binary file .bin s畉 n畉m trong th動 m畛c c畛a Sketch. T.T.T.THUY-MMT-CNTT 38
  • 36. Ci 畉t board ESP8266 M畛 Boards Manager 畛 m畛c Tools tr棚n thanh menu-bar t狸m board c畉n s畛 d畛ng v畛i keyword Generic 8266 ch畛n board c畉n ci 畉t nh動 h狸nh v nh畉n vo install. T.T.T.THUY-MMT-CNTT 39
  • 37. I畛U KHI畛N LED V鱈 d畛 c董 b畉n T.T.T.THUY-MMT-CNTT 40
  • 38. Y棚u c畉u X但y d畛ng 畛ng d畛ng cho ph辿p b畉t t畉t led theo chu k畛 T.T.T.THUY-MMT-CNTT 41
  • 39. LED? Light Emitting Diodes B坦ng b叩n d畉n c坦 th畛 ph叩t s叩ng v畛i mu s畉c kh叩c nhau t湛y thu畛c vo ch畉t li畛u b叩n d畉n C畉n cung c畉p m畛c i畛n 叩p ch棚nh l畛ch gi畛a c畛c 但m v c畛c d動董ng c畛a b坦ng LED cao h董n m畛c i畛n 叩p Vf (datasheet), th動畛ng l 3.2v, v d嘆ng i畛n nh畛 h董n m畛c ch畛u 畛ng c畛a n坦, th動畛ng l 15mA. T.T.T.THUY-MMT-CNTT 42
  • 40. 畉u n畛i Led t畛i ch但n 13 File > Examples > Digital > Blink // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } T.T.T.THUY-MMT-CNTT 43
  • 41. M畛 r畛ng B畉t t畉t Led theo chu k畛 30 ph炭t B畉t t畉t Led s畛 d畛ng n炭t nh畉n (c担ng t畉c) T.T.T.THUY-MMT-CNTT 44
  • 42. L畉P TRNH CHO ARDUINO T.T.T.THUY-MMT-CNTT 45
  • 43. Ng担n ng畛 l畉p tr狸nh tr棚n arduino Ng担n ng畛 Arduino c畉u tr炭c (structure) bi畉n s畛 (variable) v h畉ng s畛 (constant) hm v th畛 t畛c (function). T.T.T.THUY-MMT-CNTT 46
  • 44. CU L味NH CU TRUC T.T.T.THUY-MMT-CNTT 47
  • 45. setup() v loop() Nh畛ng l畛nh trong setup() s畉 動畛c ch畉y khi ch動董ng tr狸nh kh畛i 畛ng. khai b叩o gi叩 tr畛 c畛a bi畉n, khai b叩o th動 vi畛n, thi畉t l畉p c叩c th担ng s畛, Sau khi setup() ch畉y xong nh畛ng l畛nh trong loop() 動畛c ch畉y. l畉p i l畉p l畉i li棚n t畛c cho t畛i khi no ng畉t ngu畛n c畛a board Arduino. Nh畉n n炭t Reset ch動董ng tr狸nh s畉 tr畛 v畛 l畉i tr畉ng th叩i nh動 khi Arduino m畛i 動畛c c畉p ngu畛n. T.T.T.THUY-MMT-CNTT 48
  • 46. setup() v loop() T.T.T.THUY-MMT-CNTT 49 V鱈 d畛 int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } Gi畉i th鱈ch??
  • 47. C畉u tr炭c re nh叩nh C炭 ph叩p: if ([bi畛u th畛c 1] [to叩n t畛 so s叩nh] [bi畛u th畛c 2]) { //bi畛u th畛c i畛u ki畛n [c但u l畛nh 1] } else { [c但u l畛nh 2] } N畉u bi畛u th畛c i畛u ki畛n tr畉 v畛 gi叩 tr畛 TRUE, [c但u l畛nh 1] s畉 動畛c th畛c hi畛n, ng動畛c l畉i, [c但u l畛nh 2] s畉 動畛c th畛c hi畛n. V鱈 d畛: int a = 0; if (a == 0) { a = 10; } else { a = 1; } T.T.T.THUY-MMT-CNTT 50
  • 48. C畉u tr炭c re nh叩nh if C叩c to叩n t動 so s叩nh x == y (x is equal to y) x != y (x is not equal to y) x < y (x is less than y) x > y (x is greater than y) x <= y (x is less than or equal to y) x >= y (x is greater than or equal to y) T.T.T.THUY-MMT-CNTT 51
  • 49. C畉u tr炭c re nh叩nh Vi畉t o畉n code X: s畛 nguy棚n N畉u x >2 v x nh畛 h董n 5 th狸 g叩n x=100 N畉u x<=2 ho畉c x>=5 th狸 g叩n x=-1 T.T.T.THUY-MMT-CNTT 52
  • 50. Switch ..case C炭 ph叩p switch (var) { case label1: // statements break; case label2: // statements break; default: // statements break; } T.T.T.THUY-MMT-CNTT 53
  • 51. Switch ..case Vd1: Cho bi畉n c ki畛u char , x ki畛u int N畉u c=a g叩n x =-1 N畉u c=b g叩n x=5 Vd2: Cho bi畉n c ki畛u char, ch但n 1 output pinMode(1,OUTPUT) N畉u c=a ghi i畛n 叩p ra l m畛c High cho ch但n 1 N畉u c=b ghi i畛n 叩p ra l m畛c LOW cho ch但n 1 T.T.T.THUY-MMT-CNTT 54
  • 52. For C炭 ph叩p for (initialization; condition; increment) { // statement(s); } Vd: G叩n gi叩 tr畛 cho bi畉n a l畉n l動畛t t畛 1-200. S畛 d畛ng c畉u tr炭c for Int a,i; For(i=1,i<=200,i++) {a=i;} T.T.T.THUY-MMT-CNTT 55
  • 53. While C炭 ph叩p while (<i畛u ki畛n>) { //c叩c o畉n l畛nh; } T.T.T.THUY-MMT-CNTT 56
  • 54. While V鱈 d畛: a bi畉n int, a bi畉n int G叩n gi叩 tr畛 cho bi畉n a l畉n l動畛t t畛 1-200. S畛 d畛ng c畉u tr炭c while T.T.T.THUY-MMT-CNTT 57
  • 55. Continue b畛 qua m畛t chu k狸 l畉p trong m畛t v嘆ng l畉p (for, do, while) ch畛a n坦 trong 坦. Khi g畛i l畛nh continue, nh畛ng l畛nh sau n坦 v 畛 trong c湛ng v嘆ng l畉p v畛i n坦 s畉 b畛 b畛 qua 畛 th畛c hi畛n nh畛ng chu k狸 l畉p k畉 ti畉p. V鱈 d畛 int a = 0; int i = 0; while (i < 10) { i = i + 1; continue; a = 1; } //a v畉n b畉ng 0 T.T.T.THUY-MMT-CNTT 58
  • 56. continue V鱈 d畛: Th畛c hi畛n ghi gi叩 tr畛 t畛 1 t畛i 200 cho bi畉n a. (b畛 qua gi叩 tr畛 t畛 (40 t畛i 120)) For (i=1, i<=200; i++) { If ( i>=40 && i<=120) { continue; } a=i; } T.T.T.THUY-MMT-CNTT 59
  • 57. return Ch畛c nng: return c坦 nhi畛m v畛 tr畉 v畛 m畛t gi叩 tr畛 (c湛ng ki畛u d畛 li畛u v畛i hm) m n坦 動畛c g畛i! C炭 ph叩p return; return value; // c畉 2 畛u 炭ng Th担ng s畛 value: b畉t k畛 gi叩 tr畛 ho畉c m畛t 畛i t動畛ng. V鱈 d畛 //Hm ki畛m tra gi叩 tr畛 c畛a c畉m bi畉n c坦 h董n m畛t ng動畛ng no 坦 hay kh担ng int checkSensor(){ if (analogRead(0) > 400) { return 1; else{ return 0; } T.T.T.THUY-MMT-CNTT 60
  • 58. goto Ch畛c nng t畉m d畛ng ch動董ng tr狸nh r畛i chuy畛n 畉n m畛t nh達n 達 動畛c 畛nh tr動畛c sau 坦 l畉i ch畉y ti畉p ch動董ng tr狸nh! C炭 ph叩p label: //Khai b叩o m畛t nh達n c坦 t棚n l label goto label; //Ch畉y 畉n nh達n label r畛i sau 坦 th畛c hi畛n ti畉p nh畛ng o畉n ch動董ng tr狸nh sau nh達n 坦 T.T.T.THUY-MMT-CNTT 61
  • 59. Comments - Vi畉t ghi ch炭 trong khi vi畉t x = 5; // 但y l ki畛u "single line comment", s畉 ghi ch炭 t畉t c畉 nh畛ng ch畛 (text, c但u l畛nh,... everything) n畉m sau d畉u // cho 畉n khi h畉t d嘆ng /* C嘆n 但y l "multiline comment" - B畉n b畉t 畉u ghi ch炭 v畛i k箪 t畛 kia. s畉 "ghi ch炭" t畉t c畉 nh畛ng g狸 n畉m trong c畉p d畉u "/ *" v "* /" ( kh担ng c坦 d畉u c叩ch) if (gwb == 0){ // ngoi ra b畉n c坦 th畛 d湛ng single line trong ny. x = 3; /* nh動ng d湛ng m畛t multiline comment kh叩c th狸 s畉 b畛 l畛i c炭 ph叩p ngay */ T.T.T.THUY-MMT-CNTT 62
  • 61. C叩c ki畛u d動 li畛u T.T.T.THUY-MMT-CNTT 64
  • 62. Ki畛u int Tr棚n m畉ch Arduino Uno, n坦 c坦 o畉n gi叩 tr畛 t畛 -32,768 畉n 32,767 (-215 畉n 215-1) (16 bit) C炭 ph叩p Int var=val var: t棚n bi畉n val: gi叩 tr畛 V鱈 d畛 Int ledpin =13 T.T.T.THUY-MMT-CNTT 65
  • 63. Ki畛u float M畛t bi畉n d湛ng ki畛u d畛 li畛u ny c坦 th畛 畉t m畛t gi叩 tr畛 n畉m trong kho畉ng - 3.4028235E+38 畉n 3.4028235E+38. N坦 chi畉m 4 byte b畛 nh畛. C炭 ph叩p float var = val; var: t棚n bi畉n val: gi叩 tr畛 V鱈 d畛 float myfloat; float sensorCalbrate = 1.117; T.T.T.THUY-MMT-CNTT 66
  • 64. Ki畛u d畛 li畛u char bi畛u di畛n cho 1 k箪 t畛. bi畛u di畛n m畛t chu畛i trong ch動董ng tr狸nh Arduino - ki畛u d畛 li畛u String. chi畉m 1 byte b畛 nh畛 Ki畛u char ch畛 nh畉n c叩c gi叩 tr畛 trong b畉ng m達 ASCII. Ki畛u char 動畛c l動u d動畛i d畉ng 1 s畛 nguy棚n byte c坦 s畛 但m (c坦 c叩c gi叩 tr畛 t畛 -127 - 128), Vd: ki畛u char c坦 gi叩 tr畛 l 'A', t動董ng 畛ng 65. v鱈 d畛 T.T.T.THUY-MMT-CNTT 67
  • 65. ki畛u d畛 li畛u Void "void" l m畛t t畛 kh坦a ch畛 d湛ng trong vi畛c khai b叩o m畛t function. Nh畛ng function 動畛c khai b叩o v畛i "void" s畉 kh担ng tr畉 v畛 b畉t k狸 d畛 li畛u no khi 動畛c g畛i. V鱈 d畛 v畛 ki畛u d畛 li畛u Void led = 13; void setup() { pinMode(led, OUTPUT); } void loop(){ blink(); } void blink() { digitalWrite(led, LOW); delay(1000); digitalWrite(led, HIGH); delay(1000); T.T.T.THUY-MMT-CNTT 68
  • 66. Ki畛u d畛 li畛u byte L m畛t ki畛u d畛 li畛u bi畛u di畛n s畛 nguy棚n n畉m trong kho畉ng t畛 0 畉n 255. Chi畉m 1 byte b畛 nh畛 cho m畛i bi畉n mang ki畛u byte V鱈 d畛: byte a = 123; //khai b叩o bi畉n a mang ki畛u byte, c坦 gi叩 tr畛 l 123 T.T.T.THUY-MMT-CNTT 69
  • 67. Ki畛u d畛 li畛u string: string ti畉ng Anh ngh挑a l chu畛i 2 c叩ch 畛 畛nh ngh挑a chu畛i s畛 d畛ng m畉ng k箪 t畛 T.T.T.THUY-MMT-CNTT 70
  • 68. Ki畛u d畛 li畛u string: Khai b叩o chu畛i di char myString[] = "This is the first line" " this is the second line" " etcetera M畉ng chu畛i Khi c畉n ph畉i thao t叩c v畛i m畛t l動畛ng l畛n chu畛i (v鱈 d畛 nh動 trong c叩c 畛ng d畛ng tr畉 l畛i ng動畛i d湛ng b畉ng LCD) - c畉n s畛 d畛ng m畛t m畉ng chu畛i. b畉n ch畉t c畛a chu畛i l m畉ng c叩c k箪 t畛. V狸 v畉y 畛 khai b叩o 1 m畉ng chu畛i b畉n c畉n s畛 d畛ng m畛t m畉ng 2 chi畛u! 畛 khai b叩o m畛t m畉ng : char* myStrings[] = {"I'm number 1", "I'm number 2"}; Ch畛 c畉n th棚m d畉u * sau ch畛 char v trong d畉u ngo畉c vu担ng ph鱈a sau myStrings b畉n c坦 th畛 thi畉t 畉t s畛 l動畛ng ph畉n t畛 t畛i a c畛a m畉ng chu畛i! T.T.T.THUY-MMT-CNTT 71
  • 69. V鱈 d畛 v畛 ki畛u d畛 li畛u string V鱈 d畛 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); } } T.T.T.THUY-MMT-CNTT 72
  • 70. Ki畛u d畛 li畛u array: Array l m畉ng (t畉p h畛p c叩c gi叩 tr畛 c坦 li棚n quan v 動畛c 叩nh d畉u b畉ng nh畛ng ch畛 s畛). Ch鱈nh l Array trong ng担n ng畛 l畉p tr狸nh C. T.T.T.THUY-MMT-CNTT 73
  • 71. Truy c畉p c叩c ph畉n t畛 trong m畉ng Ph畉n t畛 畉u ti棚n trong m畉ng lu担n 動畛c 叩nh ch畛 s畛 0. mySensVals[0] == 2, mySensVals[1] == 4, i畛u ny c坦 ngh挑a r畉ng, vi畛c khai b叩o m畛t m畉ng c坦 t畛i a 10 ph畉n t畛, th狸 ph畉n t畛 cu畛i c畉n (th畛 10) 動畛c 叩nh ch畛 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畛 m畛t gi叩 tr畛 "h棚n xui" n畉m trong kho畉ng gi叩 tr畛 c畛a int V狸 v畉y, h達y ch炭 箪 trong vi畛c truy c畉p 畉n gi叩 tr畛 trong m畉ng, n畉u b畉n mu畛n truy c畉p 畉n ph畉n t畛 cu畛i c湛ng th狸 h達y truy 畉n 畉n 担 gi畛i h畉n c畛a m畉ng - 1. T.T.T.THUY-MMT-CNTT 74
  • 73. Ch但n 1,3,4,5,6,7 output G叩n gi叩 tr畛 i畛n 叩p cao cho c叩c ch但n t畛 1, 3,4,5,6,7. 畛 tr畛 500ms D湛ng m畉ng T.T.T.THUY-MMT-CNTT 76
  • 74. HAM VA TH畛 TU味C T.T.T.THUY-MMT-CNTT 77
  • 75. Hm to叩n h畛c min() tr畉 v畛 gi叩 tr畛 nh畛 nh畉t gi畛a hai bi畉n. C炭 ph叩p : min(x, y); Tham s畛 x: s畛 th畛 nh畉t, m畛i ki畛u d畛 li畛u 畛u 動畛c ch畉p nh畉n. y: s畛 th畛 hai, m畛i ki畛u d畛 li畛u 畛u 動畛c ch畉p nh畉n. Tr畉 v畛 : S畛 nh畛 nh畉t trong 2 s畛. G畛i 箪 Hm min 動畛c d湛ng 畛 l畉y ch畉n tr棚n (kh担ng 畛 gi叩 tr畛 v動畛t qu叩 m畛t m畛c quy 畛nh no 坦). Ch炭 箪 min(a++, 100); // s畉 b畛 l畛i a++; min(a, 100); // 炭ng kh担ng 動畛c 畛 b畉t c畛 ph辿p t鱈nh no b棚n trong. T.T.T.THUY-MMT-CNTT 78
  • 76. Hm th畛i gian delay(): d畛ng ch動董ng tr狸nh trong th畛i gian mili gi但y. C炭 ph叩p: delay(ms) Th担ng s畛 ms: th畛i gian 畛 m畛c mili gi但y. ms c坦 ki畛u d畛 li畛u l unsigned long Delay(1000);// Tr畛 1s Delay(24*60*60*1000); T.T.T.THUY-MMT-CNTT 79
  • 77. V鱈 d畛 v畛 hm th畛i gian delay T.T.T.THUY-MMT-CNTT 80
  • 78. Hm th畛i gian micros(): micros() tr畉 v畛 m畛t s畛 - l th畛i gian (t鱈nh theo micro gi但y) k畛 t畛 l炭c m畉ch Arduino b畉t 畉u ch動董ng tr狸nh Tr畉 v畛 : m畛t s畛 nguy棚n ki畛u unsigned long l th畛i gian k畛 t畛 l炭c th動董ng tr狸nh Arduino 動畛c kh畛i 畛ng. T.T.T.THUY-MMT-CNTT 81
  • 79. hm th畛i gian millis() tr畉 v畛 m畛t s畛 - l th畛i gian (t鱈nh theo mili gi但y) k畛 t畛 l炭c m畉ch Arduino b畉t 畉u ch動董ng tr狸nh c畛a b畉n. N坦 s畉 trn s畛 v quay s畛 0 (sau 坦 ti畉p t畛c tng) sau 50 ngy. Tr畉 v畛 : M畛t s畛 nguy棚n ki畛u unsigned long l th畛i gian k畛 t畛 l炭c th動董ng tr狸nh Arduino 動畛c kh畛i 畛ng T.T.T.THUY-MMT-CNTT 82
  • 80. V鱈 d畛 v畛 hm th畛i gian millis() unsigned long time; void setup(){ Serial.begin(9600); } void loop(){ Serial.print("Time: "); time = millis(); // in ra th畛i gian k畛 t畛 l炭c ch動董ng tr狸nh 動畛c b畉t 畉u Serial.println(time); // 畛i 1 gi但y tr動畛c khi ti畉p t畛c in delay(1000); } T.T.T.THUY-MMT-CNTT 83
  • 81. L畛nh digitalRead () C炭 ph叩p : digitalRead(pin) Th担ng s畛: pin (ch但n) : gi叩 tr畛 c畛a digital mu畛n 畛c Tr畉 v畛 gi叩 tr畛 HIGH ho畉c LOW T.T.T.THUY-MMT-CNTT 84
  • 82. V鱈 d畛 v畛 l畛nh digitalRead(): 竪n led t畉i pin 13 nh畉n gi叩 tr畛 nh動 gi叩 tr畛 t畉i pin 2 int ledPin = 13; // ch但n led 13 int inPin = 2; // button t畉i ch但n 2 int val = 0; // bi畉n "val" d湛ng 畛 l動u t鱈n hi畛u t畛 digitalRead void setup() { pinMode(ledPin, OUTPUT); // 畉t pin digital 13 l output pinMode(inPin, INPUT); // 畉t pin digital 2 l input } void loop() { val = digitalRead(inPin); // 畛c t鱈n hi畛u t畛 digital2 digitalWrite(ledPin, val); // thay 担i gi叩 tr畛 c畛a 竪n LED l gi叩 tr畛 c畛a digital 2 } T.T.T.THUY-MMT-CNTT 85
  • 83. Bt: 畛c gi叩 tr畛 i畛n 叩p tr棚n ch但n s畛 5. N畉u gi叩 tr畛 c畛a n坦 l High th狸 b畉t led n畛i v畛i ch但n 13. N畉u gi叩 tr畛 n坦 l Low th狸 t畉t led n畛i v畛i ch但n 13 G畛i 箪: T.T.T.THUY-MMT-CNTT 86
  • 84. L畛nh digitalWrite(): Xu畉t t鱈n hi畛u ra c叩c ch但n digital c坦 2 gi叩 tr畛 l HIGH ho畉c l LOW. N畉u m畛t pin 動畛c thi畉t 畉t l OUTPUT b畛i pinMode(). V d湛ng digitalWrite 畛 xu畉t t鱈n hi畛u th狸 i畛n th畉 t畉i ch但n ny s畉 l 5V (ho畉c l 3,3 V tr棚n m畉ch 3,3 V) n畉u 動畛c xu畉t t鱈n hi畛u l HIGH, v 0V n畉u 動畛c xu畉t t鱈n hi畛u l LOW. N畉u m畛t pin 動畛c thi畉t 畉t l INPUT b畛i pinMode(). L炭c ny digitalWrite s畉 b畉t (HIGH) ho畉c t畉t (LOW) h畛 th畛ng i畛n tr畛 pullup n畛i b畛. c炭 ph叩p: digitalWrite(pin,value) Th担ng s畛 pin: S畛 c畛a ch但n digital m b畉n mu畛n thi畉t 畉t value: HIGH ho畉c LOW T.T.T.THUY-MMT-CNTT 87
  • 85. V鱈 d畛 v畛 l畛nh digitalWrite() int ledPin = 13; // 竪n LED 動畛c k畉t n畛i v畛i ch但n digital 13 void setup() { pinMode(ledPin, OUTPUT); // thi畉t 畉t ch但n ledPin l OUTPUT } void loop() { digitalWrite(ledPin, HIGH); // b畉t 竪n led delay(1000); // d畛ng trong 1 gi但y digitalWrite(ledPin, LOW); // t畉t 竪n led delay(1000); // d畛ng trong 1 gi但y } T.T.T.THUY-MMT-CNTT 88
  • 86. L畛nh pinMode(): C畉u h狸nh m畛t pin (ch但n) quy 畛nh ho畉t 畛ng nh動 l m畛t 畉u vo (INPUT) ho畉c 畉u ra (OUTPUT). c炭 ph叩p: pinMode ( pin, mode) Th担ng s畛 l畛nh: pin : S畛 c畛a ch但n digital m b畉n mu畛n thi畉t 畉t mode : c坦 th畛 l INPUT, OUTPUT ho畉c INPUT_PULLUP. T.T.T.THUY-MMT-CNTT 89
  • 87. Hm nh畉p xu畉t analogRead(): 畛c gi叩 tr畛 i畛n 叩p t畛 m畛t ch但n Analog . Tr棚n m畉ch Arduino UNO c坦 6 ch但n Analog In, 動畛c k鱈 hi畛u t畛 A0 畉n A5. Tr棚n c叩c m畉ch kh叩c c滴ng c坦 nh畛ng ch但n t動董ng t畛 nh動 v畉y v畛i t棚n ch畛 "A" 畛ng 畉u, sau 坦 l s畛 hi畛u c畛a ch但n. analogRead() lu担n tr畉 v畛 1 s畛 nguy棚n n畉m trong kho畉ng t畛 0 畉n 1023 t動董ng 畛ng v畛i thang i畛n 叩p (m畉c 畛nh) t畛 0 畉n 5V. B畉n c坦 th畛 i畛u ch畛nh thang i畛n 叩p ny b畉ng hm analogReference(). Hm analogRead() c畉n 100 micro gi但y 畛 th畛c hi畛n. T.T.T.THUY-MMT-CNTT 90
  • 88. Hm nh畉p xu畉t analogRead(): C炭 ph叩p : analogRead(ch但n 畛c i畛n 叩p); V鱈 d畛 int voltage = analogRead(A0); A0 l ch但n d湛ng 畛 畛c gi叩 tr畛 i畛n 叩p. T.T.T.THUY-MMT-CNTT 91
  • 89. Hm nh畉p xu畉t analogWrite(): analogWrite() xu畉t ra t畛 m畛t ch但n tr棚n m畉ch Arduino m畛t m畛c t鱈n hi畛u analog (ph叩t xung PWM). Ng動畛i ta th動畛ng i畛u khi畛n m畛c s叩ng t畛i c畛a 竪n LED hay h動畛ng quay c畛a 畛ng c董 servo b畉ng c叩ch ph叩t xung PWM nh動 th畉 ny. Note: kh担ng c畉n g畛i hm pinMode() 畛 畉t ch畉 畛 OUTPUT cho ch但n s畉 d湛ng 畛 ph叩t xung PWM tr棚n m畉ch Arduino C炭 ph叩p analogWrite([ch但n ph叩t xung PWM], [gi叩 tr畛 xung PWM]); Gi叩 tr畛 m畛c xung PWM n畉m trong kho畉ng t畛 0 畉n 255, t動董ng 畛ng v畛i m畛c duty cycle t畛 0% 畉n 100% T.T.T.THUY-MMT-CNTT 92
  • 90. V鱈 d畛 Hm nh畉p xu畉t analogWrite(): int led = 6; void setup() { } void loop() { for (int i = 0; i <= 255; i++) { analogWrite(led,i); delay(20); } } T.T.T.THUY-MMT-CNTT 93
  • 91. M PH畛NG ARDUINO TRN PROTEUS T.T.T.THUY-MMT-CNTT 94
  • 92. Ci 畉t Proteus, th動 vi畛n arduino Website ch鱈nh th畛c: https://www.labcenter.com/ Ci 畉t th動 vi畛n Arduino cho Proteus T.T.T.THUY-MMT-CNTT 95
  • 93. M担 phong T畉o s董 畛 m畉ch N畉p file Hex Ch畉y m担 ph畛ng T.T.T.THUY-MMT-CNTT 96
  • 94. BT1: Nh畉p nh叩y LED T.T.T.THUY-MMT-CNTT 97 Vd1 :T畉o s董 畛 m畉ch m担 ph畛ng v鱈 d畛 nh畉p nh叩y Led
  • 95. BT2: Nh畉n n炭t led s叩ng. N炭t nh畉n : Button Nh畉n n炭t led s叩ng T.T.T.THUY-MMT-CNTT 98
  • 96. BT3: Led s叩ng t畛 led1 t畛i led 5 T.T.T.THUY-MMT-CNTT 99
  • 97. BT4: T.T.T.THUY-MMT-CNTT 100 Y棚u c畉u: N炭t b畉m th狸 l畉n l動畛t D1, D2, D3 s叩ng. Tr畛 v畛i th畛i gian 10s
  • 98. Bt5: LED s叩ng d畉n T.T.T.THUY-MMT-CNTT 101 Y棚u c畉u: C畉p i畛n 叩p t動董ng 畛ng t畛 0,5,10,..,255
  • 99. Giao ti畉p LCD 16x2 - Vi畉t ch動董ng tr狸nh hi畛n th畛 t棚n c畛a b畉n ra mn h狸nh - H動畛ng d畉n k畉t n畛i v畛i LCD 16x2 nh動 h狸nh tr棚n T.T.T.THUY-MMT-CNTT 102 Bt6: k畉t n畛i v畛i LCD