Il sito dedicato all'informatica ideato da Iasparra 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 } }