ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA VẬT LÝ LÊ THỊ MỸ HẠNH THIẾT KẾ BỘ KIT THỰC HÀNH ARDUINO ỨNG DỤNG ĐIỀU KHIỂN THIẾT BỊ, GIAO TIẾP VỚI CÁC CẢM BIẾN THÔNG DỤNG VÀ TRUYỀN THÔ
Mục tiêu nghiên cứu
Nghiên cứu này nhằm mục đích thiết kế và chế tạo bộ thí nghiệm ghép nối, giao tiếp thiết bị và điều khiển tự động hóa trong các phép đo vật lý sử dụng kit Arduino Mục tiêu là phát triển một demo bộ thí nghiệm để mô phỏng việc điều khiển các thiết bị, giao tiếp với các cảm biến thông dụng và truyền thông với máy tính.
Nhiệm vụ nghiên cứu
- Nghiên cứu bộ vi xử lí và kit Arduino
- Nghiên cứu lập trình trên bộ kit Arduino và các ứng dụng của nó
- Nghiên cứu nhân firmware LINX trên Arduino và phần mềm Labview trên máy tính để giao tiếp Arduino với máy tính
- Thiết kế bộ thí nghiệm dùng bộ kit Arduino ứng dụng để điều khiển các thiết bị, cảm biến
- Thực nghiệm trên mô hình bộ kit cụ thể.
Đối tƣợng và phạm vi nghiên cứu
Bộ kit Arduino và cách thức giao tiếp trong điều khiển thiết bị, các cảm biến thông dụng và truyền thông với máy tính
- Nghiên cứu cách thức bộ vi xử lý Arduino điều khiển thiết bị, giao tiếp cảm biến và truyền thông với máy tính
Nghiên cứu thiết kế mô hình thí nghiệm sử dụng bộ kit Arduino, bao gồm các linh kiện điện tử và cảm biến thông dụng như cảm biến dòng điện, cảm biến phát hiện chuyển động, cảm biến siêu âm, và cảm biến đo nhiệt độ Mô hình này cũng tích hợp các module điều khiển tốc độ động cơ và module đo thời gian thực, cho phép hiển thị và giao tiếp với máy tính.
Phương pháp nghiên cứu
- Nghiên cứu và khảo sát các tài liệu về nguyên lý hoạt động và cách lập trình bộ kit Arduino cùng với các thiết bị kèm theo
- Nghiên cứu thực nghiệm phương thức truyền thông với máy tính thông qua phần mềm LabView và các nhân firmware.
GIỚI THIỆU TỔNG QUAN VỀ BỘ KIT ARDUINO VÀ PHẦN MỀM LABVIEW
Tổng quan về bộ kit Arduino
Arduino là một board mạch vi xử lý, giúp xây dựng các ứng dụng tương tác với nhau và với môi trường Nó được sử dụng để lập trình và điều khiển các thiết bị phần cứng như cảm biến, động cơ, đèn và nhiều thiết bị khác.
Phần cứng của dự án sử dụng board mạch nguồn mở dựa trên vi xử lý AVR Atmel 8-bit hoặc ARM Atmel 32-bit Các model hiện tại được trang bị 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số, tương thích với nhiều board mở rộng khác nhau Trong khóa luận này, tôi chọn sử dụng board mạch Arduino Mega2560, một vi điều khiển sử dụng vi xử lý 8-bit mega AVR của Atmel với chip ATmega2560.
1.1.1 Thành phần của board Arduino Mega 2560
Arduino Mega 2560 là board mạch vi điều khiển, xây dựng dựa trên Atmega
Arduino 2560 có 54 chân I/O, trong đó 15 chân có thể sử dụng làm chân output với chức năng PWM, 16 chân đầu vào Analog, 4 UART, 1 thạch anh 16MHz, 1 cổng USB, 1 jack nguồn, 1 header và 1 nút nhấn reset Thiết bị này cung cấp đầy đủ các tính năng cần thiết cho lập trình vi điều khiển, cho phép người dùng dễ dàng kết nối với máy tính qua cáp USB để bắt đầu học tập Arduino 2560 cũng tương thích với hầu hết các Shield của Arduino UNO.
54 chân digital (trong đó có 15 chân có thể đƣợc sủ dụng nhƣ những chân
PWM là từ chân số 2 → 13 và chân 44, 45, 46)
6 ngắt ngoài: chân 2 (interrupt 0), chân 3 (interrupt 1), chân 18 (interrupt 5), chân 19 (interrupt 4), chân 20 (interrupt 3), and chân 21 (interrupt 2)
16 chân vào analog (từ A0 đến A15).
4 cổng Serial giao tiếp với phần cứng:
CỔNG SERIAL CHÂN RX CHÂN TX
Bảng 1.1: 4 cổng Serial giao tiếp với phần cứng
1 thạch anh với tần số dao động 16 MHz
Arduino Mega2560 khác biệt so với các vi xử lý trước đây vì không sử dụng chip FTDI để điều khiển chuyển tín hiệu từ USB Thay vào đó, nó sử dụng ATmega16U2, được lập trình như một công cụ chuyển đổi tín hiệu từ USB.
Chip xử lý ATmega2560 Điện áp hoạt động 5V Điện áp đầu vào (đƣợc đề nghị) 7-12V Điện áp đầu vào (giới hạn) 6-20V
Số lƣợng chân I / O 54 (trong đó có 15 cung cấp sản lƣợng PWM)
Số lƣợng chân Input Analog 16
Dòng điện DC mỗi I / O 20 mA
Dòng điện DC với chân 3.3V 50 mA
Bộ nhớ flash 256 KB, trong đó có 8 KB sử dụng bởi bộ nạp khởi động
Tốc độ đồng hồ 16 MHz
1.1.3 Chi tiết về board mạch
Hình 1.1: Mặt trước và mặt sau của board mạch Arduino
Hình 1.2b Hình 1.2: Chi tiết board mạch
1.1.4 Chức năng của mỗi khối:
Các dòng vi xử lý này hỗ trợ lập trình ứng dụng điều khiển phức tạp nhờ cấu hình mạnh mẽ, bao gồm bộ nhớ ROM, RAM và Flash Chúng cũng được trang bị nhiều ngõ vào ra digital I/O, trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM, cùng với khả năng đọc tín hiệu analog và hỗ trợ các chuẩn giao tiếp đa dạng như UART, SPI, và TWI (I2C).
1.1.4.1 Đọc tín hiệu cảm biến cổng vào
Các board mạch Arduino được trang bị các cổng digital có thể được cấu hình linh hoạt làm ngõ vào hoặc ngõ ra thông qua phần mềm Điều này cho phép người dùng tùy chỉnh số lượng ngõ vào và ngõ ra theo nhu cầu Mạch sử dụng Atmega2560 có tổng cộng 54 cổng digital.
Các board mạch Arduino được trang bị 16 ngõ vào analog với độ phân giải 10-bit, cho phép đọc 1024 mức tín hiệu Với điện áp chuẩn 5V, độ phân giải đạt khoảng 0.5mV Tính năng đọc analog này giúp người dùng có thể kết nối và thu thập dữ liệu từ nhiều loại cảm biến như nhiệt độ, áp suất, độ ẩm và ánh sáng.
1.1.4.2 Xuất tín hiệu điều khiển cổng ra
Người dùng có thể cấu hình phần mềm để chọn ngõ digital nào làm ngõ ra, tương tự như các cổng vào digital Mạch sử dụng Atmega2560 có tổng cộng 54 cổng digital.
Người dùng có thể chọn từ nhiều cổng digital để xuất tín hiệu điều chế xung PWM với độ phân giải 8-bit Trên các board sử dụng Atmega2560, có tổng cộng 14 cổng PWM PWM được ứng dụng rộng rãi trong viễn thông, xử lý âm thanh và điều khiển động cơ.
Giao tiếp nối tiếp là chuẩn phổ biến trên các board mạch Arduino, với mỗi board được trang bị một số cổng Serial cứng, cho phép giao tiếp do phần cứng trong chip thực hiện Ngoài ra, tất cả các cổng digital còn lại có thể thực hiện giao tiếp nối tiếp bằng phần mềm thông qua thư viện chuẩn mà không cần viết code Mức tín hiệu của các cổng này là TTL 5V, trong khi cổng nối tiếp RS-232 trên các thiết bị hoặc PC có mức tín hiệu là UART 12V, yêu cầu bộ chuyển mức như chip MAX232 để giao tiếp giữa hai mức tín hiệu Atmega2560 có 4 cổng Serial cứng, giúp các board Arduino giao tiếp với nhiều thiết bị như PC và touchscreen.
Các board Arduino tiêu chuẩn được trang bị cổng USB để kết nối với máy tính nhằm tải chương trình Tuy nhiên, các chip AVR không có cổng USB, nên các board Arduino cần có phần chuyển đổi từ USB sang tín hiệu UART Vì vậy, máy tính nhận diện cổng USB này như một cổng COM thay vì cổng USB tiêu chuẩn.
SPI là một chuẩn giao tiếp nối tiếp đồng bộ với bus 4 dây, cho phép các board Arduino kết nối với nhiều thiết bị như LCD, bộ điều khiển video game, bộ điều khiển cảm biến và đọc thẻ nhớ SD, MMC.
TWI (I2C) là một chuẩn giao tiếp đồng bộ với chỉ hai dây, cho phép các board Arduino kết nối với nhiều loại cảm biến như thermostat của CPU, điều chỉnh tốc độ quạt, sử dụng màn hình OLED/LCD, đọc đồng hồ thời gian thực và điều chỉnh âm lượng cho một số loại loa.
1.1.4.3.5 Môi trường lập trình board mạch Arduino
Thiết kế board mạch nhỏ gọn và tính năng đa dạng mang lại nhiều lợi thế cho Arduino, nhưng sức mạnh thực sự của nó nằm ở phần mềm Ngôn ngữ lập trình C/C++ của Arduino giúp đơn giản hóa việc giao tiếp với phần cứng thông qua các thư viện, làm cho lập trình trở nên dễ dàng hơn so với việc lập trình trực tiếp với vi điều khiển Đặc biệt, cộng đồng nguồn mở đã cung cấp một lượng lớn thư viện mã nguồn sẵn có để điều khiển các thiết bị ngoại vi như LCD, cảm biến, và động cơ, cho phép người dùng dễ dàng kết hợp chúng để phát triển ứng dụng riêng.
1.1.5 Chương trình cơ bản của Arduino
Chương trình Arduino có thể được chia làm 3 phần: cấu trúc (structure), biến số (variable) và hằng số (constant), hàm và thủ tục (function)
Một chương trình cơ bản bao gồm hai phần chính đó là setup() và loop()
Hàm setup() là nơi bạn khai báo các biến, thư viện và thiết lập thông số cho Arduino Nó chỉ chạy một lần duy nhất khi cấp nguồn cho thiết bị, cho đến khi hệ thống được reset.
Tổng quan về phần mềm LabView
LabVIEW là một ngôn ngữ lập trình độc đáo, khác biệt so với các ngôn ngữ như C hay Java Nó sử dụng cú pháp hình ảnh, do đó được gọi là lập trình G, viết tắt của từ "Graphical" (đồ họa).
– LabVIEW đƣợc ứng dụng trong nhiều lĩnh vực nhƣ tự động hóa, điều khiển, điện tử , điện tử y sinh, cơ điện tử ,…
1.2.1 Chức năng chính của phần mềm LabVIEW
Thu thập tín hiệu từ các thiết bị bên ngoài nhƣ cảm biến nhiệt độ, hình ảnh từ webcam, vận tốc của động cơ,…
Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp thông qua các cổng giao tiếp: RS232, RS485, USB, PCI, Ethernet
Mô phỏng và xử lý tín hiệu thu nhận được là cần thiết để phục vụ cho các mục đích nghiên cứu hoặc đáp ứng yêu cầu của hệ thống mà lập trình viên mong muốn.
Xây dựng các giao diện người dùng một cách nhanh chóng và thẩm mỹ hơn nhiều so với các ngôn ngữ khác nhƣ Visual Basic, Matlab,
Cho phép thực hiện các thuật toán điều khiển nhƣ PID, Logic mờ (Fuzzy
Logic), một cách nhanh chóng thông qua các chức năng tích hợp sẵn trong LabVIEW
Cho phép kết hợp với nhiều ngôn ngữ lập trình truyền thống nhƣ C, C++,…
1.2.2 Những khái niệm cơ bản đƣợc sử dụng trong phần mềm LabVIEW
1.2.2.1 VI (Vitual Instrument) – Thiết bị ảo
Lập trình LabVIEW sử dụng các thiết bị ảo (VI) để mô phỏng các thiết bị thực Các đối tượng trong các thiết bị ảo này được bổ sung bởi phần mềm, tương tự như các hàm trong các ngôn ngữ lập trình khác.
1.2.2.2 Front Panel và Block Diagram
Một chương trình trong LabVIEW bao gồm hai phần chính: giao diện người dùng (Front Panel) và sơ đồ khối (Block Diagram) với mã nguồn và các biểu tượng kết nối (Icon/Connector).
Front panel là một giao diện tương tác giống như bảng điều khiển của thiết bị thực tế, bao gồm các nút bấm, nút bật, đồ thị và bộ điều khiển Người dùng có thể sử dụng chuột và bàn phím để nhập dữ liệu, sau đó chạy chương trình và quan sát kết quả Front panel thường bao gồm các bộ điều khiển (Control) và bộ hiển thị (Indicator) để hỗ trợ quá trình này.
Control là các đối tƣợng đƣợc đặt trên Front Panel để cung cấp dữ liệu cho chương trình Nó tương tự như đầu vào cung cấp dữ liệu
Indicator là đối tƣợng đƣợc đặt trên Front Panel dùng để hiện thị kết quả, nó tương tự như bộ phận đầu ra của chương trình
Hình 1.3: Giao diện Front Panel của phần mềm LabVIEW
Block diagram của một VI trong môi trường LabVIEW là sơ đồ đồ họa chứa nhiều đối tượng và hàm, tạo thành cấu trúc lệnh cho chương trình Nó thể hiện mã nguồn đồ họa của VI, trong đó các đối tượng trên Front Panel được biểu diễn bằng thiết bị đầu cuối trên Block Diagram Thiết bị đầu cuối không thể bị loại bỏ trừ khi đối tượng tương ứng trên Front Panel bị xóa Cấu trúc của Block Diagram bao gồm các thiết bị đầu cuối, nút và dây nối.
Hình 1.4: Block Diagram của phần mềm LabVIEW
Biểu tượng (icon) trong VI đại diện cho một SubVI, cho phép một VI sử dụng chức năng của một VI khác SubVI tương đương với chương trình con trong các ngôn ngữ lập trình khác.
A connector is a component of a terminal that links the inputs and outputs of virtual instruments (VIs) during use Each VI features a default icon displayed in the icon panel located at the top right corner of the Front Palette and Block Diagram windows.
Khi các VI được phân cấp và module hóa, chúng có thể được sử dụng như các chương trình con Việc xây dựng một VI có thể được thực hiện bằng cách chia thành nhiều VI nhỏ thực hiện các chức năng đơn giản, sau đó kết hợp chúng lại để thực thi các công việc cụ thể trong một chương trình.
1.2.3 Các kỹ thuật lập trình trên LabVIEW
Khác với các ngôn ngữ lập trình truyền thống, LabVIEW sử dụng các bảng như Tools Palette, Controls Palette và Function Palette, giúp người dùng dễ dàng tạo và chỉnh sửa trên Front Panel và Block Diagram Những bảng này cung cấp các biểu tượng và hình ảnh trực quan, làm cho việc lập trình trở nên đơn giản và linh hoạt hơn, thay vì phải nhớ các câu lệnh phức tạp.
Bảng Tool Panel xuất hiện trên cả Font Panel và Block Diagram, cho phép người dùng thiết lập các chế độ làm việc đặc biệt cho con trỏ chuột Khi chọn một công cụ, biểu tượng của con trỏ sẽ thay đổi theo công cụ đó Nếu thiết lập chế độ tự động lựa chọn công cụ, khi di chuyển con trỏ qua các đối tượng trên Front Panel hoặc Block Diagram, LabVIEW sẽ tự động chọn công cụ phù hợp từ bảng Tool Palette.
1.2.3.2 Controls Palette (bảng điều khiển)
Bảng điều khiển chỉ xuất hiện trên Front panel và bao gồm các bộ điều khiển và bộ hiển thị Hình ảnh minh họa bảng điều khiển đầy đủ được cung cấp bên dưới Để mở bảng controls palette, bạn vào menu View và chọn controls palette.
Bảng điều khiển cho phép người sử dụng thiết kế cấu trúc mặt hiển thị với các thiết bị như công tắc, đèn và màn hình hiển thị Người dùng có thể lựa chọn các bộ thiết bị chuẩn từ nhà sản xuất hoặc tự xây dựng thiết bị riêng Bảng điều khiển không chỉ cung cấp dữ liệu đầu vào mà còn hiển thị kết quả đầu ra.
Hình dưới đây là một số bộ điều khiển điển hình của LabVIEW
Bộ công cụ này dùng để hiện thị và điều khiển dữ liệu dạng số trong chương trình LabVIEW
Bộ công cụ này cung cấp hai giá trị là True và False, cho phép người sử dụng điều khiển giá trị của thiết bị bằng chuột Giá trị của các thiết bị chỉ thay đổi khi chúng được thiết lập ở chế độ Control; nếu ở chế độ Indicator, giá trị sẽ không thay đổi vì chúng chỉ có chức năng hiển thị.
Các điều khiển này cho phép nhập và hiển thị ký tự, đồng thời có thể được thiết lập ở chế độ đầu vào hoặc đầu ra, hoặc chỉ định đường dẫn đến các file cần hiển thị.
Truyền thông với máy tính thông qua firmware Linx và phần mềm LabVIEW 18 1 Nhân LIFA
Bằng phần mềm LabVIEW, ta có thể dễ dàng viết giao diện và truyền thông với board arduino thông qua 2 nhân LIFA (LabVIEW Interface for Arduino) hoặc LINX.
Module này thuộc gói phần mềm mở rộng VI Package Manager của LabVIEW, cho phép biến Arduino thành một I/O mở rộng cho máy tính.
1.3.1.1 Cài đặt phần mềm VIPM
- Khi máy tính đã cài sẵn phần mền LabVIEW, thì tiếp sau đó ta cài đặt phần mềm
VI Package Manager (VIPM) Đây là phần mềm quản lý cũng nhƣ giúp chúng ta download các gói module VI của LabVIEW
- Sau khi cài đặt xong ta vào VIPM và tìm giao diện Arduino cho LabVIEW với từ khóa “LabVIEW Interface for Arduino” Sau đó cài đặt LabVIEW Interface for
Hình 1.14: Giao diện của phần mềm VIPM
- Tiếp đến ta kết nối Arduino với máy tính qua cổng USB
- Nạp mã nguồn cho Arduino để có thể giao tiếp với LabVIEW theo đường dẫn sau:
C:\ProgramFiles(x86)\NationalInstruments\LabVIEW2017\vi.lib\LabVIEW interface for Arduino\Firmware\ LIFA_Base
Ngay sau đó, Trình dịch IDE Arduino sẽ tự hiển thị:
Hình 1.15 : Giao diện IDE Arduino hiển thị ngau sau khi được nạp mã nguồn để giao tiếp với LabVIEW
1.3.1.2 Demo điều khiển LED trong Example làm ví dụ
Mở ví dụ "Arduino BlinkM.vi" trong thƣ mục "LabVIEW Interface for
Arduino" Có 4 đèn hiện thị trên board Arduino:
Đèn báo Nguồn (Power LED)
Đèn báo ở chân Led số 13 Khi giao tiếp với máy tính thành công thì đèn TX và
Bấm nút "RUN" để chạy chương trình
Nhân LIFA cho phép giao tiếp với các cảm biến thông dụng qua chương trình có sẵn trong LabView, nhưng toàn bộ hoạt động của Arduino vẫn phụ thuộc vào máy tính Arduino chỉ đóng vai trò như một card mở rộng I/O và chưa tận dụng hết sức mạnh của thư viện riêng, vì nó không thể hoạt động độc lập như một realtime-target Do đó, chúng ta sẽ không đề cập đến nhân này.
1.3.2 Nhân LINX Đây cũng là module mở rộng của LabView do bên thứ ba là Digilent viết, dùng để giao tiếp, truyền thông với Arduino một cách dễ dàng Nhƣng với nhân này, ta tận dụng đƣợc các khối truyền thông có sẵn trên LabView để truyền số liệu cũng nhƣ điều khiển arduino, mặt khác vẫn có thể tùy chỉnh nhân LINX trên arduino bằng cách lập trình bằng chương trình Arduino IDE như thông thường Do đó ta có thể tận dụng đƣợc nguồn thƣ viện dồi dào của arduino, có thể làm Arduino này chạy độc lập hoàn toàn và cũng có thể giao tiếp với máy tính một cách dễ dàng
Cách cài module này cũng tương tự như LIFA: Ta có thể tải thông qua gói cài đặt VI Package Manager
1.3.2.1 Đối với các ứng dụng cơ bản
Chúng ta có thể lập trình trực tiếp trên LabVIEW cho các ứng dụng không yêu cầu cảm biến phức tạp và nạp firmware LINX gốc xuống cho Arduino.
- Trước hết, ta nạp nhân firmware LINX gốc xuống cho arduino
- Mở phần mềm Labview lên, chọn Tool\Maker Hub\LINX\LINX Firmware Wizard
- Ta chọn các thông số nhƣ sau rồi nhấn tiếp tục
Hình 1.16: Các thông số cần chọn khi cài đặt nhân LINX
- Tiếp tục chọn cổng Com kết nối với arduino
Để nạp firmware xuống Arduino, bạn chỉ cần để mặc định như hình và chọn Next Sau khi quá trình nạp firmware hoàn tất, hãy chọn Launch Example để mở các bài tập mẫu.
Hình 1.17: Bài tập ví dụ tự điều khiển nhấp nháy LED
- Ta phải chọn Serial Port:COM3, chọn chân Digital Output Channel : 13
Nhấn vào nút màu xanh LED Control để điều khiển LED; nếu nút sáng, LED sẽ sáng và ngược lại Qua đó, bạn có thể tự do điều chỉnh LED nhấp nháy hoặc tắt theo ý muốn.
Hình 1.18: Đoạn code của chương trình Manual Blink
1.3.2.2 Đối với các ứng dụng nâng cao Đối với các ứng dụng nâng cao, cần tận dụng thƣ viện của Arduino IDE để giao tiếp với các cảm biến và truyền số liệu về, ta làm nhƣ sau:
Mở Arduino IDE, truy cập thư viện Arduino và chọn file Arduino_Mega_2560_Serial trong mục LINX để mở chương trình mẫu.
** This is example LINX firmware for use with the Arduino Mega 2560 with the serial
** For more information see: www.labviewmakerhub.com/linx
** For support visit the forums at: www.labviewmakerhub.com/forums/linx
//Đính kèm tất cả các thƣ viện ngoại vi đƣợc sử dụng bởi LINX
//Trỏ tới thiết bị đang dùng
//Khởi tạo thiết bị và cài đặt kết nối truyền thông void setup()
//Kết nối đến các hàm truyền tin
//Đặt code của chương trình điều khiển ở đây
} Để tùy biến, truyền số liệu về, ta thêm các hàm với cú pháp sau:
//Đính kèm tất cả các thƣ viện ngoại vi đƣợc sử dụng bởi LINX
//Thêm dòng lệnh này để khai báo hàm tùy biến
//0 là ID của hàm, myCustomCommand là tên của hàm
//Kết nối đến các hàm truyền tin
//Đặt code của chương trình điều khiển ở đây
// Viết code cho hàm tùy biến: myCustomCommand int myCustomCommand(unsigned char numInputBytes, unsigned char* input, unsigned char* numResponseBytes, unsigned char* response)
//numInputBytes là số byte truyền từ máy tính xuống
//input là mảng 1 chiều chứa các byte truyền từ máy tính xuống
//numResponseBytes là số byte truyền lên máy tính
//response là mảng một chiều truyền lên máy tính
*numResponseBytes = numInputBytes; return 0; // hàm này có ý nghĩa lấy các số nhận được từ máy tính truyền xuống cộng thêm
Hình 1.19: Kết quả thu được khi thực hiện chương trình hàm tùy biến
Ta có thể đặt hàm giao tiếp với cảm biến để đọc giá trị ở vòng lặp loop(), sau đó
SỐ BÀI THÍ NGHIỆM THIẾT KẾ TRÊN BỘ KIT ARDUINO SỬ DỤNG CÁC CẢM BIẾN THÔNG DỤNG
Sơ lƣợc về các linh kiện điện tử
Hình 2.1: Hình ảnh điện trở 10k Ω và ký hiệu về điện trở
2.1.2 LED siêu sáng 5mm (LED đơn)
Hình 2.2: Hình ảnh và ký hiệu về LED siêu sáng 5mm
Hình 2.3: Hình ảnh và ký hiệu của nút nhấn 4 chân
Hình 2.4: Hình ảnh của nút nhấn 2 chân
Hình 2.5: Hình ảnh tụ gốm 104
* Thông số kỹ thuật: Điện dung: 0.1àf Điện áp: 50V
Loại: tụ điện cố định
Tụ gốm 104 là loại tụ điện không phân cực, được chế tạo từ công nghệ gốm với điện môi đặc trưng Linh kiện này có hai chân cắm được mạ thiếc và thường được sử dụng trong các mạch cao tần hoặc mạch lọc nhiễu nhờ vào giá trị nhỏ của nó.
Hình 2.7: Mặt trước và mặt sau của cảm biến DHT21
- Kích thước sản phẩm : 13.8x26.7x58.8mm
- Dải đo nhiệt độ: -40-80 độ C
- Sai số nhiệt độ: +-0.3 độ C
- Chuẩn giao tiếp: 1 dây (1 wire)
- Dây vàng: dây truyền dữ liệu (DATA)
Hình 2.8: Sơ đồ nối chân của cảm biến
- Cảm biến DHT21 là cảm biến dùng để đo nhiệt độ và độ ẩm
DHT21/AM2301 là mạch tích hợp đo nhiệt độ và độ ẩm với độ chính xác cao và khả năng chống nhiễu tốt Sản phẩm sử dụng ngõ ra tín hiệu số và giao tiếp với Vi điều khiển 8-bit qua một dây duy nhất (SDA), giúp tiết kiệm chân Vi điều khiển Với thiết kế nhỏ gọn và tiêu thụ điện năng thấp, DHT21/AM2301 cho phép khoảng cách truyền dẫn tín hiệu lên đến 20m, mang lại sự thuận tiện trong lắp đặt.
2.1.7 Cảm biến siêu âm HY-SRF05 (đo khoảng cách)
Hình 2.9: Mặt trước và mặt sau của cảm biến HY-SRF05
Dùng đo khoảng cách, đo mực chất lỏng, robot dò đường, phát hiện các vết đứt gãy trong dây cáp
- Tín hiệu đầu ra: xung HIGH(5V) và LOW(0V)
- Khoảng cách đo : 2cm – 450cm
Sơ đồ chân: có 5 chân
Chức năng của các chân:
1 Vcc: cấp nguồn cho cảm biến
2 Trigger: kích hoạt quá trình phát sóng âm Quá trình kích hoạt khi một chu kì điện cao / thấp diễn ra
3 Echo: bình thường sẽ ở trạng thái 0V, được kích hoạt lên 5V ngay khi có tín hiệu trả về, sau đó trở về 0V
4 Gnd: nối với cực âm của mạch
2.1.8 PIR sensor alarm Cảm biến phát hiện chuyển động
Hình 2.10: Mặt trước và mặt sau của cảm biến PIR
- Sử dụng điện áp: 4.5V - 20V DC
- Điện áp đầu ra: 0V - 3.3V DC
- Có 2 chế độ hoạt động:
- (L) không lặp lại kích hoạt
- Thời gian trễ: điều chỉnh trong khoảng 0.5-200S
- Sử dụng cảm biến: 500BP
- Kích thước PCB: 32mmx24mm
- Thứ tự chân: Vcc OUT GND
GND – kết nối với mặt đất
OUT – kết nối đến một Arduino kỹ thuật số pin
Cảm biến được trang bị hai chiết áp để điều chỉnh thời gian trễ và độ nhạy Thông thường, cảm biến hoạt động với điện áp 5VDC, nhưng có thể chuyển sang điện áp 3.3V bằng cách thay đổi chân jump trên board mạch, hoặc nếu không có chân jump, bạn có thể điều chỉnh mạch điện một cách đơn giản.
Hình 2.11: Sơ đồ chân của cảm biến PIR
- Board có lỗ định vị dễ dàng lắp đặt
- LM393 khoảng so sánh điện áp rộng
Hình 2.12: Hình ảnh về module cảm biến mưa FC-37
- Kích thước tấm cảm biến mưa: 54 x 40mm
- Kích thước board PCB: 30 x 16mm
- Đầu ra: đầu ra kỹ thuật số (0 và 1) và đầu ra tương tự điện áp A0 ;
- Lỗ cố định bu lông dễ dàng để cài đặt
- Có đèn báo hiệu nguồn và đầu ra
- Đầu ra TTL, tín hiệu đầu ra TTL có giá trị thấp Có thể điều khiển trực tiếp relay, buzzer, a small fan
- Độ nhạy có thể đƣợc điều chỉnh thông qua biến trở xanh
Thứ tự chân Tên gọi Mô tả
3 A0 tín hiệu đầu ra analog
4 D0 tín hiệu đầu ra digital
Bảng 2.1: Sơ đồ chân cảm biến mưa
2.1.10 Cảm biến dò line đơn TCRT5000
Cảm biến dò line TCRT5000 có khả năng phát hiện line trắng và đen với khoảng cách phát hiện từ 1 đến 25mm, giúp việc cài đặt module trở nên dễ dàng Độ nhạy của cảm biến có thể được điều chỉnh thông qua biến trở tích hợp trên board Mạch này rất phù hợp cho các thiết bị cần di chuyển theo line và phát hiện màu sắc như trắng, đen.
Hình 2.13: Mặt trước và mặt sau của cảm biến hồng ngoại TCRT5000
- Mạch sử dụng chip so sánh LM393
- Dòng điện tiêu thụ: 1000){ time2=millis(); lcd.setCursor(0, 1); lcd.print("Nhiet Do: "); lcd.print(sn/100); lcd.print(","); lcd.print(sn%100); lcd.write(0xDF); lcd.write(0x43); lcd.setCursor(0, 2); lcd.print("%");
Hình 2.22: Kết quả chương trình giám sát nhiệt độ, độ ẩm từ môi trường thông qua cảm biến DHT21 được hiển thị trên LCD 20x4
Các bài thí nghiệm giao tiếp giữa Arduino và LabVIEW thông qua nhân LINX 45 1 Ví dụ về chương trình giao tiếp với cảm biến nhiệt độ và truyền về máy tính 45 2 Chương trình đo nhiệt độ môi trường hiển thị trên LCD
2.3.1 Ví dụ về chương trình giao tiếp với cảm biến nhiệt độ và truyền về máy tính
OneWire oneWire(ONE_WIRE_BUS);
{ sensors.begin(); sensors.isParasitePowerMode(); sensors.getAddress(cb0, 0); sensors.setResolution(cb0, TEMPERATURE_PRECISION);
} int nhietdo(unsigned char numInputBytes, unsigned char* input, unsigned char* numResponseBytes, unsigned char* response)
{ unsigned int nguyen,thapphan; sensors.requestTemperatures(); t = sensors.getTempC(cb0); nguyen=t; thapphan=(t-nguyen)*10; response[0] = nguyen; response[1] = thapphan;
Hình 2.23: Kết quả chương trình đọc nhiệt độ
2.3.2 Chương trình đo nhiệt độ môi trường hiển thị trên LCD Ở bài toán này, ta có thể đọc nhiệt độ đo đƣợc từ cảm biến đo nhiệt độ thông qua LCD một cách độc lập không cần đến LabVIEW Hoặc ta vẫn có thể đọc song song cùng lúc nhiệt độ môi trường từ màn hình LCD và trên giao diện của LabVIEW Đây chính là ƣu điểm của nhân LINX
#include const int rs = 12, en = 11, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); float t; float t_lcd,t_cb; unsigned int nguyen,thapphan;
OneWire oneWire(ONE_WIRE_BUS);
{ t_lcd=millis(); t_cb=millis(); lcd.begin(20, 4); lcd.print("CT do nhiet do"); sensors.begin(); sensors.getDeviceCount(); sensors.isParasitePowerMode(); sensors.getAddress(cb0, 0); sensors.setResolution(cb0, TEMPERATURE_PRECISION);
LinxSerialConnection.AttachCustomCommand(0, nhietdo); lcd.setCursor(0,1); lcd.print("Hien thi LCD");
LinxSerialConnection.CheckForCommands(); if (millis()-t_cb>1000){ sensors.requestTemperatures(); t = sensors.getTempC(cb0); nguyen=t; thapphan=(t-nguyen)*10; t_cb=millis();
The code snippet updates an LCD display every second, showing the temperature in degrees Celsius It sets the cursor to the third row, prints "Nhiet Do: " followed by the integer and decimal parts of the temperature, and includes the degree symbol Additionally, it defines a function, `nhietdo`, which processes input and output data related to temperature readings.
Code trên LabView cho bài toán này tương tự như ví dụ về chương trình giao tiếp với cảm biến nhiệt độ và truyền dữ liệu về máy tính Điểm khác biệt là chúng ta có thể đọc được nhiệt độ thông qua màn hình LCD.
Dưới đây là kết quả hiển thị trên LCD:
Hình 2.24: Kết quả chương trình đọc nhiệt đọ hiển thị trên LCD
BÀI THÍ NGHIỆM ĐIỀU KHIỂN ĐỘNG CƠ, GIAO TIẾP CẢM BIẾN VÀ TRUYỀN THÔNG VỚI MÁY TÍNH
Giới thiệu sơ lƣợc về bộ điều khiển
Kết hợp board mạch Arduino với LabVIEW qua nhân LINX cho phép điều khiển hai động cơ DC, điều chỉnh tốc độ và sử dụng một động cơ như máy phát điện để thay đổi độ sáng bóng đèn Qua đó, ta có thể đo dòng điện và hiệu điện thế tạo ra Sử dụng cảm biến, các thông số như nhiệt độ, tốc độ động cơ, dòng điện và hiệu điện thế sẽ được hiển thị trên màn hình LCD 20x4 hoặc máy tính thông qua phần mềm LabVIEW Người dùng cũng có thể tùy chỉnh tốc độ động cơ từ máy tính để hiển thị trên LCD.
Giới thiệu các linh kiện sử dụng trong bộ điều khiển
Hình 3.1: Động cơ DC 12V được sử dụng trong mô hình
Động cơ một chiều DC (Direct Current Motors) là loại động cơ điều khiển trực tiếp, bao gồm hai dây: dây nguồn và dây tiếp đất Động cơ DC có khả năng quay liên tục với tốc độ cao, thường được sử dụng trong các ứng dụng như quạt làm mát máy tính và kiểm soát tốc độ quay của bánh xe.
Để điều khiển tốc độ quay của động cơ DC, người ta sử dụng kỹ thuật điều biến độ rộng xung (PWM), cho phép điều chỉnh tốc độ vận hành bằng cách bật và tắt các xung điện Tỷ lệ phần trăm vận tốc theo thời gian của thiết bị được kiểm soát thông qua cơ chế bật tắt ở một mức độ cơ sở vòng quay xác định của động cơ.
Khi một động cơ hoạt động với nguồn điện xoay chiều ở mức 50%, nó sẽ quay với một nửa số vòng quay so với mức 100% Mục đích của việc này là để đảm bảo rằng động cơ có thể quay liên tục với tần số cao mà không gặp phải lỗi, ngay cả khi các xung nối tiếp nhau với tốc độ rất nhanh Nguyên lý này sẽ được áp dụng trong mô hình thí nghiệm được trình bày ở phần sau.
- Động cơ 1: Động Cơ DC 12V RS 555-PH
- Động cơ 2: Động Cơ DC 12V RS 550 High
Hai động cơ được gắn cố định trên trục quay và kết nối với nhau bằng dây xích Khi nạp điện, động cơ 1 quay, đồng thời động cơ 2 cũng quay, với động cơ 2 hoạt động như một máy phát điện tạo ra điện áp.
* Chức năng: Khi động cơ quay tạo ra dòng điện, bóng đèn phát sáng và độ sáng thay đổi tùy thuộc vào tốc độ động cơ
3.2.3 Cảm biến dòng điện MAX471-3A
Hình 3.4: Hình ảnh của cảm biến dòng điện MAX471-3A
Cảm biến dòng điện MAX471 3A sử dụng phương pháp đo dòng bằng điện trở, mang lại độ chính xác cao cho việc đo dòng điện của các thiết bị nhỏ sử dụng pin, module và mạch điện Cảm biến này cung cấp tín hiệu trả về dưới dạng điện áp với hệ quy chiếu 1V~1A, giúp dễ dàng đọc qua chân Analog của vi điều khiển.
Điện áp sử dụng không được vượt quá 5 lần điện áp định mức của vi điều khiển Cụ thể, với vi điều khiển có điện áp 3.3VDC, điện áp tối đa là 16.5VDC, trong khi vi điều khiển 5VDC có điện áp tối đa là 25VDC.
* Sơ đồ chân cảm biến MAX471:
Hình 3.5: Sơ đồ chân của cảm biến MAX471
Cảm biến dòng điện MAX471-3A được sử dụng trong thí nghiệm này để đo dòng điện của máy phát điện qua dây dẫn Khi tốc độ động cơ tăng, điện áp và cường độ dòng điện cũng tăng theo.
3.2.4 Module điều khiển động cơ DC BTS7960 43A
Hình 3.6: Mặt trước và mặt bên của module điều khiển động cơ
Mạch cầu H IBT-2 tích hợp driver cho vi điều khiển, cung cấp các tính năng như cảm biến dòng, tạo dead time, và bảo vệ chống quá nhiệt, quá áp, quá dòng, sụt áp và ngắn mạch.
- Tín hiệu logic điều khiển: 3.3 ~ 5V
- Tần số điều khiển tối đa: 25KHz
Thiết bị sẽ tự động ngắt khi điện áp sụt xuống dưới 5.5V để bảo vệ động cơ khỏi việc hoạt động ở mức điện áp thấp Khi điện áp trở lại trên 5.5V, driver sẽ tự động khôi phục nguồn điện.
- Bảo vệ quá nhiệt : BTS7960 bảo vệ chống quá nhiệt bằng cảm biến nhiệt tích hợp bên trong Đầu ra sẽ bị ngắt khi có hiện tƣợng quá nhiệt
VCC : Nguồn tạo mức logic điều khiển ( 5V - 3V3 )
R_EN = 0 Disable nửa cầu H phải R_EN = 1 : Enable nửa cầu H phải
L_EN = 0 Disable nửa cầu H trái L_EN = 1 : Enable nửa cầu H trái
RPWM và LPWM : chân điều khiển đảo chiều và tốc độ động cơ
+ RPWM = 1 và LPWM = 0 : Mô tơ quay thuận
+ RPWM = 0 và LPWM = 1 : Mô tơ quay nghịch
+ RPWM = 1 và LPWM = 1 hoặc RPWM = 0 và LPWM = 0 : Dừng
R_IS và L_IS : kết hợp với điện trở để giới hạn dòng qua cầu H
Với ứng dụng bình thường RPWM,LPWM nối với GPIO (VD : chân digital 2,3) để điều khiển chiều quay của động cơ
Chân R_EN , L_EN nối chung lại rồi nối với PWM (VD chân digital 5) để điều khiển tốc độ động cơ
Module này có chức năng điều khiển tốc độ động cơ thông qua chân băm xung PWM số 2 Bằng cách sử dụng hai nút nhấn để tăng và giảm tốc độ, người dùng có thể dễ dàng điều chỉnh tốc độ động cơ theo ý muốn.
3.2.5 Cảm biến đo nhiệt độ DS18B20 (-55°C đến +125°C)
Hình 3.7: Hình ảnh cảm biến đo nhiệt độ DS18B20
Cảm biến DS18B20 là một thiết bị đo nhiệt độ kỹ thuật số với độ phân giải cao lên đến 12 bit Nó sử dụng giao tiếp 1 dây, giúp việc lập trình trở nên đơn giản và gọn gàng Ngoài ra, cảm biến còn có chức năng cảnh báo khi nhiệt độ vượt ngưỡng và có khả năng cấp nguồn từ chân data, được gọi là parasite power.
Cảm biến có thể hoạt động ở 125 độ C nhưng cáp bọc PVC => nên giữ nó dưới
100 độ C Đây cảm biến kỹ thuật số, nên không bị suy hao tín hiệu đường dây dài
Dải đo nhiệt độ : -55 - 125 độ C ( -67 - 257 độ F)
Sai số : 0.5 độ C khi đo ở dải -10 - 85 độ C
Độ phân giải : người dùng có thể chọn từ 9 - 12 bits
Chuẩn giao tiếp : 1-Wire ( 1 dây )
Có cảnh báo nhiệt khi vƣợt ngƣỡng cho phép và cấp nguồn từ chân data
Thời gian chuyển đổi nhiệt độ tối đa : 750ms ( khi chọn độ phân giải 12bit )
Mỗi IC có một mã riêng (lưu trên EEPROM của IC) nên có thể giao tiếp nhiều DS18B20 trên cùng 1 dây
Ống thép không gỉ (chống ẩm , nước) đường kính 6mm, dài 50mm
Đường kính đầu dò: 6mm
Bảng 3.1: Sơ đồ nối chân của cảm biến đo nhiệt độ DS18B20
* Lưu ý: Để đo đƣợc nhiệt độ ta cần thêm 1 điện trở 4.7k Ohm nối từ chân DQ lên VCC
Nguyên lý hoạt động của bộ điều khiển tốc độ động cơ
Hệ thống hoạt động theo nguyên lý:
Khi nạp điện cho động cơ 1, động cơ 2 sẽ hoạt động như một máy phát điện, tạo ra điện áp Chúng ta sẽ kết nối bóng đèn để quan sát sự thay đổi độ sáng của nó tùy thuộc vào việc điều chỉnh tốc độ của động cơ.
Có 3 nút nhấn SW1 (chân digital 22), SW2 (chân digital 23), SW3 (chân digital
Bài viết mô tả ba chương trình cài đặt sẵn để điều khiển tốc độ động cơ Khi nhấn nút SW1, tốc độ động cơ sẽ tăng, trong khi nhấn nút SW2 sẽ làm giảm tốc độ Nút SW3 được sử dụng để reset hệ thống Đồng thời, trong quá trình điều khiển tốc độ, điện áp và dòng ra của hệ thống sẽ được đo lường.
Cảm biến nhiệt độ lúc này sẽ hoạt động và đo nhiệt độ của động cơ
Các thông số: Tốc độ động cơ (%), điện áp (V), dòng điện (A), và nhiệt độ động cơ ( 0 C) sẽ lần lƣợt đƣợc hiển thị trên màn hình LCD 20x4
Khi sử dụng phần mềm LabView để giao tiếp với máy tính, người dùng có thể tùy chỉnh tốc độ động cơ theo ý muốn Sau khi nhấn nút, hệ thống sẽ tự động chạy chương trình và hiển thị kết quả trên màn hình LCD.
Sơ đồ khối toàn mạch
Hình 3.8: Sơ đồ khối toàn mạch
Hệ thống được phát triển trên nền tảng Arduino Mega 2560 kết hợp với firmware LINX và phần mềm LabVIEW, cho phép truyền thông dễ dàng giữa Arduino và máy tính qua cổng USB Giải pháp này thay thế cho các card điều khiển logic phức tạp, giúp điều khiển thiết bị bằng máy tính một cách hiệu quả.
Chúng ta có thể điều khiển tốc độ của động cơ một cách trực tiếp thông qua việc nhấn các nút hoặc sử dụng phần mềm LabVIEW kết hợp với firmware LINX một cách độc lập.
KHỐI ĐIỀU KHIỂN ĐỘNG CƠ
KHỐI ĐIỀU KHIỂN TRUNG TÂM
Sơ đồ nguyên lý của toàn mạch
3.5.1 Khối điều khiển trung tâm
Khối điều khiển trung tâm bao gồm:
Vi xử lý ATMega 2560 dùng để xử lý thuật toán, nhận tín hiệu từ các phím nhấn để điều khiển hiển thị trên LCD…
Code lập trình sẽ đƣợc nạp vào vi điều khiển để điều khiển cho mạch hoạt động
3.5.2 Khối điều khiển động cơ
Bao gồm: Module điều khiển động cơ DC BTS7960 43A
Module này sẽ thực hiện việc điều khiển tốc độ của động cơ 1, làm cho động cơ
2 quay và lúc này động cơ 2 đóng vai trò là 1 máy phát điện
3.5.3 Động cơ và máy phát Động cơ 1 hoạt động nhờ module điều khiển tốc độ, từ đó làm động cơ 2 quay và tạo ra điện áp nối đến bóng đèn làm thay đổi độ sáng của bóng đèn
Dùng để cấp nguồn VDC = 5V cho vi điều khiển cùng các linh kiện và nguồn
V DC = 12V để cấp nguồn cho động cơ quay
- Khối hiển thị đƣợc hiển thị trên màn hình LCD 20x4
Gồm 3 phím nhấn SW1, SW2, SW3
- Khi nhấn SW1: tốc độ động cơ tăng
- Khi nhấn SW2: tốc độ động cơ giảm
* Cảm biến đo dòng ACS712 5A
* Cảm biến đo nhiệt độ DS18B20
Chức năng của các linh kiện trong mỗi khối đã được trình bày rõ ở phần trước
Công thức tính điện áp
Để đo điện áp từ động cơ, cần sử dụng mạch cầu phân áp, vì động cơ hoạt động với nguồn 12V trong khi board mạch Arduino chỉ hỗ trợ 5V Nếu không thực hiện phân áp, board mạch có thể bị hư hỏng.
Hình 3.10: Mạch cầu phân áp Ở mạch cầu phân áp nàyta sử dụng 2 điện trở R1= 10kΩ và R2=6k8 Ω
(3.1) sẽ chính là giá trị mà analog (A0) đọc đƣợc trong công thức này chính là điện áp mà ta càn đo để hiển thị lên màn hình LCD
Do đó để tính điện áp của động cơ, ta sử dụng công thức sau:
* Lưu ý : Ta áp dụng công thức (3.3) để viết code trên Arduino.
Code chương trình trên Arduino
The code initializes a LiquidCrystal display using specific pin assignments for the RS, EN, and data pins It declares several variables, including floating-point variables for temperature and other measurements, as well as integer variables for various calculations The setup prepares the system for displaying data on the LCD and performing necessary computations.
OneWire oneWire(ONE_WIRE_BUS);
The article discusses the initialization of an LCD display and sensor setup for a project titled "KIT MAY PHAT DIEN." It highlights the roles of the project supervisor, Cao Xuan Huu, and the student, L.T My Hanh The LCD is configured to display relevant information, and after a brief delay, it clears the screen to prepare for sensor operations The sensors are initialized, and their device count is retrieved, ensuring they are not in parasite power mode The address for the first sensor is obtained, and its resolution is set to the defined temperature precision Additionally, a Linx device is instantiated for the Arduino Mega 2560 platform.
LinxSerialConnection.AttachCustomCommand(0, nhietdo); pinMode(22, INPUT_PULLUP); pinMode(23,INPUT_PULLUP); pinMode(53,INPUT_PULLUP); } void loop()
{ LinxSerialConnection.CheckForCommands(); if(digitalRead(22)==LOW)
{tocdo=tocdo+10; if (tocdo>100) tocdo0; while (digitalRead(22)==LOW); } if(digitalRead(23)==LOW)
The code snippet begins by adjusting the variable `tocdo` based on its value, ensuring it does not exceed 9 It then waits for a digital signal before checking if more than a second has passed since the last temperature reading If so, it requests temperature data from the sensors, calculates the current temperature in Celsius, and updates the variables accordingly The display is refreshed every 500 milliseconds or when certain conditions are met, such as changes in `tocdo` or a digital signal The LCD is initialized, cleared, and updated with the current speed, temperature, current, and voltage readings Finally, the function `nhietdo` is defined to handle input and output for temperature readings.
{if (input[0]==1) {tocdo=input[1]; analogWrite(2,tocdo*2.55);} response[0] = nguyen; response[1] = thapphan; response[2] = tocdo; response[3] = ing; response[4] = itp; response[6] = utp;
*numResponseBytes = 7; return 0 ; } int tocdo_pc(unsigned char numInputBytes, unsigned char* input, unsigned char* numResponseBytes, unsigned char* response)
Code trên LabView
Hình 3.11: Kết quả trên giao diện Front Panel
Hình 3.12: Kết quả thu được hiển thị trên LCD
KẾT LUẬN VÀ KIẾN NGHỊ
1 Kết luận Đề tài này có thể đƣợc xem nhƣ một tài liệu giới thiệu về Arduino và cách thức giao tiếp của Arduino với máy tính thông qua phần mềm LabView Qua đó sinh viên các ngành học thực nghiệm sẽ học đƣợc thêm một cách giao tiếp mới, giúp sinh viên tiếp cận việc thực hành điền khiển các thiết bị hay thực hiện một ứng dụng nào đó một cách dễ dàng hơn Khóa luận này giới thiệu về bộ kit Arduino gồm nhiều bài thí nghiệm sử dụng các linh kiện, thiết bị và một số cảm biến thông dụng, hướng dẫn cách sử dụng phần mềm LabView một cách cơ bản nhất Vì thời gian nghiên cứu còn hạn chế nên khóa luận này chƣa thể đầy đủ các bài tập mà chỉ đƣa ra một số ví dụ điển hình Mặc dù vậy, sinh viên vẫn có thể phát triển thêm ý tưởng thiết kế mạch cho riêng mình mà không cần phụ thuộc quá nhiều vào các ví dụ đã trình bày trong khóa luận này
Arduino không chỉ dành cho những người có kiến thức về điện tử mà còn hướng đến mọi đối tượng Với ưu điểm nổi bật như tính phổ biến, chi phí thấp và nhiều thư viện hỗ trợ, người dùng có thể dễ dàng viết mã cho các ứng dụng mong muốn Board Arduino được trang bị đầy đủ các thành phần cần thiết như bộ chỉnh áp, đèn LED và bộ tạo dao động Chỉ cần mua một board Arduino, kết nối với cổng USB trên máy tính và viết một vài dòng mã, người dùng đã có thể tạo ra những ứng dụng thiết thực.
Khoa Vật lý nên xây dựng một kế hoạch học tập mới cho sinh viên, tích hợp Arduino vào chuyên ngành điện tử và các bài thực hành ghép nối, giao tiếp thiết bị Điều này sẽ giúp sinh viên phát huy tính tích cực và sáng tạo trong nghiên cứu, chế tạo các mô hình và ứng dụng thực tiễn, đặc biệt trong lĩnh vực điện tử, đo lường và tự động hóa.