INHOUDSOPGAWE:
- Stap 1: Gebruikte komponente
- Stap 2: Envelope Volgeling
- Stap 3: PWM vir die analoog meter
- Stap 4: mikrofoon Kalibrasie
- Stap 5: Android -app
- Stap 6: Opsomming
Video: Bluetooth -geaktiveerde analoog VU -meter: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Dit was my projek vir een van my universiteit klasse genoem SMP. Terwyl ons die ontwikkelingsbord STM32F103RB gebruik het, het ek my projek hierop gebaseer op 'n eenvoudige VU -meter. Daarna het ek 'n paar ekstra funksies soos Bluetooth -ondersteuning bygevoeg om waardes van die ADC na 'n Android -program uit te saai om 'n eenvoudige dB -grafiek te skep.
Stap 1: Gebruikte komponente
- STM32F103RB ontwikkelingsbord
- HC-05 zs040 bluetooth module
- Analoog VU meter paneel (skakel)
- Elektret mikrofoon
- LM324N quad op-amp
- 2 TIP120 transistors
- 3 1N4148 diodes
- Verskeie kapasitors en weerstande
Alhoewel u hierdie kring van die 5V -spoor van die bord af kan dryf, het ek ook 'n eksterne 5V -kragtoevoer gebruik.
Stap 2: Envelope Volgeling
Die belangrikste deel van hierdie ontwerp is die koevertvolger wat die sein van die elektretmikrofoon neem en 'n spanning lewer wat eweredig is aan die mikrofoon se seinamplitude.
Die rou sein van die mikrofoon word eers deur 'n versterker met 'n versterking van 150 deurgegee.
Die sein word dan deurgegee deur die werklike koevertvolger wat slegs die positiewe seindele moet lewer.
Die laaste deel is om die offsetspanning van 1,65V af te trek van die uitset van die koevertvolgers om 'n sein van 0 V vir geen geluid te gee, 1,65 V vir medium klank en 3,3 V vir harde klank wat verenigbaar moet wees met die ingeboude ADC van die raad.
Hierdie koevertvolger word geïmplementeer vanuit hierdie wonderlike StackExchange -antwoord.
Stap 3: PWM vir die analoog meter
Om die naald van die meter aan die gang te kry, het ek die TIM4 -timer van die mikrokontrollerbord ingestel met 'n frekwensie van ongeveer 500 Hz.
Deur agtereenvolgens verskillende dienssiklusse uit te probeer, het ek 'n paar waardes gekry wat genoeg was om die naald van 0 na 100 te laat beweeg.
Ek sal die proses van die vertoon van 'n presiese waarde in die volgende stap in detail beskryf deur wiskunde toe te pas.
Stap 4: mikrofoon Kalibrasie
Nadat ek die koevertvolger gedoen het, skryf ek 'n paar eenvoudige kode om die ADC te gebruik en verifieer dat die leeswaarde inderdaad dienooreenkomstig verander na die hardheid in die kamer.
Om hierdie waarde in 'n werklike dB -lesing te "vertaal", het ek 'n aanlyn toongenerator met 'n frekwensie van 550 Hz en my Android gebruik om 'n verwysingslesing te gee.
Ek het die waardes geskets en MatLAB se Curve Fit Tool gebruik om 'n funksie te kry wat ADC -lesings in kaart bring tot die werklike benaderings van die dB -vlakke (of ten minste naby genoeg aan my telefoon se lesings).
Ons kan sien dat dit volg op die logaritmiese skaal van die mikrofoon.
Ek het ook dieselfde gedoen om die naaldposisie aan PWM -waardes te koppel. Ek het hierdie waardes versamel deur die PWM -waarde agtereenvolgens met 10 te verhoog totdat die behoefte op sy skaal gelees het.
Deur hierdie twee funksies te kombineer, het ek 'n maklike manier om die meting van ADC na die werklike waarde op die meteraanwyser te vertoon.
Stap 5: Android -app
Die app gebruik hierdie oulike biblioteek om via Bluetooth -reeks te kommunikeer om byte -inligting uit te ruil.
Die belangrikste voorbehoud van hierdie stelsel is dat die maksimum woordlengte wat via Bluetooth gestuur word, 8 bis is en die ADC -waarde as 12 bisse voorgestel word. Om hierdie probleem te oorkom, verdeel ek een ADC -waarde in 2 afsonderlike 6 biswaardes (MSB en LSB) met die oorblywende 2 bisse wat gebruik word om die tipe boodskap (MSB, LSB, CHK) te identifiseer.
Daarom, vir 'n enkele ADC -waarde wat ons wil uitsaai, verdeel ons die werklike waarde in 2 boodskappe. Om die integriteit van die boodskappe te kontroleer, stuur ek 'n derde boodskap met die XOR van die eerste 2 boodskappe.
Nadat die waarde -integriteit nagegaan is, kan ons dieselfde funksie toepas om die dB -vlak te kry en dit op ons lewendige grafiek in te teken.
Stap 6: Opsomming
Alhoewel ek, die mikrobeheerder-deel van hierdie projek, baie goed werk in die vertoning van 'n kamer, het ek probleme ondervind tydens die stuur van data oor Bluetooth as gevolg van pakkieverlies.
Die bron-kode vir die projek kan hier gevind word:
- Android metgesel app - repo
- Mikrobeheerder-kode - repo
Voel vry om by te dra as jy vind dit nuttig in enige manier.
Aanbeveel:
Hoe om 'n analoog horlosie en 'n digitale horlosie met LED -strook te maak met behulp van Arduino: 3 stappe
Hoe om 'n analoog horlosie en 'n digitale horlosie te maak met 'n LED -strook met Arduino: vandag maak ons 'n analoog horlosie & Digitale klok met Led Strip en MAX7219 Dot -module met Arduino. Dit sal die tyd met die plaaslike tydsone regstel. Die analoog horlosie kan 'n langer LED -strook gebruik, sodat dit aan die muur gehang kan word om 'n kunswerker te word
Analoog voorkant vir oscilloskoop: 6 stappe (met foto's)
Analoog voorkant vir die oscilloskoop: tuis het ek 'n paar goedkoop USB -geluidskaarte wat vir 'n paar dollar in Banggood, Aliexpress, Ebay of ander wêreldwye aanlynwinkels gekoop kan word. Ek het gewonder vir watter interessante dinge ek dit kan gebruik, en het besluit om 'n lae frekwensie -rekenaaromvang te probeer maak
Spel met 4 knoppies met een analoog invoer: 6 stappe (met foto's)
Spel met 4 knoppies met een analoog invoer: hierdie instruksies fokus op die gebruik van een analoog invoerlyn vir verskeie knoppies wat onafhanklik van mekaar opgespoor kan word. Al die speletjies (8 in t
Gebruik analoog sensors met ESP8266: 5 stappe
Analoge sensors gebruik met ESP8266: 'n Analoog-na-digitale omskakelaar (ADC, A/D, A – D of A-tot-D) is 'n stelsel wat 'n analoog sein in 'n digitale sein omskep. A/D -omsetters vertaal analoog elektriese seine vir dataverwerkingsdoeleindes. Met produkte wat ooreenstem met prestasie, krag
Raspberry Pi GPIO -kringe: Die gebruik van 'n LDR analoog sensor sonder 'n ADC (analoog na digitaal omskakelaar): 4 stappe
Raspberry Pi GPIO -kringe: Die gebruik van 'n LDR analoog sensor sonder 'n ADC (analoog na digitale omskakelaar): In ons vorige instruksies het ons u gewys hoe u die GPIO -penne van u framboos Pi aan LED's en skakelaars kan koppel en hoe die GPIO -penne hoog kan wees of Laag. Maar wat as u u Raspberry Pi met 'n analoog sensor wil gebruik? As ons 'n