Arduino DSLR Lightning Catcher (6 / 6 steg)
Steg 6: Koden
Så, som jag skrivit tidigare, koden är fotograferande mesuring ljusnivåer och beräkning av dess avrage kalla det omgivande,
Men när avkänning en genomdränkt toppar i mesuring tar ett skott
Lightning Catcher för Arduino < br > / / Skrivet av Uria Dubinsky
www.udpic.co.Il
#define potentiellt A5 / / Potentiometer Analog stift nr 5, för inställning av sensetivity
#define seLight A0 / / ljus Sensor Analog stift nr 0
#define skjuta 10 / / Optisolator Digital stift nr 10 för att göra fotograferingen
int omgivande = 0; heltal för omgivande ljus avrage hålla
int känslig, lastSens; känslig heltal för att hålla sensetivity nivåer värde, lastSens heltal för att hålla det sista lätta metring värdet
Ogiltiga inställningar () {
Serial.BEGIN (9600);
pinMode (potential, ingång); Ställa in stift lägen
pinMode (seLight, ingång);
pinMode (skjuta, OUTPUT);
digitalWrite (skjuta, låg); Att se skjuta PIN-koden är låg
omgivande = analogRead (seLight); Infoga ett första omgivande värde
}
Ogiltig loop () {
lastSens = analogRead (seLight); Analog läsning ljussensorn
om (isSpike (lastSens) == false) {/ / Compering omgivande värdet för en stegring i ljuset (genom funktionen isSpike)
omgivande = ((ambient + lastSens) / 2); Om det finns ingen spike skriver in värdet till den omgivande avrage
}
annat {
digitalWrite (skjuta, hög); Om det finns en stegring i ljuset att göra fotograferingen
fördröjning (20);
digitalWrite (skjuta, låg);
}
}
booleska isSpike (int sensRead) {/ / funktion få värdet av sist ljus mesuring och returnerar true för en spike och falskt för icke
känslig = analogRead (potentiellt);
om (sensRead < = omgivande + känslig) return false; annars returnera sant;
}