ArduCamSlider: en motoriserade reglage för DSLR kamera (2 / 3 steg)
Steg 2: Arduino skiss
Arduino skiss koden kräver användning av två bibliotek: IRcameraControl e Stepper.
Här är det:
#include //IRcameraControl bibliotek
#include //Stepper bibliotek
På grund av längden på binärfilen (ca 60 cm) är det maximala antalet steg 6150
Tab1:
om stepsset = 5 = > 1230 loop
om stepsset = 6 = > 1025 loop
om stepsset = 7 = > 878 loop
om stepsset = 8 = > 769 loop
om stepsset = 9 = > 683 loop
om stepsset = 10 = > 615 loop
om stepsset = 15 = > 410 loop
om stepsset = 20 = > 307 loop
om stepsset = 25 = > 247 loop
om stepsset = 30 = > 205 loop
om stepsset = 35 = > 175 loop
om stepsset = 40 = > 153 loop
om stepsset = 45 = > 136 loop
om stepsset = 50 = > 123 loop
Följande data är modifierbara av användaren
/ Ange nu fördröjningen i millisekunder innan och efter fotografering
#define delaypre 6000
#define delaypost 6000
Redigera värdet i stepsset nedan med beaktande av vad som skrivits ovan och även av det faktum att varje slinga är lika (delaypre + delaypost) / 1000 i seconsds.
#define stepsset 10 //by många olika loopar motsvarande stepsset för varaktigheten av den enda slinga totala varaktighet erhålles. Antal slingor identifierar uppenbarligen också antalet bilder tagna. I detta fall: med stepsset = 10 vi har definierat 615 loopar = 615 bilder. 615 loopar x (delaypre + delaypost) / 1000 = 7380 sekunder = 123 minuter = ca 2 timmar
Stoppa användarändringar
/---(steg antalet motorn)---
#define STEPS_PER_MOTOR_REVOLUTION 32
---(Steg produktionen med redskap kontodimensionen)---
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048
Arduino pins till wich är ansluten ULN2003 chip
Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);
definiera de anslutning stiften på IR-LED
Nikon D5000(5); stift av IR-LED för automatisk fotografering
Deklarerar variabler
int numberofloopforward; för att veta följetong antalen av framåt slingorna
int steg = stepsset; Anger antalet steg definieras av användaren (se ovan)
int maxloop = 6150/steg; Den definierar totala maximalt antal loopar med beaktande av binärfilen.
int numberofloopbackward = maxloop; att veta numret av loopar bakåt
int Steps2Take;
void setup()
{Serial.begin(9600);
Serial.Print ("steg =");
Serial.println(Steps);
Serial.Print ("maxloop =");
Serial.println(maxloop);
}
void loop() / *---(LOOP: kör ständigt)---* /
{
om (numberofloopforward < maxloop)
{
numberofloopforward = numberofloopforward + 1;
Serial.Print ("numberofloopforward =");
Serial.println(numberofloopforward);
small_stepper.setSpeed(500);
small_stepper.Step(Steps);
Delay(delaypre); stoppa tiden före fotografering
D5000.shutterNow(); scatto
Delay(delaypost); stopptid efter fotografering
}
annat
{
om (numberofloopbackward > 0)
{
numberofloopbackward = numberofloopbackward -1;
Serial.Print ("numberofloopbackward =");
Serial.println(numberofloopbackward);
small_stepper.setSpeed(500); hastighet
small_stepper.Step(-Steps);
}
annat
{
small_stepper.setSpeed(0);
small_stepper.Step(0);
}
}
}
Som kan ses från ovanstående kod, är LED IR ansluten till stift 5 medan ULN2003 Stepper styrelsen att stift från 8 till 11. Här ovan en mycket kort video av hur systemet fungerar.