THIẾT KẾ MẠCH ĐIỀU KHIỂN THIẾT BỊ ĐIỆN TRONG NHÀ QUA BLUETOOTH GVHD: NGUYỄN THỊ MAI LAN TP HỒ CHÍ MINH - THÁNG 06 NĂM 2019 LỜI MỞ ĐẦU Ngày nay, xã hội phát triển mạnh mẽ, kỹ thuật ngày càng hiện đại nên nhu cầu về trao đổi thông tin giải trí, nhu cầu về điều khiển các thiết bị từ xa, ngày càng cao. Và những hệ thống dây cáp phức tạp lại không thể đáp ứng nhu cầu này, nhất là ở những khu vực chật hẹp, những nơi xa xôi, trên các phƣơng tiện vận chuyển, Vì vậy công nghệ không dây đã ra đời và phát triển mạnh mẽ, tạo rất nhiều thuận lợi cho con ngƣời trong đời sống hằng ngày. Trong những năm gần đây công nghệ truyền nhận dữ liệu không dây đang có những bƣớc phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh. Hiện nay, có khá nhiều công nghệ không truyền nhận dữ liệu không dây nhƣ RF, Wifi, Bluetooth, NFC, ... Trong đó, Bluetooth là một trong những công nghệ đƣợc phát triển từ lâu và luôn đƣợc cải tiến để nâng cao tốc độ cũng nhƣ khả năng bảo mật. Trên thị trƣờng Việt Nam hiện nay chƣa có nhiều sản phẩm điều khiển thiết bị không dây, đa số những sản phẩm hiện có đều là nhập khẩu từ nƣớc ngoài với giá thành cao. Việc nghiên cứu và thiết kế một bộ sản phẩm điều khiển thiết bị không dây có một ý nghĩa lớn, giúp tăng thêm sự lựa chọn cho ngƣời sử dụng, sản phẩm đƣợc sản xuất trong nƣớc nên giá thành rẻ và góp phần phát triển các hệ thống điều khiển thông minh.
CƠ SỠ LÝ THUYẾT
GIỚI THIỆU VỀ ARDUINO
Hình 1.1: Bộ điều khiển đơn
Arduino là một board mạch vi xử lý được phát triển tại Ivrea, Ý, nhằm tạo ra các ứng dụng tương tác với môi trường Phần cứng của nó bao gồm một board mạch nguồn mở dựa trên vi xử lý AVR Atmel 8bit hoặc ARM Atmel 32-bit, với các tính năng như 1 cổng USB, 6 chân đầu vào analog và 14 chân I/O kỹ thuật số Ra mắt vào năm 2005, Arduino hướng đến việc cung cấp một phương thức dễ dàng và tiết kiệm cho những người yêu thích, sinh viên và chuyên gia trong việc tạo ra thiết bị tương tác thông qua cảm biến và cơ cấu chấp hành Các dự án phổ biến cho người mới bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ và phát hiện chuyển động Arduino cũng đi kèm với một môi trường phát triển tích hợp (IDE) cho phép người dùng lập trình bằng ngôn ngữ C hoặc C++.
Thông tin thiết kế phần cứng Arduino được công khai, cho phép người dùng tự tay tạo ra mạch Arduino theo mã nguồn mở Ước tính vào giữa năm 2011, đã có hơn 300.000 mạch Arduino chính được sản xuất.
8 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.
Arduino được ra mắt vào năm 2005 như một dự án dành cho sinh viên tại Viện Thiết kế Tương tác Ivrea ở Italy Massimo Banzi, một trong những người sáng lập, đã giảng dạy tại đây.
Arduino được đặt theo tên một quán bar ở Ivrea, nơi các nhà sáng lập của dự án thường xuyên gặp gỡ Tên gọi Arduino bắt nguồn từ Bá tước của Ivrea, người đã làm vua Italy từ năm 1002 đến 1014.
Một mạch Arduino bao gồm vi điều khiển AVR cùng với các linh kiện bổ sung, giúp dễ dàng lập trình và mở rộng với các mạch khác Điểm nổi bật của Arduino là các kết nối tiêu chuẩn, cho phép người dùng kết nối với các module mở rộng gọi là shield Nhiều shield truyền thông trực tiếp qua các chân khác nhau, trong khi một số khác sử dụng bus I²C, cho phép xếp chồng và sử dụng song song Arduino thường sử dụng các chip megaAVR như ATmega8, ATmega168, ATmega328, ATmega1280 và ATmega2560, cùng với một số bộ vi xử lý tương thích khác Hầu hết các mạch đều có bộ điều chỉnh tuyến tính 5V và thạch anh dao động 16 MHz, mặc dù một số thiết kế như LilyPad chạy ở 8 MHz và không có bộ điều chỉnh điện áp onboard Vi điều khiển Arduino có thể được lập trình sẵn với boot loader, cho phép tải chương trình vào bộ nhớ flash on-chip một cách dễ dàng, giúp việc sử dụng Arduino trở nên thuận tiện hơn với một máy tính gốc như bộ nạp chương trình.
Khi sử dụng ngăn xếp phần mềm Arduino, các board thường được lập trình qua kết nối RS-232, tuy nhiên phương thức thực hiện có thể khác nhau tùy vào đời phần cứng Các board Serial Arduino có mạch chuyển đổi RS232 sang TTL, trong khi các board hiện tại được lập trình qua cổng USB nhờ chip chuyển đổi USB-to-serial như FTDI FT232 Một số biến thể như Arduino Mini và Boarduino không chính thức sử dụng adapter hoặc cáp USB-to-serial có thể tháo rời, Bluetooth hoặc các phương thức khác Nếu sử dụng 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 áp dụng.
Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển để kết nối với các mạch ngoài, bao gồm 14 chân I/O kỹ thuật số, trong đó 6 chân hỗ trợ PWM và 6 chân analog có thể sử dụng như I/O số Các chân này được bố trí trên bề mặt board thông qua các header 0.10-inch (2.5 mm) Ngoài ra, nhiều shield ứng dụng plug-in cũng đã được phát triển Các board như Arduino Nano, Bare Bones Board và Boarduino cung cấp chân header đực trên bề mặt, thuận tiện cho việc cắm vào breadboard.
Có nhiều biến thể của Arduino như Arduino-compatible và Arduino-derived, với một số có chức năng tương đương và có thể thay thế cho nhau Nhiều mở rộng cho Arduino được thực hiện bằng cách thêm driver đầu ra, thường được sử dụng trong giáo dục để đơn giản hóa cấu trúc của các 'con rệp' và robot nhỏ Các board khác có thể tương đương về điện nhưng có sự thay đổi về hình dạng, đôi khi vẫn duy trì độ tương thích với các shield, đôi khi thì không Một số biến thể sử dụng bộ vi xử lý hoàn toàn khác biệt, dẫn đến các mức độ tương thích khác nhau.
Hình 1.2 Arduino Diecimila in Stoicheia Hình 1.3 Arduino Duemilanove (rev 2009b)
Hình 1.6 Arduino Mega Hình 1.7 Arduino Nano
Hình 1.4 Arduino UNO Hình 1.5 Arduino Leonar
Hình 1.8 Arduino MEGA 2560 R3 (mặt trước) Hình 1.9 Arduino MEGA 2560 R3 (mặt sa
Hình 1.10 Arduino Due (nền tảng ARM) Hình 1.11 LilyPad Arduino (rev 2007)
Arduino boards and Arduino-compatible devices utilize shields, which are expansion boards that connect via the header pins of the Arduino These shields can serve various functions, including motor control, GPS, Ethernet, LCD display, or even act as a breadboard Additionally, many enthusiasts create their own DIY shields to customize applications to their specific needs.
Các shield Arduino điển hình
Nhiều shield có thể đƣợc xếp chồng lên nhau Trong ví dụ này shield ở trên cùng có chứa một breadboard chƣa hàn.
Shield này sử dụng các đầu domino bắt vít dùng để đấu các đầu dây vào
Hình 1.13 Shield sử dụng đầu domino
Shield Adafruit Datalogging với một khe chứa thẻ nhớ SD và chip clock Real-Time
Môi trường phát triển tích hợp (IDE) của Arduino là một ứng dụng đa nền tảng được phát triển bằng Java, phục vụ cho việc lập trình bằng ngôn ngữ Processing và dự án Wiring.
Phần mềm này được phát triển dành riêng cho những người mới bắt đầu trong lĩnh vực lập trình Nó tích hợp một trình soạn thảo mã (code editor) với các tính năng như đánh dấu cú pháp, tự động khớp dấu ngoặc và căn lề tự động Người dùng có thể biên dịch và tải chương trình lên board chỉ với một cú nhấp chuột Trong ngữ cảnh lập trình Arduino, một chương trình hoặc mã được gọi là sketch.
Các chương trình Arduino được phát triển bằng ngôn ngữ C hoặc C++, sử dụng thư viện "Wiring" từ dự án Wiring gốc, giúp đơn giản hóa các thao tác nhập/xuất Người dùng chỉ cần định nghĩa hai hàm để tạo ra một chương trình vòng thực thi (cyclic executive) có khả năng hoạt động hiệu quả.
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 cơ bản cho bộ vi điều khiển là điều khiển bóng đèn LED sáng và tắt Trong môi trường lập trình Arduino, bạn cần viết một đoạn mã như sau:
Hình 1.15 Đèn led tích hợp với chân 13
Hầu hết các board Arduino đều có một đèn LED và điện trở kết nối giữa chân 13 và đất, điều này rất thuận tiện cho nhiều ứng dụng đơn giản Đoạn code trên không thể được nhận diện bởi một compiler C++ chuẩn, do đó khi nhấn nút "Upload to I/O board" trong IDE, một bản sao của code sẽ được ghi vào một file tạm với một header bổ sung ở đầu và một hàm main() đơn giản ở cuối, tạo 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.
Nền tảng Arduino sử dụng vi điều khiển của Atmel, do đó, bạn có thể sử dụng môi trường phát triển Atmel, bao gồm AVR Studio hoặc các phiên bản mới hơn của Atmel Studio, để phát triển phần mềm cho Arduino.
GIỚI THIỆU VỀ ARDUINO UNO R3
Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
Arduino UNO có thể được cấp nguồn 5V qua cổng USB hoặc nguồn ngoài với điện áp khuyên dùng từ 7-12V DC, giới hạn từ 6-20V Sử dụng pin vuông 9V là lựa chọn hợp lý nếu không có nguồn từ cổng USB Lưu ý rằng việc cấp nguồn vượt quá giới hạn trên có thể gây hỏng hóc cho Arduino UNO.
GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị với nguồn điện riêng biệt, các chân GND này cần được kết nối với nhau để đảm bảo hoạt động ổn định.
• 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
• 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.
• Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.
Chân IOREF trên Arduino UNO cho phép đo điện áp hoạt động của vi điều khiển, luôn duy trì ở mức 5V Tuy nhiên, không nên sử dụng chân này để lấy nguồn 5V vì chức năng chính của nó không phải là cấp nguồn.
• RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET đƣợc nối với GND qua 1 điện trở 10KΩ.
Arduino UNO không có chức năng bảo vệ khi cắm ngược nguồn, vì vậy cần kiểm tra kỹ các cực âm và dương trước khi cấp điện Nếu xảy ra chập mạch, Arduino UNO có thể hỏng hóc và trở thành một vật vô dụng Do đó, nên sử dụng nguồn từ cổng USB nếu có thể để đảm bảo an toàn cho thiết bị.
Các chân 3.3V và 5V trên Arduino được thiết kế để cung cấp nguồn cho các thiết bị khác, không phải để nhận nguồn vào Cấp nguồn sai vị trí có thể gây hỏng board, điều này không được khuyến khích bởi nhà sản xuất.
• Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board.
• Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328.
• Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vƣợt quá 200mA sẽ làm hỏng vi điều khiển.
• Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển.
Khi sử dụng Arduino UNO, cần lưu ý rằng cường độ dòng điện qua bất kỳ chân Digital hoặc Analog nào không được vượt quá 40mA để tránh làm hỏng vi điều khiển Nếu không sử dụng chân để truyền nhận dữ liệu, hãy mắc một điện trở hạn dòng để bảo vệ thiết bị.
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
Vi điều khiển có bộ nhớ Flash 32KB để lưu trữ các đoạn lệnh lập trình Trong số này, khoảng vài KB thường được dành cho bootloader, nhưng bạn có thể yên tâm vì hiếm khi cần sử dụng quá 20KB bộ nhớ này.
SRAM (Static Random Access Memory) có dung lượng 2KB, nơi lưu trữ giá trị của các biến bạn khai báo trong quá trình lập trình Số lượng biến càng nhiều, yêu cầu về bộ nhớ RAM cũng tăng lên Tuy nhiên, bộ nhớ RAM thường không phải là vấn đề lớn mà bạn cần lo lắng Lưu ý rằng dữ liệu trên SRAM sẽ bị mất khi mất điện.
EEPROM (Electrically Erasable Programmable Read-Only Memory) có dung lượng 1KB, hoạt động như một ổ cứng mini, cho phép người dùng đọc và ghi dữ liệu mà không lo mất thông tin khi mất điện, khác với dữ liệu trên SRAM.
Hình 1.17 Cổng vào ra Arduino Uno R3
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có
Mức điện áp của vi điều khiển ATmega328 là 0V và 5V, với dòng vào/ra tối đa trên mỗi chân là 40mA Mỗi chân đều được trang bị các điện trở pull-up được cài đặt sẵn, tuy nhiên, các điện trở này không được kết nối mặc định.
Một số chân digital có các chức năng đặc biệt nhƣ sau:
Chân Serial 0 (RX) và 1 (TX) trên Arduino Uno được sử dụng để gửi và nhận dữ liệu TTL Serial, cho phép giao tiếp với các thiết bị khác Kết nối Bluetooth thường được coi là một dạng kết nối Serial không dây Nếu không cần giao tiếp Serial, nên tránh sử dụng hai chân này để tiết kiệm tài nguyên.
Các chân PWM (3, 5, 6, 9, 10, và 11) cho phép xuất xung PWM với độ phân giải 8 bit, có giá trị từ 0 đến 255 tương ứng với điện áp từ 0V đến 5V Điều này có nghĩa là bạn có thể điều chỉnh điện áp ra ở các chân này từ 0V đến 5V, thay vì chỉ có hai mức cố định như những chân khác.
Chân giao tiếp SPI trên vi điều khiển bao gồm các chân 10 (SS), 11 (MOSI), 12 (MISO) và 13 (SCK) Ngoài việc thực hiện các chức năng thông thường, các chân này còn hỗ trợ truyền dữ liệu qua giao thức SPI với các thiết bị khác.
Trên bo mạch Arduino UNO, có một đèn LED màu cam ký hiệu chữ L, được kết nối với chân số 13 Khi nhấn nút Reset, đèn LED này sẽ nhấp nháy để báo hiệu trạng thái khởi động Nếu người dùng sử dụng chân số 13, đèn LED sẽ phát sáng.
Arduino UNO có 6 chân analog (A0 đến A5) với độ phân giải tín hiệu 10 bit, cho phép đọc giá trị điện áp từ 0V đến 5V Chân AREF trên board cho phép cung cấp điện áp tham chiếu, giúp bạn điều chỉnh khoảng đo Ví dụ, nếu bạn cấp 2.5V vào chân AREF, các chân analog sẽ có thể đo điện áp trong khoảng 0V đến 2.5V với độ phân giải 10 bit.
1.2.5 Lập trình cho Arduinio Uno R3
GIỚI THIỆU VỀ MODULE BLUETOOTH HC05
Module thu phát bluetooth HC-05 cho phép thiết lập kết nối Serial giữa hai thiết bị qua sóng bluetooth Điểm nổi bật của HC-05 là khả năng hoạt động ở hai chế độ: MASTER và SLAVE, trong khi module HC-06 chỉ hỗ trợ chế độ SLAVE.
Để thiết lập chế độ SLAVE, hãy kết nối smartphone, laptop hoặc USB Bluetooth để tìm kiếm module Sau khi tìm thấy, bạn cần ghép nối bằng mã PIN 1234 Khi quá trình ghép nối thành công, bạn sẽ có một cổng serial từ xa hoạt động với baud rate 9600.
Trong chế độ MASTER, module sẽ tự động quét và tìm kiếm các thiết bị Bluetooth khác như module Bluetooth HC-06, USB Bluetooth hoặc Bluetooth của laptop, và tiến hành ghép nối một cách chủ động mà không cần bất kỳ thiết lập nào từ máy tính hay smartphone.
Mạch thu phát Bluetooth HC-05 có thiết kế nhỏ gọn với chân tín hiệu giao tiếp cơ bản và nút bấm để vào chế độ AT COMMAND Mạch này hỗ trợ cấp nguồn và giao tiếp qua 3.3VDC hoặc 5VDC, phù hợp cho nhiều ứng dụng như robot Bluetooth và điều khiển thiết bị qua Bluetooth.
Khi kết nối với máy tính, module HC-05 hoạt động như một cổng COM ảo ở chế độ Half Duplex, cho phép chỉ một trong hai chức năng truyền hoặc nhận tín hiệu tại một thời điểm.
Hình 1 20 Sơ đồ chân Bluetooth HC05
Sơ đồ chân HC-05 gồm có:
Chân này cho phép người dùng chọn giữa chế độ hoạt động AT Mode và Data Mode VCC chân này có thể cung cấp nguồn từ 3.6V đến 6V, trong khi bên trong module đã tích hợp một IC nguồn để chuyển đổi điện áp về 3.3V, cung cấp cho IC BC417.
- GND nối với chân nguồn GND
- TXD,RND đây là hai chân UART để giao tiếp module hoạt động ở mức logic 3.3V
- STATE các bạn chỉ cần thả nổi và không cần quan tâm đến chân này.
1.3.3 Các chế độ hoạt động
HC-05 hoạt động với hai chế độ chính: Command Mode và Data Mode Trong Command Mode, người dùng có thể giao tiếp với module qua cổng serial bằng lệnh AT Ngược lại, ở Data Mode, module cho phép truyền nhận dữ liệu với các thiết bị Bluetooth khác Để chuyển đổi giữa hai chế độ này, chân KEY được sử dụng Có hai phương pháp để thiết lập module vào chế độ Data Mode, tuy nhiên, thông tin này thường bị viết sai trong tài liệu tiếng Việt trên một số trang web.
Khi đưa chân KEY lên mức logic cao trước khi cấp nguồn, module sẽ vào chế độ Command Mode với baudrate mặc định 38400, điều này rất hữu ích khi không biết tốc độ baudrate đã được thiết lập Trong chế độ này, đèn LED trên module sẽ nháy chậm khoảng 2 giây Ngược lại, nếu chân KEY được nối với mức logic thấp trước khi cấp nguồn, module sẽ hoạt động ở chế độ Data Mode.
Để chuyển module từ chế độ Data Mode sang Command Mode, bạn cần đưa chân KEY lên mức cao, lúc này module sẽ hoạt động ở chế độ Command Mode với Baud Rate đã được thiết lập lần cuối Việc biết baudrate hiện tại của thiết bị là rất quan trọng để tương tác hiệu quả Nếu module chưa được thiết lập lại, mặc định sẽ là: Baudrate 9600, dữ liệu 8 bits, stop bits 1, parity: none, handshake: none, Passkey: 1234, và Device Name: HC-05 Trong chế độ Data Mode, HC-05 có thể hoạt động như một master hoặc slave tùy thuộc vào cấu hình, trong khi HC-06 chỉ có thể cấu hình ở chế độ SLAVE.
1 Ở chế độ SLAVE : bạn cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để dò tìm module sau đó pair với mã PIN là 1234 Sau khi pair thành công, bạn đã có 1 cổng serial từ xa hoạt động ở baud rate 9600.
2 Ở chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1 module bluetooth HC-06, usb bluetooth, bluetooth của laptop ) và tiến hành pair chủ động mà không cần thiết lập gì từ máy tính hoặc smartphone.
AT: Lệnh test, nó sẽ trả về OK nếu module đã hoạt động ở Command Mode
AT+VERSION? :trả về firmware hiện tại của module
AT+UART00,0,0 ( thiết lập baudrate 9600,1 bit stop, no parity)
- Các lệnh ở chế độ Master:
AT+RMAAD : ngắt kết nối với các thiết bị đã ghép
AT+ROLE=1 : đặt là module ở master
AT+RESET: reset lại thiết bị
AT+CMODE=0: Cho phép kết nối với bất kì địa chỉ nào
AT+INQM=0,5,5: Dừng tìm kiếm thiết bị khi đã tìm đƣợc 5 thiết bị hoặc sau 5s AT+PSWD34 Set Pin cho thiết bị
AT+INQ: Bắt đầu tìm kiếm thiết bị để ghép nối
Sau lệnh này một loạt các thiết bị tìm thấy đƣợc hiện thị Định ra kết quả sau lệnh này nhƣ sau: INQ:address,type,signal
Phần địa chỉ (address) sẽ có định dạng nhƣ sau: 0123:4:567890 Để sử dụng địa chỉ này trong các lệnh tiếp theo ta phải thay dấu ―:‖ thành ―,‖
AT+PAIR=, : Đặt timeout(s) khi kết nối với 1 địa chỉ slave AT+LINK= Kết nối với slave
- Các lệnh ở chế độ Slave:
AT+ORGL: Reset lại cài đặt mặc định
AT+RMAAD: Xóa mọi thiết bị đã ghép nối
AT+ROLE=0: Đặt là chế độ SLAVE
AT+ADDR: Hiển thị địa chỉ của SLAVE
THIẾT KẾ MẠCH
CHUẨN BỊ LINH KIỆN
SƠ ĐỒ MẠCH CÔNG SUẤT CHỈNH LƯU 12V-1A
Hình 2.1: Sơ đồ mạch công suất chỉnh lưu
Mạch công suất chỉnh lưu 12V sử dụng IC ổn áp L7812CV để điều chỉnh điện áp cố định, tích hợp các tính năng bảo vệ như quá nhiệt và ngắn mạch Những tính năng này giúp duy trì an toàn cho các Transistor công suất trong mạch, đảm bảo chúng không bị hư hại.
Hình 2.2 Mạch công suất chỉnh lưu 12v-1a
SƠ ĐỒ MẠCH KẾT NỐI
Hình 2.3 Sơ đồ mạch kết nối điều khiển đèn quạt qua Bluetooth
Giao thức của bo mạch:
Giao thức kết nối Bluetooth giữa bo Arduino và phần mềm điều khiển sử dụng chuẩn RS232 trên tần số 2.4GHz, cho phép truyền dữ liệu dạng chuỗi số String với giá trị Int 16 bit Sau khi kết nối, bo Arduino nhận giá trị từ điện thoại và sử dụng hàm so sánh để chuyển đổi dữ liệu từ dạng 8 bit sang 16 bit, từ đó điều khiển các thiết bị theo điều kiện đã được gán cho chuỗi giá trị nhận được từ ứng dụng.
Cấp nguồn cho bo mạch Arduino từ mạch công suất chỉnh lưu 12V, với chân Rx và Tx của HC-05 kết nối tới chân 7 và 8 của Arduino Các chân PWM 3, 5, 6, 9, 10, 11 được kết nối với mạch công suất MX 1508 để điều khiển tốc độ động cơ và độ sáng đèn Chân 4 và 12 kết nối với relay 5V để điều khiển bật tắt LED Do mạch chỉnh lưu chỉ cung cấp dòng 1A cho mạch điều khiển, cần sử dụng nguồn ngoài 5V-2A (sạc dự phòng) để cấp cho relay và mạch công suất.
Bluetooth là công nghệ tần số vô tuyến cho phép kết nối và giao tiếp giữa hai thiết bị khác nhau trong một khoảng cách nhất định Công nghệ này hoạt động trên tần số 2.4GHz, sử dụng sóng radio với bước sóng ngắn.
Công nghệ Bluetooth cho phép người dùng làm việc trên máy tính với bàn phím không dây và sử dụng tai nghe không dây để trò chuyện hoặc nghe nhạc, với tốc độ truyền dữ liệu lên tới 1Mb/s trong phạm vi 10m và 720 Kbps Ứng dụng được phát triển bằng ngôn ngữ Android, sử dụng thư viện thanh bar để nhập giá trị analog từ 0 - 255 và các nút nhấn ON, OFF để gửi giá trị mặc định Giao thức nhận dạng giọng nói áp dụng thư viện mã nguồn mở Android và Google Tall, hỗ trợ nhận diện giọng nói tiếng Việt từ năm 2019, cho phép chuyển đổi giọng nói thành văn bản và so sánh với điều kiện thiết kế để thực thi lệnh.
Sau khi nhận tín hiệu Analog từ ứng dụng, bo Arduino xử lý tín hiệu này thành dạng xung PWM với tần suất cao Các chân băm xung của bo được kết nối với IC công suất MX 1508, cho phép điều khiển độ sáng của đèn dimmer và tốc độ của motor từ thấp đến cao Ngoài ra, bo cũng nhận tín hiệu digital ON/OFF để điều khiển relay.
SƠ ĐỒ MẠCH IN
Hình 2.5 Sau khi rửa mạch in Hình 2.4 Sơ đồ mạch in của bo Arduino
Hình 2.6 Hàn linh kiện vao bo mạch
CHƯƠNG TRÌNH MẠCH ĐIỀU KHIỂN
#include int bluetoothTx = 7; (thiết đặt kết nối chân 7,8 với blutooth) int bluetoothRx = 8;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); void setup()
To configure the Arduino pins, set pin 3, 5, 6, 9, 10, 11, 4, and 12 as OUTPUT using the pinMode function After setting the pins, initialize them to a LOW state with the digitalWrite function, ensuring that all specified pins are turned off.
//Setup usb serial connection to computer Serial.begin(9600);
//Setup Bluetooth serial connection to android bluetooth.begin(9600);
//Read from bluetooth and write to usb serial if(bluetooth.available()>= 2 )
{ unsigned int color1 = bluetooth.read(); //DOC LAN 1 8BIT THAP unsigned int color2 = bluetooth.read(); //DOC LAN 2 8BIT CAO unsigned int color = (color2 *256) + color1;
Serial.println(color1); if (color >= 1000 && color