Hore
Fórum » Príslušenstvo
 

Fotenie burky/senzor

Filip Minárik
2015-03-14 13:54:19+01
Zdravim Vas,

Chcel by som sa poradit, ohladom tejto vecicky, ma to byt senzor na fotenie burky/bleskov na arduine, s niekym kto vie viac a s tymto robi.
Niesom zbehly vo wiring/c++ mam to doma 4. den. Chcel som co najjednoduchsie poriesit detekciu blesku bez ohladu na okolote osvetlenie,
pri fototranzistore s potenciometrom by bolo trebo stale nieco stelovat a aj tak by to nefungovalo poriadne...
Tak by som sa chcel spytat, ze ci to co som zmotal je vhodne riesenie?
Urcite sa to da spravit lepsie/efektivnejsie, ale toto je proste v ramci mojich doterajsich vedomosti
Pravdepodobne by to malo byt ok.

Ide o 2 fotorezistory, jeden namiereny smerom na burku, druhy inde...
Arduino bude vyhodnocovat rozdiel medzi hodnotami s tychto senzorov a ked doshiahne urcitu hodnotu, tak cvakne...
Doma na stole mi to funguje dobre

Udajne:

- dlzka vyboja blesku je 200-300ms (neviem, ci pocitali samotne vybitie blesku do zeme, alebo komplet od zaciatku...)
- shutter lag na 50D je okolo 120ms
- refresh v programe mam nastaveny na 10ms
- + nekake ms v samotnom arduine a niekde po ceste do fotaku

(v programe je docasne pouzity aj displej, ktory tam v neskor uz nebude, je tam iba pre jednoduchsie overenie fungovania...)

Tak ak sa niekto najde, tak vopred dik za nejaku reakciu



#include // importuje kniznicu LiquidCrystal
LiquidCrystal LCD1(2,3,4,5,6,7); // definicia pinov pre LCD
int senPin1 = 0; // fotorezistor 1 pin 0
int sen1_value = 0; // fotorezistor 1 hodnota
int senPin2 = 1; // fotorezistor 2 pin 1
int sen2_value = 0; // fotorezistor 2 hodnota
int shutterPin = 8; // vystup na uzavierku
int prefocusPin = 9; // vystup na predostrenie

void setup() {

LCD1.begin(16, 2); // typ displeja 16x2
digitalWrite(prefocusPin,HIGH); // predostrenie 1

}

void loop() {

float out_value = sen1_value - sen2_value; // rozdiel fotorezistor1, fotorezistor2

if (out_value 0) // ak je hodnota vacsia ako 0
digitalWrite(shutterPin,LOW); // uzavierka 0


sen1_value = analogRead(senPin1); // cita hodnotu z fotorezistoru 1
LCD1.setCursor(0,0); // nastaví kurzor na displej
LCD1.print("S1= "); // napíše text S1 =
LCD1.print(sen1_value); // napíše hodnotu S1

sen2_value = analogRead(senPin2); //cita hodnotu z fotorezistoru 2
LCD1.setCursor(9,0); // nastaví kurzor na displej
LCD1.print("S2= "); // napíše text S2 =
LCD1.print(sen2_value); // napíše hodnotu S2

LCD1.setCursor(0,2); // nastaví kurzor na displej
LCD1.print("S1 - S2 = "); // napíše text S1 -S2 =
LCD1.print(out_value); // napíše hodnotu

delay(10); // refresh time

}
 
Filip Minárik
2015-03-14 14:03:23+01
chbali tam nejake riadky... asi niekde po ceste medzi ctrl+c/ctrl+v sa nieco stratilo

#include // importuje kniznicu LiquidCrystal
LiquidCrystal LCD1(2,3,4,5,6,7); // definicia pinov pre LCD
int senPin1 = 0; // fotorezistor 1 pin 0
int sen1_value = 0; // fotorezistor 1 hodnota
int senPin2 = 1; // fotorezistor 2 pin 1
int sen2_value = 0; // fotorezistor 2 hodnota
int shutterPin = 8; // vystup na uzavierku
int prefocusPin = 9; // vystup na predostrenie

void setup() {

LCD1.begin(16, 2); // typ displeja 16x2
digitalWrite(prefocusPin,HIGH); // predostrenie 1

}

void loop() {

float out_value = sen1_value - sen2_value; // rozdiel fotorezistor1, fotorezistor2

if (out_value 0) // ak je hodnota vacsia ako 0
digitalWrite(shutterPin,LOW); // uzavierka 0


sen1_value = analogRead(senPin1); // cita hodnotu z fotorezistoru 1
LCD1.setCursor(0,0); // nastaví kurzor na displej
LCD1.print("S1= "); // napíše text S1 =
LCD1.print(sen1_value); // napíše hodnotu S1

sen2_value = analogRead(senPin2); //cita hodnotu z fotorezistoru 2
LCD1.setCursor(9,0); // nastaví kurzor na displej
LCD1.print("S2= "); // napíše text S2 =
LCD1.print(sen2_value); // napíše hodnotu S2

LCD1.setCursor(0,2); // nastaví kurzor na displej
LCD1.print("S1 - S2 = "); // napíše text S1 -S2 =
LCD1.print(out_value); // napíše hodnotu

delay(100); // reload

}
 
Filip Minárik
2015-03-14 14:06:33+01
...........
 
z80
2015-03-14 14:20:27+01
A ako si to doma testoval ? Fotografickym bleskom ?
Pretoze (prirodny) blesk ma omnoho nizsiu intenzitu a zmena vodivosti fotorezistoru bude preto minimalna, co A/D prevodniku Arduina asi stacit nebude.
Lepsie je na detekciu bleskov pouzit detekciu elektromagnetickeho impulzu blesku, ktory sa da snimat napriklad feritovou antenou alebo kratkou drotovou antenou (samozrejme umiestnenou vnutri aby do nej neudrel blesk). Bude ale treba znizit citlivost, aby to snimalo len blizke blesky (bezna citlivost takychto detektorov su desiatky km) a samozrejme to urobi snimku aj vtedy ak udrie blesk blizko, ale nebude pred objektivom.
Na internete je mnozstvo schem, staci hladat "lightning detector schematics".
 
alexmenti
2015-03-14 14:23:56+01
príspevok od: Filip Minárik
chbali tam nejake riadky... asi niekde po ceste medzi ctrl+c/ctrl+v sa nieco stratilo

#include // importuje kniznicu LiquidCrystal
LiquidCrystal LCD1(2,3,4,5,6,7); // definicia pinov pre LCD
int senPin1 = 0; // fotorezistor 1 pin 0
int sen1_value = 0; // fotorezistor 1 hodnota
int senPin2 = 1; // fotorezistor 2 pin 1
int sen2_value = 0; // fotorezistor 2 hodnota
int shutterPin = 8; // vystup na uzavierku
int prefocusPin = 9; // vystup na predostrenie

void setup() {

LCD1.begin(16, 2); // typ displeja 16x2
digitalWrite(prefocusPin,HIGH); // predostrenie 1

}

void loop() {

float out_value = sen1_value - sen2_value; // rozdiel fotorezistor1, fotorezistor2

if (out_value 0) // ak je hodnota vacsia ako 0
digitalWrite(shutterPin,LOW); // uzavierka 0


sen1_value = analogRead(senPin1); // cita hodnotu z fotorezistoru 1
LCD1.setCursor(0,0); // nastaví kurzor na displej
LCD1.print("S1= "); // napíše text S1 =
LCD1.print(sen1_value); // napíše hodnotu S1

sen2_value = analogRead(senPin2); //cita hodnotu z fotorezistoru 2
LCD1.setCursor(9,0); // nastaví kurzor na displej
LCD1.print("S2= "); // napíše text S2 =
LCD1.print(sen2_value); // napíše hodnotu S2

LCD1.setCursor(0,2); // nastaví kurzor na displej
LCD1.print("S1 - S2 = "); // napíše text S1 -S2 =
LCD1.print(out_value); // napíše hodnotu

delay(100); // reload

}
Pozerajúc na tento text ma napadlo, že omylom ma to hodilo na interný portál elektrárne v Jaslovských Bohuniciach...potom mi svitlo, že je to len o bleskoch...
 
Filip Minárik
2015-03-14 14:27:08+01
príspevok od: alexmenti
Pozerajúc na tento text ma napadlo, že omylom ma to hodilo na interný portál elektrárne v Jaslovských Bohuniciach...potom mi svitlo, že je to len o bleskoch...
no s nastupom digitalu a kadejakych basmekov sa moznosti troska rozsirili
 
z80
2015-03-14 14:29:55+01
príspevok od: alexmenti
Pozerajúc na tento text ma napadlo, že omylom ma to hodilo na interný portál elektrárne v Jaslovských Bohuniciach...potom mi svitlo, že je to len o bleskoch...
Nestras, ak by mali Jaslovske Bohunice interny system zalozeny na Arduine, tak si idem hned kopat protiatomovy kryt.
 
Filip Minárik
2015-03-14 14:39:26+01
príspevok od: z80
Nestras, ak by mali Jaslovske Bohunice interny system zalozeny na Arduine, tak si idem hned kopat protiatomovy kryt.
nekop nic pravdepodobne maju AB, alebo Siemens... a moze karta stat aj neviem kolko tisic, aj tak tomu obcas je**ne........ a na to uz je redundancia
 
bear
- moderator
2015-03-14 14:54:50+01
1)
Ja by som tie fotorezistory zapojil do serie ako napatovy delic,, tym by malo byt zabezpecene, ze ked Jeden uvidi blesk, bude zmena hodnoty dostatocne velka a nebudes to musiet ladit potenciometrom.

2) vyhod ten delay a testovacie vypisy, mozes koli tomu premeskat zablesk, ak chces testovacie vypisy, aktualizuj ich len obcas (castejsie ako raz za sekundu ich aj tak nestihnes precitat).

3) ak budes pouzivat predsklopenie zrkadla skratis shutter lag

 
Filip Minárik
2015-03-14 15:29:54+01
príspevok od: bear
1)
Ja by som tie fotorezistory zapojil do serie ako napatovy delic,, tym by malo byt zabezpecene, ze ked Jeden uvidi blesk, bude zmena hodnoty dostatocne velka a nebudes to musiet ladit potenciometrom.

2) vyhod ten delay a testovacie vypisy, mozes koli tomu premeskat zablesk, ak chces testovacie vypisy, aktualizuj ich len obcas (castejsie ako raz za sekundu ich aj tak nestihnes precitat).

3) ak budes pouzivat predsklopenie zrkadla skratis shutter lag

Dik moc... 2) a 3) mi je jasne, tie vypisy to bola len pomocka pre mna (ved 3 dni dozadu som to vybalil z krabice ), ked som to robil... s predskopenim som pocital, ale nevedel som, ci tie casy su len cisto uzavierka, alebo pocitaju aj so zrkadlom.... a co sa tyka potenciometra, ten tam je len koli tomu displeju - kontrast. tak aspon viem, ze to neni az taka blbost co som spravil, povodne som sa snazil s jednym fotorezistorom, urcite sa to da, ale neviem ako mozno by sa dal priebezne pocitat nejaky priemer a porovnat ho s tym skokom pri blesku, ale urcite by to predlzilo cas...

som dufal, ze sa ozves Dik. inak ako si na tom s tym vozitkom?
 
Domino
2015-03-14 17:17:57+01
príspevok od: Filip Minárik
chbali tam nejake riadky... asi niekde po ceste medzi ctrl+c/ctrl+v sa nieco stratilo

#include // importuje kniznicu LiquidCrystal
LiquidCrystal LCD1(2,3,4,5,6,7); // definicia pinov pre LCD
int senPin1 = 0; // fotorezistor 1 pin 0
int sen1_value = 0; // fotorezistor 1 hodnota
int senPin2 = 1; // fotorezistor 2 pin 1
int sen2_value = 0; // fotorezistor 2 hodnota
int shutterPin = 8; // vystup na uzavierku
int prefocusPin = 9; // vystup na predostrenie

void setup() {

LCD1.begin(16, 2); // typ displeja 16x2
digitalWrite(prefocusPin,HIGH); // predostrenie 1

}

void loop() {

float out_value = sen1_value - sen2_value; // rozdiel fotorezistor1, fotorezistor2

if (out_value 0) // ak je hodnota vacsia ako 0
digitalWrite(shutterPin,LOW); // uzavierka 0


sen1_value = analogRead(senPin1); // cita hodnotu z fotorezistoru 1
LCD1.setCursor(0,0); // nastaví kurzor na displej
LCD1.print("S1= "); // napíše text S1 =
LCD1.print(sen1_value); // napíše hodnotu S1

sen2_value = analogRead(senPin2); //cita hodnotu z fotorezistoru 2
LCD1.setCursor(9,0); // nastaví kurzor na displej
LCD1.print("S2= "); // napíše text S2 =
LCD1.print(sen2_value); // napíše hodnotu S2

LCD1.setCursor(0,2); // nastaví kurzor na displej
LCD1.print("S1 - S2 = "); // napíše text S1 -S2 =
LCD1.print(out_value); // napíše hodnotu

delay(100); // reload

}
Hneď mi to bolo podozrivé,tie riadky naozaj chýbali.Čítanie inak zaujímavé...domnievam sa,že vrahom je záhradník.Či?
 
Filip Minárik
2015-03-14 18:17:28+01
príspevok od: Domino
Hneď mi to bolo podozrivé,tie riadky naozaj chýbali.Čítanie inak zaujímavé...domnievam sa,že vrahom je záhradník.Či?
Dik, neviem kto ich pozral ale uz mam jasno...
 
Azimut
2015-03-14 19:10:55+01
Ja, že ideš fotiť odev moslimských žien.. . jeden chýbajúci dĺžeň...
 
duroslav
2015-03-14 22:26:52+01
príspevok od: bear
1)
Ja by som tie fotorezistory zapojil do serie ako napatovy delic,, tym by malo byt zabezpecene, ze ked Jeden uvidi blesk, bude zmena hodnoty dostatocne velka a nebudes to musiet ladit potenciometrom.

2) vyhod ten delay a testovacie vypisy, mozes koli tomu premeskat zablesk, ak chces testovacie vypisy, aktualizuj ich len obcas (castejsie ako raz za sekundu ich aj tak nestihnes precitat).

3) ak budes pouzivat predsklopenie zrkadla skratis shutter lag

MLU možno pomôže pri niektorých foťákoch ale nie pri všetkých. Pred chvíľou som to meral s D750 a nezávisle od toho či je alebo nie je MLU, tak to bolo stále medzi 59 a 60ms
 
tomasp1
2015-03-15 06:17:16+01
prečo si nedáš fotodiodu na zosilňovač ovládať priamo relátko, a špičkami budeš ovládať priamo foťák. dostaneš sa na reakčné časy 5ms. toto ale asi nebude fungovať cez deň
nemusíš nič programovať ale zase budeš musieť nastavovať špičky
 
Filip Minárik
2015-03-15 10:10:00+01
príspevok od: tomasp1
prečo si nedáš fotodiodu na zosilňovač ovládať priamo relátko, a špičkami budeš ovládať priamo foťák. dostaneš sa na reakčné časy 5ms. toto ale asi nebude fungovať cez deň
nemusíš nič programovať ale zase budeš musieť nastavovať špičky
Dik, no mal tom to aj takto spravene fototranzistor + SSR, ale stale cosi stelovat... a to arduino budem mat univerzalnejsie na viac veci, meteostanica, kontrola klimy vo florariu atd.. a ked to budem mat hotove, tak to bude na mensej doske (arduino nano) a nasuniem to priamo na fotak.
 
tomis.ales
2015-03-16 19:23:04+01
Namier fotak na burku, poriadne zaclon a fot niekolkosekundove snimky. A hned na to dalsiu a dalsiu. S tymto som mal velku, takmer 100% istotu ze blesky chytim. Navyse aj viacero na jednu snimku.

 
Filip Minárik
2015-03-16 21:12:57+01
príspevok od: tomis.ales
Namier fotak na burku, poriadne zaclon a fot niekolkosekundove snimky. A hned na to dalsiu a dalsiu. S tymto som mal velku, takmer 100% istotu ze blesky chytim. Navyse aj viacero na jednu snimku.

Ved hej, toto skusil asi kazdy a je to v pohode, ked je tma.... vtedy tam moze byt velka uspesnost, ale urcite nie, ked je vonku este ake take svetlo a cas dlhsi napr ako 3s sa uz neda pouzit, lebo by ti zaniklo vela mensich slabsich vybojov... A ked cvakas tak kratke casy, urcite ti vela toho ujde... skor chcem nieco univerzalnejsie a hlavne vzdy nechcem byt pri tom, ked bude vonku peklo a nebude sa kde skryt dost sa pri fotaku nasedim, ked je pekne, taketo pocasie si rad pozrem aj s poza okna..
 
tomis.ales
2015-03-17 19:06:43+01
príspevok od: Filip Minárik
Ved hej, toto skusil asi kazdy a je to v pohode, ked je tma.... vtedy tam moze byt velka uspesnost, ale urcite nie, ked je vonku este ake take svetlo a cas dlhsi napr ako 3s sa uz neda pouzit, lebo by ti zaniklo vela mensich slabsich vybojov... A ked cvakas tak kratke casy, urcite ti vela toho ujde... skor chcem nieco univerzalnejsie a hlavne vzdy nechcem byt pri tom, ked bude vonku peklo a nebude sa kde skryt dost sa pri fotaku nasedim, ked je pekne, taketo pocasie si rad pozrem aj s poza okna..
A hej, ked je vela svetla tak to moc nefunguje
 
Filip Minárik
2015-03-18 08:40:25+01
príspevok od: z80
A ako si to doma testoval ? Fotografickym bleskom ?
Pretoze (prirodny) blesk ma omnoho nizsiu intenzitu a zmena vodivosti fotorezistoru bude preto minimalna, co A/D prevodniku Arduina asi stacit nebude.
Lepsie je na detekciu bleskov pouzit detekciu elektromagnetickeho impulzu blesku, ktory sa da snimat napriklad feritovou antenou alebo kratkou drotovou antenou (samozrejme umiestnenou vnutri aby do nej neudrel blesk). Bude ale treba znizit citlivost, aby to snimalo len blizke blesky (bezna citlivost takychto detektorov su desiatky km) a samozrejme to urobi snimku aj vtedy ak udrie blesk blizko, ale nebude pred objektivom.
Na internete je mnozstvo schem, staci hladat "lightning detector schematics".
dik, sorry som vtedy prebehol tvoju odpoved... hej, o tomto viem, takisto chcem nieco na detekciu bliziacej sa burky, toto mi tiez pomoze co si pisal... citlive by to malo byt dost, netestoval som to s bleskom, len som porovnaval, aka mala zmena jasu je treba aby vznikol rozdiel, ktory by sa dal pouzit a myslim, ze je to dost.... pripadne nieje problem na odpor, ktory bude namiereny smerom na burku spravit optiku a rozdiel bude este vacsi... alebo pouzit nieco s vacsou plochou, ako boli tie prilozene odpory za par centov dik este raz
 
Strana 1 z 2
 





Inzercia
  • ()
     
  • ()
     
  • ()
     
  • ()
     
  • ()