Sisukord:
- 1. samm: põhiarvutused | Lux kuni EV
- 2. samm: väärtuste esitamine ekraanil | Adafruit GFX raamatukogu
- 3. samm: luksväärtuste lugemine ja kompenseerimine | VEML7700
- Samm: Arduino / C-kood
- 5. samm: pange see kokku
Video: DIY fotograafiline valgusmõõtur: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Selles juhendis jagatakse mõningaid ideid lihtsa väikese ja odava langeva valgusmõõturi ehitamiseks.
Kuna Instructables ei lase mul oma videoid sisestada, proovige seda linki:
www.youtube.com/embed/avQD10fd52s
Minu eesmärk oli valgusmõõtur, mis oli kaasas minu Bronica ETRSi keskmise formaadiga filmikaameraga.
Asjad, mida tahtsin, et see esile tooks:
- üks ASA (100), sest ma kasutan peaaegu ainult ASA 100 filmi
- nii väike kui võimalik
- anna mulle ainult kombinatsioone, mida mu Bronica suudab reprodutseerida, mis tähendab f2.8-f22 ja 1s kuni 1/500 sek
- mingeid mõttetuid funktsioone, välja arvatud tavalised ajad ja ava väärtused
Asjad, mida kasutasin:
- Adafruit (Vishay) VEML 7700 digitaalne Lux-meeter (umbes 5 dollarit)
- Adafruit Trinket M0 mikrokontroller (umbes 9 dollarit)
- 128x32 OLED -ekraan (umbes 10 dollarit)
- nupp selle ajutiseks sisselülitamiseks (mõni sent)
- väike tükk ribaplaati, sest ma üritan kaableid mitte kasutada, kuid kindlasti saate ka kaableid kasutada
1. samm: põhiarvutused | Lux kuni EV
Ostetud andur kasutab kahte funktsiooni, mis võimaldavad mul selle üle otsustada:
- väljastab "mõõtmeteta" valgusväärtuste asemel 16-bitise luksväärtuse
- väljastab väärtused I2C kaudu
Fotograafiline valgusmõõtur kasutab säriväärtusi (EV), mida ostsin, kasutab Lux väärtusi, mis on täiesti erinev skaala. Nii et esimene samm on saada EV -d Luxi väärtustest, kui andur on olemas.
Kiire pilguheit Vikipeediasse ja leiate juhtumite mõõtmise valemi ning teisendage EV luksiks:
E = 2,5 * 2^EV
kus E on mõõdetud luksides.
Kuna me juba andurilt Lux väärtuse kätte saime ja soovime EV väärtust, peame valemi uuesti vormistama, mille abil saame:
EV = log2 (E/2,5)
Nii et see on esimene arvutus, mis tuleb teha, et saada valgusmõõturist fotograafilised väärtused.
Lisatud otsingutabelis näete kõiki selles valgusmõõtjas kasutatavaid väärtusi koos vastavate Lux ja EV väärtustega.
2. samm: väärtuste esitamine ekraanil | Adafruit GFX raamatukogu
Esmalt proovisin väärtusi esitada sammude kaupa, sest see on see, mille abil saan oma Bronica seadistada, kuid see viib mind probleemini:
Oletame, et Lux -anduri väljundväärtus on täpselt 20480, mis tähendab, et see on täpselt EV 13, nii et ma saaksin näiteks oma kaamera f4 ja 1/500 sekundi sisse lülitada ja oleks hea minna
Järgmisena oletame, et Lux -andur väljastab 20479 Lux, 1 Lux EV13 all, mis annaks EV väärtuse 12, kuid see on vaid Luxi kaugusel EV13 -st
Nii et ma seadistaksin oma kaamera f2.8 ja 1/500 sekundile, mis eksponeeriks 1 peatuse üle, ilma et ma isegi teaksin, kui lähedal olin EV13 -le.
Järeldus: vajame mingisugust väärtuste analoogkuva, et vähemalt näha, kui lähedal või kaugel on arvesti järgmisest või eelmisest EV sammust.
Pärast GFX raamatukogu sisseehitatud tähtede ja fondi kasutamist otsustasin kasutada kahte kohandatud graafikat, mis liiguvad üle OLED -ekraani.
Üks ava väärtuste jaoks, teine ajastu jaoks.
GFX raamatukogu kasutab graafika esitamiseks 8 -bitiseid väärtusi, nii et tegin xls -lehe (vt ülaltoodud pilti).
- igal väärtusel on täpselt sama palju piksleid väärtuse kohta
- aegadel ja avadel on rea kohta täpselt sama palju väärtusi
- Lisasin iga baidi algusesse vajaliku "B" ja lõppu ""
- Seejärel eksportisin selle lihttekstiks ja voilaa: lisasin kolmanda graafika
Aja väärtused algavad 1/8 sekundist ja ava väärtused algavad f2.8
Kasutades eelmise sammu otsingutabelit, teame, et see tähistab 160 luksi või EV6.
Tumedamad väärtused oleksid siis f22 ja 1/500 sekundist
Otsingutabeli kaudu näeme jälle, et see tähendab 655360 Lux või EV18
Siiamaani on kõik korras.
Nii et EV6 puhul peab avagraafik olema vasakul, kellaajad paremal ja vastupidi EV18 puhul
3. samm: luksväärtuste lugemine ja kompenseerimine | VEML7700
Sirvides Vishay VEML7700 Adafruit'i plaadil kasutatava andmelehte, leidsin üsna häiriva teate:
Andur töötab ainult lineaarselt vahemikus 0 kuni 1000 Lux (!)
vaadake ekraanipilti oranži (lineaarse) joone ja sinise (tegeliku anduri väljundi) joonega
Päikesevalgus (EV15) on umbes 80 000 luksi, mis tähendab, et ilma anduri mittelineaarse osa kompenseerimiseta oleks see valgusmõõturina täiesti kasutu.
Vishay teab seda, nii et nad pakkusid oma klientidele teise pdf -i nimega VEML7700 projekteerimine rakendusse.
Sellest pdf-ist leiate valemi andurite mittelineaarsuse kompenseerimiseks:
LUX_CORR = 6.0135e-13*pow (LUX, 4) -9.3924e-9*pow (LUX, 3)+8.1488e-5*pow (LUX, 2)+1.0023*LUX
Kus LUX_CORR on korrigeeritud Lux-väärtus ja LUX on väärtus, mille andur väljastab.
Need on muutujad, mida ma kasutasin, nende lehel kasutatud erinevad.
Mind häirib natuke see, et Adafruit ei maini seda ühe sõnaga oma lehel, dokumentatsioonis, raamatukogus ega mujal.
Nii et esimestel päevadel mõtlesin, miks mu valgusmõõtur väljastab isegi otsese päikesevalguse korral maksimaalselt 20000 Luxi.
Kui vaatate punase ja sinise joonega graafikut, näete, miks: sest ilma hüvitusvalemita ei saa see kõrgemale minna.
Kuid anduri dokumentatsioonis on veel üks vihje:
See kompensatsioonivalem töötab ainult siis, kui seadistate anduri väärtuseks 25 ms ja võimendussuhteks 1/8.
Adafruits raamatukoguga on seda üsna lihtne teha, lisades:
veml.setGain (VEML7700_GAIN_1_8); veml.setIntegrationTime (VEML7700_IT_25MS);
tühimikus ()
Nii et pärast 1/8 ja 25 ms seadistamist ja kompensatsioonivalemi lisamist saate mõõta kuni 120000 luksi, mis on piisav, et katta päikesevalgus 80-100k Lux
Samm: Arduino / C-kood
Kuna see sõltub teie kasutatavast kuvarist ja eelistatud kontrollerist, ei lähe ma detailidesse liiga palju, lisan vaid mõned mõtted ja näpunäited, eriti kui kasutate Adafruit raamatukogusid ja 128 x 32 pikslit OLED -i:
tühimike seadistuses:
määrasin VEML-i raamatukogu osa:
veml.setGain (VEML7700_GAIN_1_8);
veml.setIntegrationTime (VEML7700_IT_25MS);
veml.setLowThreshold (10000);
veml.setHighThreshold (20000);
veml.interruptEnable (true);
tühjusse:
lisage kindlasti hüvitis:
int LUX_CORR = 6.0135e-13*pow (LUX, 4) -9.3924e-9*pow (LUX, 3)+8.1488e-5*pow (LUX, 2)+1.0023*LUX;
EV -de saamiseks Luxist kasutage seda rida:
ujuk EV = log2 ((LUX_CORR/2.5));
bitikaartide liigutamine
veendumaks, et bitikaardid liiguvad ainult siis, kui väärtused on vahemikus 160Lux kuni 655360Lux, nagu eelmises etapis öeldud, mähkige see sellisesse klauslisse:
kui (LUX_CORR> 159 && LUX_CORR <655361)
Järgmisena peame kaardistama EV väärtused koordinaatidele, kuna EV vahemik on kahekohaline ja me tahame neid kuvarilt üle 128 piksli kogu kuvarilt välja viia, vajame suuremaid väärtusi.
Kuna meil on juba ujuvarv, korrutame selle lihtsalt 100 -ga ja kasutame seda täisarvu koordinaatide kaardistamiseks
int EV_DSPL = EV*100;
ja:
TIME = kaart (EV_DSPL, 600, 1900, -260, 39); APERTURE = kaart (EV_DSPL, 600, 1900, 39, -260);
Nagu näete minu puhul, on bitikaardi minimaalne asukoht -260 pikslit ja maksimaalne 39 pikslit
Siin on näha ka seda, et vahetasin koordinaadid nii, et kaks bitikaarti liiguksid vastupidises suunas
Järgmisena peame teisaldama bitikaardid vastavalt koordinaatidele:
display.drawBitmap ((TIME), (0), TIMES_bmp, 352, 16, 1); display.drawBitmap ((APERTURE), (15), APERTURES_bmp, 352, 16, 1);
Ja see on kõik, mida tuleb teha
Boonusena kuvan sirged EV ja Lux väärtused, kui andur väljastab väärtused alla 160Lux, lihtsalt sellepärast, et tahtsin seda testides näha.
5. samm: pange see kokku
Kuna nii ekraan kui ka andur kasutavad suhtlemiseks I2C -d, on tegeliku riistvara loomine nii lihtne kui võimalik.
Lihtsalt ühendage andmed, kella maandus ja 3 V liinid Arduinoga ja olete valmis minema.
Lisasin graafika, kuidas ma striptiisiga seda tegin, kuid nagu varem öeldud, saate kasutada kaableid või isegi ehitada selle jaoks tiiba, kõik sõltub sellest, millist kontrollerit ja ekraani kasutate.
Minu graafika kohaselt peaksid valged punktid olema ühendatud ekraani ja anduriga ning kollased punktid nipsasjaga.
Ainsaks erandiks oleks ekraaniga ühendatava I2C liini andmetihvt, see nööpnõel ühendub ka nipsasja nööpnõelaga.
Otsustasin mitte kasutada sisse/välja lülitit, vaid selle asemel ajutiseks sisselülitamiseks vajutusnuppu ja kahte 3V nupuelementi, kuni ma nuppu vajutan. See käivitub vähem kui 1/10 sekundist, nii et see on piisavalt kiire, et saaksin nupu varuda ja selle väiksemaks muuta.
Soovitan:
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): 4 sammu (koos piltidega)
Diy makroobjektiiv koos teravustamisega (erinev kui kõik muud DIY makroobjektiivid): olen näinud palju inimesi, kes teevad makroläätsi tavalise komplekti objektiiviga (tavaliselt 18–55 mm). Enamik neist on objektiiv, mis on lihtsalt tagurpidi kaamera külge kinnitatud või esielement eemaldatud. Mõlemal variandil on varjuküljed. Objektiivi kinnitamiseks
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
Ehitage mini DIY hüdropoonikasüsteemid ja DIY hüdropooniline ürdiaed WiFi -hoiatustega: 18 sammu
Ehitage mini -DIY hüdropoonikasüsteemid ja DIY hüdropooniline ürdiaed WiFi -hoiatustega: selles õpetuses näitame teile, kuidas ehitada #DIY #hydroponics süsteemi. See DIY hüdropooniline süsteem kastab kohandatud hüdropoonilist kastmistsüklit, 2 minutit sisse ja 4 minutit välja lülitatud. Samuti jälgib see veehoidla veetaset. See süsteem
Arduino põhine DIY mängukontroller - Arduino PS2 mängukontroller - Tekkeni mängimine DIY Arduino mängupuldiga: 7 sammu
Arduino põhine DIY mängukontroller | Arduino PS2 mängukontroller | Tekkeni mängimine DIY Arduino mängupuldiga: Tere poisid, mängude mängimine on alati lõbus, kuid oma isetehtud kohandatud mängu kontrolleriga mängimine on lõbusam. Seega teeme selles juhendis mängu kontrolleri, kasutades arduino pro micro
Arduino DIY valgusmõõtur BH1750 anduriga: 6 sammu (piltidega)
Arduino DIY valgusmõõtur koos BH1750 anduriga: selles juhendis näitan teile, kuidas ehitada Arduino abil suure Nokia 5110 LCD -ekraaniga valgusmõõtur. Valgusmõõturi ehitamine on suurepärane õppimiskogemus. Kui olete selle projekti ehitamise lõpetanud, saate paremini aru