TSL2561 šviesos jutiklio testas

Posted: 2014-06-07 in Darbeliai
Žymos:, ,

Draugas nusipirko mažą plokštelę su skaitmeniniu šviesos jutikliu TSL2561. Bandė prijungti prie savo Raspberry Pi, bet nesigavo. Sakė, kad pieno riebumą rodo, t.y. reikšmės kaitaliojasi bile kaip. Nusprendžiau jam pagelbėti ir pabandyti pats. Man kilo vienas įtarimas, kad tam jutikliui gali būti problemų su 3,3 V maitinimo įtampa, nors pagal datašytą tai lyg ir ne problema.

Jutiklis atrodo va maždaug šitaip:

TSL2561 daviklis | Elektronika | Darau, blė

Ten yra tokia maža mikroschemytė su stikliuku — tai ir yra jutiklis. Jis geras tuo, kad skaitmeniniu formatu papasakoja, kiek šviesos liuksų skraido aplinkui. Aš pats prasiknisau gerą pusę valandos rašinėdamas formules ir bandydamas prisiminti laipsnių bei logaritmų taisykles, kad gaučiau kažką panašaus į liuksus iš šviesos rezistoriaus. Ir tai apsirikau maždaug dešimt kartų pamažindamas reikšmę.

Tad mano bičiulis panoro skaitmeninio jutiklio. Gal kad būtų paprasčiau ir garantuočiau su reikšmėmis bei nereikėtų analoginio-skaitmeninio keitiklio, kurio Avietė ir neturi. Tiesa, už to jutiklio kainą būtų galima nusipirkti ir keitiklį, ir dar pusę kilo rezistorių…

Aš iš Adafruit parsisiunčiau pavyzdinę šio jutiklio programėlę. Dar prieš tai su I²C skenerio programėle pasitikrinau daviklio adresą ir jis išpuolė beesąs 0x29. Turiu labai rimtą įtarimą, kad mano bičiulis šio adreso nerado arba parinko neteisingą… čia antroji hipotezė. Prijungęs jutiklį ir prie Arduino pabandžiau paleisti pavyzdinę Adafruit programą ir pažiūrėti, kas darosi.

Prijungimas atrodo va šitaip:

TSL2561 daviklis prijungtas prie Arduino Uno R3 | Elektronika | Darau, blė

O konsolė pranešė labai gražias reikšmes. Pirmos kelios — kambario šviesoje, toliau su „Visible: 0“ — iš arti apšvietus 1 W diodiniu šaltai baltu žibintuvėliu su koncentruotu spinduliu, o paskui kelios reikšmės — uždengus jutiklį pirštu:

Found sensor
IR: 338         Full: 1195      Visible: 857    Lux: 690
IR: 338         Full: 1195      Visible: 857    Lux: 690
IR: 428         Full: 1519      Visible: 1091   Lux: 879
IR: 434         Full: 1542      Visible: 1108   Lux: 893
IR: 4939        Full: 4939      Visible: 0      Lux: 53
IR: 4939        Full: 4939      Visible: 0      Lux: 53
IR: 4939        Full: 4939      Visible: 0      Lux: 53
IR: 4939        Full: 4939      Visible: 0      Lux: 53
IR: 4939        Full: 4939      Visible: 0      Lux: 53
IR: 422         Full: 1492      Visible: 1070   Lux: 861
IR: 445         Full: 1551      Visible: 1106   Lux: 885
IR: 23          Full: 42        Visible: 19     Lux: 7
IR: 26          Full: 49        Visible: 23     Lux: 9
IR: 28          Full: 52        Visible: 24     Lux: 9
IR: 28          Full: 51        Visible: 23     Lux: 8
IR: 349         Full: 1240      Visible: 891    Lux: 718

Va taip va. Jutiklis veikia. Tik keista, kad apšvietus melsvu žibintuvėliu jis rodo padidintą infraraudonųjų spindulių aktyvumą, o matomų nemato iš viso. Permuša. Hm, gal jis iš tikro ultravioletinius skaičiuoja? Na, bala nematė, nešviečiant jutikliui į akis žibintuvėliu jis rodo visai padorias reikšmes — bent jau kambario aplinkoje. Bet visgi įdomu, kas ten su tuo IR…

Kitas bandymas su Raspberry Pi. Pažiūrėsiu, ar tikrai taip jau neveikia, ar bičiulis kažką pripainiojo visgi.

Ką gi, prijungiau aparačiuką prie Avietės ir su i2cdetect programėle pažiūrėjau, ar jis matomas. Matomas, tuo pačiu 0x29 adresu.

Ir… su Adafruit I²C biblioteka ir kita rasta šio jutiklio biblioteka — šūds ant pagaliuko. Reikšmės bile kokios. Pabandžiau ir surizikavau pajungti maitinimą prie 5V. Nepadėjo. Reikšmės šokinėja ir nesvarbu, ar gaudo natūralią šviesą, ar blizginu žibintuvėliu. Išvada? Kažkokia neišspręsta problema bibliotekoje greičiausiai. Reikės lyginti su Arduino biblioteka ir ieškoti skirtumų.

Susiradau kitą biblioteką, kuriai dar reikia ir quick2wire bibliotekos. Pasitaisiau pavyzduką, kad viską išvestų dešimtainiais skaičiais, truputį paremontavau, kad veiktų su mano nustatymais (yra toj bibliotekoj bugų) ir paleidau:

Found sensor...
IR: 236 Full: 778 Visible: 542 Lux: 6777
IR: 235 Full: 778 Visible: 543 Lux: 6803
IR: 237 Full: 780 Visible: 545 Lux: 6784
IR: 234 Full: 775 Visible: 541 Lux: 6779
IR: 236 Full: 781 Visible: 545 Lux: 6826
IR: 185 Full: 672 Visible: 451 Lux: 6334
IR: 5047 Full: 5047 Visible: 0 Lux: 866
IR: 5047 Full: 5047 Visible: 0 Lux: 866
IR: 5047 Full: 5047 Visible: 0 Lux: 866
IR: 5047 Full: 5047 Visible: 0 Lux: 866
IR: 237 Full: 785 Visible: 546 Lux: 6867
IR: 62 Full: 125 Visible: 64 Lux: 418
IR: 72 Full: 151 Visible: 77 Lux: 590
IR: 80 Full: 195 Visible: 99 Lux: 1141
IR: 62 Full: 118 Visible: 61 Lux: 338
IR: 60 Full: 121 Visible: 62 Lux: 405
IR: 60 Full: 122 Visible: 62 Lux: 423
IR: 46 Full: 77 Visible: 37 Lux: 140

Na va, vėlgi — kambarys (tik ant palangės, ten šviesiau), žibintuvėlis (vėl IR permuša) ir pirštas ant jutiklio (kuris lyg ir paskaidrėjo, ar taip gali būti…).

Išvados? Jutiklis veikia. Taip pat puikiausiai ir su 3,3 V maitinimu. Spėju, kad kažkas negerai su Adafruit biblioteka, nes su Jan Heise biblioteka viskas tvarkoj — tik ji skirta Python 3, o mano didžioji dalis darbų — su Python 2.7. Na, bet ne mano jutiklis, ne mano ir šitos bėdos… 🙂

Dar prie išvadų: labai tikslių liuksų čia gal tikėtis ir neverta, nes aptikau, kad jie skaičiuojami programiškai iš kitų ten reikšmių. Bet jis tikrai gali pasitarnauti sekant apšvietimo pokyčius ir pagal tai kažką veikiant. Pavyzdžiui, tikrai galima užprogramuoti automatinio lempos įsijungimo jautrumą ar kažką tokio panašaus.

Tiesa, aš tokio nepirkčiau. Brangus jisai. Smagu, aišku, turėti skaitmeninį jutiklį, valdomą per I²C magistralę, bet kaina… geriau jau kiniškų fotorezistorių nusipirkti pakelį ir padidinto tikslumo kitų rezistorių. Naudoju du tokius lauko ir kambario apšvietimo sekimui ir esu patenkintas. Ar jie skaičiuoja liuksus, ar pieno riebumą, man nesvarbu — svarbu kad reikšmės tiksliai tendencingos.

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti /  Pakeisti )

Google photo

Jūs komentuojate naudodamiesi savo Google paskyra. Atsijungti /  Pakeisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti /  Pakeisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti /  Pakeisti )

Connecting to %s

Brukalų kiekiui sumažinti šis tinklalapis naudoja Akismet. Sužinokite, kaip apdorojami Jūsų komentarų duomenys.