Stap 8: Program de Arduino UNO
Inhoud van de "SquirrelFeedCam.ino" voor het programmeren van de Arduino UNO.
START HET KOPIËREN ONDER HIER
/**
Eekhoorn Feeder Camera Script
Een overstap naar macht op een camera en nemen foto, dan wachttijd kunt
de schakelaar staat omzetten in dan nemen meer foto's en macht
uit een camera.
Omdat de camera niet kan foto's nemen terwijl het opladen is,
We instellen bovendien de camera ontlaad- / niet laden
Wanneer niet nemen / respectievelijk het nemen van foto's.
Deze voorbeeldcode is in het publieke domein.
*/
Set constante verwijzingen naar de arduino PIN wordt gebruikt
/ ** Gebruikt om aan te pakken Camera opladen
*/
Const int GROUND_PIN = 6; Negitive vermogen van de Camera
Const int CHARGE_PIN = 7; Positieve kracht van Camera
/ ** Gebruikt om Bypass Camera Buttona
*/
Const int POWER_PIN = 8; Camera Power knop Bypass
Const int TRIGGER_PIN = 9; Trigger knop Bypass
/ ** Gebruikt om deksel Switch
*/
Const int SWITCH_PIN = 10; Feeder deksel Switch
/ ** Swap normaal Open of normaal gesloten voor deksel Switch
*/
Const int uitgeschakeld = 0;
Const int ingeschakeld = 1;
int lastSwitchState = OFF;
int currentSwitchState = OFF;
/ ** De installatieroutine loopt zodra wanneer u drukt op reset:
*/
VOID Setup {}
Serial.begin(9600);
Initialiseer de digitale pin als uitgang. LastState
pinMode (GROUND_PIN, uitvoer);
pinMode (CHARGE_PIN, uitvoer);
pinMode (POWER_PIN, uitvoer);
pinMode (TRIGGER_PIN, uitvoer);
pinMode (SWITCH_PIN, INPUT);
digitalWrite (SWITCH_PIN, hoge); Verbinding maken met interne pull-up
digitalWrite (GROUND_PIN, laag); Deze pin wordt gebruikt als grond, dus het moet altijd worden ingesteld op laag.
chargeCamera(true); Stel de camera batterij op opstarten te laden.
}
/ ** De routine lus loopt over en weer forever:
*/
void loop {}
currentSwitchState = digitalRead(SWITCH_PIN); De status van het opslaan om de huidige status
Serial.println(currentSwitchState);
Als (lastSwitchState! = currentSwitchState) {/ / vergelijken stand naar laatste status
lastSwitchState = digitalRead(SWITCH_PIN); De status van het opslaan naar laatste status
Serial.println(lastSwitchState);
Als (currentSwitchState == ON) {}
chargeCamera(false); Stoppen met laden van camera, dus foto's kunnen worden genomen
pressPowerButton();
takePicture();
takePicture();
takePicture();
} else {}
takePicture();
takePicture();
takePicture();
pressPowerButton();
chargeCamera(true); Stel de camera batterij nu dat gedaan nemen van foto's op te laden
}
}
}
/**
Deze methode behandelt triggering van de camera / uit-knop om het in-/ uitschakelen
*/
int pressPowerButton() {}
Serial.println ("te drukken op de POWER-knop...");
digitalWrite (POWER_PIN, hoge); Druk op de power-knop (HIGH is het spanningsniveau)
delay(3000); Wacht 3 seconden ingedrukt om de camera genoeg tijd aan de macht op te geven
digitalWrite (POWER_PIN, laag); Het vrijgeven van de knoop van de macht (HIGH is het spanningsniveau)
delay(2000); Wacht 2 seconden na het loslaten van de power-knop voordat u verdergaat
Serial.println ("de POWER knop ingedrukt!");
}
/**
Deze methode behandelt triggering van de camera een foto maken en opslaan
*/
int takePicture() {}
Serial.println ("Taking een foto...");
digitalWrite (TRIGGER_PIN, hoge); Druk op de knop van de trigger (HIGH is het spanningsniveau)
delay(1500); Wachten op 1,5 seconde om de camera voor het verwerken van de opname
digitalWrite (TRIGGER_PIN, laag); De trigger loslaat (HIGH is het spanningsniveau)
delay(1500); Wachten op 1,5 seconden camera de afbeelding wilt opslaan
Serial.println ("nam een foto!");
}
/**
Deze methode behandelt opladen of niet opladen van de camera
*/
VOID chargeCamera(boolean setToCharge) {}
Als (setToCharge) {}
digitalWrite (CHARGE_PIN, hoge);
Serial.println ("START opladen...");
} else {}
digitalWrite (CHARGE_PIN, laag);
Serial.println ("STOP laden...");
}
delay(3000); Wacht 2 seconden voordat u verdergaat
}
STOP OMGAAN BOVEN HIER