Et maintenant un peu de code pour piloter l'arduino :
Je vous laisse faire l'initialisation des variables.
void loop() ;{
if(digitalRead(BUTTON_PIN) == HIGH) // detecte pression sur bouton : OK pour demarrer
{
delaiFlash = analogRead(DELAY_PIN); // lit la valeur du délai de déclenchement du flash
seuil = analogRead(SENSIB_PIN); // lit la valeur du seuil de sensibilité
mode = ACTIF; // paré à shooter !
digitalWrite(LED_PIN, LOW); // allume la lampe d'action
digitalWrite(APN_TRIGGER_PIN,HIGH); // déclenche l'appareil photo
}
if((mode==ACTIF) && (analogRead(SENSOR_PIN) < seuil)
// si le mode de fonctionnement est actif et que le courant détecté par le curseur < seuil il y a
// interruption du faisceau (passage de la goutte ou autre).
{
delay(delaiFlash) ; // attente d'un certain délai avant de shooter (le temps que la goutte arrive)
digitalWrite(FLASH_TRIGGER_PIN,HIGH); // envoi impulsion au flash.
delay(50); // durée d'impulsion necessaire au flash
digitalWrite(FLASH_TRIGGER_PIN,LOW); // fin d'impulsion flash
mode = INACTIF; // fin de la session
digitalWrite(LED_PIN,HIGH), // eteint la led d'action.
}
}
Bon, c'est perfectible bien sur , mais ça marche.
A noter que si on a débranché les cables de l'APN et du flash, onpeut se servir de la diode qui clignote pour régler le seuil de sensibilité.
Certains auteurs ont rajouté un écran LCD qui permet d'afficher les valeurs mesurées et créé un menu pour choisir des options. Perso, je me sers d'un notebook sous windows 7 et dans ce cas, j'utilise le logiciel Arduino et la liaison série pour récupérer les infos.
Bon, en ce moment, j'ai vu surtout la théorie et j'ai préparé un petit prototype avec un breadboard. Le week end arrive, je vais essayer mon montage et je vous renverrais des infos.
A bientôt,
Phil
Aucun commentaire:
Enregistrer un commentaire