תוכן עניינים:
וִידֵאוֹ: שחזור מודול בלוטות 'לא מוגדר HC-06: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
מתוך מקסימליזם טהור הגדרתי את מודול הבלוטות 'HC-06 שלי (עבד) לקצב שידור של 1, 382, 400 באוד עם הפקודה AT+BAUDC. מאז שהארדואינו המחובר אליו לא הצליח להשתמש במודול עם ספריית SoftwareSerial. ניסיתי לשחזר את קצב השידור עם סדרת החומרה של Arduino (סיכות 0 ו -1) ללא הצלחה.
ניסיתי גם לגוגל את הנושא מבלי למצוא פתרון סביר. אולי שימוש ביציאה טורית מובנית של מחשב יכול היה להוות פתרון (עם הזזה ברמת ההיגיון של 12V עד 3V3), אך למחשב שלי אין את היציאה המיושנת הזו, ולכן נאלצתי למצוא פתרון אחר.
שלב 1: מה שאתה צריך
- לוח Arudino/Genuino עם ברירת המחדל Atmel ATMEGA328P-PU MCU (@16MHz).
- מודול בלוטות 'HC-06 מאזין ל- 1, 382, 400 baud
- Arduino IDE בסיסי מ-
שלב 2: הפתרון
שים לב כי ההוראה והפתרון מיועדים לתרחיש 1, 382, 400 באוד (AT+BAUDC). הפתרון לא יעבוד עבור קצבי שידור אחרים. לטיפול במקרים אחרים עיין בשלבים המתחילים משלב 3.
הפתרון ממש פשוט.
- חבר את סיכת ה- VCC של HC-06 לפין 5V של Arduino.
- חבר את סיכת ה- GND של HC-06 לסיכת ה- GND של Arduino.
- חבר את סיכת ה- RXD של HC-06 לסיכה 2 של Arduino.
- השאר את סיכת ה- TXD של HC-06 ללא חיבור (או התחבר לסיכה 8).
- העלה סקיצה של hc06reset.ino.
- התוכנית תגדיר את HC-06 למצב 115, 200 baud (AT+BAUD8).
- השתמש במודול HC-06 ששוחזר כמו בעבר.
שלב 3: מאחורי הקלעים …
ספריית SoftwareSerial המגיעה עם Arduino IDE מסוגלת לשדר לכל היותר 115, 200 סיביות לשנייה, כך שהיא לא מהירה מספיק כדי לתקשר בקצב השידור הרצוי של 1, 382, 400. בהתחשב בכך שלוח Arduino ברירת מחדל פועל על 16 מגה -הרץ, קצב הסיביות המקסימלי הבלתי דחוס הוא 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 ns) לכל ביט. Arduino פועל על 16, 000, 000 Mhz, כך שכל מחזור נמשך 1/16, 000, 000 שניות - כלומר 62.5 ns לכל מחזור.
באמצעות קוד הרכבה AVR אנו יכולים להשתמש בפקודה OUT כדי להגדיר את סיכת הפלט גבוה או נמוך ו- NOP להמתין מחזור מעבד אחד בדיוק. שתי הפקודות אוכלות בדיוק מחזור מעבד אחד. באופן זה ניתן לכסות את זמן הסיביות של 723.38 ns על ידי 11 עד 12 הוראות ארדואינו לכל ביט מועבר. דבר אחד שיש לקחת בחשבון: הפקודה OUT קובעת בייט שלם בבת אחת, לכן עלינו לבחור PORTx כאשר זו אינה בעיה. שימוש ב- ATMEGA328P-PU למשל PORTD (סיכות ארדואינו 0-7) מושלם למצב זה. לאחר הגדרת הסיבית, רק הזמן הנכון צריך לחלוף שנעשה על ידי 10 עד 11 NOPs וזהו.
תוכל למצוא פרטי חישוב בקובץ האקסל שלהלן. קובץ זה יצר את הוראות ההרכבה הנדרשות לתוכנית. היה צורך לבצע החלפות בודדות לאחר הדבקת הקוד שנוצר.
שלב 4: אפשרויות קריאה/ שיפור נוספות
- אולי ניתן ליצור ספריית SoftwareSerial מהירה יותר באמצעות הטכניקה שתוארה בשלב הקודם.
- FedericoK2 יצר כלי נהדר שמייצר את קוד השחזור HC-06 עבור כל קצב סיביות אפשרי. גש לאתר כאן: https://tools.krum.com.ar/save_your_hc-06/ תודה לך FedericoK2
מוּמלָץ:
אוטומציה מדוברת -- אודיו מאת Arduino -- אוטומציה מבוקרת קול -- מודול בלוטות 'HC - 05: 9 שלבים (עם תמונות)
אוטומציה מדוברת || אודיו מאת Arduino || אוטומציה מבוקרת קול || מודול בלוטות 'HC - 05: …………………………. אנא הירשם לערוץ היוטיוב שלי לסרטונים נוספים …. …. בסרטון זה בנינו אוטומציה מדוברת .. כאשר תשלח פקודה קולית באמצעות הנייד, היא תפעיל מכשירים ביתיים ותשלח משוב
רדיו מוגדר תוכנה בחוט נעליים: 9 שלבים (עם תמונות)
רדיו מוגדר תוכנה בחוט זרוע: בהתחלה היה סט הגביש - מקלט הרדיו השידור המעשי הראשון. אבל הוא היה צריך אווירה ארוכה ויכול לקבל רק תחנות מקומיות. כאשר הגיעו שסתומים (צינורות, לחברים האמריקאים שלנו) הם איפשרו לבנות הרבה יותר
הלחמת מגן גיטרה מוגדר SSS: 3 שלבים
הלחמת מכשיר גיטרה מוגדר SSS: במדריך, אעבור את תהליך החיווט של מכשיר גיטרה מסוג SSS משלך. ראשית, אם אתה עושה את הפרויקט הזה, עליך לנסות להבין טוב יותר את החלקים הנכנסים לתהליך. פורמט ה- SSS הוא בעצם שלוש
Arduino שליטה לד עם מודול בלוטות 'HC-06: 4 שלבים
שליטת Arduino LED עם מודול בלוטות 'HC-06: שלום לכולם, זו ההדרכה הרשמית הראשונה שלי ב- Instructable.com, אני מאוד נרגש מהפרויקט הראשון שלי! היום אראה לכם כיצד לחבר מודול Arduino ו- Bluetooth. Arduino תתקשר עם לוח המודולים של Bluetooth HC-06 באמצעות
מהבהב LED באמצעות ESP32 NodeMCU WiFi ומודול מודול בלוטות ': 5 שלבים
מהבהב LED באמצעות ESP32 NodeMCU WiFi ומודול מודול Bluetooth: תיאור NodeMCU היא פלטפורמת IoT של קוד פתוח. הוא מתוכנת באמצעות שפת הסקריפטים Lua. הפלטפורמה מבוססת על פרויקטים קוד פתוח של eLua. הפלטפורמה משתמשת בהרבה פרויקטים של קוד פתוח, כגון lua-cjson, spiffs. NodeMc ESP32 זה