1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu hướng dẫn thực hành arduino đầy đủ

93 10 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hướng Dẫn Thực Hành Arduino Đầy Đủ
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ thuật điện tử và vi điều khiển
Thể loại Tài liệu hướng dẫn thực hành
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 93
Dung lượng 15,22 MB
File đính kèm ReadMe.rar (74 B)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mô tả tổng quan về arduino Hướng dẫn cài đặt môi trường lập trìnhViết chương trình từ cơ bản đến nâng caoMô tả từng dòng lệnh của chương trìnhGiao tiếp với các mô đun có sẵn phổ biến trên thị trường

Trang 1

14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.

Được giới thiệu vào năm 2005, những nhà thiết kế của Arduino cố gắng mang đến một phương thức dễ dàng, không tốn kém cho những người yêu thích, sinh viên và giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với môi trường thông qua các cảm biến và các cơ cấu chấp hành Những ví dụ phổ biến cho những người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Đi cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên các máy tính cá nhân thông thường và cho phép ngườidùng viết các chương trình cho mạch bằng ngôn ngữ Arduino, một ngôn ngữ riêng được phát triển dựa trên C/C++

Giá của các board Arduino dao động xung quanh €20, hoặc $27, nếu được "làm giả" thì giá

có thể giảm xuống thấp hơn $9 Các board Arduino có thể được đặt hàng ở dạng được lắp sẵn hoặc dưới dạng các kit tự-làm-lấy Thông tin thiết kế phần cứng được cung cấp công khai để những ai muốn tự làm một mạch Arduino bằng tay có thể tự mình thực hiện được (mã nguồn mở) Người ta ước tính khoảng giữa năm 2011 có trên 300 ngàn mạch Arduino chính thức đã được sản xuất thương mại, và vào năm 2013 có khoảng 700 ngàn mạch chính thức đã được đưa tới tay người dùng

1.2 Phần cứng của arduino

Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của board với các module

thêm vào có thể dễ dàng chuyển đổi, được gọi là shield Vài shield truyền thông với board

Arduino trực tiếp thông qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông quaserial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168,

ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị

Trang 2

khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình.

Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cả các board được lập trình thông qua một kết nối RS-232, nhưng cách thức thực hiện lại tùy thuộc vào đời phần cứng Các board Serial Arduino có chứa một mạch chuyển đổi giữa RS232 sang TTL Các board Arduino hiện tại được lập trình thông qua cổng USB, thực hiện thông qua chip chuyển đổi USB-to-serial như là FTDI FT232 Vài biến thể, như Arduino Mini và Boarduino không chính thức, sử dụng một board adapter hoặc cáp nối USB-to-serial có thể tháo rời được, Bluetooth hoặc các phương thức khác (Khi sử dụng một công cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)

Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sử dụng cho những mạch ngoài Diecimila, Duemilanove, và bây giờ là Uno đưa ra 14 chân I/O kỹ thuật số, 6 trong số đó

có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sử dụng như

là 6 chân I/O số Những chân này được thiết kế nằm phía trên mặt board, thông qua các header cái 0.10-inch (2.5 mm) Nhiều shield ứng dụng plug-in cũng được thương mại hóa Các board Arduino Nano, và Arduino-compatible Bare Bones Board và Boarduino có thể cung cấp các chân header đực ở mặt trên của board dùng để cắm vào các breadboard

Có nhiều biến thể như Arduino-compatible và Arduino-derived Một vài trong số đó có chức năng tương đương với Arduino và có thể sử dụng để thay thế qua lại Nhiều mở rộng cho

Arduino được thực thiện bằng cách thêm vào các driver đầu ra, thường sử dụng trong các trường học để đơn giản hóa các cấu trúc của các 'con rệp' và các robot nhỏ Những board khác thường tương đương về điện nhưng có thay đổi về hình dạng-đôi khi còn duy trì độ tương thích với các shield, đôi khi không Vài biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, với các mức độ tương thích khác nhau

1.3 Phần mềm

Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng cross-platform (đa nền tảng) được viết bằng ngôn ngữ lập trình Java, và từ IDE này sẽ được sử dụng cho Ngôn ngữ lập trình xử lý (Processing programming language) và project Wiring Nó được thiết kế để dành cho những người mới tập làm quen với lĩnh vực phát triển phần mềm Nó bao gồm một chương trình code editor với các chức năng như đánh dấu cú pháp, tự động brace matching, và tự động canh

lề, cũng như compile(biên dịch) và upload chương trình lên board chỉ với 1 cú nhấp chuột Một

chương trình hoặc code viết cho Arduino được gọi là một sketch.

Các chương trình Arduino được viết bằng ngôn ngữ Arduino dựa trên C/C++ Arduino IDE

đi kèm với một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao tác input/output được dễ dàng hơn Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có thể chạy được:

 setup() : hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các cài đặt

 loop() : hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch

Một chương trình điển hình cho một bộ vi điều khiển đơn giản chỉ là làm cho một bóng đèn Led sáng/tắt Trong môi trường Arduino, ta sẽ phải viết một chương trình giống như sau:

#define LED_PIN 13

Trang 3

void setup(){

pinMode(LED_PIN, OUTPUT); //Thiết lập chân 13 làm chân đầu ra số

}

Void loop(){

digitalWrite (LED_PIN, HIGH); //Bật LED on

delay (1000); //chờ trong 1000ms = 1 giây

digitalWrite (LED_PIN, LOW); // Tắt LED off

delay (1000); //chờ trong 1 giây

}

Một đặc điểm của hầu hết các board Arduino là chúng có một đèn LED và điện trở nối giữa chân 13 với đất; một đặc điểm thuận tiện cho nhiều ứng dụng đơn giản Đoạn code ở trên không thể đọc được bởi một compiler C++ chuẩn như là một chương trình đúng, vì vậy khi ta click vào nút "Upload to I/O board" trong IDE này, một bản copy của đoạn code này sẽ được ghi vào một file tạm với một extra include header ở phía trên cùng và một hàm main() đơn giản nằm ở phía đáy, để làm cho thành một chương trình C++ khả dụng

Arduino IDE này sử dụng GNU toolchain và AVR Libc để biên dịch chương trình, và sử dụng avrdude để upload chương trình lên board

Vì nền tảng của Arduino là các vi điều khiển của Atmel, cho nên môi trường phát triển của Atmel, AVR Studio hoặc các phiên bản Atmel Studio mới hơn, cũng có thể được sử dụng để làmphần mềm phát triển cho Arduino

1.4 Arduino Uno R3

Hiện nay trên thị trường có rất nhiều phiên bản phần cứng cho Arduino như Arduino Uno R3, Arduino Uno R3 CH340, Arduino Mega2560, Arduino Nano, Arduino Pro Mino, Arduino Lenadro, Arduino Industrial

Tuy nhiên, thông dụng và được sử dụng phổ biến nhất là Arduino Uno R3, do đó, trong toàn bộ hướng dẫn này sẽ sử dụng mô đun này

 Các đặc điểm của Arduino Uno R3

Trang 4

Arduino Uno đi kèm với giao diện USB tức là cổng USB được thêm vào bo mạch Arduino để phát triển giao tiếp nối tiếp với máy tính.

Bộ vi điều khiển Atmega328 sử dụng trên bo mạch đi kèm với một số tính năng như hẹn giờ, bộ đếm, ngắt, chân PWM, CPU, chân I / O và dựa trên xung nhịp 16 MHz giúp tạo ra nhiều tần số và số lệnh hơn trong mỗi chu kỳ.

Đây là một nền tảng mã nguồn mở, nơi mọi người có thể sửa đổi và tối ưu hóa bảng dựa trên số lượng hướng dẫn và nhiệm vụ muốn đạt được.

Arduino đi kèm với một tính năng điều chỉnh tích hợp giúp giữ điện áp trong tầm kiểm soát khi thiết bị được kết nối với thiết bị bên ngoài.

Chân reset trên Arduino để thiết lập lại toàn bộ và đưa chương trình đang chạy trở về ban đầu. Chân reset này hữu ích khi Arduino bị treo khi đang chạy chương trình

Có 14 chân I / O digital và 6 chân analog được tích hợp trên Arduino cho phép kết nối bên ngoài với bất kỳ mạch nào với Arduino. Các chân này cung cấp sự linh hoạt và dễ sử dụng cho các thiết bị bên ngoài có thể được kết nối thông qua các chân này. 

6 chân analog được đánh dấu là A0 đến A5 và có độ phân giải 10 bit. Các chân này đo từ 0 đến 5V, tuy nhiên, chúng có thể được cấu hình ở phạm vi cao bằng cách sử dụng chức năng analogReference () và chân ISF.

Bộ nhớ flash 13KB được sử dụng để lưu trữ số lượng hướng dẫn dưới dạng mã.

Chỉ cần nguồn 5V để sử dụng với Arduino, hoặc lấy nguồn trực tiếp từ cổng USB. Arduino có thể hỗ trợ nguồn điện bên ngoài lên đến 12 V có thể được điều chỉnh và giới hạn ở mức 5 V hoặc 3,3 V dựa trên yêu cầu của projects.

Trang 5

2 Cài đặt môi trường lập trình (Arduino IDE) và các công cụ hỗ trợ

(driver)

Để lập trình được cho các board Arduino, chúng ta cần phải có một công cụ gọi

là Intergrated Development Environment (IDE) Công cụ này được đội ngũ kĩ sư của Arduino

phát triển và có thể chạy trên Windows , MAC OS X và Linux Ở đây chúng ta sẽ cài đặt nó trên Windows

2.1 Tải IDE chúng ta làm theo các bước sau:

Bước 1: Truy cập https://www.arduino.cc/en/software

Bước 2: Chọn hệ điều hành mà máy tính bạn đang dùng: Windows, Mac OS,

Trang 6

Bước 3: Chọn Just Download để tải trình cài đặt về máy.

Bước 4: Chọn ổ đĩa bạn muốn tải về và nhấn Save Phần mềm đã được tải về máy bạn!

Trang 7

2.2 Cài đặt Arduino IDE

Bước 1: Mở phần mềm Arduino IDE vừa mới tải về lên.

Bước 2: Phần mềm sẽ hiện ra hộp thoại License Agreement Bạn lần lượt chọn I

agree > chọn Next > nhấn Install.

Trang 8

Bước 3: Đợi trong giây lát.

Đợi trong giây lát

Bước 4: Hoàn thành cài đặt.

Trang 9

2.3 Cài đặt driver CH340 cho Arduino

CH340 là một chíp chuyển đổi có nhiệm vụ chuyển đổi các tín hiệu từ giao tiếp nối tiếp (UART/RS232) sang giao tiếp USB

Do các máy tính hiện đại không có tích hợp sẵn các cổng nối tiếp (UART/RS232), do đó,các thiết bị ngoại vi mà muốn giao tiếp thông qua cổng nối tiếp với máy tính thì phải giao tiếp qua cổng USB (COM ảo)

Vì vậy, ở phần cứng của thiết bị ngoại vi cần sử dụng IC chuyển đổi từ giao tiếp nối tiếp (UART) sang giao tiếp USB (mạch Arduino Uno R3 sử dụng chíp CH340)

Ở phần mềm trên máy tính cần sử dụng một driver để chuyển đổi từ cổng USB sang cổngCOM ảo (RS232)

Do đó, để giao tiếp được với Arduino để nạp chương trình thông qua cổng nối tiếp thì máy tính cần được cài driver CH340

Các bước để cài đặt driver CH340:

 Bước 1: Tải driver theo link dưới hoặc tìm kiếm trên google.

https://sparks.gogo.co.nz/assets/_site_/downloads/CH34x_Install_Windows_v3_4.zip

 Bước 2: Dải nén bằng phần mềm winrar và nhấn vào cài đặt.

Trang 10

 Bước 3: Kiểm tra xem driver đã hoạt động chưa bằng cách khởi động Arduino IDE

như dưới đây:

Chú ý: Tên cổng COM8 có thể thay đổi tùy thuộc vào cổng USB mà thiết bị được kết nối, có thể là COM2, COM3…

Trang 11

3 Lập trình và nạp chương trình đầu tiên

Trang 12

3.2 Chuẩn bị phần mềm

 Mở phần mềm Arduino IDE

 Kiểm tra kết nối

 Kiểm tra và chọn cổng kết nối trong phần Tools  Port COMxx

Trang 13

 Ở hình trên có thể không phải là COM8, phụ thuộc vào cổng USB của máy tính khi thiết bị được kết nối mà máy tính sẽ chuyển đổi đến tên các cổng COM khác nhau, thường là từ COM2  COM10.

3.3 Lập trình chương trình cơ bản và nạp chương trình

 Khi tạo một chương trình mới (Sketch), phần mềm tạo sẵn cho chúng ta hai hàm mặc định phải có khi lập trình Arduino

 Hàm setup() dùng để cài đặt các thông số ban đầu cho chương trình, khi bật nguồn cho mạch arduino thì con trỏ chương trình sẽ trỏ đến hàm setup() đầu tiên (hàm setup() sẽ chạy đầu tiên khi mạch khởi động)

 Hàm loop() sẽ được chạy sau khi hàm setup() kết thúc Hàm loop() là một vòng lặp

vô hạn không bao giờ dừng lại, do đó đây là hàm chính cho chương trình

 Để vào ví dụ đầu tiên chúng ta sẽ lập trình kịch bản nháy LED phổ biến khi bắt đầu làm quen với lập trình vi điều khiển ở bất kỳ ngôn ngữ nào

 Các bước lập trình một chương trình nháy LED (sử dụng LED được tích hợp sẵn trên phần cứng của mạch Arduino Uno R3) và nạp chương trình được mô tả như dưới đây:

 Bước 1: Kiểm tra kết nối phần cứng của LED được thiết kế sẵn trên mạch

Arduino

Trang 14

Như hình trên thì Led L trên mạch Arduino được kết nối với chân PB5 của vi điều khiển

và được tham chiếu đến tên của mạch Arduino trên phần mềm là chân 13 Các chân trên phần mềm được gọi theo số thứ tự từ 1 đến 13 chứ không phải dạng tên như trên vi điều khiển.

Như vậy, để điều khiển Led L trên mạch thì ta chỉ cần điều khiển chân 13 trên phần mềm.

 Bước 2: Điều khiển Led L sáng/tắt (ON/OFF) là điều khiển chân 13 ở hai mức

logic 0 và 1 (chân dạng số) Tuy nhiên, ở dạng chân số thì chân 13 là kiểu chân số hai hướng (vào/ra), nghĩa là ta cần phải cài đặt cho chân 13 là đầu vào hay đầu ra? Như hình trên ta thấy rằng Led L cần nhận dòng điện đi từ chân 13 vào để sáng,

do đó, chân 13 cần được cài đặt ở dạng chân ra (bơm dòng điện ra Led) Vì vậy, trong hàm cài đặt setup() ta cần cài đặt cho chân 13 là chân ra dạng số.

Hàm pinMode(pin,mode) dùng để điều khiển hướng của chân số.

pin: tên hoặc số chân cần điều khiển mode: Chế độ, OUTPUT  ra, INPUT  vào.

 Bước 3: Để điều khiển Led sáng/tắt, ta điều khiển mức logic ở chân 13 là 1 hoặc

0 (HIGH hoặc LOW) như hình dưới đây:

Trang 15

Hàm digitalWrite(pin,value) sử dụng để ghi mức logic ra chân số với:

pin: tên hoặc số chân cần điều khiển

value: Giá trị ghi ra chân (HIGH là mức 1  mức điện áp cao, LOW là mức 0  mức điện áp thấp).

Hàm delay(ms) là hàm tạo trễ (không làm gì cả) với ms là giá trị mili giây.

 Bước 4: Kiểm tra lỗi chương trình

Để kiểm tra xem chương trình vừa lập trình có bị lỗi hay không chúng ta nhấn vào biểu tượng verify trên phần mềm như hình dưới

Trang 16

Nếu không có lỗi gì thì phần mềm sẽ hiển thị màu trắng với các thông tin như dưới đây.

Nếu có bất kỳ lỗi nào, chương trình sẽ hiển thị tương tự như hình sau:

Trang 17

Chương trình báo có lỗi và chỉ ra dòng bị lỗi là do có một kí tự ‘/’ không hợp lệ.

 Bước 5: Nạp chương trình.

Để nạp chương trình xuống mạch Arduino thì chúng ta cần kiểm tra lại hết

các kết nối và nhấn vào biểu tượng Upload như hình dưới đây rồi đợi cho đến khi

chương trình được tải xong

Trang 18

Nếu quá trình nạp không có lỗi sảy ra phần mềm sẽ báo như sau:

Trang 19

Lỗi xảy ra khi kết nối bị hỏng.

 Bước 5: Sau khi nạp xong chương trình, để ý Led L trên mạch Arduino, led sẽ

nháy tắt với thời gian chuyển đổi có độ trễ là 1 giây

 Trên đây là các bước để thực hiện một chương trình cho Arduino, chương trình ví dụ trên

có tên là VEE_Led_Blink.ino được cung cấp kèm theo tài liệu hoặc tải trên mạng theo

hướng dẫn tải chương trình được mô tả ở phần trước

Trang 20

II CÁC MÔ-ĐUN GIAO TIẾP CƠ BẢN

1 Mô đun giao tiếp còi báo (VKI006)

1.1 Giới thiệu

Hầu hết trong các dự án chúng ta đều cần còi báo (buzzer) để báo hiệu một cảnh báo, một sự bắt đầu hay kết thúc công việc nào đó Trong tài liệu này chúng ta sử dụng loại còi báo phổ biến trong các dự án điện tử là còi báo áp điện (piezoelectric buzzer)

Còi báo là một thiết bị đơn giản để tạo ra tiếng bíp với các âm sắc khác nhau (tones) Nguyên

lý làm việc cơ bản của thiết bị là hiệu ứng áp điện Thành phần chính của thiết bị là một tinh thể

áp điện với tính chất đặc biệt là có thể thay đổi hình dạng khi cung cấp một điện áp cho nó.Khi chúng ta cung cấp một điện áp có tần số thay đổi sẽ làm cho tinh thể áp điện liên tục thayđổi hình dạng (rung) tạo ra áp lực trên không khí gây ra hiệu ứng âm thanh

1.2 Hình ảnh và thông số của mô-đun

1.3 Kết nối cảm biến với Arduino

Trang 21

1.4 Viết và chạy chương trình

Chương trình dưới đây sử dụng chân 7 của mạch Arduino để tạo tiếng bíp với tần số 1Hz (thể

thể thay đổi theo thời gian trễ trong hàm delay).

Chương trình được viết và giải thích như dưới đây:

2 Mô đun giao tiếp rơ le (VRL05)

2.1 Giới thiệu

Rơ-le (Relay) là một công tắc được điều khiển bằng điện bởi một nam châm điện Chúng ta

có thể điều khiển các thiết bị điện tử cao áp bằng cách sử dụng rơ le

Trang 22

Nam châm điện trong rơ-le được điều khiển bằng một điện áp thấp từ các bộ vi điều khiển và

ở đầu ra của nó có thể đóng/cắt một điện áp cao

Trong tài liệu này chúng ta sẽ sử dụng một mô đun rơ-le có sẵn để thực hành Mô đun tích hợp mạch điều khiển và 1 rơ-le KY-019 với điện áp điều khiển 5V

Mô đun có kích thước nhỏ gọn, giá thành rẻ, dùng để đóng ngắt các thiết bị AC

(250VAC/10A) hoặc thiết bị DC (30VDC/10A)

Mạch có 3 tiếp điểm đóng ngắt gồm NC (thường đóng), NO (thường mở) và COM (chân chung) được cách ly hoàn toàn với mạch chính Ở trạng thái bình thường chưa kích hoạt thì NC

sẽ nối với COM, khi có tín hiệu kích hoạt (nam châm điện hoạt động) thì NO sẽ kết nối với COM và NC sẽ mất kết nối

2.2 Hình ảnh và thông số của mô-đun

Trang 23

COM Tiếp điểm chung

NC Tiếp điểm thường đóng (khi chưa kích hoạt thì NC kết nối với COM)

2.3 Kết nối cảm biến với Arduino

2.4 Viết và chạy chương trình

Chương trình dưới đây sử dụng chân 7 của mach Arduino để điều khiển mô đun rơ le đóng/cắt cuộn dây nam châm điện để bật/tắt đèn điện áp cao 220V

Chương trình được viết và mô tả như hình dưới đây:

Trang 24

Quan sát mô đun rơ le để thấy kết quả, cuộn dây nam châm điện trong rơ le “đóng” làm đèn điện sáng trong 3 giây thì rơ le “ngắt” khiến đèn điện tắt 3 giây và lặp lại.

3 Mô đun cảm biến nhiệt độ (VDHT22)

DHT-22 rất phổ biến trong các ứng dụng đo nhiệt độ - độ ẩm môi trường do có giá thành rẻ, kết nối đơn giản với độ chính xác cao Cảm biến sử dụng nguồn phổ biến trong các thiết bị điện

Nhiệt độ Độ chính xác: ±0.5Dải đo : -40 ~ 80oCoC

3.3 Hình ảnh và thông số của mô-đun VDHT-22

Mô-đun VDHT-22 được phát triển dựa trên cảm biến DHT-22 với 3 chân kết nối và một bảng mạch được thiết kế để phù hợp cho việc gá lắp trong các mô hình thực hành cảm biến

Trang 25

STT Tên Chức năng

2 Out Đầu ra số (cần có điện trở kéo lên dương nguồn)

3.4 Kết nối VDHT22 với mạch Arduino

Do mô đun VDHT22 giao tiếp với các thiết bị khác bằng chân đầu ra số, do đó, chúng ta cần kết nối chân tín hiệu đầu ra (Out) của cảm biến với một chân vào/ra số của mạch Arduino.Các chân đầu ra số của mạch arduino được mô tả như sơ đồ mạch dưới đây:

Trang 26

Trong bài này chúng ta sẽ sử dụng chân (2) của mạch arduino để giao tiếp với cảm biến

Sơ đồ kết nối phần cứng được mô tả như hình dưới đây:

Sử dụng dây cắm và jump đính kèm để kết nối cảm biến như hình

3.5 Tải thư viện và thêm thư viện vào chương trình

Trang 27

Cảm biến DHT-22 có đầu ra dạng số giao tiếp 1 dây, do đó để lập trình giao tiếp được với cảm biến thì chúng ta cần phải hiểu về chuẩn giao tiếp một giây

Tuy nhiên, trong bài học này chúng ta chỉ làm quen và giao tiếp với cảm biến (chi tiết về chuẩn giao tiếp một dây sẽ được học trong các tài liệu nâng cao) thông qua thư viện có sẵn với

mã nguồn mở thông qua internet

Nếu muốn tìm hiểu chi tiết về cảm biến, người học có thể truy cập vào link dưới đây:

Chi tiết cảm biến DHT22

Thư viện mã nguồn mở dành cho cảm biến DHT22 có tên là dht.h Thư viện này được cung

cấp miễn phí trên kho mã nguồn mở do đó máy tính cần phải có internet để tải về thư viện này Arduino là một cộng đồng mã nguồn mở và được đóng góp bởi rất nhiều thành viên, do đó, người lập trình nên làm quen với việc sử dụng các thư viện có sẵn (như các thư viện tiêu chuẩn trong các ngôn ngữ lập trình) để phát triển ứng dụng nhanh hơn, học hỏi các kỹ thuật lập trình từ những người đi trước dễ hơn và không phải làm lại những công việc đã có rất nhiều người làm sẵn

Để tải thư viện dht.h và sử dụng thư viện dht.h (cũng như các thư viện khác) thì người dùng cần thực hiện các bước sau:

 Bước 1: Vào phần quản lý thư viện của phần mềm, chọn Tools  Manage

Libraries…

Trang 28

 Bước 2: Màn hình quản lý thư viện xuất hiện, nhập tên “dht” vào ô tìm kiếm và

Enter

Trang 29

 Bước 3: Kéo xuống tìm thư viện “DHT sensor library” và nhấn vào Install để

cài đặt thư viện

 Bước 4: Sau khi cài đặt thư viện, để sử dụng thư viện chúng ta có thể tìm trong

phần định nghĩa thư viện như hình dưới đây:

Hoặc có thể nhập trực tiếp tên thư viện “include <DHT.h>” vào trong chương trình, sau khi thực hiện xong là chúng ta đã có thể sử dụng được thư viện

3.6 Viết chương trình

Cảm biến DHT22 có 2 tham số đo là nhiệt độ và độ ẩm, do đó, để có thể thấy được các giá trịnày chúng ta sẽ sử dụng cổng nối tiếp (UART, RS232) được tích hợp sẵn trên mạch Arduino để

Trang 30

gửi giá trị đo bằng số lên phần mềm máy tính, từ đó có thể hiển thị nhiệt độ và độ ẩm theo thời gian một cách trực quan.

Chương trình được viết và giải thích như hình dưới đây:

Sau khi viết xong chương trình thì nhấn vào gỡ lỗi (biểu tượng verify), nếu không có lỗi xảy ra, nhấn vào biểu tượng Upload để tải chương trình xuống mạch arduino.

Sau khi Upload hoàn thành, chúng ta sử dụng tiện ích Serial Monitor trên thanh công cụ

của phần mềm để nhận các chuỗi kí tự và giá trị cảm biến gửi qua cổng nối tiếp (cũng có thể sử dụng các phần mềm giao tiếp cổng COM khác trên máy tính)

Để vào tiện ích Serial Monitor chúng ta thao tác như hình dưới đây:

Trang 31

Màn hình Serial Monitor xuất hiện, nếu không có dữ liệu gửi nên thì cần phải kiểm tra

xem tốc độ giao tiếp có phù hợp với tốc độ đã cài đặt trong chương trình hay chưa?

Kết quả đo được hiển thị như hình trên

Trang 32

4 Mô đun cảm biến ánh sáng

4.2 Hình ảnh và thông số của cảm biến

Hình trên là cảm biến quang trở được làm bằng chất bán dẫn có trở kháng cao và không

có lớp tiếp giáp Như trên đường đặc tuyến thì giá trị điện trở sẽ thay đổi phụ thuộc vào cường

độ ánh sáng Trong bóng tối, quang trở có điện trở cao đến vài MΩ, nhưng khi có ánh sáng thì điện trở có thể giảm xuống đến dưới 100 Ω

Hoạt động của cảm biến quang trở dựa trên hiệu ứng quang điện trong khối vật chất Khi photon có năng lượng đủ lớn (cường độ ánh sáng) đập vào sẽ làm bật các electron khỏi phân tử,

Trang 33

các electron này trở thành tự do trong khối vật chất làm cho chất bán dẫn trở thành chất dẫn điện.Mức độ dẫn điện tương ứng với số photon được hấp thụ.

Cảm biến quang điện cũng phân thành nhiều loại tương ứng với vật liệu chế tạo lên nó như:

 Cadimi sunfua (CdS) và Cadimi selenua (CdSe) được dùng cho ánh sáng nhìn thấy

 Chì (II) sunfua (PbS) và Indi antimonua (lnSb) được dùng cho phổ hồng ngoại

 Gecu là cảm biến dò hồng ngoại xa tốt nhất, được sử dụng trong thiên văn hồng ngoại và quang phổ hồng ngoại

4.3 Hình ảnh và thông số của mô-đun

Mô-đun cảm biến ánh sáng được phát triển từ cảm biến ánh sáng CdS với 1 đầu ra số dùng

để điều khiển các thiết bị và 1 đầu ra tương tự để đo chính xác sự thay đổi của cường độ ánh sáng

Mô-đun có tích hợp biến trở để điều chỉnh mức phát hiện cường độ sáng được dùng trong cácứng dụng như điều khiển bật tắt thiết bị theo ánh sáng, hệ thống cảnh báo trộm, đền chiếu sáng

Trang 34

Ở đầu ra số (DO), khi mức ánh sáng xung quanh tăng làm điện trở trên cảm biến CdS giảm, do đó, điện áp phân áp đi vào chân so sánh (Chân 3) của IC LM393 giảm, nếu điện áp này giảm xuống dưới mức điện áp so sánh (được điều chỉnh bởi chiết áp VR1 vào chân 2 của

IC LM393) thì mức logic ở chân 1 sẽ thay đổi (xuống mức thấp – mức 0), lúc này đèn L1 sẽ sáng để báo có nguồn ánh sáng chiếu vào cảm biến

Ngược lại, khi mức ánh sáng xung quang giảm, làm tăng điện trở trên cảm biến CdS, dẫn đến điện áp vào chân 3 của LM393 tăng trên mức so sánh ở chân 2, do đó, mức logic ở đầu

ra (chân 1 IC LM393) sẽ thay đổi lên mức cao, lúc này đèn L1 sẽ tắt để báo không có nguồn sáng chiếu vào cảm biến

Độ nhạy cường độ sáng (mức so sánh) có thể được điều chỉnh bằng biến trở VR1

Ở đầu ra tương tự (AO), khi mức ánh sáng môi trường xung quanh thay đổi làm cho điện trở của cảm biến CdS thay đổi dẫn đến điện áp phân pháp từ chân 1 của cảm biến sẽ thay đổi,

do đó, điện áp trên chân AO sẽ thay đổi theo Từ sự thay đổi điện áp này có thể tính ra được mức thay đổi của điện trở hay cường độ sáng tương ứng

4.4 Kết nối với Arduino

Sử dụng dây nối và jump để kết nối mô-đun cảm biến vào mạch Arduino

Trang 35

4.5 Viết và chạy chương trình

Nhìn vào kết nối ở phần trên mô-đun cảm biến được kết nối vào hai chân của mạch Arduino.Đẩu ra số DO của cảm biến nối vào chân vào/ra số (2) của mạch arduino, do đó, chân (2) cầnphải được thiết lập là chân số với mode là INPUT (đầu vào) để đọc trạng thái của DO.\

Đầu ra tương tự AO của mô-đun được nối vào chân đầu vào tương tự (A0) để đọc giá trị điện

áp Do đó, chân (A0) cần phải được thiết lập là đầu vào tương tự và đọc giá trị tương tự từ chân này

Chương trình đọc đầu vào số và đầu vào tương tự, sau đó gửi lên máy tính để hiển thị được viết như dưới đây:

Kết quả khi chạy chương trình:

Trang 36

Trên đây chỉ là một chương trình được viết đơn giản để phản ánh sự thay đổi của các giá trị đo được so với sự thay đổi của ánh sáng môi trường xung quanh

Các bài tập lập trình nâng cao có thể được đưa ra để nghiên cứu ứng dụng vào thực tiễn cuộc sống như:

 Điều khiển bóng đèn hay loa cảnh báo khi đầu ra số DO thay đổi mức

 Tính từ giá trị tương tự AO ra giá trị điện áp thực tế

 Tính từ giá trị tương tự AO ra giá trị điện trở thực tế của cảm biến CdS

 Tính tương đối cường độ ánh sáng theo đơn vị lux

5 Mô đun đo khí Gas

Trang 37

VMQ6 hoạt động tốt nhất trong môi trường khí hóa lỏng như khí gas, LPG, iso-butan, propan, LNG…Nó cũng có thể được sử dụng để phát hiện sự hiện diện của rượu, khói nấu ăn và khói thuốc lá.

5.2 Hình ảnh và thông số của cảm biến

Hình ảnh thực tế của cảm biến

Cấu tạo và kích thước

Cảm biến MQ-6 được chế tạo từ SnO2 với độ dẫn điện thấp trong môi trường khí sạch Khi được đặt vào môi trường có khí cháy thì độ dẫn điện của cảm biến sẽ tăng tương ứng với mức tăng nồng độ của khí cháy trong không khí Độ dẫn điện có thể được chuyển đổi thành các tín hiệu điện một cách dễ dàng bằng mạch điện tử đơn giản

MQ6 có độ nhạy cao với các loại khí hóa lỏng như khí gas, LPG, iso-butan, propan, LNG…

Nó cũng có thể được sử dụng để phát hiện sự hiện diện của rượu, khói nấu ăn và khói thuốc lá

Trang 38

Các chi tiết kỹ thuật được mô tả như bảng dưới đây:

Mạch điện Điện áp lò nhiệtĐiện áp VVHC 5.0V ± 0.2V AC hoặc DC≤ 24Vdc

Độ nhạy S Rs (không khí)/Rs (1000ppm C4H10) ≥ 5

Độ dốc (Slope) α ≤ 0.6 (R2000ppm/R1000ppm RH)Điều kiện

Nguồn cấp cho mạch kiểm tra VC: 5.0V ± 0.1V

VH: 5.0V ± 0.1VThời gian ổn định nhiệt độ Trên 48 giờ

Sơ đồ nguyên lý

Trên đây là mạch thử nghiệm cơ bản của cảm biến Cảm biến cần phải được cung cấp 2 nguồn điện áp, VH là nguồn cho sợi đốt của lò nhiệt và VC là nguồn điện áp mạch thử nghiệm

VH được dùng để đảm bảo nhiệt độ làm việc của cảm biến được ổn định, trong khi VC

được sử dụng để dò điện áp VRL trên điện trở tải RL

Trang 39

Cảm biến cần phải được phân cực, do đó điện áp sử dụng là điện áp một chiều VC và

VH có thể được cung cấp từ cùng một nguồn điện áp một chiều với các điều khiện của nguồn cấp phù hợp với cảm biến

Mặt khác, để cảm biến hoạt động với hiệu suất tốt nhất thì giá trị RL cần phải ổn định, do

đó độ nhạy của bản thân nguồn cấp được áp dụng theo công thức:

PS = VC2 x RS/(RS + RL)2

Với trở kháng của cảm biến là:

RS = (VC / VRL – 1) x RL

Đặc tuyến độ nhạy của cảm biến

Đồ thị trên đây thể hiện đường đặc tuyến độ nhạy của cảm biến, trục dọc là tỷ lệ trở kháng của cảm biến (RS/RO) và trục ngang là nồng độ khí Trong đó, RS là trở kháng thay đổi theo nồng độ khí còn RO là trở kháng của cảm biến được đo ở môi trường chứa khi LPG có nồng

độ 1000 ppm Tất cả quá trình thử nghiệm đều được thực hiện dưới các điều khiện tiêu chuẩn

Trang 40

Trên đây là đồ thị mô tả sự ảnh hưởng của nhiệt độ và độ ẩm của môi trường đến phép đo.

Trục dọc là tỷ lệ trở kháng của cảm biến (RS/RO), với RS là trở kháng của cảm biến được

đo trong môi trường Methane có nồng độ 1000 ppm dưới những điều kiện nhiệt độ và độ ẩm khác nhau RO là trở kháng của cảm biến được đo trong môi trường khí Propane ở nồng độ 1000 ppm với điều kiện nhiệt độ / độ ẩm là 20oC/65%RH

5.3 Hình ảnh và thông số của mô-đun

Ngày đăng: 08/02/2023, 17:03

🧩 Sản phẩm bạn có thể quan tâm

w