Arduino lightning Trigger for Canon

Scattare una foto ad un fulmine, con Arduino si puo'.
Data: 29/10/2013 Autore: Di Donato Francesco  

Il codice si commenta da solo !

#define irLED 3                // Pin di Output dell'emettitore IR
#define TRIGGER_THRESHOLD 20   // Valore consentito di variazione di luce

int lightningVal;

const int analogInPin = A2; // Pin analogico di input    (Fotoresistenza)
int sensorValue = 0;        // valore di ritorno del sensore di luce
int sensorNow = 0;          // valore di ritorno del sensore di luce

/**
 * Inizializzazione del pin a cui è collegato il sensore IR (OUTPUT)
 *
 */
void setup() {
 
  pinMode(irLED, OUTPUT);                    //Inizializzo l'IR Led come OUTPUT
  lightningVal = analogRead(analogInPin);    //Inizializzo il valore della luce leggendo la prima misurazione
}

void loop() {
/*
   Leggo il nuovo valore analogico dalla fotoresistenza.
   Se la differenza (in valore assoluto) tra il nuovo valore letto
   e il valore inizializzato nel metodo setup() supera la soglia
   stabilita, allora si invoca il metodo scatta();
   (occhio che una differenza in valore assoluto significa che
    anche variazioni di luce negative, cioè quando si passa dalla
    luce al buio, permettono il verificarsi della condizione)
*/
  int newLightningVal = analogRead(analogInPin);

  if (abs(newLightningVal - lightningVal) > TRIGGER_THRESHOLD) {
    scatta();
    delay(35);  // PER CANON
  }
}

void scatta() {
  sendSignal();
  delayMicroseconds(7330);
  sendSignal();
}

/*
 Questo fantastico pezzo di codice è il risultato di una lunghissima
 analisi del segnale che si deve inviare ad una canon per farle scattare
 una foto ! apprezzatelo !
*/

void sendSignal() {
  for(int i=0; i<16; i++) {
    
    digitalWrite(irLED, HIGH);   // segnale HIGH
    delayMicroseconds(11);       // aspetta 11 microsecondi
    digitalWrite(irLED, LOW);    // segnale LOW
    delayMicroseconds(11);       // aspetta 11 microsecondi
    
  }
}    


  • Java
  • Php
  • Mysql
  • Apache ant
  • Eclipse
  • Spring
  • Hibernate
  • Netbeans
  • Debian
  • Linux
  • Maven

by Iasparra Francesco - © Copyright 2021

E' vietata la riproduzione anche parziale dei materiali presenti in questo sito.

I marchi e le immagini esposti sono Copyright dei rispettivi proprietari.