Სარჩევი:

არასწორად კონფიგურირებული HC-06 Bluetooth მოდულის აღდგენა: 4 ნაბიჯი
არასწორად კონფიგურირებული HC-06 Bluetooth მოდულის აღდგენა: 4 ნაბიჯი

ვიდეო: არასწორად კონფიგურირებული HC-06 Bluetooth მოდულის აღდგენა: 4 ნაბიჯი

ვიდეო: არასწორად კონფიგურირებული HC-06 Bluetooth მოდულის აღდგენა: 4 ნაბიჯი
ვიდეო: Traceroute (tracert) Explained - Network Troubleshooting 2024, ნოემბერი
Anonim
არასწორად კონფიგურირებული HC-06 Bluetooth მოდულის აღდგენა
არასწორად კონფიგურირებული HC-06 Bluetooth მოდულის აღდგენა

სუფთა მაქსიმალიზმის გამო, მე დავაკონფიგურირე ჩემი HC-06 Bluetooth (მონა) მოდული baud განაკვეთზე 1, 382, 400 baud AT+BAUDC ბრძანებით. მას შემდეგ რაც Arduino– მ მასთან დაკავშირება ვერ შეძლო მოდულის გამოყენება SoftwareSerial ბიბლიოთეკით. მე შევეცადე baud განაკვეთის აღდგენა Arduino– ს აპარატურის სერიით (ქინძისთავები 0 და 1), იღბლის გარეშე.

მე ასევე შევეცადე გუგლში გამეტარებინა თემა გასავალი გამოსავლის გარეშე. შესაძლოა კომპიუტერის ჩაშენებული სერიული პორტის გამოყენება იყოს გამოსავალი (12V– დან 3V3– მდე ლოგიკური დონის გადაადგილებით), მაგრამ ჩემს კომპიუტერს არ აქვს ეს მოძველებული პორტი, ამიტომ მომიწია სხვა გამოსავლის პოვნა.

ნაბიჯი 1: რაც დაგჭირდებათ

რაც დაგჭირდებათ
რაც დაგჭირდებათ
  • Arudino/Genuino დაფა ნაგულისხმევი Atmel ATMEGA328P-PU MCU (@16MHz).
  • HC-06 Bluetooth მოდული უსმენს 1, 382, 400 ბაუდს
  • ძირითადი arduino IDE https://www.arduino.cc– დან

ნაბიჯი 2: გამოსავალი

Გადაწყვეტილება
Გადაწყვეტილება
Გადაწყვეტილება
Გადაწყვეტილება

გთხოვთ გაითვალისწინოთ, რომ ეს ინსტრუქცია და გამოსავალი მზადდება 1, 382, 400 baud (AT+BAUDC) სცენარისთვის. გამოსავალი არ იმუშავებს სხვა ბაუდ განაკვეთებზე. სხვა საქმეების გადასაჭრელად მიმართეთ ნაბიჯებს მე –3 საფეხურიდან დაწყებული.

გამოსავალი მართლაც მარტივია.

  1. შეაერთეთ HC-06- ის VCC პინი Arduino– ს 5V პინთან.
  2. შეაერთეთ HC-06- ის GND პინდი Arduino– ს GND პინთან.
  3. შეაერთეთ HC-06– ის RXD პინი Arduino– ს მე –2 პინთან.
  4. დატოვეთ HC-06– ის TXD პინი დაუკავშირებელი (ან დაუკავშირდით პინ 8 – ს).
  5. ატვირთეთ hc06reset.ino ესკიზი.
  6. პროგრამა დააყენებს HC-06 115, 200 baud რეჟიმში (AT+BAUD8).
  7. გამოიყენეთ თქვენი აღდგენილი HC-06 მოდული, როგორც ადრე.

ნაბიჯი 3: კულისებს მიღმა…

Სცენის მიღმა…
Სცენის მიღმა…
Სცენის მიღმა…
Სცენის მიღმა…

პროგრამული უზრუნველყოფის ბიბლიოთეკას, რომელსაც გააჩნია Arduino IDE, შეუძლია გადასცეს მაქსიმუმ 115, 200 ბიტი/წამში, ამიტომ არ არის საკმარისად სწრაფი კომუნიკაცია სასურველ 1, 382, 400 ბად სიჩქარეზე. იმის გათვალისწინებით, რომ ნაგულისხმევი Arduino დაფა მუშაობს 16 MHz– ზე, თეორიული არაკომპრესიული მაქსიმალური ბიტრეიტი არის 16, 000, 000 ბიტი/წმ. ჯერჯერობით კარგად ვართ!

SoftwareSerial.cpp– ის ჩემი გაგების საფუძველზე, კომუნიკაცია ხდება ცვლილებებს შორის დაგვიანებით (რომელიც მოდის ბაუდის სიჩქარით), გამომავალი პინის მაღალი (= 1) ან დაბალი (= 0) დაყენებით.

  • გამომავალი პინი ნაგულისხმევად მაღალია (ნიშნავს მონაცემებს), მაშინ
  • საწყისი ბიტი გადაეცემა (რომელიც ქინძისთავს დაბლა იჭერს), შემდეგ
  • მონაცემთა 8 ბიტი გადაცემული LSB– დან MSB– ზე, (+5V, როდესაც ბიტი 1 და 0 სხვაგვარად) მაშინ
  • გადადის გაჩერების ბიტი (რომელიც მაღლა იჭერს პინს)

ამ გზით 1 ბიტი გადადის 10 ბიტის გამოყენებით.

შეტყობინება, რომელიც უნდა გამოვგზავნოთ არის AT+BAUD8 (n, / r ბოლოს გარეშე). ეს ბრძანება აყენებს HC-06– ს 115, 200 ბადის სიჩქარეზე, რომლის მართვაც შესაძლებელია რეგულარული ბიბლიოთეკებით.

ბიტების გაგზავნის მიზნით 1, 382, 400 ბიტი/წმ სიჩქარით, თითოეული ბიტისთვის გვაქვს 1/1, 382, 400 წამი დრო (ეს არის დაახლოებით 723.38 ნწ) თითოეული ბიტისთვის. Arduino მუშაობს 16, 000, 000 Mhz, ასე რომ თითოეული ციკლი გრძელდება 1/16, 000, 000 წამი - ეს არის 62,5 ns ციკლზე.

AVR ასამბლეის კოდის გამოყენებით ჩვენ შეგვიძლია გამოვიყენოთ OUT ბრძანება, რომ გამოვიყენოთ გამომავალი პინი მაღალი ან დაბალი და NOP დაველოდოთ ზუსტად ერთი პროცესორის ციკლს. ორივე ბრძანება ჭამს ზუსტად 1 cpu ციკლს. ამ გზით 723.38 ns ბიტიანი დრო შეიძლება დაფარული იყოს 11 -დან 12 arduino ინსტრუქციით თითო გადაცემულ ბიტზე. ერთი რამ გასათვალისწინებელია: OUT ბრძანება ადგენს ერთ ბაიტს ერთდროულად, ამიტომ ჩვენ უნდა შევარჩიოთ PORTx, სადაც ეს არ არის პრობლემა. ATMEGA328P-PU მაგალითად PORTD (arduino ქინძისთავები 0-7) გამოყენება შესანიშნავია ამ მდგომარეობისთვის. ბიტის დაყენების შემდეგ, მხოლოდ შესაბამისი დრო უნდა გავიდეს, რაც კეთდება 10 -დან 11 NOP– ით და ეს არის ის.

თქვენ შეგიძლიათ იპოვოთ გაანგარიშების დეტალები ქვემოთ მოცემულ Excel ფაილში. ამ ფაილმა წარმოშვა პროგრამისთვის საჭირო ერთობლივი ინსტრუქციები. გენერირებული კოდის ჩასმის შემდეგ მხოლოდ რამდენიმე შეცვლა იყო საჭირო.

ნაბიჯი 4: შემდგომი კითხვის/ გაუმჯობესების შესაძლებლობები

  • შესაძლოა უფრო სწრაფი პროგრამული ბიბლიოთეკა შეიქმნას წინა ნაბიჯში აღწერილი ტექნიკის გამოყენებით.
  • FedericoK2– მა შექმნა შესანიშნავი ინსტრუმენტი, რომელიც ქმნის HC-06 აღდგენის კოდს ყველა შესაძლო ბიტრატიისთვის. შედით საიტზე: https://tools.krum.com.ar/save_your_hc-06/ მადლობა FedericoK2

გირჩევთ: