Höghastighetsfotografering med systemkamera, men bara en bild.

An arduino med en TIC106 tyristor styr fördröjningen till en Vivitar 283 kamerablixt, inställd på minimal styrka för att få en så kort brinntid det går. När en tunn kabel skjuts av startar en timer i arduinon som sen tänder blixten. Blixten har en mycket hög spänning över ingången så det behövs en tyristor som tål den.

En luftgevärskula hinner ungefär 0.2 meter på en tusendels sekund. För att få en skarp bild vill man ha en väldigt kort blixt, max en hundratusendes sekund, men samtidigt tillräckligt kraftig för att belysa motivet. Ett modernt blixtbygge: Edgerton 2

När fördröjningen är bestämd är arbetsgången:
Rigga målet
Tråd framför mynningen monteras och kopplas in
Ladda luftgeväret
Släck belysningen
Ta en bild med lång slutartid, tillräckligt länge för att hinna nästa steg
Skjut skottet så att tråden går av och blixten lyser upp målet en kort stund
Tänd lyset och se vad det blev…

Om kamerans bländare är justerad till blixtens styrka spelar det ingen roll med en lång slutartid, det är blixten som tar bilden om det är tillräckligt mörkt i rummet.

Code

2008-12-05

Arduino code, still in some development.
#include <LCD4Bit.h>
//number of lines in display=2
LCD4Bit lcd = LCD4Bit(2);
unsigned int fldelay = 37;
char fldelay_str[5];
int ledpin =13;
int timer1pin=4;
int flashpin=3;
int button1=6; // -pause
int button2=1; //ready button
int button3=5; //+ pause
int val = 0;
char val_str[5];
void setup() {
pinMode(ledpin, OUTPUT);
pinMode(timer1pin, INPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(flashpin, OUTPUT);
digitalWrite(flashpin, LOW);
digitalWrite(timer1pin, HIGH);
lcd.init();
}
void loop() {
lcd1(); //setup delay, show arm status
meassure();
}
void lcd1(){
digitalWrite(ledpin, HIGH);
delay(500);
digitalWrite(ledpin, LOW);
lcd.clear();
while(!digitalRead(button2) == HIGH )
{
lcd.cursorTo(1, 0); //line=1, x=0.
lcd.printIn("Delay:");
itoa(fldelay,fldelay_str,10);
lcd.cursorTo(1, 8);
lcd.printIn(fldelay_str);
lcd.printIn(" ms");
lcd.cursorTo(2, 0); //line=2, x=0.
//val=digitalRead(button2);
//itoa(val,val_str,10);
//lcd.printIn(val_str);
if(digitalRead(timer1pin) == LOW )
{
lcd.printIn("low ");
delay(50);
}
else
{
lcd.printIn("high");
delay(50);
}
if(digitalRead(button3) == HIGH )
{
fldelay=fldelay+1;
}
if(digitalRead(button1) == HIGH )
{
fldelay=fldelay-1;
}
delay(150);
}//knappen tryckt
lcd.clear();
lcd.cursorTo(2, 0);
lcd.printIn(".....READY...");
digitalWrite(ledpin, HIGH); //system armed and ready
//End lcd1
}
void meassure(){
//wait for trigger1
while(!digitalRead(timer1pin) == LOW ){
continue;
}
digitalWrite(ledpin, LOW); //turn off LED
delay(fldelay);
digitalWrite(flashpin, HIGH);
delay(200); //short time high om the output, to trigger triac to flash.
digitalWrite(flashpin, LOW);
}

Bilder

Vindruva
Tomat
Tomat
kiwi
Banan

Lampa
Ägg
Lampa och luftgevärskula