Isi kandungan:

Pulihkan Modul Bluetooth HC-06 yang salah dikonfigurasi: 4 Langkah
Pulihkan Modul Bluetooth HC-06 yang salah dikonfigurasi: 4 Langkah

Video: Pulihkan Modul Bluetooth HC-06 yang salah dikonfigurasi: 4 Langkah

Video: Pulihkan Modul Bluetooth HC-06 yang salah dikonfigurasi: 4 Langkah
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Pulihkan Modul Bluetooth HC-06 yang salah dikonfigurasi
Pulihkan Modul Bluetooth HC-06 yang salah dikonfigurasi

Dari maksimalisme tulen, saya mengkonfigurasi modul Bluetooth (hamba) HC-06 saya ke kadar baud 1, 382, 400 baud dengan perintah AT + BAUDC. Sejak Arduino bersambung dengannya, ia tidak dapat menggunakan modul dengan perpustakaan SoftwareSerial. Saya cuba mengembalikan kadar baud dengan siri perkakasan Arduino (pin 0 & 1) tanpa keberuntungan.

Saya juga mencuba topik Google tanpa mencari jalan keluar yang boleh diterima. Mungkin menggunakan port bersiri komputer yang dibina boleh menjadi penyelesaian (dengan peralihan tahap logik 12V ke 3V3), tetapi komputer saya tidak mempunyai port usang ini, jadi saya harus mencari penyelesaian lain.

Langkah 1: Apa yang Anda Perlu

Apa yang Anda Perlu
Apa yang Anda Perlu
  • Papan Arudino / Genuino dengan Atmel ATMEGA328P-PU MCU lalai (@ 16MHz).
  • Modul Bluetooth HC-06 mendengar pada 1, 382, 400 baud
  • Basic arduino IDE dari

Langkah 2: Penyelesaiannya

Penyelesaian
Penyelesaian
Penyelesaian
Penyelesaian

Harap maklum bahawa Instruksional dan penyelesaiannya dibuat untuk senario 1, 382, 400 baud (AT + BAUDC). Penyelesaiannya tidak akan berfungsi untuk kadar baud yang lain. Untuk menangani kes lain sila rujuk langkah-langkah bermula dari Langkah 3.

Penyelesaiannya sangat mudah.

  1. Sambungkan pin VCC HC-06 ke pin Arduino 5V.
  2. Sambungkan pin GND HC-06 ke pin GND Arduino.
  3. Sambungkan pin RXD HC-06 ke pin 2 Arduino.
  4. Biarkan pin TXD HC-06 tidak tersambung (atau sambungkan ke pin 8).
  5. Muat naik lakaran hc06reset.ino.
  6. Program ini akan menetapkan HC-06 menjadi mod baud 115, 200 (AT + BAUD8).
  7. Gunakan modul HC-06 yang anda pulihkan seperti sebelumnya.

Langkah 3: Di Sebalik Tabir …

Disebalik tabir…
Disebalik tabir…
Disebalik tabir…
Disebalik tabir…

Perpustakaan SoftwareSerial yang dilengkapi dengan Arduino IDE mampu menghantar paling banyak 115, 200 bit / saat, jadi tidak cukup pantas untuk berkomunikasi pada kadar baud 1, 382, 400 yang diinginkan. Memandangkan papan Arduino lalai berjalan pada 16MHz, kadar bit maksimum yang tidak terkompresi adalah 16, 000, 000 bit / saat. Kami baik setakat ini!

Berdasarkan pemahaman saya tentang SoftwareSerial.cpp, komunikasi seial dilakukan dengan menetapkan pin output Tinggi (= 1) atau Rendah (= 0) berkenaan dengan kelewatan (yang berasal dari kadar baud) antara perubahan.

  • Pin output tinggi secara lalai (bermaksud tidak ada data), kemudian
  • bit Mula dihantar (yang menarik pin rendah), kemudian
  • 8 bit data dihantar dari LSB ke MSB, (+ 5V apabila bit 1 dan 0 sebaliknya) kemudian
  • a Stop bit dihantar (yang menarik pin tinggi)

Dengan cara ini 1 bait dihantar menggunakan 10 bit.

Mesej yang harus kita hantar adalah AT + BAUD8 (tanpa / n, di akhir). Perintah ini menetapkan HC-06 kembali ke kadar baud 115, 200 yang dapat dikendalikan oleh perpustakaan biasa.

Untuk menghantar bit dengan kelajuan 1, 382, 400 bit / saat, untuk setiap bit kami mempunyai masa 1/1, 382, 400 saat (itu kira-kira 723.38 ns) untuk setiap bit. Arduino berjalan pada 16, 000, 000 Mhz, jadi setiap kitaran berlangsung 1/16, 000, 000 saat - iaitu 62.5 ns setiap kitaran.

Dengan menggunakan kod pemasangan AVR kita dapat menggunakan perintah OUT untuk menetapkan pin output tinggi atau rendah dan NOP untuk menunggu tepat satu kitaran CPU. Kedua-dua perintah memakan tepat 1 kitaran cpu. Dengan cara ini, masa bit 723.38 ns dapat diliputi oleh 11 hingga 12 arahan arduino setiap bit yang dihantar. Satu perkara yang perlu dipertimbangkan: perintah OUT menetapkan keseluruhan bait sekaligus, jadi kita harus memilih PORTx di mana ini tidak menjadi masalah. Menggunakan ATMEGA328P-PU misalnya PORTD (pin arduino 0-7) sangat sesuai untuk keadaan ini. Setelah menetapkan bit, hanya masa yang sesuai yang harus dilakukan yang dilakukan oleh 10 hingga 11 NOP dan itu sahaja.

Anda boleh mendapatkan butiran pengiraan dalam fail Excel di bawah. Fail ini menghasilkan arahan yang diperlukan untuk program ini. Hanya beberapa penggantian yang harus dibuat setelah menampal kod yang dihasilkan.

Langkah 4: Kemungkinan Bacaan Lebih Lanjut / Peningkatan

  • Mungkin perpustakaan SoftwareSerial yang lebih pantas dapat dibuat dengan menggunakan teknik yang dijelaskan dalam Langkah sebelumnya.
  • FedericoK2 membuat alat hebat yang menghasilkan kod pemulihan HC-06 untuk setiap kadar bit yang mungkin. Akses laman web di sini: https://tools.krum.com.ar/save_your_hc-06/ Terima kasih FedericoK2

Disyorkan: