Satura rādītājs:

Bluetooth iespējots analogais VU mērītājs: 6 soļi
Bluetooth iespējots analogais VU mērītājs: 6 soļi

Video: Bluetooth iespējots analogais VU mērītājs: 6 soļi

Video: Bluetooth iespējots analogais VU mērītājs: 6 soļi
Video: Opel Insignia A Facelift - Советы и хитрости для Navi 900 Intellilink Gen.1 (2014) 2024, Jūlijs
Anonim
Bluetooth iespējots analogais VU mērītājs
Bluetooth iespējots analogais VU mērītājs

Šis bija mans projekts vienai no manām universitātes klasēm ar nosaukumu SMP. Tā kā mēs izmantojām STM32F103RB izstrādes paneli, es savu projektu balstīju uz to, sākot ar vienkāršu VU skaitītāju. Pēc tam es pievienoju dažas papildu funkcijas, piemēram, Bluetooth atbalstu, lai pārraidītu vērtības no ADC uz Android lietotni, lai izveidotu vienkāršu dB diagrammu.

1. darbība. Izmantotie komponenti

  • STM32F103RB izstrādes dēlis
  • HC-05 zs040 Bluetooth modulis
  • Analogs VU skaitītāja panelis (saite)
  • Elektreta mikrofons
  • LM324N četrkāršs op-amp
  • 2 TIP120 tranzistori
  • 3 1N4148 diodes
  • Dažādi kondensatori un rezistori

Lai gan jūs varat vadīt šo ķēdi no tāfeles 5V sliedes, es izmantoju arī ārēju 5V barošanas avotu.

2. darbība: aploksnes sekotājs

Aploksnes sekotājs
Aploksnes sekotājs
Aploksnes sekotājs
Aploksnes sekotājs

Šī dizaina galvenais elements ir aploksnes sekotājs, kas uztver signālu no elektreta mikrofona un izvada spriegumu, kas ir proporcionāls mikrofona signāla amplitūdai.

Neapstrādāts signāls no mikrofona vispirms tiek nodots caur pastiprinātāju ar pastiprinājumu 150.

Pēc tam signāls tiek nodots caur faktisko aploksnes sekotāju, kuram vajadzētu izvadīt tikai pozitīvā signāla daļas.

Pēdējā daļa atņem 1.65V nobīdes spriegumu no aploksnes sekotāja izejas, lai nodrošinātu 0 V signālu bez skaņas, 1.65 V vidējai skaņai un 3.3 V skaļai skaņai, kam vajadzētu būt saderīgam ar iebūvēto Valdes ADC.

Šis aploksnes sekotājs ir ieviests no šīs lieliskās StackExchange atbildes.

3. darbība: PWM analogam mērītājam

Lai mērinstrumenta adata darbotos, esmu konfigurējis mikrokontrolleru plates taimeri TIM4 ar frekvenci aptuveni 500 Hz.

Pēc kārtas izmēģinot dažādus darba ciklus, esmu samierinājies ar dažām vērtībām, kas bija pietiekamas, lai adata būtu no 0 līdz 100.

Nākamajā solī es sīki aprakstīšu precīzas vērtības parādīšanas procesu, pielietojot kādu matemātiku.

4. solis: Mikrofona kalibrēšana

Mikrofona kalibrēšana
Mikrofona kalibrēšana
Mikrofona kalibrēšana
Mikrofona kalibrēšana

Pēc aploksnes sekotāja pabeigšanas es uzrakstīju vienkāršu kodu, lai izmantotu ADC, un pārliecinājos, ka lasīšanas vērtība patiešām mainās atbilstoši skaļumam telpā.

Lai šo vērtību "pārvērstu" faktiskajā dB rādījumā, esmu izmantojis tiešsaistes signālu ģeneratoru ar frekvenci 550 Hz un savu Android, lai nodrošinātu atsauces nolasījumu.

Esmu uzzīmējis šīs vērtības un izmantojis MatLAB līknes pielāgošanas rīku, lai iegūtu funkciju, kas kartē ADC rādījumus ar faktiskajiem dB līmeņu tuvinājumiem (vai vismaz pietiekami tuvu tālruņa rādījumiem).

Mēs redzam, ka tas seko mikrofona logaritmiskajai skalai.

Es arī darīju to pašu, lai kartētu adatas stāvokli ar PWM vērtībām. Es apkopoju šīs vērtības, palielinot PWM vērtību par 10 pēc kārtas, līdz vajadzība skāra tās mērogu.

Apvienojot šīs 2 funkcijas, es saņēmu vienkāršu veidu, kā parādīt rādījumu no ADC līdz faktiskajai vērtībai indikatora indikatorā.

5. darbība: Android lietotne

Lietotne izmanto šo foršo bibliotēku, lai sazinātos, izmantojot Bluetooth seriālu, lai apmainītos ar baitu informāciju.

Šīs sistēmas galvenais brīdinājums ir tas, ka maksimālais vārdu garums, kas tiek nosūtīts, izmantojot Bluetooth, ir 8 biti, un ADC vērtība tiek attēlota kā 12 biti. Lai atrisinātu šo problēmu, es sadalīju vienu ADC vērtību 2 atsevišķās 6 bitu vērtībās (MSB un LSB), bet atlikušos 2 bitus izmantoju, lai identificētu ziņojuma veidu (MSB, LSB, CHK).

Tāpēc vienai ADC vērtībai, kuru vēlamies pārraidīt, faktisko vērtību sadalām 2 ziņojumos. Lai pārbaudītu šo ziņojumu integritāti, es nosūtīju trešo ziņojumu ar XOR no pirmajiem 2 ziņojumiem.

Pēc vērtību integritātes pārbaudes mēs varam izmantot to pašu funkciju, lai iegūtu dB līmeni un uzzīmētu to mūsu tiešajā diagrammā.

6. darbība. Kopsavilkums

Kamēr es šī projekta mikrokontrollera daļa darbojas diezgan labi, parādot skaļumu telpā, man radās dažas problēmas, nosūtot datus, izmantojot Bluetooth, pakešu zuduma dēļ.

Šī projekta avota kodu var atrast šeit:

  • Android pavadošā lietotne - repo
  • Mikrokontrollera kods - repo

Jūtieties brīvi sniegt savu ieguldījumu, ja jums tas jebkādā veidā šķiet noderīgi.

Ieteicams: