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
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
Sa to čítanie pekne zamotáva....tuším to zen záhradník nakoniec nebude
Sa to čítanie pekne zamotáva....tuším to zen záhradník nakoniec nebude
neviem pre co, ale iba tato stranka mi strasne "mrzne", obcas, ked sa chcem k niecomu dostat musim aj 3x zavrez ephoto a znova otvorit aby to bolo vobec mozne...
Odporúčam toto: http://www.doc-diy.net/photo/smatrig21/ Alebo sa aspoň inšpirovať.
Dík za tip, nejaké triggery som pozeral už niekedy minulý rok... ale v poslednom čase sa skôr prikláňam k možnosti spraviť niečo vlastné... tu budem mať možnosť vyladiť to presne podľa potreby a upravovať. Ale vyzerá to zaújmovo...
Mozno trepnem somarinu ale ND filter a dlhy cas mozes nastavit aj ked je este svetlo ....
Myslim, ze to neni somarina.Teroreticky este znizis brutalny kontrast medzi oblohou a bleskom, takze by blesky nemusely robit okolo seba az take halo velke efekty.
Fotenie burky/senzor
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
}
Alebo sa aspoň inšpirovať.
Alebo sa aspoň inšpirovať.
zaregistrujte sa a presvedčte o mnohých z výhod byť členom