Mục lục:

Khôi phục Mô-đun Bluetooth HC-06 bị cấu hình sai: 4 bước
Khôi phục Mô-đun Bluetooth HC-06 bị cấu hình sai: 4 bước

Video: Khôi phục Mô-đun Bluetooth HC-06 bị cấu hình sai: 4 bước

Video: Khôi phục Mô-đun Bluetooth HC-06 bị cấu hình sai: 4 bước
Video: Arduino | Vào lệnh AT Command cấu hình Bluetooth HC-05 2024, Tháng mười một
Anonim
Khôi phục mô-đun Bluetooth HC-06 bị cấu hình sai
Khôi phục mô-đun Bluetooth HC-06 bị cấu hình sai

Ngoài chủ nghĩa tối đa thuần túy, tôi đã định cấu hình mô-đun Bluetooth (phụ) HC-06 của mình thành tốc độ truyền là 1, 382, 400 baud bằng lệnh AT + BAUDC. Kể từ khi Arduino được kết nối với nó, không thể sử dụng mô-đun với thư viện SoftwareSerial. Tôi đã cố gắng khôi phục tốc độ truyền với nối tiếp phần cứng của Arduino (chân 0 & 1) nhưng không may.

Tôi cũng đã cố gắng Google chủ đề mà không tìm thấy một giải pháp khả thi. Có thể sử dụng cổng nối tiếp tích hợp của máy tính có thể là một giải pháp (với sự thay đổi mức logic 12V sang 3V3), nhưng máy tính của tôi không có cổng lỗi thời này, vì vậy tôi phải đưa ra một giải pháp khác.

Bước 1: Những gì bạn sẽ cần

Những gì bạn sẽ cần
Những gì bạn sẽ cần
  • Bo mạch Arudino / Genuino với Atmel ATMEGA328P-PU MCU mặc định (@ 16MHz).
  • Mô-đun Bluetooth HC-06 nghe trên 1, 382, 400 baud
  • Arduino IDE cơ bản từ

Bước 2: Giải pháp

Giải pháp
Giải pháp
Giải pháp
Giải pháp

Xin lưu ý rằng có thể hướng dẫn này và giải pháp được thực hiện cho kịch bản 1, 382, 400 baud (AT + BAUDC). Giải pháp sẽ không hoạt động đối với bất kỳ tốc độ truyền nào khác. Để xử lý các trường hợp khác, vui lòng tham khảo các bước bắt đầu từ Bước 3.

Giải pháp thực sự đơn giản.

  1. Kết nối chân VCC của HC-06 với chân 5V của Arduino.
  2. Kết nối chân GND của HC-06 với chân GND của Arduino.
  3. Kết nối chân RXD của HC-06 với chân 2 của Arduino.
  4. Không kết nối chân TXD của HC-06 (hoặc kết nối với chân 8).
  5. Tải lên bản phác thảo hc06reset.ino.
  6. Chương trình sẽ đặt HC-06 thành chế độ 115, 200 baud (AT + BAUD8).
  7. Sử dụng mô-đun HC-06 đã khôi phục của bạn như trước đây.

Bước 3: Hậu trường…

Đằng sau hậu trường…
Đằng sau hậu trường…
Đằng sau hậu trường…
Đằng sau hậu trường…

Thư viện SoftwareSerial đi kèm với Arduino IDE có khả năng truyền tối đa 115, 200 bit / giây, vì vậy nó không đủ nhanh để giao tiếp trên tốc độ truyền 1, 382, 400 mong muốn. Cho rằng bảng Arduino mặc định chạy trên 16MHz, tốc độ bit tối đa không nén theo lý thuyết là 16, 000, 000 bit / giây. Chúng tôi tốt cho đến nay!

Dựa trên hiểu biết của tôi về SoftwareSerial.cpp, giao tiếp nối tiếp được thực hiện bằng cách đặt chân đầu ra Cao (= 1) hoặc Thấp (= 0) đối với độ trễ (đến từ tốc độ truyền) giữa các thay đổi.

  • Chân đầu ra cao theo mặc định (có nghĩa là không có dữ liệu), sau đó
  • một bit Bắt đầu được truyền (kéo chân xuống thấp), sau đó
  • 8 bit dữ liệu được truyền từ LSB đến MSB, (+ 5V khi bit 1 và 0 nếu ngược lại) sau đó
  • một bit Dừng được truyền (kéo chân lên cao)

Theo cách này, 1 byte được truyền bằng 10 bit.

Tin nhắn chúng ta phải gửi là AT + BAUD8 (không có / n, / r ở cuối). Lệnh này đặt HC-06 trở lại tốc độ 115, 200 baud có thể được xử lý bởi các thư viện thông thường.

Để gửi các bit với tốc độ 1, 382, 400 bit / giây, đối với mỗi bit, chúng ta có thời gian 1/1, 382, 400 giây (đó là khoảng 723,38 ns) cho mỗi bit. Arduino chạy trên 16, 000, 000 Mhz, vì vậy mỗi chu kỳ kéo dài 1/16, 000, 000 giây - tức là 62,5 ns mỗi chu kỳ.

Sử dụng mã lắp ráp AVR, chúng ta có thể sử dụng lệnh OUT để đặt chân đầu ra cao hoặc thấp và NOP để chờ đúng một chu kỳ CPU. Cả hai lệnh đều ăn hết 1 chu kỳ cpu. Bằng cách này, thời gian bit 723,38 ns có thể được bao phủ bởi 11 đến 12 lệnh arduino trên mỗi bit được truyền. Một điều cần xem xét: lệnh OUT đặt toàn bộ byte cùng một lúc, vì vậy chúng ta phải chọn một PORTx nơi đây không phải là vấn đề. Sử dụng ATMEGA328P-PU ví dụ PORTD (arduino chân 0-7) là hoàn hảo cho điều kiện này. Sau khi thiết lập bit, chỉ có thời gian thích hợp trôi qua được thực hiện bởi 10 đến 11 NOP và thế là xong.

Bạn có thể tìm thấy chi tiết tính toán trong tệp Excel bên dưới. Tệp này tạo ra các hướng dẫn lắp ráp cần thiết cho chương trình. Chỉ một số thay thế phải được thực hiện sau khi dán mã đã tạo.

Bước 4: Đọc thêm / Cải thiện khả năng

  • Có thể một thư viện SoftwareSerial nhanh hơn có thể được tạo bằng cách sử dụng kỹ thuật được mô tả trong Bước trước.
  • FedericoK2 đã tạo ra một công cụ tuyệt vời tạo mã khôi phục HC-06 cho mọi tốc độ bit có thể. Truy cập trang web tại đây: https://tools.krum.com.ar/save_your_hc-06/ Xin cảm ơn FedericoK2

Đề xuất: