Tartalomjegyzék:
- 1. lépés: Alapszámítások | Lux -tól EV -ig
- 2. lépés: Az értékek bemutatása a kijelzőn | Adafruit GFX könyvtár
- 3. lépés: A lux értékek olvasása és kompenzálása | VEML7700
- 4. lépés: Arduino / C-kód
- 5. lépés: Összeállítás
Videó: DIY fényképészeti fénymérő: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Ez az Instructable néhány ötletet oszt meg egy egyszerű kicsi és olcsó fénymérő felépítésével kapcsolatban.
Mivel az Instructables nem engedi beilleszteni a saját videóimat, próbálja meg ezt a linket:
www.youtube.com/embed/avQD10fd52s
A cél számomra egy fénymérő volt, hogy kísérjem a Bronica ETRSi közepes formátumú filmkamerámat.
Amit szerettem volna, hogy megjelenjen:
- egyetlen ASA (100), mert szinte csak ASA 100 filmet használok
- a lehető legkisebb
- csak olyan kombinációkat adjon meg, amelyeket a Bronica képes reprodukálni, ami azt jelenti, hogy f2.8-f22 és 1 másodperc-1/500 másodperc
- nincs értelmetlen jellemzője, kivéve a sima időket és a rekeszértékeket
Amiket használtam:
- Adafruit (Vishay) VEML 7700 digitális Lux-méter (körülbelül 5 dollár)
- Adafruit Trinket M0 mikrovezérlő (körülbelül 9 dollár)
- 128x32 OLED kijelző (körülbelül 10 dollár)
- nyomógomb az ideiglenes bekapcsoláshoz (néhány cent)
- egy apró darab szalagdeszka, mert próbálok nem kábeleket használni, de biztosan használhat kábeleket is
1. lépés: Alapszámítások | Lux -tól EV -ig
A megvásárolt érzékelő két funkciót használ, amelyek alapján eldönthetem:
- 16 bites lux értékeket ad ki a „méret nélküli” fényértékek helyett
- az értékeket I2C -n keresztül adja ki
Egy fényképes fénymérő expozíciós értékeket (EV) használ, a megvásárolt szenzor Lux értékeket használ, ami teljesen más skála. Tehát az első lépés az EV -k lekérése az érzékelő által biztosított Lux -értékekből.
Egy gyors pillantás a wikipédiára, és megtalálhatja az eseménymérés képletét, és konvertálja az EV -t Lux -ra:
E = 2,5 * 2^EV
ahol E -t luxban mérik.
Mivel már megkaptuk a Lux értéket az érzékelőtől, és szeretnénk az EV értéket, újra kell alakítanunk a képletet, amellyel:
EV = log2 (E/2.5)
Tehát ez az első számítás, amelyet el kell végezni annak érdekében, hogy a fénymérőből ki lehessen venni a fényképes értékeket.
A mellékelt keresési táblázatban láthatja az összes értéket, amelyet ebben a fénymérőben használnak, a megfelelő Lux és EV értékekkel együtt.
2. lépés: Az értékek bemutatása a kijelzőn | Adafruit GFX könyvtár
Először egész lépésekben próbáltam bemutatni az értékeket, mert erre tudom beállítani a Bronica -t, de ez egy problémához vezet:
Tegyük fel, hogy a Lux -érzékelő pontosan 20480 -as értéket ad ki, ami azt jelenti, hogy pontosan az EV 13, így például beállíthatom a fényképezőgépet f4 -re és 1/500 másodpercre, és jó lenne menni
Ezután tegyük fel, hogy a Lux -érzékelő 20479 Lux -ot ad ki, 1 Lux -ot az EV13 alatt, ami 12 -es EV -értéket ad ki, de csak egy lux távolságra van az EV13 -tól
Tehát f2.8 -ra és 1/500 másodpercre állítanám be a fényképezőgépemet, ami túlexponálna 1 stopot anélkül, hogy tudnám, mennyire közel vagyok az EV13 -hoz.
Következtetés: szükségünk van az értékek valamilyen analóg kijelzőjére, hogy legalább lássuk, milyen közel vagy távol van a mérő a következő vagy előző EV lépéstől.
Miután megpróbáltam használni a GFX könyvtár beépített betűit és betűtípusát, úgy döntöttem, hogy két egyedi grafikát használok, amelyek az OLED képernyőn mozognak.
Az egyik a rekeszértékekhez, a másik az időhöz.
A GFX könyvtár 8 bites értékeket használ a grafika bemutatásához, ezért készítettem egy xls lapot (lásd a fenti képet).
- minden értéknek pontosan ugyanannyi képpontja van értékenként
- az idők és a rekeszek soronként pontosan ugyanannyi értéket tartalmaznak
- Hozzáadtam a szükséges "B" betűt minden bájt elején, és a "" -t a végén
- Ezt követően exportáltam egy egyszerű szövegbe, és íme: csatoltam a harmadik grafikát
Az időértékek másodpercenként 1/8, a rekeszértékek pedig f2.8 -tal kezdődnek
Az előző lépés keresési táblázata alapján tudjuk, hogy ez 160 lux vagy EV6.
A legsötétebb értékek ekkor f22 és 1/500 másodpercek lennének
Ismét a keresési táblázaton keresztül láthatjuk, hogy ez 655360 Lux vagy EV18
Eddig jó.
Tehát az EV6 -on a rekesznyílás grafikának a bal szélsőnek kell lennie, az időknek a jobb szélén, és fordítva az EV18 -nak
3. lépés: A lux értékek olvasása és kompenzálása | VEML7700
Miközben lapozgattam a Vishay VEML7700 Adafruit táblájához tartozó adatlapját, meglehetősen nyugtalanító észrevételt találtam:
Az érzékelő csak lineárisan működik 0 és 1000Lux (!) Között
lásd a képernyőképet a narancssárga (lineáris) és a kék (tényleges érzékelő kimenet) vonallal
A napfény (EV15) körülbelül 80 000 lux, ami azt jelenti, hogy az érzékelő nemlineáris részének kompenzálása nélkül teljesen haszontalan lenne fénymérőként.
Vishay tudja ezt, ezért ügyfeleiknek egy másik pdf -t adtak, amelynek címe A VEML7700 tervezése alkalmazásba.
Ebben a pdf-ben talál egy képletet az érzékelők nemlinearitásának kompenzálására:
LUX_CORR = 6.0135e-13*pow (LUX, 4) -9.3924e-9*pow (LUX, 3)+8.1488e-5*pow (LUX, 2)+1.0023*LUX
Ahol a LUX_CORR a korrigált Lux-érték, a LUX pedig az érzékelő által kiadott érték.
Ezeket a változókat használtam, a táblázatban használt különböző változókat.
Engem kissé zavar, hogy az Adafruit egyetlen szóval sem említi ezt az oldalukon, a dokumentációjukban, a könyvtárukban vagy máshol.
Így az első napokban azon tűnődtem, hogy a fénymérőm miért csak 20000 Lux maximális teljesítményt ad ki közvetlen napfényben is.
Ha megnézed a piros és a kék vonallal ellátott grafikont, láthatod, hogy miért: mert a kompenzációs képlet nélkül nem mehet feljebb.
De van még egy tipp az érzékelő dokumentációjában:
Ez a kompenzációs képlet csak akkor működik, ha az érzékelőt 25 ms -ra és 1/8 erősítési arányra állítja.
Ez könnyen elvégezhető az Adafruits könyvtárral a következőkkel:
veml.setGain (VEML7700_GAIN_1_8); veml.setIntegrationTime (VEML7700_IT_25MS);
az üresség beállításában ()
Tehát miután 1/8 és 25 ms-ra állította, és hozzáadta a kompenzációs képletet, akár 120000 luxot is mérhet, ami elég ahhoz, hogy elfedje a napfényt 80-100k Lux-on
4. lépés: Arduino / C-kód
Mivel a használt kijelzőtől és a preferált vezérlőtől függ, nem részletezem túl sokat, csak néhány gondolatot és tippet kell hozzáfűznöm, különösen az Adafruit könyvtárak és a 128x32 px OLED használata esetén:
az üres beállításban:
beállítottam a VEML könyvtárrészt:
veml.setGain (VEML7700_GAIN_1_8);
veml.setIntegrationTime (VEML7700_IT_25MS);
veml.setLowThreshold (10000);
veml.setHighThreshold (20000);
veml.interruptEnable (igaz);
az üres körben:
feltétlenül adja hozzá a kompenzációt:
int LUX_CORR = 6.0135e-13*pow (LUX, 4) -9.3924e-9*pow (LUX, 3)+8.1488e-5*pow (LUX, 2)+1.0023*LUX;
Ha EV -t szeretne vásárolni a Lux -tól, használja ezt a sort:
float EV = log2 ((LUX_CORR/2.5));
a bitképek mozgatása
annak biztosítása érdekében, hogy a bitképek csak akkor mozogjanak, ha az értékek 160Lux és 655360Lux között vannak, ahogy az előző lépésben leírtuk, csomagolja be egy ilyen if záradékba:
ha (LUX_CORR> 159 && LUX_CORR <655361)
Ezt követően le kell térképeznünk az EV értékeket a koordinátákra, mivel az EV tartomány két számjegyű, és szeretnénk 128 px fölött a kijelzőről áthelyezni őket a teljes kijelzőn, és nagyobb értékekre van szükségünk.
Mivel már lebegő számot kaptunk, ezt csak megszorozzuk 100 -zal, és ezt az egész számot használjuk a koordináták feltérképezésére
int EV_DSPL = EV*100;
és:
TIME = térkép (EV_DSPL, 600, 1900, -260, 39); APERTURE = térkép (EV_DSPL, 600, 1900, 39, -260);
Mint látható az én esetemben a bitkép minimális pozíciója -260 képpont, a maximális pedig 39 képpont.
Itt látható az is, hogy úgy változtattam a koordinátákat, hogy a két bitkép ellentétes irányba mozogjon
Ezután el kell helyeznünk a bitképeket a koordináták szerint:
display.drawBitmap ((TIME), (0), TIMES_bmp, 352, 16, 1); display.drawBitmap ((APERTURE), (15), APERTURES_bmp, 352, 16, 1);
És ez minden, amit meg kell tenni
Bónuszként egyenes EV és Lux értékeket jelenítek meg, amikor az érzékelő 160Lux alatti értékeket ad ki, csak azért, mert látni akartam valamit a tesztelés során.
5. lépés: Összeállítás
Mivel mind a kijelző, mind az érzékelő I2C -t használ a kommunikációhoz, a tényleges hardver felépítése a lehető legegyszerűbb.
Csak csatlakoztassa az adatokat, az óra földjét és a 3 V -os vezetékeket az Arduino -hoz, és már indulhat is.
Hozzáadtam egy grafikát, hogyan csináltam szalaglappal, de ahogy korábban említettük, használhat kábeleket, vagy akár szárnyat is építhet hozzá, minden attól függ, hogy melyik vezérlőt és kijelzőt használja.
A grafikám szerint a fehér pontokat a kijelzőhöz és az érzékelőhöz kell csatlakoztatni, a sárga pontokat pedig a csecsebecséhez.
Az egyetlen kivétel az I2C vonal adattüske lenne, amely a kijelzőhöz csatlakozik, ez a tű pedig a Trinkets adatcsaphoz is csatlakozik.
Úgy döntöttem, hogy nem használok ki/be kapcsolót, hanem nyomógombot és két 3V -os gombelemet használok ideiglenes bekapcsolásra, amíg megnyomom a gombot. 1 másodperc alatt bekapcsol, így elég gyors ahhoz, hogy megkíméljem a gombot és kicsinyítsem.
Ajánlott:
Diy makró objektív AF -lel (más, mint az összes többi DIY makró objektív): 4 lépés (képekkel)
Diy makró objektív AF-el (más, mint az összes többi DIY makró lencse): Sok embert láttam makrólencsét készíteni szabványos készletlencsével (általában 18-55 mm). Legtöbbjük lencse, csak hátrafelé tapadva a fényképezőgépen, vagy eltávolítva az elülső elemet. Mindkét lehetőségnek vannak hátrányai. A lencse rögzítéséhez
Új mikro fénymérő a régi Voigtländer (vito Clr) kamerához: 5 lépés
Új mikro fénymérő a régi Voigtländer (vito Clr) kamerához: Mindenki, aki rajong a régi analóg kamerákért, beépített fénymérővel, felmerülhet egy probléma. Mivel ezeknek a kameráknak a többsége a 70/80 -as években készült, a használt fotoérzékelők valóban régiek, és a megfelelő módon leállíthatják működésüket. Ebben
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
DIY-padlóventilátor újrahasznosítása fényképészeti fénymódosítóvá/all-in-one lámpává: 11 lépés
DIY-Padlóventilátor újrahasznosítása fényképészeti fénymódosítóvá/all-in-one lámpává: Tehát nemrégiben tavaszi takarítást végeztem, és találkoztam egy padlóventilátorral, amelynek motorja kiégett. És kellett egy asztali lámpa. 2+2 és én egy kicsit agyaltunk, és jött az ötlet, hogy a ventilátort 20 hüvelykes széles fénymódosítóvá alakítsuk át. Olvasson tovább a s
Arduino DIY fénymérő BH1750 érzékelővel: 6 lépés (képekkel)
Arduino DIY fénymérő BH1750 érzékelővel: Ebben az utasításban megmutatom, hogyan lehet fénymérőt készíteni egy nagy Nokia 5110 LCD kijelzővel az Arduino segítségével. A fénymérő építése nagyszerű tanulási élmény. Ha befejezi a projekt építését, jobban megérti