Stap 2: Arduino schets
De Arduino schets code vereist het gebruik van twee bibliotheken: IRcameraControl e Stepper.
Hier is het:
#include //IRcameraControl bibliotheek
#include //Stepper bibliotheek
Vanwege de lengte van de binary (ongeveer 60 cm) is het maximale aantal stappen 6150
Tab1:
Als stepsset = 5 = > 1230 lus
Als stepsset = 6 = > 1025 lus
Als stepsset = 7 = > 878 lus
Als stepsset = 8 = > 769 lus
Als stepsset = 9 = > 683 lus
Als stepsset = 10 = > 615 lus
Als stepsset = 15 = > 410 lus
Als stepsset = 20 = > 307 lus
Als stepsset = 25 = > 247 lus
Als stepsset = 30 = > 205 lus
Als stepsset = 35 = > 175 lus
Als stepsset = 40 = > 153 lus
Als stepsset = 45 = > 136 lus
Als stepsset = 50 = > 123 lus
De volgende gegevens kunnen worden gewijzigd door de gebruiker
/ Definiëren nu de vertraging in milliseconden voor en na het schieten
#define delaypre 6000
#define delaypost 6000
Wijzig de waarde van stepsset hieronder rekening houdend met wat hierboven is geschreven en ook van het feit dat elke lus gelijk aan (delaypre + delaypost is) / 1000 in seconsds.
#define stepsset 10 //by te vermenigvuldigen met het aantal lussen die overeenkomt met de stepsset voor de duur van de enkele lus die de totale duur wordt verkregen. Uiteraard geeft het aantal lussen ook het aantal foto's genomen. In dit geval: met stepsset = 10 we hebben gedefinieerd 615 lussen = 615 foto's. 615 lussen x (delaypre + delaypost) / 1000 = 7380 seconden = 123 minuten = ongeveer 2 uur
Stoppen van de wijzigingen van gebruiker
/---(step nummers van de motor)---
#define STEPS_PER_MOTOR_REVOLUTION 32
---(Stappen output rekening versnelling dimensie rekening)---
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048
Arduino pinnen te wich is aangesloten op de ULN2003-chip
Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 9, 10 en 11);
definiëren van de pinnen van de aansluiting van IR LED
Nikon D5000(5); pinnen van IR LED voor de auto schieten
verklaart de variabelen
int numberofloopforward; om te weten van het serienummer van toekomen de lussen
int stappen = stepsset; geeft het aantal stappen gedefinieerd door de gebruiker (zie hierboven)
int maxloop = 6150/stappen; Het totale maximum aantal lussen, rekening houdend met de lengte van het binaire bestand definieert.
int numberofloopbackward = maxloop; om te weten het volgnummer van lussen achteruit
int Steps2Take;
VOID Setup
{Serial.begin(9600);
Serial.Print ("stappen =");
Serial.println(Steps);
Serial.Print ("maxloop =");
Serial.println(maxloop);
}
void loop / *---(lus: loopt voortdurend)---* /
{
Als (numberofloopforward < maxloop)
{
numberofloopforward = numberofloopforward + 1;
Serial.Print ("numberofloopforward =");
Serial.println(numberofloopforward);
small_stepper.setSpeed(500);
small_stepper.Step(Steps);
delay(delaypre); stoptijd vóór schieten
D5000.shutterNow(); scatto
delay(delaypost); Stop de tijd na de opname
}
anders
{
Als (numberofloopbackward > 0)
{
numberofloopbackward = numberofloopbackward -1;
Serial.Print ("numberofloopbackward =");
Serial.println(numberofloopbackward);
small_stepper.setSpeed(500); snelheid
small_stepper.Step(-Steps);
}
anders
{
small_stepper.setSpeed(0);
small_stepper.Step(0);
}
}
}
Zoals kan worden gezien van de bovenstaande code, is de IR LED verbonden met pin 5 terwijl het bestuur van de ULN2003-Stepper op pinnen van 8 tot 11. Hier boven een zeer korte video van hoe werkt het systeem.