Étape 8: Programmer l’Arduino UNO
Contenu de la « SquirrelFeedCam.ino » pour programmer l’Arduino UNO.
DÉMARRER LA COPIE CI-DESSOUS ICI
/**
Script de caméra mangeoire écureuil
Permet à un interrupteur de puissance sur une image de la caméra et prendre, puis d’attendre
pour l’état de l’interrupteur mettre en place puis prendre davantage de photos et de puissance
hors une caméra.
Étant donné que la caméra ne peut pas prendre des photos pendant qu’il est en charge,
Nous définissons également l’appareil à charge / charge pas
quand pas prendre / photographier respectivement.
Cet exemple de code est dans le domaine public.
*/
Ensemble des références constantes à broches de l’arduino utilisés
/ ** Utilisée pour traiter la charge l’appareil photo
*/
const int GROUND_PIN = 6 ; Negitive puissance de caméra
const int CHARGE_PIN = 7 ; Puissance positive de la caméra
/ ** Servi à combler les Button caméra Bypass
*/
const int POWER_PIN = 8 ; Caméra Power bouton Bypass
const int TRIGGER_PIN = 9 ; Gâchette bouton Bypass
/ ** Servi à combler les couvercle interrupteur
*/
const int SWITCH_PIN = 10 ; Alimentation Couvercle Interrupteur
/ ** Swap normalement ouvert ou normalement fermé pour couvercle interrupteur
*/
const int OFF = 0 ;
const int ON = 1 ;
int lastSwitchState = OFF ;
int currentSwitchState = OFF ;
/ ** La routine d’installation s’exécute une fois que lorsque vous appuyez sur reset :
*/
void setup() {}
Serial.Begin(9600) ;
initialiser la broche numérique en tant que sortie. LastState
pinMode (GROUND_PIN, sortie) ;
pinMode (CHARGE_PIN, sortie) ;
pinMode (POWER_PIN, sortie) ;
pinMode (TRIGGER_PIN, sortie) ;
pinMode (entrée, SWITCH_PIN) ;
digitalWrite (SWITCH_PIN, élevé) ; Connecter les pull-up interne
digitalWrite (GROUND_PIN, basse) ; Cette broche est utilisée comme motif, donc il doit toujours être défini sur faible.
chargeCamera(true) ; Régler l’appareil pour charger la batterie sur la mise en service initiale.
}
/ ** La routine de la boucle s’exécute maintes et maintes fois pour toujours :
*/
void loop() {}
currentSwitchState = digitalRead(SWITCH_PIN) ; Enregistrement de l’État à état actuel
Serial.println(currentSwitchState) ;
Si (lastSwitchState! = currentSwitchState) {/ / en comparant l’actuel état du dernier État
lastSwitchState = digitalRead(SWITCH_PIN) ; Enregistrer l’état du dernier État
Serial.println(lastSwitchState) ;
Si (currentSwitchState == ON) {}
chargeCamera(false) ; Arrêtez la charge appareil photo donc les photos peuvent être prises
pressPowerButton() ;
takePicture() ;
takePicture() ;
takePicture() ;
} else {}
takePicture() ;
takePicture() ;
takePicture() ;
pressPowerButton() ;
chargeCamera(true) ; Set caméra pour charger la batterie, maintenant que les photos prises
}
}
}
/**
Cette méthode gère le déclenchement du bouton d’alimentation caméra pour cycle il marche/arrêt
*/
int pressPowerButton() {}
Serial.println ("en appuyant le bouton de marche /...") ;
digitalWrite (POWER_PIN, élevé) ; En appuyant sur le bouton power (haut est le niveau de tension)
Delay(3000) ; Attendez 3 secondes permettre à la caméra assez de temps pour mettre sous tension
digitalWrite (POWER_PIN, basse) ; Relâcher le bouton power (haut est le niveau de tension)
Delay(2000) ; Attendez 2 secondes après avoir relâché le bouton marche / arrêt avant de continuer
Serial.println ("appuyer sur le bouton POWER!") ;
}
/**
Cette méthode gère le déclenchement de l’appareil photo pour prendre une photo et l’enregistrer
*/
int takePicture() {}
Serial.println ("prendre une photo...") ;
digitalWrite (TRIGGER_PIN, élevé) ; Appuyez sur le bouton de déclenchement (le haut est le niveau de tension)
Delay(1500) ; Attendez de 1,5 secondes pour permettre à caméra traiter la prise de la photo
digitalWrite (TRIGGER_PIN, basse) ; Relâchez le bouton de déclenchement (le haut est le niveau de tension)
Delay(1500) ; Attendez de 1,5 secondes pour permettre à la caméra enregistrer l’image
Serial.println ("a pris une photo!") ;
}
/**
Cette méthode gère la charge ou ne se recharge pas la caméra
*/
void chargeCamera(boolean setToCharge) {}
Si {(setToCharge)
digitalWrite (CHARGE_PIN, élevé) ;
Serial.println ("START chargement...") ;
} else {}
digitalWrite (CHARGE_PIN, basse) ;
Serial.println ("STOP chargement...") ;
}
Delay(3000) ; Attendre 2 secondes avant de continuer
}
ARRÊTER DE FAIRE FACE PLUS HAUT ICI