Laser utlöste hög hastighet fotografering (för $5 + arduino) (5 / 6 steg)
Steg 5: Arduino tid (version 2)
Använd följande kod:
(Endast skillnaden är pin-konfiguration)
int trigger = 0;
osignerade långa tid = 0;
osignerade långa VTime = 0;
int fokus = 0;
int overD = 0;
int tröskel = 0;
int count = 0;
int maxx = 0;
int minn = 1500;
Ogiltiga inställningar () {
pinMode(7,INPUT);
pinMode (6, OUTPUT);
pinMode(5,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
Serial.BEGIN(9600);
digitalWrite(5,HIGH);
initiering: ta 1000 gånger ett prov att sätta din yttre gränser
mitt i gränserna anger arduino dess beloppsgräns. Om den lätta inensity faller
under detta värde, kommer kameran att triggert.
medan (antal < 1000) {
int test = analogRead(A0);
Delay(5);
IF(testmaxx) {
Maxx = test;}
antal = antal + 1.
Serial.println(Count);
}
Tröskelvärde för =(minn+maxx)/2.
Serial.Print ("max =");
Serial.Print(Maxx);
Serial.Print ("min =");
Serial.Print(minn);
Serial.Print ("tröskel =");
Serial.println(thresHold);
Delay(1000);
digitalWrite(6,HIGH);
Delay(500);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
}
Ogiltig loop () {
VTime = analogRead(A1); Läs tiden
Delay(5);
Serial.Print ("VTime =");
Serial.println(VTime);
Time=map(VTime,0,1023,0,1200); karta den tiden så utbudet av potentiometern är nyttigt, Observera: Jag använde inte millisecondes, eftersom det gör koden mer komplicerat då behövs och långsammare.
fokus = digitalRead(5); se om du tryckt på knappen för fokus på ännu
Serial.Print ("laservalue =");
Serial.println (trigger);
While(Focus== High) {/ / om du har fokuserat, kan du nu vänta tills laserstråle avbryts
Serial.println("focussed");
digitalWrite(5,HIGH); LED kommer att anges att kameran fokuserar
overD = 1; Arduino kommer ihåg dig (ve fokuserade
trigger = analogRead(A0);
om (trigger < tröskel & & overD == 1) {//If du har fokuserat och intensiteten i balken är lägre än tröskelvärde
kameran tar en bild
Delay(Time); innan du tar en bild vänta en period av tid
Delay(1);
Serial.println ("pic fattas");
digitalWrite(6,HIGH); ta bilden på riktigt
fördröjning (500).
fokus = låg; Redo för nästa men först måste du fokusera igen (valfritt)
}
}
digitalWrite(5,LOW);
digitalWrite(6,LOW);
} < br >