Orodha ya maudhui:

Pata Moduli ya Bluetooth ya HC-06 iliyosanidiwa vibaya: Hatua 4
Pata Moduli ya Bluetooth ya HC-06 iliyosanidiwa vibaya: Hatua 4

Video: Pata Moduli ya Bluetooth ya HC-06 iliyosanidiwa vibaya: Hatua 4

Video: Pata Moduli ya Bluetooth ya HC-06 iliyosanidiwa vibaya: Hatua 4
Video: HC-05 как настроить Bluetooth модуль в качестве slave или master и как объединить две платы Arduino 2024, Novemba
Anonim
Pata Moduli ya Bluetooth ya HC-06 iliyosanidiwa vibaya
Pata Moduli ya Bluetooth ya HC-06 iliyosanidiwa vibaya

Kutoka kwa upeo safi kabisa, nilisanidi moduli yangu ya HC-06 Bluetooth (mtumwa) kwa kiwango cha baud cha 1, 382, 400 baud na agizo la AT + BAUDC. Tangu Arduino iliyounganishwa nayo haikuweza kutumia moduli na maktaba ya SoftwareSerial. Nilijaribu kurudisha kiwango cha baud na safu ya vifaa vya Arduino (pini 0 & 1) bila bahati.

Nilijaribu pia Google mada bila kupata suluhisho linaloweza kupitishwa. Labda kutumia kompyuta iliyojengwa kwenye bandari ya serial inaweza kuwa suluhisho (na kiwango cha mantiki cha 12V hadi 3V3 kinahama), lakini kompyuta yangu haina bandari hii ya kizamani, kwa hivyo ilibidi nipate suluhisho lingine.

Hatua ya 1: Nini Utahitaji

Nini Utahitaji
Nini Utahitaji
  • Bodi ya Arudino / Genuino na Atmel chaguo-msingi ATMEGA328P-PU MCU (@ 16MHz).
  • Moduli ya Bluetooth ya HC-06 inayosikiliza 1, 382, 400 baud
  • Msingi arduino IDE kutoka

Hatua ya 2: Suluhisho

Suluhisho
Suluhisho
Suluhisho
Suluhisho

Tafadhali kumbuka kuwa hii inayoweza kufundishwa na suluhisho hufanywa kwa hali ya 1, 382, 400 baud (AT + BAUDC). Suluhisho halitafanya kazi kwa viwango vingine vya baud. Kushughulikia kesi zingine tafadhali rejelea hatua zinazoanzia hatua ya 3.

Suluhisho ni rahisi sana.

  1. Unganisha pini ya VC ya HC-06 kwa pini 5V ya Arduino.
  2. Unganisha pini ya GND ya HC-06 kwa pini ya GND ya Arduino.
  3. Unganisha pini ya RXD ya HC-06 kubandika 2 ya Arduino.
  4. Acha siri ya HC-06 ya TXD isiyounganishwa (au unganisha kwa kubandika 8).
  5. Pakia mchoro wa hc06reset.ino.
  6. Programu hiyo itaweka HC-06 katika hali ya baud 115, 200 (AT + BAUD8).
  7. Tumia moduli yako ya HC-06 iliyopatikana kama hapo awali.

Hatua ya 3: Nyuma ya Matukio…

Nyuma ya Matukio…
Nyuma ya Matukio…
Nyuma ya Matukio…
Nyuma ya Matukio…

Maktaba ya SoftwareSerial ambayo inakuja na Arduino IDE inauwezo wa kupitisha zaidi ya bits 115, 200 / sekunde, kwa hivyo haina haraka ya kutosha kuwasiliana kwa kiwango cha baud 1, 382, 400. Kwa kuwa bodi ya chaguo-msingi ya Arduino inaendesha 16MHz, bitrate ya nadharia isiyo na shinikizo ni 16, 000, 000 bits / sec. Sisi ni wazuri hadi sasa!

Kulingana na uelewa wangu wa SoftwareSerial.cpp, mawasiliano ya seial hufanywa kwa kuweka pini ya pato High (= 1) au Low (= 0) kwa heshima na ucheleweshaji (unaotokana na kiwango cha baud) kati ya mabadiliko.

  • Pini ya pato iko juu kwa chaguo-msingi (haimaanishi data), basi
  • Kidogo cha Anza hupitishwa (ambayo huvuta pini chini), basi
  • Biti 8 za data zilizopitishwa kutoka LSB kwenda MSB, (+ 5V wakati kidogo 1 na 0 vinginevyo) basi
  • Stop kidogo hupitishwa (ambayo huvuta pini juu)

Kwa njia hii baiti 1 hupitishwa kwa kutumia bits 10.

Ujumbe ambao tunapaswa kutuma ni AT + BAUD8 (bila / n, / r mwishoni). Amri hii inaweka HC-06 kurudi kwa kiwango cha baud 115, 200 ambacho kinaweza kushughulikiwa na maktaba za kawaida.

Ili kutuma bits na 1, 382, 400 bits / sec sec, kwa kila kidogo tuna 1/1, 382, 400 sekunde wakati (hiyo ni takribani 723.38 ns) kwa kila kidogo. Arduino inaendesha 16, 000, 000 Mhz, kwa hivyo kila mzunguko unachukua sekunde 1/16, 000, 000 - hiyo ni 62.5 ns kwa kila mzunguko.

Kutumia nambari ya mkutano wa AVR tunaweza kutumia amri ya OUT kuweka pini ya pato juu au chini na NOP kusubiri mzunguko mmoja wa CPU. Amri zote zinakula kabisa mzunguko 1 wa cpu. Kwa njia hii muda wa 723.38 ns inaweza kufunikwa na maagizo 11 hadi 12 ya arduino kwa kila kupitishwa. Jambo moja la kuzingatia: Amri ya OUT inaweka baiti nzima mara moja, kwa hivyo lazima tuchague PORTx ambapo hii sio shida. Kutumia ATMEGA328P-PU kwa mfano PORTD (pini za arduino 0-7) ni kamili kwa hali hii. Baada ya kuweka kidogo, ni wakati unaofaa tu unapaswa kupita ambao hufanywa na NOP 10 hadi 11 na ndio hiyo.

Unaweza kupata maelezo ya hesabu katika faili ya Excel hapa chini. Faili hii ilizalisha maagizo ya assemly kwa programu hiyo. Nafasi chache tu zilipaswa kufanywa baada ya kubandika nambari iliyotengenezwa.

Hatua ya 4: Kusoma zaidi / Kuboresha Uwezo

  • Labda maktaba ya SoftwareSerial ya haraka inaweza kufanywa kwa kutumia mbinu iliyoelezewa katika Hatua ya awali.
  • FedericoK2 ilitengeneza zana nzuri ambayo hutengeneza nambari ya kupona ya HC-06 kwa kila bitrate inayowezekana. Fikia wavuti hapa: https://tools.krum.com.ar/save_your_hc-06/ Asante FedericoK2

Ilipendekeza: