Paso 8: Programar el Arduino UNO
Contenido de la "SquirrelFeedCam.ino" para programar el Arduino UNO.
EMPEZAR A COPIAR A CONTINUACIÓN AQUÍ
/**
Ardilla alimentador cámara Script
Permite un interruptor encender una cámara y tomar foto, y luego esperar
para que el estado del interruptor cambiar entonces tomar más fotos y poder
fuera de una cámara.
Puesto que la cámara no puede tomar fotos mientras se está cargando,
Además fijamos la cámara / no carga
cuando no teniendo tomando fotos respectivamente.
Este ejemplo de código es de dominio público.
*/
Establecer constantes referencias a los pines de arduino se utiliza
/ ** Utilizado para tratar la cámara de carga
*/
const int GROUND_PIN = 6; Negitive potencia de cámara
const int CHARGE_PIN = 7; Energía positiva de la cámara
/ ** Solía dirección GuardarUna de cámara de derivación
*/
const int POWER_PIN = 8; Cámara alimentación botón Bypass
const int TRIGGER_PIN = 9; Gatillo botón Bypass
/ ** Utilizado para la dirección interruptor de tapa
*/
const int SWITCH_PIN = 10; Interruptor de la tapa del alimentador
/ ** Intercambio normalmente abierto o normalmente cerrado para el interruptor de la tapa
*/
const int OFF = 0;
const int a = 1;
int lastSwitchState = OFF;
int currentSwitchState = OFF;
/ ** La rutina de instalación se ejecuta una vez al presionar reset:
*/
void setup() {}
Serial.Begin(9600);
Inicializa el pin digital como salida. LastState
pinMode (GROUND_PIN, salida);
pinMode (CHARGE_PIN, salida);
pinMode (POWER_PIN, salida);
pinMode (TRIGGER_PIN, salida);
pinMode (SWITCH_PIN, entrada);
digitalWrite (SWITCH_PIN, alto); Conectar pull-up interna
digitalWrite (GROUND_PIN, bajo); Este pin se utiliza como planta, por lo que siempre debe ajustarse a la baja.
chargeCamera(true); Ajustar la cámara para cargar la batería en el arranque inicial.
}
/ ** La rutina del bucle se ejecuta una y otra vez para siempre:
*/
void loop() {}
currentSwitchState = digitalRead(SWITCH_PIN); Ahorro estado estado actual
Serial.println(currentSwitchState);
Si (lastSwitchState! = currentSwitchState) {/ / estado actual comparando al último estado
lastSwitchState = digitalRead(SWITCH_PIN); Ahorro estado al último estado
Serial.println(lastSwitchState);
Si (currentSwitchState == ON) {}
chargeCamera(false); Detener carga de cámara por lo que pueden tomarse fotos
pressPowerButton();
takePicture();
takePicture();
takePicture();
} else {}
takePicture();
takePicture();
takePicture();
pressPowerButton();
chargeCamera(true); Set cámara para cargar la batería que hace tomando fotos
}
}
}
/**
Este método se encarga de accionar el botón de encendido de la cámara para ciclo de encendido/apagado
*/
int pressPowerButton() {}
Serial.println ("presionando el botón POWER...");
digitalWrite (POWER_PIN, alto); Presionando el botón power (el alto es el nivel de voltaje)
Delay(3000); Esperar 3 segundos para permitir que la cámara de tiempo suficiente para poder
digitalWrite (POWER_PIN, bajo); Soltando el botón de encendido (alto es el nivel de voltaje)
Delay(2000); Espere durante 2 segundos después de soltar el botón de encendido antes de continuar
Serial.println ("prensada el botón de encendido!");
}
/**
Este método se encarga de accionar la cámara para tomar una foto y guardarla
*/
int takePicture() {}
Serial.println ("tomar una fotografía...");
digitalWrite (TRIGGER_PIN, alto); Presione el botón de disparo (alto es el nivel de voltaje)
Delay(1500); Espera de 1,5 segundos para permitir que la cámara al proceso de tomar la fotografía
digitalWrite (TRIGGER_PIN, bajo); Suelte el botón del disparador (alto es el nivel de voltaje)
Delay(1500); Espera de 1,5 segundos para permitir que la cámara guardar la imagen
Serial.println ("tomó una foto!");
}
/**
Este método se encarga de cargar o no cargar la cámara
*/
void chargeCamera(boolean setToCharge) {}
Si (setToCharge) {}
digitalWrite (CHARGE_PIN, alto);
Serial.println ("comienzo de carga...");
} else {}
digitalWrite (CHARGE_PIN, bajo);
Serial.println ("parada de carga...");
}
Delay(3000); Esperar 2 segundos antes de continuar
}
PARAR HACER FRENTE ENCIMA DE AQUÍ