Tải bản đầy đủ (.pdf) (312 trang)

Arduino tu hoc a den z cho người mới bắt đầu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (14.95 MB, 312 trang )

1

EBOOKS TỰ HỌC
LẬP TRÌNH
ARDUINO DÀNH
CHO NGƯỜI MỚI
BẮT ĐẦU TỪ
A ĐẾN Z

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


2

MỤC LỤC
A. GIỚI THIỆU VỀ ARDUINO .................................................................................. 15
I.

ARDUINO LÀ GÌ? ................................................................................................... 17

II. SƠ LƯỢC VỀ ARDUINO UNO R3 ........................................................................ 21
1. Một số thông số kỹ thuật như sau : ...................................................................... 22
2. Sơ đồ chân của Arduino Uno................................................................................ 23
III. SƠ LƯỢC BỘ KIT TỰ HỌC ARDUINO .............................................................. 25
1. Giới thiệu sơ lược về KIT TỰ HỌC: ................................................................... 25


2. Những lợi ích của Kit Tự Học Arduino: ............................................................. 25
3. Mục đích của bộ KIT TỰ HỌC: .......................................................................... 26
4. Một số bộ KIT TỰ HỌC ARDUINO: ................................................................ 27
IV. CÀI ĐẶT PHẦN MỀN IDE VÀ DRIVER ............................................................. 27
1. Cài đặt phần mền Arduino IDE: ......................................................................... 27
a.

Cài Java Runtime Environment (JRE). ................................................................ 27

b. Cài đặt Arduino IDE: ........................................................................................... 28
2. Cài đặt Driver đối với Arduino Uno, mê ga,…: ................................................. 30
a.

Cài đặt Driver: ...................................................................................................... 30

b. Nạp chương trình cho Arduino Uno (mega tương tự): ........................................ 32
3. Cài đặt Driver đối với Nano: ................................................................................ 34
a.

Giới thiệu board arduino Nano. ........................................................................... 34

b. Cài đặt driver cho Arduino Nano ......................................................................... 34
c.

Thông số kỹ thuật Arduino Nano: ....................................................................... 35

d. Nạp chương trình cho Arduino Nano: ................................................................. 36
B. NGÔN NGỮ LẬP TRÌNH ARDUINO ..................................................................... 40
I.


HÀM CHỨC NĂNG (FUNCTION): ...................................................................... 40
1. Hàm nhập xuất Digital I/O: .................................................................................. 41
a.

digitalWrite():....................................................................................................... 41

b. digitalRead(): ....................................................................................................... 42
c.

pinMode(): ........................................................................................................... 43

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


3

2. Hàm nhập xuất Analog I/O: ................................................................................. 45
a.

analogRead() ........................................................................................................ 45

b. analogReference () ............................................................................................... 46
c.


analogWrite() ....................................................................................................... 48

d. analogReadResolution ():..................................................................................... 49
e.

analogWriteResolution () ..................................................................................... 51

3. Hàm nhập xuất nâng cao I/O: ........................................................................... 53
a.

noTone(); .............................................................................................................. 53

b. pulseIn () .............................................................................................................. 53
c.

shiftIn(); ............................................................................................................... 54

d. shiftOut(); ............................................................................................................. 55
e.

tone(); ................................................................................................................... 58

4. Hàm thời gian: ....................................................................................................... 59
a.

delay() .................................................................................................................. 59

b. delayMicroseconds () ........................................................................................... 60
c.


micros() ................................................................................................................ 61

d. millis(); ................................................................................................................. 62
5. Hàm toán học: ........................................................................................................ 64
a.

abs() ...................................................................................................................... 64

b. constrain() ............................................................................................................ 64
c.

map() .................................................................................................................... 65

d. max() .................................................................................................................... 66
e.

min() ..................................................................................................................... 66

f.

sq() ....................................................................................................................... 67

g. sqrt() ..................................................................................................................... 67
6. Hàm lượng giác: .................................................................................................... 68
a.

cos() ...................................................................................................................... 68

b. sin() ...................................................................................................................... 68
c.


tan() ...................................................................................................................... 69

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


4

7. Hàm số ngẫu nhiên: ............................................................................................... 69
a.

random() ............................................................................................................... 69

b. randomSeed() ....................................................................................................... 70
8. Bits và Bytes: .......................................................................................................... 72
a.

Bit() ...................................................................................................................... 72

b. bitClear() .............................................................................................................. 73
c.

bitRead()............................................................................................................... 73


d. bitWrite() .............................................................................................................. 74
e.

bitSet() .................................................................................................................. 75

f.

lowByte() ............................................................................................................. 75

g. highByte() ............................................................................................................ 76
9. Hàm Ngắt (interrupt) ............................................................................................ 77
a.

interrupts() ............................................................................................................ 77

b. noInterrupts() ....................................................................................................... 78
10. Hàm Ngắt Ngoài: ................................................................................................... 79
a.

attachInterrupt() ................................................................................................... 79

b. detachInterrupt()................................................................................................... 81
11. Hàm Giao tiếp ........................................................................................................ 83
a.

Serial() .................................................................................................................. 83

12. Xử lý chuỗi: ............................................................................................................ 84
a.


Hàm isAlpha() ...................................................................................................... 84

b. Hàm isAscii() ....................................................................................................... 85
c.

Hàm isWhitespace() ............................................................................................. 86

d. Hàm isPrintable(): ................................................................................................ 87
e. Hàm isUpperCase(): ............................................................................................... 88
f. Hàm isHexadecimalDigit().................................................................................... 89
g. tolower: ................................................................................................................. 90
h. Hàm toupper() ........................................................................................................ 90
i. Hàm isLowerCase() ................................................................................................. 91
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


5

II. GIÁ TRỊ : .................................................................................................................. 92
1. Hằng số ................................................................................................................... 93
a.

Hằng số thực: ....................................................................................................... 93


b. Hằng số nguyên .................................................................................................... 93
c.

HIGH .................................................................................................................... 96

d. LOW..................................................................................................................... 97
e.

INPUT: ................................................................................................................. 98

f.

INPUT_PULLUP ................................................................................................. 98

g. OUTPUT .............................................................................................................. 99
h. LED_BUILTIN .................................................................................................... 99
i.

true ....................................................................................................................... 99

j.

false .................................................................................................................... 100

2. Kiểu dữ liệu: ......................................................................................................... 100
a.

void..................................................................................................................... 100

b. boolean ............................................................................................................... 101

c.

int: ...................................................................................................................... 102

d. unsigned int ........................................................................................................ 103
e.

char ..................................................................................................................... 104

f.

unsigned char ..................................................................................................... 104

g. byte ..................................................................................................................... 104
h. word ................................................................................................................... 105
i.

long..................................................................................................................... 105

j.

unsigned long ..................................................................................................... 105

k. short .................................................................................................................... 106
l.
m.

float .................................................................................................................... 106
double ............................................................................................................. 107


n. array ................................................................................................................... 107
o. string................................................................................................................... 109
3. Chuyển đổi kiểu dữ liệu ...................................................................................... 111
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


6

a.

char() .................................................................................................................. 111

b. byte() .................................................................................................................. 111
c.

int() ..................................................................................................................... 112

d. word() ................................................................................................................. 112
e.

long() .................................................................................................................. 113

f.


float() .................................................................................................................. 113

4. Biến hằng, biến tĩnh: ......................................................................................... 114
a.

const - biến hằng ................................................................................................ 114

b. static - biến tĩnh .................................................................................................. 114
III. CẤU TRÚC ( STRUCTURE): ............................................................................... 116
1. Cấu trúc tổng thể:................................................................................................ 116
a.

setup() và loop() ................................................................................................. 116

2. Toán tử logic: ....................................................................................................... 117
3. Các toán tử so sánh. ............................................................................................ 117
4. Cấu trúc điều khiển:............................................................................................ 118
a.

Câu lệnh if…..else .............................................................................................. 118

b. switch / case ....................................................................................................... 119
c.

for ....................................................................................................................... 120

d. while ................................................................................................................... 122
e.

break ................................................................................................................... 122


f.

continue .............................................................................................................. 123

g. return .................................................................................................................. 124
h. goto..................................................................................................................... 124
5. Toán tử số học:..................................................................................................... 125
a.

Phép gán(=) ........................................................................................................ 125

b. Các phép cộng, trừ, nhân, chia trong Arduino ................................................... 125
c.

Phép chia lấy dư%.............................................................................................. 126

6. Cú pháp mở rộng ................................................................................................. 127
a.

dấu chấm phẩy ( ; ) ............................................................................................. 127

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802



7

b. {} dấu ngoặc nhọn ............................................................................................. 127
c.

Comments - Viết ghi chú trong khi viết code Arduino...................................... 129

d. #define ................................................................................................................ 130
e.

#include .............................................................................................................. 130

7. Phép toán hợp nhất ............................................................................................. 131
a.

Cộng một 1 đơn vị (++) / trừ một 1 đơn vị (--) .................................................. 131

b. Các phép toán rút gọn += , -= , *= , /= .............................................................. 132
C. CẤU TRÚC CHƯƠNG TRÌNH ARDUINO VÀ BÀI HỌC LẬP TRÌNH TỪ CƠ
BẢN ĐẾN NÂNG CAO.................................................................................................. 133
I. CẤU TRÚC CHƯƠNG TRÌNH ARDUINO VÀ CÁCH THÊM THƯ VIỆN
VÀO IDE. ....................................................................................................................... 133
1. Cấu trúc chương trình Arduino: ....................................................................... 133
2. Hướng dẫn add thư viện cho Arduino IDE: ..................................................... 134
II. BÀI HỌC LẬP TRÌNH ARDUINO TỪ CƠ BẢN ĐẾN NÂNG CAO. ............. 139
1. Điều khiển LED đơn sáng nhấp nháy................................................................ 139
Nội dung chính.......................................................................................................... 139
Phần cứng ( Trên kit đã tích hợp sẵn chỉ cần nối dây là được) ................................ 139
Lắp mạch................................................................................................................... 139

Hình ảnh thực tế:....................................................................................................... 140
Code lập trình và giải thích ....................................................................................... 140
2. Thay đổi độ sáng của LED đơn. ......................................................................... 142
Nội dung chính: ........................................................................................................ 142
Phần cứng ( được tích hợp sẵn trên kit) nếu không có các bạn chuẩn bị: ................ 142
Lắp mạch................................................................................................................... 142
Hình ảnh thực tế:....................................................................................................... 143
Chương trình: ............................................................................................................ 143
3. Điều khiển đèn giao thông. ................................................................................. 144
Phần cứng cần chuẩn bị ( nếu sử dụng kit thì được tích hợp sẵn) ............................ 144
Lắp mạch: ................................................................................................................. 144
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


8

Hình ảnh thực tế:....................................................................................................... 145
Code lập trình: .......................................................................................................... 145
4. Điều khiển Rơ le 5Vdc 1, 2 kênh mức cao. ........................................................ 147
Giới thiệu thiệu chung: ............................................................................................. 147
Thông số kỹ thuật: .................................................................................................... 147
Phần cứng chuẩn bị: .................................................................................................. 147
Lắp mạch: ................................................................................................................. 148
Code chương trình: ................................................................................................... 148

Hình ảnh thực tế:....................................................................................................... 149
5. Điều khiển Công tắc tơ 3 pha: ............................................................................ 149
Giới thiệu công tắc tơ 3 pha: ..................................................................................... 149
Phần cứng chuẩn bị: .................................................................................................. 151
Lắp mạch: ................................................................................................................. 152
Code chương trình: ................................................................................................... 152
6. Đọc tín hiệu nút nhấn hiển thị lên serial monitor............................................. 153
Giới thiệu về nút nhấn: ............................................................................................. 153
Phần cứng chuẩn bị: .................................................................................................. 155
Sơ đồ nguyên lí: ........................................................................................................ 156
Lắp mạch( nếu các bạn đã có kit học thì đã lắp sẵn nút nhấn): ................................ 156
Hình ảnh thực tế:....................................................................................................... 157
Lập trình:................................................................................................................... 157
7. Lưu giá trị nút nhấn. ........................................................................................... 159
Phần cứng chuẩn bị: .................................................................................................. 159
Lắp mạch( nếu các bạn đã có kit học thì đã lắp sẵn nút nhấn): ................................ 159
Hình ảnh thực tế:....................................................................................................... 160
Lập trình:................................................................................................................... 160
8. Bật tắt LED khi nhấn nút nhấn. ........................................................................ 162
Phần cứng chuẩn bị: .................................................................................................. 162
Lắp mạch( nếu các bạn đã có kit học thì đã lắp sẵn nút nhấn): ................................ 162
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802



9

Hình ảnh thực tế:....................................................................................................... 163
Lập trình:................................................................................................................... 163
9. Bật tắt rơ le khi nhấn nút nhấn. ......................................................................... 165
Phần cứng chuẩn bị: .................................................................................................. 165
Lắp mạch( nếu các bạn đã có kit học thì đã lắp sẵn nút nhấn): ................................ 165
Hình ảnh thực tế:....................................................................................................... 166
Lập trình:................................................................................................................... 166
10. Lập trình hiển thị led 7 đoạn đơn: .................................................................... 168
Giới thiệu led 7 đoạn đơn: ....................................................................................... 168
Phần cứng chuẩn bị: .................................................................................................. 169
Lắp mạch( nếu các bạn đã có kit học thì đã lắp sẵn nút nhấn): ................................ 170
Lập trình:................................................................................................................... 170
Hình ảnh thực tế:....................................................................................................... 172
11. Hiển thị chữ cái, số ra module 4 led 7 đoạn. ..................................................... 173
Giới thiệu module 4 led 7 đoạn: ............................................................................... 173
Phần cứng chuẩn bị: .................................................................................................. 174
Lắp mạch( nếu các bạn đã có kit học thì đã lắp sẵn): ............................................... 174
Hình ảnh thực tế:....................................................................................................... 175
Lập trình:................................................................................................................... 175
12. Lập trình hiển thị module led ma trận 8x8. ...................................................... 177
Giới thiệu module ma trận 8x8: ................................................................................ 177
Phần cứng chuẩn bị: ( tất cả được tích hợp trên Kit Tự Học)................................... 177
Lắp mạch( nếu các bạn đã có kit học thì đã lắp sẵn): ............................................... 178
Hình ảnh thực tế:....................................................................................................... 178
Lập trình:................................................................................................................... 178
13. Hiển thị chữ lên màn hình LCD16x02. .............................................................. 183
Giới thiệu module LCD 16X02: ............................................................................... 183
Phần cứng chuẩn bị: ( tất cả được tích hợp trên Kit Tự Học)................................... 183

Lắp mạch( nếu các bạn đã có kit học thì chỉ việc nối dây): ..................................... 184
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


10

Hình ảnh thực tế:....................................................................................................... 185
Lập trình:................................................................................................................... 185
14. Kết hợp Module I2C với LCD16x02. ................................................................. 185
Giới thiệu module I2C cho LCD: ............................................................................. 185
Phần cứng chuẩn bị: ( tất cả được tích hợp trên Kit Tự Học)................................... 186
Lắp mạch( nếu các bạn đã có kit học thì chỉ việc nối dây): ..................................... 186
Lập trình:................................................................................................................... 187
Hình ảnh thực tế:....................................................................................................... 187
15. Đọc giá trị cảm biến quang trở hiển thị lên serial monitor. ............................ 188
Giới thiệu cảm biến quang trở: ................................................................................. 188
Phần cứng chuẩn bị: (được tích hợp trên Kit Tự Học) ............................................. 189
Lắp mạch( nếu các bạn đã có kit học thì chỉ việc nối dây): ..................................... 189
Hình ảnh thực tế:....................................................................................................... 189
Lập trình:................................................................................................................... 190
16. Đọc gái trị CB nhiệt độ LM35 hiển thị lên serial monitor. .............................. 191
Giới thiệu cảm biến nhiệt độ LM35: ........................................................................ 191
Phần cứng chuẩn bị: .................................................................................................. 192
Lắp mạch: ................................................................................................................. 192

Hình ảnh thực tế:....................................................................................................... 192
Lập trình:................................................................................................................... 192
17. Đọc giá trị CB nhiệt độ DS18B20 hiển thị lên serial monitor. ........................ 193
Giới thiệu cảm biến nhiệt độ DS 18B20: .................................................................. 193
Phần cứng chuẩn bị: .................................................................................................. 194
Lắp mạch: ................................................................................................................. 195
Lập trình:................................................................................................................... 195
18. Hiển thị giá trị CB nhiệt độ LM35 lên mà hình LCD. ..................................... 197
Phần cứng chuẩn bị: .................................................................................................. 197
Lắp mạch : ................................................................................................................ 197
Lập trình :.................................................................................................................. 197
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


11

Hình ảnh thực tế:....................................................................................................... 198
19. Đọc giá trị cảm biến mưa hiển thị lên serial monitor. ..................................... 199
Giới thiệu cảm biến mưa: ......................................................................................... 199
Phần cứng chuẩn bị: .................................................................................................. 200
Lắp mạch : ................................................................................................................ 200
Lập trình :.................................................................................................................. 200
Hình ảnh thực tế:....................................................................................................... 201
20. Đọc giá trị CB siêu âm SRF 05 hiển thị lên serial monitor. ............................ 202

Giới thiệu cảm biến siêu âm SRF05: ........................................................................ 202
Phần cứng chuẩn bị: .................................................................................................. 203
Lắp mạch : ................................................................................................................ 203
Hình ảnh thực tế:....................................................................................................... 204
Lập trình :.................................................................................................................. 205
Kết quả hiển thị lên Serial monitor : ......................................................................... 206
21. Đọc giá trị cảm biến độ ẩm đất hiển thị lên LCD16x02. .................................. 206
Giới thiệu cảm biến độ ẩm đất: ................................................................................. 206
Thông số kỹ thuật: .................................................................................................... 207
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn) .......................................................... 207
Lắp mạch : ................................................................................................................ 207
Hình ảnh thực tế:....................................................................................................... 208
Lập trình :.................................................................................................................. 208
Kết quả hiển thị lên Serial monitor : ......................................................................... 209
22. Đọc giá trị CB dò line hiển thị lên serial monitor và LCD. ............................. 209
Giới thiệu cảm biến dò line: ..................................................................................... 209
Thông số kỹ thuật: .................................................................................................... 210
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn) .......................................................... 210
Lắp mạch : ................................................................................................................ 211
Lập trình :.................................................................................................................. 211
Hình ảnh thực tế:....................................................................................................... 213
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802



12

Kết quả hiển thị lên Serial monitor : ......................................................................... 213
23. Đọc giá trị điện áp khi điều chỉnh biến trở hiển thị lên serial ......................... 214
Giới thiệu về biến trở: ............................................................................................... 214
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn biến trở 10K) ..................................... 214
Lắp mạch : ................................................................................................................ 214
Lập trình :.................................................................................................................. 215
Hình ảnh thực tế:....................................................................................................... 216
Kết quả hiển thị lên Serial monitor : ......................................................................... 216
24. Hiển thị thời gian thực (DS1307) lên LCD và serial monitor.......................... 217
Giới thiệu về module DS1307: ................................................................................. 217
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn biến trở 10K) ..................................... 218
Lắp mạch : ................................................................................................................ 218
Lập trình :.................................................................................................................. 219
Hình ảnh thực tế:....................................................................................................... 221
Kết quả hiển thị lên Serial monitor : ......................................................................... 221
25. Hiển thị tốc độ đo bằng Encoder quay lên LCD............................................... 222
Giới thiệu về module Encoder quay: ........................................................................ 222
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn ) ......................................................... 222
Thông số kỹ thuật: .................................................................................................... 222
Lắp mạch: ................................................................................................................. 225
Lập trình :.................................................................................................................. 225
Hình ảnh thực tế:....................................................................................................... 228
26. Cài đặt và hiển thị nhiệt độ, độ ẩm (DTH11).................................................... 228
Giới thiệu về giao tiếp I2C: ...................................................................................... 228
Thông số kỹ thuật DHT11: ....................................................................................... 229
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn ). ........................................................ 229
Lập trình :.................................................................................................................. 231
Hình ảnh thực tế:....................................................................................................... 233

27. Điều khiển động cơ servo SG90: ........................................................................ 234
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


13

Giới thiệu về động cơ servo SG90:........................................................................... 234
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn ). ........................................................ 234
Lắp mạch: ................................................................................................................. 235
Lập trình :.................................................................................................................. 235
Hình ảnh thực tế:....................................................................................................... 236
28. Điều khiển động cơ bước stepper 28BYJ-48: .................................................. 237
Giới thiệu về động cơ bước stepper 28BYJ-48: ...................................................... 237
Thông số kỹ thuật: .................................................................................................... 237
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn ). ........................................................ 237
Lắp mạch: ................................................................................................................. 238
Lập trình :.................................................................................................................. 238
Hình ảnh thực tế:....................................................................................................... 240
29. Bật tắt LED bằng Remote hồng ngoại: ............................................................. 241
Giới thiệu về Remote hồng ngoại: ............................................................................ 241
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn ). ........................................................ 242
Mắt thu hồng ngoại: .................................................................................................. 242
Lắp mạch: ................................................................................................................. 243
Lập trình:................................................................................................................... 243

Hình ảnh thực tế:....................................................................................................... 246
30. Điều khiển động cơ bằng module L298n:.......................................................... 246
Giới thiệu về Module L298: ..................................................................................... 246
Thông số kỹ thuật: .................................................................................................... 247
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn ). ........................................................ 247
Lắp mạch................................................................................................................... 247
Lập trình:................................................................................................................... 248
31. Lập trình module Wifi ESP8266 V1 bằng Uno R3: ......................................... 250
Giới thiệu về module Wifi ESP8266 V1: ................................................................. 250
Thông số kỹ thuật: .................................................................................................... 250
Phần cứng chuẩn bị: (bộ kit đã tích hợp sẵn ). ........................................................ 251
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


14

Lắp mạch: ................................................................................................................. 251
Lập trình :.................................................................................................................. 252
Hình ảnh thực tế:....................................................................................................... 254

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn


Email:

hotline: 01695 304 802


15

A. GIỚI THIỆU VỀ ARDUINO
Điều khiển thứ gì đó một cách tự động, ngoài việc phải hoàn chỉnh kết cấu
“phần cứng”, ta cần phải có mạch điện điều khiển và phải lập trình để mạch điện
đó hoạt động theo ý mình. Lập trình thì không khó học, chỉ khó ở giai đoạn thiết kế
mạch điều khiển là khó khăn nhất đối với những ai chưa biết về làm mạch thì càng
khó hơn ( còn được gọi thiết kế truyền thống). Và phải trải qua rất nhiều công đoạn
như sau:

Tuy nhiên có một thứ làm cho mọi chuyện trở nên rất dễ dàng, có tên gọi là
“Arduino”. Và trải qua các công đoạn ngắn gọn như sau:

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


16

So sánh các mô hình điều khiển được sử dụng bằng phương pháp thiết kế

“truyền thống” và từ thiết kế bằng “Arduino”.

Phương pháp Truyền Thống

Phương pháp dùng Arduino

Kỹ Năng

• Hiểu biết chuyên sâu về • Chủ yếu tập trung tìm hiểu
linh kiện điện tử.
kết nối hệ thống, không cần
quan tâm đến việc vẽ mạch,
• Biết vẽ mạch, rửa mạch, in
làm mạch in,…
mạch,…
• Biết lập trình ( việc lập trình
• Biết lập trình ( việc lập
dễ dàng do thư viện có sẵn
trình khó khăn do module
của các module được chuẩn
tự thiết kế không có chuẩn
hóa).
hóa ).

Đối Tượng

• Chỉ dành cho những giới • Dành cho giới chuyên ngành,
chuyên ngành điện - điện
không chuyên, thậm chí là
tử.

học sinh cấp 1, 2,..

Thời Gian

• Thời gian hoàn thành rất • Thời gian hoàn thành rất
nhanh.
lâu 1 tuần, có thể từ 1 đến
2 tháng.
• Thời gian chủ yếu tập trung
• Thời gian tập trung chủ yếu
vào hệ thống nên có thể làm
vào làm mạch, ít thời gian
được những hệ thống phức
tạp hơn.
để phát triển quy mô hệ
thống.

Phát Triển

• Phát triển được kỹ năng • Phát triển được tư duy lập
trình hệ thống.
thiết kế mạch, in mạch,
hàn,…

Chính vì sự tiện lợi như vậy, Arduino đã trở thành một hiện tượng trên toàn thế
giới, nếu bạn lên mạng tìm kiếm và gõ vào Arduino, bạn sẽ thấy hàng ngàn ứng
dụng khác nhau từ khắp mọi nơi trên thế giới sử dụng Arduino. Từ đó ta có thể
thấy được tầm ảnh hưởng của Arduino đến nhường nào.

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino


Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


17

I.

ARDUINO LÀ GÌ?

Arduino không phải là cái gì cao siêu hết, chỉ là sử dụng chip AVR với những thứ
mà bạn sẽ cần đến như mạch giao tiếp (USB sang UART), mạch nguồn, có sẵn các
chân vào/ra để giao tiếp với cảm biến và các thiết bị ngoại vi.
Arduino rất đơn giản, dễ sử dụng, dễ code (ngôn ngữ tương tự như C/C++). Một
trong những cái hay nhất của Arduino là nó hỗ trợ rất nhiều thư viện, rất tiện lợi.

Nếu bạn muốn điều khiển động cơ, sẽ có các mạch công suất tương thích hoàn toàn
với Arduino. Nếu bạn muốn điều khiển qua mạng Internet, cũng có một mạch
Ethernet/Wifi tương thích hoàn toàn với Arduino. Và còn rất nhiều thứ khác nữa.

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:


hotline: 01695 304 802


18

Arduino cũng có rất nhiều kích thước khác nhau, phù hợp cho nhiều mục đích sử
dụng. Thông dụng nhất hiện nay là Arduino Uno nhỏ gọn dành cho những ai đang
bắt đầu học về arduino.

II. ARDUINO LÀM ĐƯỢC NHỮNG GÌ?
Một số các dự án thú vị đã được thực hiện bằng Arduino.
Xe điều khiển:

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


19

Mô hình máy bay 4 cánh:

Máy in 3D:

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino


Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


20

Nhà thông minh:

Hệ thống tưới cây thông minh.

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


21

Hiệu ứng LED:

III. SƠ LƯỢC VỀ ARDUINO UNO R3
Board Arduino Uno nhỏ gọn và đầy đủ tính năng phù hợp cho những ai mới bắt
đầu học, Arduino Uno sử dụng chip Atmega328. Nó có 14 chân digital I/O, 6 chân
đầu vào (input) analog, thạch anh dao động 16Mhz.


Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


22

1. Một số thông số kỹ thuật như sau :
Chip

ATmega328

Điện áp cấp nguồn

5V

Điện áp đầu vào (input) (kiến

7-12V

nghị )
Điện áp đầu vào(giới hạn)

6-20V


Số chân Digital I/O

14 (có 6 chân điều chế độ rộng xung PWM)

Số chân Analog (Input )

6

DC Current per I/O Pin

40 mA

DC Current for 3.3V Pin

50 mA

Flash Memory

32KB (ATmega328) với 0.5KB sử dụng
bootloader

SRAM

2 KB (ATmega328)

EEPROM

1 KB (ATmega328)

Xung nhịp


16 MHz

Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


23

2. Sơ đồ chân của Arduino Uno.

• USB (1).
Arduino sử dụng cáp USB để giao tiếp với máy tính. Thông qua cáp USB chúng ta
có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn là nguồn
cho Arduino.
• Nguồn ( 2 và 3 ).
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoài
thông qua jack cắm 2.1mm ( cực dương ở giửa ) hoặc có thể sử dụng 2 chân Vin và
GND để cấp nguồn cho Arduino.
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt. Chúng ta có thể
cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mực điện áp lớn hơn 5 volt. Và nếu sử
dụng nguồn lớn hơn 12 volt thì sẽ có hiện tượng nóng và làm hỏng bo mạch.
Khuyết cáo các bạn nên dùng nguồn ổn định là 5 đến dưới 12 vol.
Chân 5V và chân 3.3V (Output voltage) : các chân này dùng để lấy nguồn ra từ
nguồn mà chúng ta đã cung cấp cho Arduino. Lưu ý : không được cấp nguồn vào

các chân này vì sẽ làm hỏng Arduino.
GND: chân mass.
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


24

• Chip Atmega328.
Chip Atmega328 Có 32K bộ nhớ flash trong đó 0.5k sử dụng cho bootloader.
Ngoài ra còn có 2K SRAM, 1K EEPROM.
• Input và Output ( 4 và 5 ).
Arduino Uno có các chân với chức năng input và output sử dụng các hàm
pinMode(), digitalWrite() và digitalRead() để điều khiển các chân này (Analog :
A0 đến A5) (digital : chân số 0 đến chân số 13).
Cũng trên 14 chân này chúng ta còn một số chân chức năng đó là:
Serial : chân 0 (Rx ), chân 1 ( Tx). Hai chân này dùng để truyền (Tx) và nhận (Rx)
dữ liêu nối tiếp TTL.
Chúng ta có thể sử dụng nó để giao tiếp với cổng COM của một số thiết bị hoặc
các linh kiện có chuẩn giao tiếp nối tiếp.
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bo mạch có
dấu “~” là các chân PWM chúng ta có thể sử dụng nó để điều khiển tốc độ động
cơ, độ sáng của
đèn…
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này 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 (6): dùng để reset Arduino.
Nhưng đối với những ai mới bắt đầu tìm hiểu về arduino thì rất khó khăn chưa
kể đến là chưa biết gì về lập trình C, tuy thông tin tài liệu về arduino trên internet
là rất nhiều nhưng thiếu gắn kết thì bộ Ebook này là một một giải pháp tuyệt vời nó
ra đời để giúp những ai đang cảm giác thấy khó khăn trong lập trình arduino, nếu
ai đang muốn học lập trình arduino nên một lần đọc qua.
Nếu có sách không thì cũng chưa đủ chúng ta cần phải có thực hành, ứng dụng
những cái mình học từ lý thuyết thì BỘ KIT TỰ HỌC ARDUINO ra đời và kết
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


25

hợp với EBOOKS này giúp bạn thấy việc học lập trình arduino không còn khó
như ta nghĩ.

IV. SƠ LƯỢC BỘ KIT TỰ HỌC ARDUINO
1. Giới thiệu sơ lược về KIT TỰ HỌC:
Để giúp các bạn tiếp cận Arduino một cách dễ dàng nhất, dễ hiểu nhất đặc biệt có
thể giúp các bạn làm được những dự án, đề tài,…Thì sự ra đời của Kit Tự Học

Arduino ( là bộ cơ bản nhất từ dễ đến khó và Có tài liệu hướng dẫn chi tiết kèm
theo + CODE + Ebook lập trình điều khiển arduino ) cho người mới bắt đầu để
giúp các bạn học sinh, sinh viên và những ai mới bắt đầu học lập trình điều khiển
arduino thoát khỏi cảnh phải lay hoay đi tìm tài liệu để học.

2. Những lợi ích của Kit Tự Học Arduino:
a. Tất cả các linh kiện trong bộ tự học này shop đã tạo điều kiện tốt nhất
cho người thực hành ( ví dụ như led ma trận 8x8 đã được gắn vào board
đồng,…).
b. Trên board test mẫu ở hình trên 8 led đơn đã được kết nối với 8 điện trở
1k và đã đưa ra chân sẵn, cũng nhưbiến trở 10k đã đưa ra 3 chân.
c. Có 3 nút nhấn nhỏ đã được gắn trên một module đã đi mạch sẵn và đã
cho ra chân giúp việc kết nối dễ dàng.
Tài liệu biên soạn bởi Phi Nguyen và một số tài liệu được tham khảo từ arduino.cc và cộng đồng arduino

Web: tdhshop.com.vn

Email:

hotline: 01695 304 802


×