Daftar Isi:

Pulihkan Modul Bluetooth HC-06 yang Salah Konfigurasi: 4 Langkah
Pulihkan Modul Bluetooth HC-06 yang Salah Konfigurasi: 4 Langkah

Video: Pulihkan Modul Bluetooth HC-06 yang Salah Konfigurasi: 4 Langkah

Video: Pulihkan Modul Bluetooth HC-06 yang Salah Konfigurasi: 4 Langkah
Video: Katanya gaboleh 2 wkwk #virus #virtex #viruswa #fyp 2024, November
Anonim
Pulihkan Modul Bluetooth HC-06 yang Salah Konfigurasi
Pulihkan Modul Bluetooth HC-06 yang Salah Konfigurasi

Karena maksimalisme murni, saya mengonfigurasi modul HC-06 Bluetooth (slave) saya ke baud rate 1,382, 400 baud dengan perintah AT+BAUDC. Sejak Arduino yang terhubung dengannya tidak dapat menggunakan modul dengan pustaka SoftwareSerial. Saya mencoba mengembalikan baud rate dengan serial perangkat keras Arduino (pin 0 & 1) tanpa hasil.

Saya juga mencoba mencari topik di Google tanpa menemukan solusi yang lumayan. Mungkin menggunakan port serial bawaan komputer bisa menjadi solusi (dengan pergeseran level logika 12V ke 3V3), tetapi komputer saya tidak memiliki port usang ini, jadi saya harus menemukan solusi lain.

Langkah 1: Apa yang Anda Butuhkan

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

Langkah 2: Solusinya

Solusinya
Solusinya
Solusinya
Solusinya

Harap dicatat bahwa Instruksi ini dan solusinya dibuat untuk skenario 1, 382, 400 baud (AT+BAUDC). Solusinya tidak akan bekerja untuk baud rate lainnya. Untuk menangani kasus lain, silakan lihat langkah-langkah mulai dari Langkah 3.

Solusinya sangat sederhana.

  1. Hubungkan pin VCC HC-06 ke pin 5V Arduino.
  2. Hubungkan pin GND HC-06 ke pin GND Arduino.
  3. Hubungkan pin RXD HC-06 ke pin 2 Arduino.
  4. Biarkan pin TXD HC-06 tidak terhubung (atau sambungkan ke pin 8).
  5. Unggah sketsa hc06reset.ino.
  6. Program akan mengatur HC-06 ke mode 115.200 baud (AT+BAUD8).
  7. Gunakan modul HC-06 yang dipulihkan seperti sebelumnya.

Langkah 3: Di Balik Layar…

Di balik layar…
Di balik layar…
Di balik layar…
Di balik layar…

Pustaka SoftwareSerial yang disertakan dengan Arduino IDE mampu mentransmisikan paling banyak 115.200 bit/detik, sehingga tidak cukup cepat untuk berkomunikasi pada kecepatan 1,382.400 baud yang diinginkan. Mengingat bahwa papan Arduino default berjalan pada 16MHz, bitrate maksimum teoretis yang tidak terkompresi adalah 16.000, 000 bit/dtk. Kami baik-baik saja sejauh ini!

Berdasarkan pemahaman saya tentang SoftwareSerial.cpp, komunikasi seial dilakukan dengan mengatur pin keluaran Tinggi (=1) atau Rendah (=0) sehubungan dengan penundaan (yang berasal dari baud rate) antara perubahan.

  • Pin output tinggi secara default (berarti tidak ada data), maka
  • bit Start ditransmisikan (yang menarik pin rendah), lalu
  • 8 bit data ditransmisikan dari LSB ke MSB, (+5V ketika bit 1 dan 0 sebaliknya) maka
  • bit Stop ditransmisikan (yang menarik pin tinggi)

Dengan cara ini 1 byte ditransmisikan menggunakan 10 bit.

Pesan yang harus kita kirim adalah AT+BAUD8 (tanpa \n, \r di akhir). Perintah ini mengatur HC-06 kembali ke 115.200 baud rate yang dapat ditangani oleh perpustakaan biasa.

Untuk mengirim bit dengan kecepatan 1,382, 400 bit/detik, untuk setiap bit kita memiliki waktu 1/1, 382, 400 detik (kira-kira 723,38 ns) untuk setiap bit. Arduino berjalan pada 16.000, 000 Mhz, sehingga setiap siklus berlangsung 1/16.000, 000 detik - yaitu 62,5 ns per siklus.

Menggunakan kode perakitan AVR kita dapat menggunakan perintah OUT untuk mengatur pin output tinggi atau rendah dan NOP untuk menunggu tepat satu siklus CPU. Kedua perintah memakan tepat 1 siklus cpu. Dengan cara ini waktu bit 723,38 ns dapat dicakup oleh 11 hingga 12 instruksi arduino per bit yang ditransmisikan. Satu hal yang perlu dipertimbangkan: perintah OUT menetapkan seluruh byte sekaligus, jadi kita harus memilih PORTx di mana ini tidak menjadi masalah. Menggunakan ATMEGA328P-PU misalnya PORTD (arduino pin 0-7) sangat cocok untuk kondisi ini. Setelah mengatur bit, hanya waktu yang tepat yang harus berlalu yang dilakukan oleh 10 hingga 11 NOP dan hanya itu.

Anda dapat menemukan detail perhitungan dalam file Excel di bawah ini. File ini menghasilkan instruksi perakitan yang diperlukan untuk program. Hanya beberapa penggantian yang harus dilakukan setelah menempelkan kode yang dihasilkan.

Langkah 4: Kemungkinan Bacaan/ Peningkatan Lebih Lanjut

  • Mungkin perpustakaan SoftwareSerial yang lebih cepat dapat dibuat dengan menggunakan teknik yang dijelaskan pada Langkah sebelumnya.
  • FedericoK2 membuat alat hebat yang menghasilkan kode pemulihan HC-06 untuk setiap kemungkinan bitrate. Akses situsnya di sini: https://tools.krum.com.ar/save_your_hc-06/ Terima kasih FedericoK2

Direkomendasikan: