Comment faire la photographie en accéléré Intelligent contrôlé par Arduino (3 / 4 étapes)

Étape 3: Écrire le Code

Voici mon code.  N’hésitez pas à bricoler avec des paramètres différents pour convenir à votre application et de commenter si vous souhaitez m’expliquer quoi que ce soit.

Installer l’IDE Arduino de arduino.cc si vous ne l’avez déjà.  Ouvrir une nouvelle esquisse et collez ce code dans.  Compiler, téléchargez-le et testez-le.

/*

Photographie en accéléré dynamique sensible à la lumière et réglable

Ce programme et les circuits sont conçus pour contrôler la photographie en accéléré
C’est l’utilisateur contrôlable et adapté aux niveaux de lumière ambiante.
L’éclairage de shootings de lever et coucher du soleil peut parfois être difficile
pour anticiper, donc au lieu de se retrouver avec des centaines de complètement noir
photos, une photorésistance détecte les niveaux d’éclairage et en conséquence s’arrête ou démarre
la photographie. Un potentiomètre permet de régler le délai entre
photographies et un afficheur 7 segments de chiffres multiples indique le courant
valeur de délai.

Ce circuit est conçu pour être utilisé avec un déclencheur à distance infrarouge. J’ai
conçu pour un Nikon D3100, mais tout autre DSLR avec une télécommande doit
fonctionner tout aussi bien. Dans ce circuit, une LED agit actuellement comme un stand-in pour
le déclencheur à distance, mais son adaptation pour l’obturateur n’est qu’une question de contourner
le bouton de la télécommande et de contrôle avec l’Arduino. Étant donné qu’elle
est difficile de dire quand un émetteur infrarouge est activé,
l’afficheur 7 segments clignote chaque fois qu’une photo est prise à informer le
utilisateur de ses progrès.

Puisque de nombreux amateurs de Time-lapse sont intéressés par l’ajout d’un élément dynamique
à leurs coups, j’ai inclus des fonctionnalités pour une plate-forme asservie
qui pourrait permettre à la caméra tourner ou déplacer dans une scène.

Le circuit :
* L’afficheur 7 segments est contrôlée par broches 2-8 et 10-12. L’affichage
œuvres en utilisant chaque chiffre comme un motif et chaque segment comme une contribution positive.
Par exemple, pour afficher un segment A le chiffre 3, l’Arduino fixerait broche 2,
qui contrôle le segment A élevé et axe de 12, qui est le motif pour le chiffre 3,
à la basse.

* Le LED ou déclencheur à distance, est connecté à la broche 13 et GND.

* Le servo est relié au 5V et GND et reçoit un signal de broche 9.

* La photorésistance utilisée dans un circuit de division de tension en conjonction avec un 10kΩ
résistance et il est lu par broches A0.

* Le potentiomètre est lu par broche A1

Remerciements :
Instructables de FireCGun post sur « Affichage de Arduino 4 chiffres 7 segments »

9 décembre 2013
par Leslie-Bole Holden

Je déclare ce code public domain.

*/

#include < Servo.h > / / inclure la bibliothèque de servo
Servo cameraServo ; Créer un objet de servo appelé cameraServo
const int potPin = A1 ; Mettre broche analogique A1 à lire le potentiomètre
const int photoresistorPin = A0 ; Mettre broche analogique A0 lire la photorésistance
int potValue = 0 ;
Initialiser le potValue, la variable qui stocke la valeur du potentiomètre, à zéro
int photoresistorValue = 0 ;
Initialiser le photoresistorValue, la variable qui stocke la valeur de la photorésistance, à zéro
int shutterDelay = 0 ; Cette variable stocke le retard utilisateur-saisies entre les photos
long lastPicTime = 0 ; L’heure à laquelle la dernière photo a été prise
long lastServoTime = 0 ; L’heure à laquelle le servo dernière exploité
timeLapseDuration longue = 900000 ;
Pour l’étalonnage du servo - la durée prévue de la pousse (en millisecondes)
int servoPosition = 0 ; Position du servo en degrés

Cette section attribue un numéro de broche pour différents éléments à l’écran
const int aPin = 2 ;
const int bPin = 3 ;
const int cPin = 4 ;
const int dPin = 5 ;
const int ePin = 6 ;
const int fPin = 7 ;
const int gPin = 8 ;
const int GND1 = 10 ;
const int GND2 = 11 ;
const int GND3 = 12 ;

const int shutterPin = 13 ; broche 13 contrôlera l’obturateur
int num ; Le numéro entré par le potentiomètre
int dig2Value = 0 ;
int dig3Value = 0 ;
int brightnessDelay = 3 ; Un retard de quantité arbitraire qui contrôle la luminosité de l’affichage

Exécuter cette méthode une fois au démarrage de Arduino
void setup()
{
cameraServo.attach(9) ; Assignez le servo à broche 9
cameraServo.write(0) ; Initialiser le servo à 0
Définir l’affichage et obturateur épingles à la sortie
pinMode (aPin, sortie) ;
pinMode (bPin, sortie) ;
pinMode (RCIP, sortie) ;
pinMode (dPin, sortie) ;
pinMode (ePin, sortie) ;
pinMode (fPin, sortie) ;
pinMode (gPin, sortie) ;
pinMode (GND1, sortie) ;
pinMode (GND2, sortie) ;
pinMode (GND3, sortie) ;
pinMode (shutterPin, sortie) ;
Serial.Begin(9600) ; Il s’agit d’un utile peu de code à maintenir pendant le débogage et le test
}

Exécuter cette méthode en continu
void loop()
{
unsigned long currentTime = millis() ; Trace de combien de temps l’Arduino a été runnign
potValue = analogRead(potPin) ; Lire le potentiomètre et stockez-la dans potValue
num = carte (potValue, 0, 1023, 99, 0) ; Ajuster la plage de sortie pour s’adapter à du retard
shutterDelay = num * 1000 ;
Étant donné que la mesure du temps naturel de l’Arduino est en millisecondes, cela convertit num
dans un délai entre les photos en millisecondes
dig2Value = num / 10 ; Utiliser la troncature entier pour faire dig2Value les dizaines à chiffres
dig3Value = num - (dig2Value * 10) ; Arithmétique qui fournit les chiffres

Définir les motifs à haute
digitalWrite (GND1, élevé) ;
digitalWrite (GND2, élevé) ;
digitalWrite (GND3, élevé) ;

Affichez un d du retard sur chiffre un
digitalWrite (GND1, basse) ; Mettre en marche
d() ; Voir méthode d() Sub
Delay(brightnessDelay) ; Attendez 3 ms de sorte que vous pouvez le voir
digitalWrite (GND1, élevé) ; Mettez-le hors tension

digitalWrite (GND2, basse) ;
Number(dig2Value) ; Voir la méthode number(int i)
Delay(brightnessDelay) ;
digitalWrite (GND2, élevé) ;

digitalWrite (GND3, basse) ;
Number(dig3Value) ; Voir la méthode number(int i)
Delay(brightnessDelay) ;
digitalWrite (GND3, élevé) ;

servoPosition = cameraServo.read() ;
Jeu de la servoPosition pour tout ce qui est actuellement est en degrés

photoresistorValue = analogRead(photoresistorPin) ; Lire la photorésistance
if(photoresistorValue > 100)
Essayez différentes valeurs pour cela. J’ai choisi 100 juste basé sur l’expérimentation.
{
Si (currentTime - lastPicTime > shutterDelay)
Déterminer si le délai de l’obturateur s’est écoulé depuis la dernière capture
{
Prendre la photo
digitalWrite (shutterPin, HIGH) ;
lastPicTime = currentTime ;
Delay(200) ;
digitalWrite (shutterPin, basse) ;
}

Évaluer l’activité de servo
Si (currentTime - lastServoTime > timeLapseDuration/180 & & servoPosition < 180)
{
servoPosition ++ ;
cameraServo.write(servoPosition) ; Déplacer le servo
lastServoTime = currentTime ;
}
}
}

Cette méthode utilise la notation de switch/case pour appeler les méthodes pour les chiffres en réponse à un nombre entier d’entrée
void number(int i) {}
{Switch(i)}
cas 1: one() ;
rupture ;
cas 2: two() ;
rupture ;
case 3: three() ;
rupture ;
case 4: four() ;
rupture ;
cas 5: five() ;
rupture ;
case 6: six() ;
rupture ;
cas 7: seven() ;
rupture ;
cas 8: eight() ;
rupture ;
case 9: nine() ;
rupture ;
par défaut : zero() ;
rupture ;
}
}

Cette méthode affiche le d du retard
d() Sub
{
digitalWrite (aPin, faible) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, HIGH) ;
digitalWrite (fPin, faible) ;
digitalWrite (gPin, HIGH) ;
}

Cette méthode affiche le chiffre un
Sub one()
{
digitalWrite (aPin, faible) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, faible) ;
digitalWrite (ePin, faible) ;
digitalWrite (fPin, faible) ;
digitalWrite (gPin, basse) ;
}

Cette méthode affiche le chiffre deux
Sub two()
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, faible) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, HIGH) ;
digitalWrite (fPin, faible) ;
digitalWrite (gPin, HIGH) ;
}

Cette méthode affiche le chiffre trois
Sub three()
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, faible) ;
digitalWrite (fPin, faible) ;
digitalWrite (gPin, HIGH) ;
}

Cette méthode affiche le chiffre quatre
Sub four()
{
digitalWrite (aPin, faible) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, faible) ;
digitalWrite (ePin, faible) ;
digitalWrite (fPin, HIGH) ;
digitalWrite (gPin, HIGH) ;
}

Cette méthode affiche le chiffre cinq
Sub five()
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, basse) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, faible) ;
digitalWrite (fPin, HIGH) ;
digitalWrite (gPin, HIGH) ;
}

Cette méthode affiche le chiffre six
Sub six()
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, basse) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, HIGH) ;
digitalWrite (fPin, HIGH) ;
digitalWrite (gPin, HIGH) ;
}

Sub seven()
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, faible) ;
digitalWrite (ePin, faible) ;
digitalWrite (fPin, faible) ;
digitalWrite (gPin, basse) ;
}

Cette méthode affiche le chiffre huit
Sub eight()
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, HIGH) ;
digitalWrite (fPin, HIGH) ;
digitalWrite (gPin, HIGH) ;
}

Cette méthode affiche le chiffre neuf
Sub nine()
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, faible) ;
digitalWrite (fPin, HIGH) ;
digitalWrite (gPin, HIGH) ;
}

Cette méthode affiche le chiffre zéro
zero() Sub
{
digitalWrite (aPin, HIGH) ;
digitalWrite (bPin, HIGH) ;
digitalWrite (RCIP, HIGH) ;
digitalWrite (dPin, HIGH) ;
digitalWrite (ePin, HIGH) ;
digitalWrite (fPin, HIGH) ;
digitalWrite (gPin, basse) ;
}

Articles Liés

Comment faire (torche Braze) un téléphone intelligent trépied

Comment faire (torche Braze) un téléphone intelligent trépied

Cet Instructable va vous montrer comment faire un téléphone intelligent à monter pour un trépied. Sur les photos, vous me verrez un téléphone Sprint Motorola Photon Q sur un trépied Manfrotto de montage (avec un montage amovible très pratique).Etape
Comment faire pour créer un fichier PDF sur Mac étape par étape

Comment faire pour créer un fichier PDF sur Mac étape par étape

peut-être que vous avez reçu un important message ou e-mail pièce jointe et souhaitez enregistrer en tant que PDF. Alors comment faire un document PDF sur Mac ? Vous savez probablement que vous pouvez créer des fichiers PDF avec aperçu, cependant, ap
Comment faire de robot de combat guerre robot vos instructions étape par étape auto

Comment faire de robot de combat guerre robot vos instructions étape par étape auto

comment faire robot de combat guerre robot vos instructions étape par étape libre
Comment faire un Eifel modulaire 2D origami Star (12 unité Coaster) par Hans Guth !

Comment faire un Eifel modulaire 2D origami Star (12 unité Coaster) par Hans Guth !

Bienvenue à la série origami quotidienne de tcgames. Dans ce tutoriel, je vais vous montrer comment faire un origami Star-Eifel Ver 1. Profitez: D !Ce modèle a été conçu par M. Hans-Werner Guth.Hans-Werner Guths Album : http://picasaweb.google.com/hw
Comment faire le chargeur Simple téléphone intelligent à l’aide du régulateur de tension L7805CV

Comment faire le chargeur Simple téléphone intelligent à l’aide du régulateur de tension L7805CV

Chargeur de téléphone intelligent à l'aide de L7805CV voltage regulator IC. C'est très simple à l'aide de suite de composant électronique1. L7805CV composant2. code de condensateur céramique 104 = 100nF (0.1 uF)3. code de condensateur céramique 334 =
Comment faire une photographie omniprésent

Comment faire une photographie omniprésent

Étape 1: Étapes 1 & 2 Matériaux :-Camara numérique-Trépied (en option)-Informatique (avec Photoshop)1. choisir un emplacement pour réaliser votre scène.2. Placez votre trépied sur un endroit sûr et sécurisé, où vous êtes sûr, qu'il ne bougera pas.-(s
Comment faire un Tracker de localisation GSM avec le AdaFruit FONA et Arduino

Comment faire un Tracker de localisation GSM avec le AdaFruit FONA et Arduino

IntroductionDans ce tutoriel, que nous allons faire un web connecté enregistreur de localisation utilisant le Service de données Sparkfun Adafruit FONA Conseil et un Arduino. Elle va obtenir son emplacement en utilisant la triangulation et publiez-le
Comment faire un vélo éclairage contrôlé par Arduino

Comment faire un vélo éclairage contrôlé par Arduino

microcontrôleurs sont des outils très puissants pour l'exploration dans l'univers électrique. Dans ce tutoriel nous allons utiliser Conseil d'administration de l'Arduino Uno, et nous vous montrerons comment programmer un certain nombre de fonctions d
Comment faire pour afficher la température en utilisant un LM35 et Arduino UNO

Comment faire pour afficher la température en utilisant un LM35 et Arduino UNO

Dans ce instructable, je vais montrer vous comment Connectez une sonde de température LM35 à l'Arduino UNO et lire la température en degrés Celsius sur le moniteur de la série.Etape 1: Voici ce que vous aurez besoin Pour ce projet, vous aurez besoin
Comment faire pour augmenter la taille d’une image sans passer par des qualifications de dessin

Comment faire pour augmenter la taille d’une image sans passer par des qualifications de dessin

Introduction :Art a toujours été une passion pour beaucoup de gens de partout dans le monde. Art a fait admirer la beauté qu'elle a. Beaucoup souhaitent utiliser leur esprit pour créer quelque chose d'unique et de leur propre envie. Cependant, ils on
Comment faire pour télécharger des vidéos d’youtube par tampermonkey.

Comment faire pour télécharger des vidéos d’youtube par tampermonkey.

Deux des trucs plus simples pour savoir comment télécharger des vidéos youtube directement, ainsi que la mise en place un bouton de téléchargement pour télécharger des vidéos en un seul clic, sans logiciel et avec l'aide de « Tampermonkey » extension
Comment faire pour activer vieux VHS Casette Tape à ordinateur contrôleur de Volume

Comment faire pour activer vieux VHS Casette Tape à ordinateur contrôleur de Volume

j'aime recyclage des vieux trucs et les transformer en un dispositifs utiles tels que les anciennes cassettes de Casette VHS au contrôleur de volume et dans ce projet, je vais vous montrer comment.Étape 1: matériaux...-La bande de Casette VHS-Vu-mètr
Comment faire pour ajouter chargement vidéo en 3D visite virtuelle par Easypano Tourweaver

Comment faire pour ajouter chargement vidéo en 3D visite virtuelle par Easypano Tourweaver

logiciel de visite virtuelle Easypano est l'un des plus simple à utiliser et puissant visite virtuelle, a fait un logiciel. Même, vous n'avez aucune idée de java flash, html5 et autre problème de codage, vous pouvez toujours faire une belle visite vi
Comment faire pour installer VMware vSphere client sur un contrôleur de domaine Windows

Comment faire pour installer VMware vSphere client sur un contrôleur de domaine Windows

Étapes sur la façon d'installer vSphere sur un contrôleur de domaine.Partir d'une invite de commande, utilisez ce commutateur pour installer - VMWARE_INSTALLER_NAME/VSKIP_OS_CHECKS = "1""