ARDUINO CHO NGƯỜI MỚI BẮT ĐẦU Quyển cơ bản minht57 lab Lời nói đầu Vi điều khiển là một thiết bị có thể lập trình được nhằm thực hiện các tác vụ định sẵn. Thường việc lập trình này dành cho các kỹ sư có trình độ kỹ thuật nhất định và thường rất khó khăn đối với các bạn học sinh tiếp cận. Nhờ sự ra đời của nền tảng Arduino để đơn giản hóa việc tiếp cận với vi điều dành cho một cá nhân chưa biết gì về lập trình vi điều khiển mà vẫn có thể tạo ra hàng nghìn ứng dụng khác nhau. Quyển sách “Arduino cho người mới bắt đầu” (quyển cơ bản) được thiết kế cho các bạn chưa biết hoặc biết một ít về lập trình Arduino.
Nội dung sách chủ yếu viết về định hướng suy nghĩ liên quan đến lập trình vi điều khiển nhằm mục tiêu phát triển lâu dài, tạo một nền tảng căn bản nhất cho các bạn làm quen với lập trình vi điều khiển. Bên cạnh đó, cung cấp cho bạn một số mẹo, thông tin liên quan đến lập trình vi điều khiển nói chung và Arduino nói riêng. Quyển sách bao gồm 4 phần đi từ linh kiện điện tử cơ bản đến lập trình những module quan trọng của Arduino. Phần 1 (Linh kiện điện tử cơ bản) sẽ cho chúng ta một số kiến thức cơ bản về các loại linh kiện điện tử thường dùng.
Phần 2 (Lập trình C cơ bản) sẽ cung cấp một số kiến thức cơ bản nhất về lập trình C hỗ trợ cho lập trình cho vi điều khiển. Phần 3 (Một số module ngoại vi quan trọng) sẽ cung cấp những kiến thức cốt lõi trong lập trình vi điều khiển nói chung và Arduino nói riêng. Phụ lục nhằm cung cấp thêm những thông tin, mạch điện bổ trợ. minht57 lab Hướng dẫn đọc sách Bộ sách Arduino dành cho người mới bắt đầu gồm 3 quyển đi từ mức độ cơ bản đến chuyên sâu bao gồm quyển cơ bản, quyển rất cơ bản và quyển không còn là cơ bản.
Bộ sách này sẽ cung cấp cho bạn một tư duy làm việc với một vi điều khiển hơn là chỉ thực hành Arduino đơn thuần. Bộ 3 quyển sách sẽ cung cấp cho bạn rất nhiều thông tin ở mức căn bản dưới dạng từ khóa và tóm tắt vấn đề (vì nếu giải thích vấn đề rõ ràng, chuyên sâu thì sẽ rất lan man và dài dòng). Nếu bạn quan tâm một vấn đề nào cụ thể thì cứ dựa vào những từ khóa đã được nêu ra và tìm hiểu thêm trên internet hoặc sách vở. Vì mục tiêu của quyển sách là hướng đến những bạn học lập trình Arduino định hướng chuyên sâu nên sách sẽ không tập trung vào từng module cảm biến, thiết bị chấp hành hay một dự án nào cụ thể.
Mà cấu trúc sách đi theo hướng học một vi điều khiển tổng quát mà Arduino chỉ là một ví dụ cụ thể. Nếu bạn chưa có kiến thức về lập trình Arduino thì quyển cơ bản được khuyên là bạn đọc theo thứ tự các chương từ đầu đến cuối. Nếu một vấn đề mà bạn đã biết, bạn cũng được khuyên là đọc lướt qua để tránh bỏ sót những thông tin mà có thể bạn chưa biết (vì không phải tất cả các thông tin quan trọng đều được in đậm hoặc nhấn mạnh). Nếu bạn đã có kiến thức cơ bản về lập trình Arduino thì bạn có thể đọc một chương bất kỳ mà bạn quan tâm.
Nếu có thời gian thì bạn nên xem những chương mà bạn đã biết để kiểm chứng cũng như xem liệu có kiến thức nào chưa biết hay không. Nếu bạn cảm thấy văn phong hoặc cách tiếp cận của quyển sách không phù hợp với bạn thì bạn có thể bỏ qua. Trong quá trình viết và biên soạn sách không thể tránh khỏi những sai sót về mặt nội dung cũng như hình thức. Nhóm tác giả rất mong nhận được sự góp ý của các bạn đọc để quyển sách ngày càng hoàn thiện hơn và có thể truyền tải nội dung đến với nhiều bạn đọc hơn.
Xin cảm ơn bạn đọc. minht57 lab Mục lục Lời nói đầu ii Hướng dẫn đọc sách iii Mục lục iv LINH KIỆN ĐIỆN TỬ CƠ BẢN 1 1 ĐIỆN TỬ CƠ BẢN 2 1.8 IC logic cần biết. 11 LẬP TRÌNH C CƠ BẢN 12 2 LẬP TRÌNH C CƠ BẢN 13 2.2 Các thành phần cơ bản trong ngôn ngữ C .4 Biểu thức và phép toán .5 Một số hàm C thường dùng. 17 Vòng lặp for.
20 Vòng lặp while .6 Hàm/Chương trình con .7 Mảng một chiều. 25 MỘT SỐ MODULE NGOẠI VI QUAN TRỌNG 27 3 GENERAL PURPOSE INPUT/OUTPUT – GPIO 28 3.2 Một số hàm thường dùng .3 Một số module mẫu .2 Một số hàm thường dùng .2 Một số hàm thường dùng. 44 Một số hàm khác .3 Một số module mẫu. 45 Module bluetooth HC-05.
45 Giao tiếp giữa 2 Arduino .2 Một số hàm thường dùng .3 Một số module mẫu. 55 Module điều khiển động cơ L298N .2 Một số hàm thường dùng .3 Một số module. 68 Module IMU MPU6050. 68 Module thời gian thực RTC .2 Một số hàm thông dụng .3 Một số module thường dùng.
76 Thẻ nhớ SD .2 Một số hàm thường dùng. 83 PHỤ LỤC 84 A MỘT SỐ MODULE THÔNG DỤNG KHÁC 85 A.1 Module đo khoảng cách SRF-05 .2 Cảm biến độ ẩm đất. 87 B MỘT SỐ HÀM KHÁC 89 B.1 Hàm I/O nâng cao .2 Hàm liên quan đến toán .3 Hàm làm việc với chuỗi. 89 C MỘT SỐ KHÁI NIỆM CĂN BẢN 91 C.1 Một số khái niệm .2 Một số từ ngữ chuyên ngành .3 Một số kiến thức cần biết.
92 Dòng sink/source. 92 Push-pull và Open drain IO. 93 D TỔNG QUAN VỀ NỀN TẢNG ARDUINO 94 D. 94 Giới thiệu về Arduino IDE.
99 E PHỤ LỤC MẠCH ĐIỆN 102 E.1 Mạch số 1: Diode .2 Mạch số 2: Zener .3 Mạch số 3: NPN Amplifier .4 Mạch số 4: Dùng BJT để đóng tắt relay .5 Mạch số 5: IC số. 107 Lời kết 109 Thông tin bản quyền 110 LINH KIỆN ĐIỆN TỬ CƠ BẢN ĐIỆN TỬ CƠ BẢN 1 1. 5 Chương này sẽ cung cấp một số kiến thức cơ bản về một số linh kiện 1. Các linh kiện này sẽ là những linh kiện thường gặp trong suốt 1.
8 quá trình học điện tử.8 IC logic cần biết .2 Điện trở Linh kiện điện trở1 là linh kiện dùng để cản trở dòng điện (lưu ý, điện 1: Điện trở và linh kiện điện trở là khác trở là đại lượng vật lý đặc trưng cho tính cản trở dòng điện của vật nhau về mặt khái niệm. Trong thực tế, linh kiện điện trở luôn được gọi tắt là liệu). Công thức tính giá trị của điện trở: 𝑈 𝑅= 𝐼 ◮ U: hiệu điện thế giữa hai đầu vật dẫn điện (đơn vị: Volt (V)) ◮ I: cường độ dòng điện đi qua vẫn dẫn (đơn vị: Ampere (A)) ◮ R: điện trở của vật dẫn (đơn vị: Ohm (Ω)) Công dụng ◮ Như tên điện trở, đây là linh kiện dùng để cản trở dòng điện nhưng thật ra điện trở có nhiều công dụng như giảm điện áp giữa tải với nguồn (ví dụ muốn cắm LED 3V vào nguồn 5V thì cần mắc thêm điện trở để giảm áp), làm điện áp tham chiếu bằng mạch chia áp, tạo các mạch khuếch đại/vi phân/tích phân (khi kết hợp với tụ điện, cuộn cảm, op-amp), mạch lọc thông thấp/thông cao (kết hợp với tụ điện, cuộn cảm), điện trở trong mạch đo dòng,. ◮ Điện trở là linh kiện chuyển năng lượng từ điện sang nhiệt (tức là trong lúc hoạt động sẽ sinh ra nhiệt) và thường lượng nhiệt này không có ích.
Mỗi điện trở sẽ có một công suất tối đa nên khi dùng cần phải kiểm tra xem công suất mà điện trở phải chịu có vượt qua công suất mặc định của điện trở không. Các loại điện trở thường gặp: ◮ Điện trở cắm (through hole resistor) • Chúng ta đọc giá trị điện trở dựa vào bảng màu (resistor color code) • Mỗi điện trở cắm thông thường đều có vạch màu để xác định giá trị điện trở, đồng thời sai số của điện trở đó. Nếu là điện trở có 4 vạch màu thì 2 vạch đầu tiên là giá trị, vạch thứ 3 (vạch kế cuối) là hệ số nhân, vạch thứ 4 (vạch cuối 1 ĐIỆN TỬ CƠ BẢN 3 Hình 1.1: Hình ảnh điện trở chân cắm. Nguồn từ Wikimedia và Wikimedia.
cùng) là sai số. Nếu là điện trở có 5 vạch màu thì 3 vạch điều tiên là giá trị, vạch thứ 4 (vạch kế cuối) là hệ số nhân, vạch thứ 5 (vạch cuối cùng) là sai số. • Ví dụ điện trở có 4 vòng màu lần lượt là nâu-đen-cam-vàng kim (gold): nâu có giá trị là 1, đen có giá trị là 0 thì giá trị 2 vạch đầu tiên là 10; cam là vạch thứ 3, cam có giá trị là 3 nên hệ số nhân là 103 ; vạch sai số là vàng kim, vàng kim có sai số là ±5%. Giá trị điện trở là 10𝑥103 ± 5% = 10𝑘Ω ± 5%.
◮ Một số mẹo • Một số khó khăn khi đọc giá trị điện trở là không xác định được màu của điện trở và vạch nào là vạch đầu tiên hay cuối cùng. Cách đơn giản là bạn đọc nhiều thì sẽ có kinh nghiệm đọc giá trị điện trở hoặc bạn xác định dựa vòng màu cuối cùng (vì thường vòng màu cuối cùng thường có màu đặc biệt như vàng kim (gold)/bạch kim (siliver)). • Ngoài bảng màu trên thì vẫn còn bảng màu đầy đủ hơn 2. 2: Vì hình ảnh đó có bản quyền nên Có 4 loại điện trở là 3/4/5/6 vòng màu, nhưng thường gặp mình không sao chép vào tài liệu của nhất là điện trở 4 và 5 vòng màu.
Ngoài ra, điện trở trên mình được thực tế cũng có nhiều sai số khác nhau (0.5, 1, 2, 5, 10, 20) nhưng trên thị trường thường gặp loại điện trở 1% và 5%. • Thông thường, điện trở 4 vòng màu và thân hình màu vàng nhạt là điện trở 5%; điện trở 5 vòng màu và thân mình màu xanh dương nhạt thì là điện trở 1%. • Vậy việc đọc điện trở có cần thiết khi xung quanh chúng ta có quá nhiều thiết bị có thể đo được điện trở (như VOM/Multi- meter)? Câu trả lời là tùy thuộc vào bạn. Khi bạn tự đọc được giá trị điện trở thì có những lợi ích như sau: * Bạn có thể đọc được giá trị điện trở ngay lập tức mà không cần dụng cụ đo.