Turinys:

„UltraV“: nešiojamasis UV indekso matuoklis: 10 žingsnių (su nuotraukomis)
„UltraV“: nešiojamasis UV indekso matuoklis: 10 žingsnių (su nuotraukomis)

Video: „UltraV“: nešiojamasis UV indekso matuoklis: 10 žingsnių (su nuotraukomis)

Video: „UltraV“: nešiojamasis UV indekso matuoklis: 10 žingsnių (su nuotraukomis)
Video: Секция, неделя 5 2024, Lapkritis
Anonim
UltraV: nešiojamas UV indekso matuoklis
UltraV: nešiojamas UV indekso matuoklis

Kadangi negalėjau būti saulėje dėl dermatologinės problemos, aš panaudojau laiką, kurį būčiau praleidęs paplūdimyje, kurdamas ultravioletinių spindulių matuoklį. UltraV.

Jis pastatytas ant „Arduino Nano rev3“, su UV jutikliu, DC/DC keitikliu, skirtu pakelti 3 V baterijos įtampą, ir mažu OLED ekranu. Mano pagrindinis tikslas buvo išlaikyti jį nešiojamą, kad bet kuriuo metu ir bet kurioje vietoje galėčiau lengvai sužinoti UV indeksą.

1 žingsnis: dalys ir komponentai

  • Mikrokontroleris Arduino Nano rev.3
  • ML8511 UV jutiklis
  • 128 × 64 OLED diplay (SSD1306)
  • MT3608 DC-DC padidinimas
  • CR2 baterija
  • CR2 akumuliatoriaus laikiklis
  • jungiklis
  • gaubto dėklas

2 žingsnis: jutiklis

Jutiklis
Jutiklis
Jutiklis
Jutiklis

„ML8511“(„Lapis Semiconductors“) yra UV jutiklis, tinkantis UV spindulių intensyvumui nustatyti patalpose ar lauke. ML8511 turi vidinį stiprintuvą, kuris paverčia foto srovę į įtampą, priklausomai nuo UV intensyvumo. Ši unikali funkcija suteikia lengvą sąsają su išorinėmis grandinėmis, tokiomis kaip ADC. Išjungimo režimu įprasta budėjimo srovė yra 0,1 µA, todėl baterija ilgiau tarnauja.

Funkcijos:

  • Fotodiodas jautrus UV-A ir UV-B
  • Įterptas operacinis stiprintuvas
  • Analoginės įtampos išėjimas
  • Maža tiekimo srovė (300 µA tipinė) ir maža budėjimo srovė (0,1 µA tipinė)
  • Mažas ir plonas paviršiaus tvirtinimo paketas (4,0 mm x 3,7 mm x 0,73 mm, 12 kontaktų keraminis QFN)

Deja, neturėjau galimybės rasti jokios UV spindulius praleidžiančios medžiagos, kuri apsaugotų jutiklį. Bet koks mano išbandytas skaidrus dangtelis (plastikas, stiklas ir kt.) Silpnino UV matavimą. Atrodo, kad geresnis pasirinkimas yra kvarcinis lydytas silicio dioksidas, tačiau neradau nė vieno už priimtiną kainą, todėl nusprendžiau palikti jutiklį už dėžutės ribų, lauke.

3 žingsnis: operacijos

Operacijos
Operacijos

Norėdami išmatuoti, tiesiog įjunkite prietaisą ir kelias sekundes nukreipkite jį į saulę, laikydami jį suderintą su saulės spindulių kryptimi. Tada žiūrėkite ekrane: rodyklė kairėje visada rodo momentinį matavimą (po vieną po 200 ms), o dešinėje rodmuo yra didžiausias šios sesijos metu gautas rodmuo: to jums reikia.

Apatinėje kairėje ekrano dalyje taip pat nurodoma PSO lygiavertė nomenklatūra (LOW, MODERATE, HIGH, LERY HIGH, EXTREME) pagal išmatuotą UV indeksą.

4 žingsnis: akumuliatoriaus įtampa ir nuskaitymas

Aš renkuosi CR2 akumuliatorių pagal jo dydį ir talpą (800 mAh). Visą vasarą naudojau „UltraV“, o baterija vis dar rodo 2,8 v, todėl esu labai patenkinta pasirinkimu. Veikiant, grandinė išeikvoja apie 100 mA, tačiau rodmenų matavimas trunka ne ilgiau kaip kelias sekundes. Kadangi nominali akumuliatoriaus įtampa yra 3 V, aš pridėjau nuolatinės srovės nuolatinės srovės keitiklį, kad įtampa padidėtų iki 9 voltų, ir prijungiau jį prie „Vin“kaiščio.

Kad ekrane būtų rodoma akumuliatoriaus įtampa, naudojau analoginį įėjimą (A2). „Arduino“analoginiai įėjimai gali būti naudojami nuolatinei įtampai matuoti nuo 0 iki 5 V, tačiau ši technika reikalauja kalibravimo. Norėdami atlikti kalibravimą, jums reikės multimetro. Pirmiausia įjunkite grandinę naudodami galutinę bateriją (CR2) ir nenaudokite kompiuterio USB maitinimo; išmatuokite 5 V „Arduino“iš reguliatoriaus (randamas „Arduino 5V“kaištyje): ši įtampa pagal nutylėjimą naudojama „Arduino ADC“etaloninei įtampai. Dabar įdėkite išmatuotą vertę į eskizą taip (tarkime, kad perskaičiau 5.023):

įtampa = ((ilga) suma / (ilga) NUM_SAMPLES * 5023) / 1024,0;

Eskize įtampą matuoju vidutiniškai per 10 mėginių.

5 žingsnis: Schema ir jungtys

Schema ir jungtys
Schema ir jungtys

6 žingsnis: programinė įranga

Ekranui naudoju U8g2lib, kuris yra labai lankstus ir galingas tokio tipo OLED ekranams, leidžiantis platų šriftų pasirinkimą ir geras padėties nustatymo funkcijas.

Kalbant apie įtampos rodmenis iš ML8511, aš naudoju 3.3 V „Arduino“etaloninį kaištį (tikslus 1%tikslumu) kaip ADC keitiklio pagrindą. Taigi, atlikdami analoginio skaitmeninio konvertavimą į 3.3V kaištį (prijungę jį prie A1) ir tada palyginę šį rodmenį su jutiklio rodmenimis, galime ekstrapoliuoti tikrovišką rodmenį, nesvarbu, koks yra VIN (jei jis yra didesnis nei 3,4 V).

int uvLevel = mediumAnalogRead (UVOUT); int refLevel = averageAnalogRead (REF_3V3); float outputVoltage = 3.3 / refLevel * uvLevel;

Atsisiųskite visą kodą iš šios nuorodos.

7 žingsnis: gaubto dėklas

Korpuso dėklas
Korpuso dėklas

Po kelių (blogų) bandymų rankiniu būdu išpjauti stačiakampį ekrano langą ant komercinės plastikinės dėžutės, nusprendžiau jam sukurti savo. Taigi, naudodamas CAD programą, suprojektavau dėžutę ir, kad ji būtų kuo mažesnė, CR2 bateriją iš išorės pritvirtinau galinėje pusėje (su baterijos laikikliu, priklijuotu prie pačios dėžutės).

Atsisiųskite korpuso korpuso STL failą iš šios nuorodos.

8 žingsnis: galimi patobulinimai ateityje

  • Naudokite UV spektrometrą, kad išmatuotumėte faktines realaus laiko UV indekso vertes įvairiomis sąlygomis (UV spektrometrai yra labai brangūs);
  • Vienu metu įrašykite išvestį iš ML8511 su „Arduino“mikrovaldikliu;
  • Parašykite algoritmą, kad ML8511 išvestis būtų susieta su faktine UVI reikšme realiuoju laiku esant įvairioms atmosferos sąlygoms.

9 veiksmas: vaizdų galerija

Vaizdų galerija
Vaizdų galerija
Vaizdų galerija
Vaizdų galerija
Vaizdų galerija
Vaizdų galerija

10 žingsnis: kreditai

  • Carlosas Ortsas:
  • „Arduino“forumas:
  • Pradedant elektroniką:
  • U8g2lib:
  • Pasaulio sveikatos organizacija, UV indeksas:

Rekomenduojamas: