Pašdarināta barometra shēma uz mikrokontrollera. Elektriskās ķēdes palīgos

Pašdarināta barometra shēma uz mikrokontrollera. Elektriskās ķēdes palīgos

Barometra ķēde atmosfēras spiediena mērīšanai ir veidota, izmantojot MPXHG6115 spiediena sensoru. Pats sensors nodrošina spriegumu pie tā izejas, kas ir proporcionāls gaisa spiedienam. Darbības diapazons aptver atmosfēras spiedienu (90 - 110 kPa) jūras līmenī. Sensora minimālais darba gaisa spiediens ir 15 kPa, kas ļauj to izmantot pat kalnainos apvidos. Tomēr, lai to izdarītu, ir jāpārrēķina rezistori uz tā dēļa. Atmosfēras spiedienam apgabalā, kas atrodas tuvu jūras līmenim, sensora izejas sprieguma diapazons ir 3,625–4,55 volti. Shēmas analogajā daļā (diagrammā ieēnots) pie izejas tiek ģenerēts lineārs spriegums diapazonā no 0 līdz 5 V, kas ir mikrokontrollera ADC normālā diapazonā. Saskaņošana tiek veikta, izmantojot divus darbības pastiprinātājus. Kreisais (shēmā) nodrošina sensora optimālo slodzes pretestību (51 kOhm) un invertē atsauces spriegumu aptuveni 2,5 V. Atsauces spriegumu iegūst, izmantojot sprieguma dalītāju, kas sastāv no diviem 11,5 k rezistoriem (1% precizitāte) . Labais op-amp nodrošina nepieciešamo sprieguma mērogošanu un sākotnējo iestatījumu uz 0. Mēs iesakām izmantot dubulto OPA2374.

Specifikācijas

  • Mērīšanas diapazons: 700 - 800 mmHg
  • Barošanas spriegums: 5 volti
  • Strāvas patēriņš: 40 mA

Tālummaiņas sensors un analogais pastiprinātājs ir samontēti uz nelielas iespiedshēmas plates. Tas savienojas ar galveno plati, izmantojot 3 vadus. Testa ķēde sastāv no mikrokontrollera un LCD moduļa ar interfeisu, kas uzstādīts tā aizmugurē. Interfeisa karte nodrošina visus sakarus ar PIC, izmantojot tikai divus vadus, un tās programmatūra ievieš standarta I2C interfeisa vienkāršotu versiju. PIC16F84 kontrollera programma piešķir savu RC3 kontaktu ievadi ADC ieejai. Tas vienkārši aprēķina spiedienu, pamatojoties uz ieejas spriegumu saskaņā ar formulu, pārvērš to BCD un parāda to ekrānā.

Pulksteņa apraksts.

Bija nepieciešams atjaunināt modinātāju guļamistabā. Modifikācijai tika izmantots ķīniešu pulkstenis VST-716. Starp tiem raksturīgajiem trūkumiem: indikatora mirgošana; Indikatora krāsa manā modelī bija kaitinoši sarkana; Indikatora spilgtums ir pārāk spilgts naktī un nepietiekams dienai; un pats galvenais, lai gan ir nodrošināta akumulatora darbība, tā ir tikai pulksteņa darbība, lai tas nenoklīstu, indikators un modinātājs nedarbojas. Nu un arī garlaicīgi.

Atverot, es uzzināju, ka dinamiskā indikācija nāk ar tīkla frekvenci (tātad mirgošana). Indikators ir “apgriezts”, tas ir, neizmantotos segmentos nav gaismas diožu. Pārslēgšanās uz dinamiku, maigi izsakoties, ir dīvaina un raksturīga indikatora konstrukcijai. Nonācu pie secinājuma, ka bez korpusa un pogām (pēc pārstrādāšanas) nekas nav lietojams. Tāpēc nolēmu visu radikāli pārtaisīt.

1. Funkcijas.

1.1. Pulkstenis, laika displeja formāts 24 stundas, stundas: minūtes.

1.2. Digitālās precizitātes korekcija. Iespējama ikdienas korekcija ±25 sek. No pašreizējā laika tiks pievienota/atņemta iestatītā vērtība 1 stunda 0 minūtes 30 sekundes.

1.3. Signalizācija. Norādītajā laikā (noteikts 2.2.1. punktā) vienu minūti tiek dzirdami īsi dubulti signāli. Skaņu var izslēgt pirms grafika, nospiežot pogu TRANSPORTLĪDZEKLIS. Kad modinātājs ir iespējots (ieslēdziet pulksteņa aizmuguri pozīcijā Ieslēgts), parādot laiku, punkts tiek norādīts vismazāk nozīmīgajā ciparā. Ja indikators bija izslēgts, tad, kad nodziest modinātājs, tiek aktivizēta automātiska spilgtuma regulēšana.

1.4. Termometrs. Mērītās temperatūras diapazons ir -55,0 ÷ 125,0 o C. Ja temperatūra ir virs +99,9 vai zemāka par -9,9 o C, grāda desmitdaļas netiek rādītas. Ja sensora darbībā ir radusies kļūda, indikatorā tiek parādītas domuzīmes.

1.5. Barometrs. Atmosfēras spiediena mērīšana mm Hg. Art.

1.6. Norāde. Alternatīva, animēta displeja maiņa. Displeja laiks ir iestatīts 2.2.3. punkta iestatījumos. Nospiežot pogu MINUSS tiek veikta parādītās informācijas manuāla atlase. Nospiežot pogu IESTATĪT ieslēdz pulksteni automātiskās informācijas maiņas režīmā.

1.7. Negaistošas ​​mikrokontrollera atmiņas izmantošana, lai saglabātu iestatījumus, kad barošana ir izslēgta.

1.8. Indikatora spilgtuma manuāla vai automātiska regulēšana atkarībā no apgaismojuma līmeņa.

Spilgtuma režīms tiek atlasīts galvenajā režīmā ar pogu PLUS aplī: indikators izslēgts - automātiska spilgtuma regulēšana - manuāls spilgtuma regulēšanas režīms.

Spilgtuma regulēšanas robežas automātiskajā režīmā un spilgtuma līmenis manuālajā režīmā ir iestatītas 2.2.4. punkta iestatījumos.

1.9. Darbojas no neatkarīga barošanas avota (divas “AAA” baterijas).

2. Iestatīšana.

2.1. Kad strāva ir ieslēgta, pulkstenis ir galvenajā režīmā.

2.2. Nospiežot pogu IZVĒLNE Jūs atverat iestatījumu režīmu un atlasiet instalējamo parametru grupu. Grupas ietvaros iestatāmais parametrs tiek atlasīts, izmantojot pogu IESTATĪT. Pieejams uzstādīšanai pēc kārtas:

2.2.1. Grupa ALar:

Minūtes, kad atskan modinātājs;

Modinātājs.

2.2.2. Grupa CLOC:

Sekundes (nospiežot pogas, atiestatiet uz nulli) PLUS vai MINUSS);

Korekcijas summa. Nozīmīgākajā ciparā simbols " Ar".

2.2.3. Grupa diSP:

Pašreizējā laika laika displejs. Ar augstākajiem cipariem simboli " tc". Iestatīšanas diapazons 0÷99 sek. Ja iestatīts uz 0, laiks netiks parādīts;

Temperatūras rādīšanas laiks. Ar augstākajiem cipariem simboli " tt". Iestatīšanas diapazons 0÷99 sek. Ja iestatīts uz 0, temperatūra netiks rādīta;

Spiediena indikācijas laiks. Ar augstākajiem cipariem simboli " tP". Iestatīšanas diapazons 0÷99 sek. Ja iestatīts uz 0, spiediens netiks rādīts;

Animācijas ātruma izvēle. Nozīmīgākajā ciparā simbols " P". Iestatījumu diapazons ir 0÷99. Viena vienība atbilst aptuveni 2 ms, jo lielāka vērtība, jo lēnāka ir animācija.

2.2.4. Grupa Gaišs:

Minimālais spilgtuma slieksnis automātiskajam režīmam. Ar augstākajiem cipariem simboli " L_".

Maksimālais spilgtuma slieksnis automātiskajam režīmam. Ar augstākajiem cipariem simboli " ".

Spilgtuma līmenis manuālajā režīmā. Ar augstākajiem cipariem simboli " L-".

2.3. Iestatāmais parametrs mirgo.

2.4. Turot pogas PLUS/MINUSS parametrs tiek ātri iestatīts.

2.5. Pēc ~10 sekundēm no pēdējās pogas nospiešanas, pulkstenis pārslēgsies uz galveno darbības režīmu, un jauni parametri tiks ierakstīti nemainīgā atmiņā.

3. Darbība no autonoma barošanas avota.

3.1 Ja nav strāvas padeves, pulkstenis turpina darboties, ja ir ievietotas baterijas.

3.2 Kad darbina ar baterijām, indikators izslēdzas, modinātājs turpina darboties.

3.3. Kad modinātājs atskan, vienu minūti atskan dubulti pīkstieni un mirgo indikators, lai parādītu laiku. Izslēdziet skaņu, nospiežot pogu TRANSPORTLĪDZEKLIS vai ieslēdziet pulksteņa aizmuguri pozīcijā Izslēgts.

3.4 Indikāciju var ieslēgt īslaicīgi (~4 sekundes), nospiežot pogu TRANSPORTLĪDZEKLIS. Šajā režīmā varat skatīt un iestatīt parametrus.

3.5. Strādājot ar akumulatoriem, temperatūras un spiediena mērījumi netiek veikti.

3.6 Indikatora spilgtums ir iestatīts manuālajā režīmā.

4. Piezīmes.

1. Minimālajam un maksimālajam spilgtuma slieksnim iestatīšanas diapazons ir 0 ÷ 99, bet programma ievieš ierobežojumus: minimums nevar būt lielāks vai vienāds ar maksimālo un otrādi.

2. Iestatot spilgtuma parametrus, informācija uz indikatora tiek parādīta ar izvēlēto spilgtuma vērtību, izņemot gadījumus, kad pulkstenis tiek darbināts ar baterijām.

3. Nepieciešams salīdzināt animācijas ātrumu un informācijas parādīšanas laiku. Ja ir atlasīta lēna animācija un īss displeja laiks, var izrādīties, ka informācijai nav laika pilnībā atjaunināt pirms nākamās maiņas.

5. Shēmas iezīmes.

1. Ja plānojat izmantot indikatora spilgtuma automātiskas pielāgošanas funkciju, tad RV1 vietā tiek uzstādīts fotorezistors. Un rezistora R17 vērtība ir jāizvēlas, lai iegūtu vēlamo sistēmas jutību.

2. Temperatūras sensors var darboties arī, izmantojot 2 vadu savienojuma shēmu. Ja plānojat izmērīt temperatūru telpā, kurā ir uzstādīts pulkstenis, sensors tomēr jānovieto ārpus pulksteņa korpusa.

3. BUZ1 augstfrekvences skaļrunim ir jābūt iebūvētam ģeneratoram. Atkarībā no strāvas patēriņa, iespējams, būs jāuzstāda pastiprinātājs (tranzistora slēdzis).

4. Indikators - 4 viencipara 0,8" SM610806B/8, kopējais anods, zils. Spilgtums vairāk nekā pietiekams.

5. Mirgojot MK programmaparatūru, jums jāinstalē FUSE, lai darbotos no iekšējā pulksteņa ģeneratora ar frekvenci 8 MHz. Ekrānuzņēmumā redzamais piemērs FUSE instalēšanai programmai CVAVR.

6. Spiediena sensors GY-65.

7. Projektā (tā būtībā ir ķēde) nav redzamas mikroshēmu barošanas tapas.

8. Pulkstenis tiek darbināts no ārēja stabilizēta sprieguma avota +5V, strāvas patēriņš ir aptuveni 30 mA. Manā gadījumā es izmantoju mobilā tālruņa lādētāju. Rezerves jauda - divi "AAA" elementi.

Arhīvā ir failu komplekts: programmaparatūra, projekts Proteus modelēšanai, divi Proteus faili, uz kuriem tika uzbūvēti zīmogi, apraksts, izskata fotoattēls. Rakstā es nepublicēju iespiedshēmu plates, jo izstrādes laikā pieļāvu vairākas kļūdas un nācās veikt dažas izmaiņas jau uz tāfeles. Turklāt dēlis ir izgatavots speciāli šim gadījumam. Ja kādam vajag, rakstiet, ielikšu formā. Pie reizes nofotografēšu arī pulksteņa iekšējo uzbūvi.

Izveidots diskusijām forumā.

Temperatūra
un apkārtējā gaisa spiedienam ir liela ietekme uz pašsajūtu
persona. Ir svarīgi tos zināt gan pārgājienā, gan laukos, gan mājās. Piedāvātais kompaktais
Ierīce ir lieliski piemērota šim nolūkam. To var izmantot arī
aptuvens augstuma novērtējums, piemēram, kāpjot kalnos. Samazināt
spiediens uz 1 mmHg atbilst augstuma pieaugumam virs līmeņa
jūra apmēram 10 m.

Ierobežojumi
mērījumi un instrumenta kļūda
nosaka galvenokārt tajā izmantotie temperatūras sensori -55…+125
°C, atmosfēras spiediens 225. 825 mmHg Ierīce tiek darbināta
spriegums 9 V no “Krona” tipa galvaniskā akumulatora vai tīkla
adapteris Strāvas patēriņš - 30 mA (ar izslēgtu LCD fona apgaismojumu). Izmēri
korpuss - 118×72 28 mm. Ierīces darbība tika pārbaudīta temperatūrā no -5 līdz
+25 C Spiediena mērījuma kļūda nepārsniedza 4 mm Hg Diagramma
Ierīce ir parādīta attēlā. 1 modulis samontēts uz atsevišķas plates
spiediena mērījumi ir iezīmēti ar pārtrauktu līniju.

Obligāti
lai sensors darbotos, kvarca ģenerē pulksteņa impulsus ar frekvenci 32768 Hz
ģenerators, kas balstīts uz DD1 mikroshēmas elementiem.Principā šie impulsi varētu
izveidojiet DD2 mikrokontrolleri, izmantojot vienu no tajā esošajiem taimeriem
Bet tas prasīs programmu sarežģītību.

spriegums
3,6 V strāvas sensoram B1 un mikroshēmai DD1 tiek iegūta, izmantojot Zenera diodi VD1
Rezistori R1 -R3 - slodze līnijām, kas savieno sensoru ar mikrokontrolleru
1C interfeiss un XCLR signāls Tiek parādīta spiediena mērīšanas moduļa iespiedshēmas plate
attēlā. 2

Lai gan
Sensorā HP03SB ir arī iebūvēts temperatūras mērītājs, tā rādījumi
DD2 mikrokontrollera programma izmanto tikai rezultātu precizēšanai
spiediena mērījumi. Kopā ar spiediena vērtību tiek parādīts LCD HG1
rādījumi no cita temperatūras sensora - DS1624 (B2) Iemesls tam ir vienkāršs - tā
precīzāk, ja nepieciešams, sensoru B2 var taisīt attālināti un novietot kur
temperatūra ir vislielākā interese. Uzstādot ierīces korpusā
šis sensors jānovieto uz sānu sienas, izveidojot tajā logu gar to
izmēri Citādi kļūda 1,5 ..1,8 ‘C ir neizbēgama, kā esmu redzējis praksē
+5 V barošanas spriegumu stabilizē mikroshēma DA1.
rezistors R8 iestata labāko attēla kontrastu LCD, izmantojot pogu
SB1 ieslēdz sava rezultātu tablo fona apgaismojumu. Atlikušie elementi ir nepieciešami darbībai
mikrokontrolleris Elements R7 R9 SY VD2 - shēma mikrokontrollera uzstādīšanai iekšā
sākuma stāvoklis Kvarca rezonators ZQ2 ar kondensatoriem C11.C12 - frekvences iestatījums
mikrokontrollera pulksteņa ģeneratora ķēde.

Ieslēgts
rīsi. 3 ir parādīts ierīces galvenās iespiedshēmas plates rasējums un attēlā. 4 -
detaļu izvietojums uz tā. Parādītajā caurumā aizpildīts (dēlis
attēlā. 2), ir nepieciešams ievietot un pielodēt vadu no abām pusēm
džemperis. Mikrokontrollerim DD1 ir jāparedz panelis, kopš
ierīces iestatīšanas procesā šī mikroshēma būs jānoņem un vēlreiz
uzstādīt.

Apstāsimies
par dažām HP03SB sensora funkcijām. kopskats un kopējie izmēri
attēlā parādīts. 5 Lai noteiktu spiedienu, vispirms jāizlasa
no ierīcē instalētā šī sensora gadījuma atmiņas, dubultbaits
koeficientu vērtības C, -C- un parametru A-D viena baita vērtības. Viņi visi ir individuāli
šim gadījumam.

rezultātus
mērījumi ir divi divu baitu skaitļi - D1 - spiediens D2 -
temperatūra. Lasot tos no atmiņas
sensors, programmai jāaprēķina palīgvērtības

Vairāk
Detalizēta informācija par HP03SB sensoru ir pieejama . Tomēr jāatzīmē
ka sensora iekšējās atmiņas adreses, kur tās tiek glabātas, ir norādītas nepareizi
tās individuālās konstantes. Jums vajadzētu izmantot norādītās adreses
c Ierīce var izmantot arī citus NROZ sērijas sensorus.Daži no tiem
ir mazāka precizitāte, citi atšķiras pēc dizaina.

Darbs
programma sākas ar mikrokontrollera un LCD portu inicializāciju Veiksmīgi
inicializāciju apstiprina uzraksta “TERMOBAR” displejs (burts
Trūkst N). Pēc tam spiediena sensors tiek inicializēts, nolasot reģistra stāvokli
Mikrokontrollera moduļa TW1 statuss netiek pārbaudīts.

Priekš
īpaša programma ir paredzēta sensora koeficientu un parametru nolasīšanai
ReadCC, kas jāielādē pilnībā samontētā mikrokontrollera programmas atmiņā
ierīci (ar pievienotu spiediena mērīšanas moduli), ieslēdziet to un cauri
izslēdziet to uz dažām sekundēm. Pēc tam jums ir jānoņem mikrokontrolleris un
izmantojot programmētāju, lai lasītu tā EEPROM saturu. Tajā ir norādītas adreses
norādīts tabulā. 1, tiek atrastas individuālo koeficientu un parametru vērtības
sensors Tālāk jums jāatver barometra-termometra darbības programmas fails
BARO-2 asm, atrodiet tajā tabulā norādīto fragmentu. 2 un labojiet vērtības
tur deklarētās konstantes saskaņā ar tām, kas nolasītas no EEPROM parametra D
programmā netiek izmantots

Tagad
programma ir gatava darbam ar ierīcē instalētu sensora gadījumu
Atliek tikai to pārraidīt, izmantojot AVR Studio, un ielādēt iegūto HEX failu
mikrokontrollerī Lūdzu, ņemiet vērā, ka tiek aprēķināts līdzīgs rakstam pievienotais fails
lai strādātu ar sensoru, kas autoram bija Ja to ielādējat mikrokontrollerī
ierīce ar citu spiediena sensora gadījumu darbosies, bet rādīs neprecīzi
lasījumi

IN
Izstrādē tika izmantoti programmu fragmenti no un . Konversijas rutīnas
skaitļi no heksadecimālās uz bināro decimālo formātu ir pārstrādāti no
ņemot vērā skaitļu bitu dziļumu. Divbaitu reizināšanas un dalīšanas kārtība
numuri, kas paredzēti MCS-51 saimes mikrokontrolleriem, ir pārtulkoti
montāžas valoda AVRASM Apakšprogramma, kurā tika veiktas vismazākās izmaiņas
LCD vadība, tiek ņemtas vērā tikai MT-10S1 indikatora funkcijas un ieejai un izvadei
signālus izmanto citi mikrokontrollera porti.

Šodien es gribētu apsvērt ierīci, kas ir barometrs - atmosfēras spiediena mērītājs. Šādas ierīces izmantošana ir nepieciešama, lai uzraudzītu pašreizējo atmosfēras spiedienu, kas izteikts uz ierīces indikatora divās mērvienībās - starptautiskajā mērvienību sistēmā Pascal (Pa vai Pa) un nesistēmiskajās mērvienībās - dzīvsudraba staba milimetros. Pēdējais, visticamāk, ir izplatītāks mūsu valstīs, jo tas tiek izmantots laika prognozēs. Tomēr šīs ierīces funkcionalitāte neaprobežojas tikai ar atmosfēras spiediena mērīšanu, tā mēra arī temperatūru un nosaka augstumu virs jūras līmeņa (augstumu virs jūras līmeņa).

AVR mikrokontrollera ATmega8 ierīces shēma ir parādīta zemāk:

Bosch ražotais BMP180 tiek izmantots kā atmosfēras spiediena sensors ķēdē. Taisnību sakot, šis uzņēmums ražo labas un kvalitatīvas lietas, taču šī sensora datu lapa nav īpaši izsmeļoša salīdzinājumā ar citu uzņēmumu datu lapām, bez pieredzes šādas dokumentācijas lasīšanā to būs grūti saprast. Bosch inženieri uzskatīja par nepieciešamu sniegt informāciju tikai par elementārākajiem parametriem, taču viss nepieciešamais ir, kaut arī vietām īsi. Atmosfēras spiediena sensors BMP180 var darboties gan caur I2C interfeisu, gan SPI interfeisu (izvēlas, pievienojot nepieciešamās sensora tapas). Šī shēma izmanto I2C interfeisu. Tā kā sensoram nepieciešama jauda līdz 3,3 voltiem un mikrokontrolleris tiek darbināts no 5 voltu līdzstrāvas, pareizai darbībai ir jāpiemēro I2C līmeņa saskaņošana. Šim nolūkam tika izvēlēta NXP PCA9517 ražotā mikroshēma. Pats sensors paņem strāvu no sprieguma stabilizatora pie 3,3 voltiem, tāda pati jauda tiek piegādāta uzvilkšanas rezistoriem R6 un R7. Signāla līmeņus pārveido PCA9517 mikroshēma, un signāli no atmosfēras spiediena sensora tiek pārraidīti uz mikrokontrolleru ar līmeņiem līdz 5 voltiem. 5 volti ir pievienoti pievilkšanas rezistoriem R4 un R5. Šie uzvilkšanas rezistori ir nepieciešami I2C protokola darbībai - ar to palīdzību tiek ģenerēti augsti signāla līmeņi, un, mikroshēmai nokrītot šo spriegumu no pievilkšanas rezistoriem līdz nulles potenciālam, veidojas zems loģiskais signāls. Šajā 3,3 un 5 voltu loģiskā līmeņa spriegumu konfigurācijā varat rīkoties kā pēdējo līdzekli un bez līmeņu saskaņošanas, jo saskaņā ar standartiem ar šādiem barošanas spriegumiem zemā līmeņa potenciāls ir vienāds, bet augstais līmenis ir vienāds gan 5 voltiem, gan 3,3 voltiem, atšķirība ir tikai maksimālajās vērtībās. Tomēr tika nolemts neriskēt un tomēr piemērot līmeņa koordināciju – darīt visu pēc noteikumiem. Pievilkšanas rezistoru vērtības var ņemt no 4,7 kOhm līdz 10 kOhm. Kondensatori C3 un C4 ir nepieciešami stabilai atmosfēras spiediena sensora darbībai.

Svarīga funkcija šajā atmosfēras spiediena sensorā ir iegūto mērījumu kalibrēšana. Sensora atmiņā ir 11 koeficienti, kas paredzēti, lai uzlabotu parametru mērīšanas precizitāti. Tomēr ne viss ir tik vienkārši - jūs nevarat vienkārši reizināt ar šiem koeficientiem. Lai iegūtu galīgos rezultātus, datu lapā ir viss aprēķinu piemērs 15. lappusē, sensora dokumentācija ir sniegta zemāk. Saskaņā ar šo informāciju mēs sastādām programmu mikrokontrolleram C valodā.

// iegūt temperatūras un atmosfēras spiediena vērtības, ņemot vērā kalibrēšanas koeficientus, nevar BMP180_calculation (int32_t* temperatūra, int32_t* spiediens) ( //int8_t i; int32_t ut=0; int32_t up=0; int32_t x1, x62, b5, b5 , x3, b3, p; uint32_t b4, b7; BMP180_get_temper(); ut+=temperatūra_1; BMP180_get_spiediens(); augšup=spiediens_1; x1 = ((int32_t)ut - (int32_t)ac6) * (int32_1) ac6) * (int32_1) ac x2 = ( (int32_t)mc<< 11) / (x1 + md); b5 = x1 + x2; *temperature = (b5 + 8) >> 4; b6 = b5 - 4000; x1 = (b2 * ((b6 * b6) >> 12)) >> 11; x2 = (ac2 * b6) >> 11; x3 = x1 + x2; b3 = (((((int32_t) ac1) * 4 + x3)<>2; x1 = (ac3 * b6) >> 13; x2 = (b1 * ((b6 * b6) >> 12)) >> 16; x3 = ((x1 + x2) + 2) >> 2; b4 = (ac4 * (uint32_t) (x3 + 32768)) >> 15; b7 = ((uint32_t) (uz augšu - b3) * (50000 >> OSS)); //p = b7< 0x80000000 ? (b7 * 2) / b4: (b7 / b4) * 2; if (b7 < 0x80000000) { p = (b7 << 1) / b4; } else { p = (b7 / b4) << 1; } x1 = (p >> 8) * (p >> 8); x1 = (x1 * 3038) >> 16; x2 = (-7357 * p) >> 16; *spiediens = p + ((x1 + x2 + 3791) >> 4); )

Katram sensoram ir savi kalibrēšanas koeficienti (acīmredzot tie ir pilnībā iestatīti rūpnīcā saskaņā ar kaut kādiem kontroles testiem). Šie koeficienti pirms lietošanas jānolasa no sensora turēšanas reģistra.

// iegūt datus kalibrēšanai, nevar BMP180_Calibration (void) ( ac1 = lasīt (0xAA); ac2 = lasīt (0xAC); ac3 = lasīt (0xAE); ac4 = lasīt (0xB0); ac5 = lasīt (0xB2); ac6 = lasīt (0xB4); b1 = lasīt (0xB6); b2 = lasīt (0xB8); mb = lasīt (0xBA); mc = lasīt (0xBC); md = lasīt (0xBE); ) // lasīt reģistru 16 bitu uint16_t Lasīt (uint8_t adrese) ( uint16_t msb=0; uint16_t lsb=0; uint16_t dati; i2c_start_cond(); // start i2c i2c_send_byte(BMP180_W); // ierīces adreses pārsūtīšana, ierakstīšanas režīms i2c_send_send_byte of address_byte/2ds () ; // stop i2c i2c_start_cond(); // start i2c i2c_send_byte(BMP180_R); // pārsūtīt ierīces adresi, lasīšanas režīms msb = i2c_get_byte(0); lsb = i2c_get_byte(1); // stop/ i2d_s); i2c dati = (msb<< 8) + lsb; return data; }

Lai iegūtu augstuma vai augstuma virs jūras līmeņa vērtību, mēs izmantojam arī datu lapā norādīto formulu un iegūstam šādu funkciju:

// funkcija augstuma virs jūras līmeņa aprēķināšanai (augstums) (funkcija aizņem daudz atmiņas matemātisko funkciju dēļ!!!) void bmp180CalcAltitude(int32_t pressure)( float temp; temp = (peldēšanas) spiediens/101325; temp = 1 -pow (temp, 0,19029); //augstums = apaļš (44330*temp*10); augstums = 44330*temp*100; //iegūt augstumu dm )

Atkarībā no vajadzības šo funkciju var izmest no avota koda, jo aprēķiniem ir jāizmanto bibliotēka - tajā ieviestās metodes nepieciešamo darbību aprēķināšanai aizņem daudz atmiņas, gan zibatmiņas, gan RAM, bet es neko labāku vēl neesmu izdomājis.

Šis sensors var arī izmērīt atmosfēras spiedienu ar dažādu precizitāti. Lai iestatītu precizitāti, šī vērtība ir jāpārsūta uz sensoru caur I2C un pareizi jāiestata aizkave pirms reģistru nolasīšanas ar saņemtajiem datiem (atkarībā no precizitātes sensoram ir nepieciešams vairāk vai mazāk laika mērīšanai). Programmas kods izskatās šādi:

// nolasīt atmosfēras spiediena vērtību void BMP180_get_pressure(void)( i2c_start_cond(); // start i2c i2c_send_byte(BMP180_W); // pārsūtīt ierīces adresi, ierakstīšanas režīms i2c_send_byte(0xF4); // pārsūtīt (pārsūtīt atmiņas adresi 0x34+2 OSS<<6)); // передача разрешения (oss) адреса памяти температуры i2c_stop_cond(); // остановка i2c _delay_ms(26); // время на замер (от 5 до 26 мс в зависимости от разрешения (oss)) i2c_start_cond(); // запуск i2c i2c_send_byte(BMP180_W); // передача адреса устройства, режим записи i2c_send_byte(0xF6); // передача адреса памяти i2c_stop_cond(); // остановка i2c i2c_start_cond(); // запуск i2c i2c_send_byte(BMP180_R); // передача адреса устройства, режим чтения D1=i2c_get_byte(0); // MSB D2=i2c_get_byte(0); // LSB D3=i2c_get_byte(1); // XLSB i2c_stop_cond(); // остановка i2c pressure_1 = ((D1 << 16) + (D2 << 8) + D3) >> (8-OSS); // aprēķināt spiedienu (Pa)

Montējot ķēdi, atmosfēras spiediena sensors BMP180 tika izmantots uz Ķīnas saliktas rūpnīcas iespiedshēmas plates (modulī ir 3,3 voltu jaudas stabilizators ar kondensatoriem, uzvilkšanas rezistori I2C interfeisam un kondensatori barošanas blokā pats sensors, mikroshēma vai vienkārši līmeņa saskaņošanas shēma šajā platē nav pieejama, tāpēc tas ir jāizmanto citā versijā):

Visa ķēde tiek darbināta ar vienkāršu barošanas moduli uz jaudas transformatora. Maiņspriegumu iztaisno četras 1N4007 diodes VD1 - VD4, pulsācijas izlīdzina kondensatori C1 un C2. Kondensatora C2 vērtību var palielināt līdz 1000 - 4700 µF. Četras taisngriežu diodes var aizstāt ar vienu diodes tiltu. Transformatora lietotais zīmols BV EI 382 1189 - pārvērš 220 voltu maiņstrāvu par 9 voltu maiņstrāvu. Transformatora jauda ir 4,5 W, kas ir pilnīgi pietiekami un ar zināmu rezervi. Šādu transformatoru var aizstāt ar jebkuru citu jums piemērotu strāvas transformatoru. Vai nu šo ķēdes barošanas moduli var aizstāt ar impulsa sprieguma avotu, var salikt flyback pārveidotāja ķēdi vai izmantot, piemēram, gatavu barošanas avotu no telefona - tas viss ir gaumes un vajadzību jautājums. Rektificētais spriegums no transformatora tiek stabilizēts uz L7805 lineārā stabilizatora mikroshēmas,to var aizstāt ar piecu voltu lineārā stabilizatora KR142EN5A vietējo analogu, vai arī varat izmantot citu sprieguma stabilizatora mikroshēmu atbilstoši tā savienojumam ķēdē (piemēram, LM317 vai komutācijas stabilizatorus LM2576, LM2596, MC34063 utt. ). Tālāk 5 voltus stabilizē cita mikroshēma - AMS1117 versijā, kas nodrošina 3,3 voltu izvadi. Šis spriegums tiek izmantots BMP180 atmosfēras spiediena sensora barošanai saskaņā ar dokumentāciju. Kondensatoru vērtības sprieguma stabilizatoru mikroshēmu ķēdēs var mainīties plašās robežās noteiktā lieluma robežās.

Nu, ķēdes sirds ir Atmega8 mikrokontrolleris. Šo mikrokontrolleri var izmantot gan DIP-28 pakotnē, gan SMD versijā TQFP-32 pakotnē. Rezistors R3 nepieciešams, lai novērstu mikrokontrollera spontānu restartēšanu nejauša trokšņa gadījumā uz PC6 tapas. Rezistors R3 piesaista jaudu plus šai tapai, droši radot tai potenciālu. Lai norādītu izmērītos parametrus, tiek izmantots šķidro kristālu displejs (LCD) SC1602. Tajā ir 2 rakstzīmju rindas ar sešpadsmit gabaliem katrā no tām. LCD displejs ir savienots ar mikrokontrolleru, izmantojot četru bitu sistēmu. Mainīgais rezistors R2 ir nepieciešams, lai pielāgotu displeja rakstzīmju kontrastu. Pagriežot šī rezistora slīdni, mēs sasniedzam skaidrākos rādījumus ekrānā. LCD displeja fona apgaismojums tiek organizēts caur displeja paneļa tapām “A” un “K”. Fona apgaismojums tiek ieslēgts caur strāvu ierobežojošu rezistoru - R1. Jo lielāka vērtība, jo blāvāks displejs tiks apgaismots. Tomēr šo rezistoru nevajadzētu atstāt novārtā, lai izvairītos no fona apgaismojuma bojājumiem. Visu pastāvīgās pretestības rezistoru jauda ir 0,25 W.

Ķēde tika samontēta un atkļūdota uz Atmega8 mikrokontrolleru izstrādes plates:

Rezultātā šai shēmai ir šādas funkcijas:

  • atmosfēras spiediena mērīšana un rādīšana divās mērvienībās (Paskālos un dzīvsudraba staba milimetros)
  • apkārtējās temperatūras mērīšana un displejs
  • sensora pozīcijas aprēķināšana un attēlošana attiecībā pret jūras līmeni (augstuma aprēķins)
  • Displejā redzamie dati tiek atjaunināti ik pēc divām sekundēm

Šajā ierīcē pozīcijas rādījums attiecībā pret jūras līmeni tiek aprēķināts, nevis mērīts. Aprēķins tiek veikts, izmantojot ieteicamo formulu no datu lapas, lai vienkāršotu pozīcijas aprēķinu attiecībā pret jūras līmeni atkarībā no atmosfēras spiediena. Kā zināms, jo augstāk esam, jo ​​zemāks atmosfēras spiediens. Tieši šī atkarība tiek izmantota aprēķinos. Taču sakarā ar to, ka jebkurā atsevišķā teritorijā laikapstākļi var mainīties, un līdz ar to svārstīsies arī atmosfēras spiediens. Pamatojoties uz šīm domām, kā arī eksperimentāliem novērojumiem, stāvoklis virs jūras līmeņa pastāvīgi peldēs atkarībā no atmosfēras spiediena svārstībām (teorētiski pie šāda ātruma augstumam nevajadzētu mainīties). Šī funkcija tiek uzskatīta par papildu un ne visai uzticamu (līmenis virs jūras dienas laikā var peldēt plus vai mīnus 5 procentus - un tas, manuprāt, ir daudz). Bet tieši atmosfēras spiedienu šis sensors mēra diezgan precīzi - sakritība ar pašreizējo laika prognozi no pilnīgas līdz neatbilstībai ne vairāk kā viena procenta apmērā. Temperatūra šajā sensorā tiek mērīta arī ļoti precīzi.

Nobeigumā varu teikt, ka šis atmosfēras spiediena sensors ļoti labi pilda savas pamatfunkcijas un var būt piemērots mājas meteostacijai, ko arī darīsim tuvākajā laikā.

Lai programmētu Atmega8 mikrokontrolleri, jums jāzina drošinātāju uzgaļa konfigurācija (ekrānuzņēmums, kas uzņemts programmā AVR Studio):

Rakstam ir pievienota mikrokontrollera programmaparatūra., pilns šīs ierīces avota kods darbam ar sensoru BMP180 sensora dokumentācijā, kā arī īss video, kas demonstrē ķēdes funkcionalitāti (mēs novērojam, kā mainās parametri, ja turat atmosfēras spiediena sensoru ar pirkstu ).

Radioelementu saraksts

Apzīmējums Tips Denominācija Daudzums PiezīmeVeikalsMans piezīmju bloks
IC1 MK AVR 8 bitu

ATmega8

1 Uz piezīmju grāmatiņu
IC2 I2C interfeisa IC

PCA9517

1 Uz piezīmju grāmatiņu
IC3 Atmosfēras spiediena sensorsBMP1801 Uz piezīmju grāmatiņu
VR1 Lineārais regulators

L7805AB

1 Uz piezīmju grāmatiņu
VR2 Lineārais regulators

AMS1117-3.3

1 Uz piezīmju grāmatiņu
VD1-VD4 Taisngrieža diode

1N4007

4 Uz piezīmju grāmatiņu
HG1 LCD displejsSC16021 Pamatojoties uz HD44780

Deivids V. Brejs

Dots elektroniskā barometra ar 1-Wire interfeisu 2.0 versijas konstrukcijas apraksts, kas no populārās versijas 1.1a atšķiras ar dubulto mērījumu precizitāti.

Tāpat kā versijā 1.1a, šajā dizainā tiek izmantots Motorola MPX4115 integrētais spiediena sensors. Analogo-digitālo pārveidošanu veic DS2438 mikroshēma ar 1 vadu interfeisu. Papildus šīm shēmām tiek izmantots viens darbības pastiprinātājs, divi sprieguma regulatori, divas diodes, LED un vairāki rezistori un kondensatori. Ņemiet vērā, ka DS2438 mikroshēmas sākotnējais mērķis ir akumulatora uzlādes monitors.

Versijas 2.0 izstrādes fons ir atrodams rakstā http://davidbray.org/onewire/barometer.html.

Iespiedshēmas plate

Tāpat kā iepriekšējā versijā 1.1a, vienpusējo shēmas plati barometra versijai 2.0 izstrādāja Džims Dženingss. Iespiedshēmas plate versijai 2.0 ir universālāka, to var izmantot arī, lai saliktu barometra shēmu versijai 1.1a.

Daži smalkumi

Šai shēmai ir nepieciešams vēl viens papildu barošanas avots, kas trūka versijā 1.1a, jo MPX4115 spiediena sensoram ir nepieciešama aptuveni 7 mA strāva, kas ir vairāk nekā to, ko var ņemt no 1-Wire interfeisa līnijas.

Ķēde nodrošina izšķirtspēju (spiediena mērīšanas precizitāti) aptuveni 0,00417 inHg (0,1059 mm Hg vai 0,0139 kPa) atmosfēras spiediena mērījumu diapazonā no 31,0 līdz 28,0 inHg (787,4–711,2 mm Hg vai 105,0 kPa). Vēl lielāku mērījumu precizitāti var sasniegt, samazinot izmērīto atmosfēras spiediena vērtību diapazonu.

Shematiska diagramma

Šajā diagrammā nav parādīts savienotājs. Ir dota pilna diagramma.

Shēmas apraksts

Spiediena sensors MPX4115 rada spriegumu robežās no 4,25 līdz 3,79 V jūras līmenī un aptuveni 2,77 V līdz 2,45 V 10 000 pēdu (3048 m) augstumā. Tas pārsniedz darbības pastiprinātāja LM358N ieejas sprieguma darbības diapazonu, ja to darbina no 5 V avota. Fakts ir tāds, ka spiediena sensora izejas signāls faktiski tiek mērīts attiecībā pret tā barošanas kopni, nevis attiecībā pret zemi, kā tas būtu. būt daudz ērtāk.

Par laimi, DS2438 ADC var apstrādāt signālus līdz 10 V, tāpēc, darbinot darbības pastiprinātāju pie 10 V, MPX4115 signāli būs labi saskaņoti ar DS2438 ieejas diapazonu.

Signāls no MPX4115 spiediena sensora izejas caur RC filtru tiek padots uz operacionālā pastiprinātāja U1B ieeju ar pastiprinājumu aptuveni 4. Pastiprinātāja otrajai ieejai tiek piegādāts regulējams spriegums, kas, summējot ar izeju spiediena sensora spriegums, nodrošina līmeņa nobīdi, lai tas atbilstu ADC ieejai.

Pastiprinājumu un nobīdi kontrolē 10 apgriezienu trimmeri. R3 iestata U1A pastiprinājumu, un R4 kontrolē nobīdi.

Lūdzu, ņemiet vērā, ka spiediena sensora izeja ir savienota ar rezistoru R1 caur noņemamu džemperi. Tas tiek darīts, lai MPX4115 signālu varētu kalibrēt, izmantojot ārēju sprieguma avotu.

turpināt lasīt



© 2023 globusks.ru - Automašīnu remonts un apkope iesācējiem