Paso 6: programación
/*
Autor: Rafael Dötsch
Referencia 16/10/2015
Titel: Photobooth
Descripción:
Nach betätigung des comienzo catadores beginnt mueren 7 segmento Anzeige
MIT dem cuenta regresiva.
Von 9 auf 0 zählen.
Während dessen wir die Kamera dazu gebracht zu fokusieren und bei
0 den Auslöser zu betätigen.
Este wird über 2 Relais realisiert.
Das ganze wird ein über pantalla LCD mit einem HD44780 gesteuert.
*/
#include
VariableN fuer Pins vergeben:
const int Inicio = 4; Inicio -> PIN 4
const int A = 3; PIN 3 -> (CD4511BE)
const int B = 0; Pin 0 -> B (CD4511BE)
const int C = 1; Pin 1 -> C (CD4511BE)
const int D = 2; Pin 2 -> D (CD4511BE)
const int AF = 5; PIN 5 -> Transistor -> Relais -> Autofokus
const int AL = 6; PIN 6 -> Transistor -> Relais -> Auslöser
const int RS = 7; PIN 7 -> RS del LCD
const int E = 8; PIN 8 -> LCD E
const int DB4 = 9; PIN 9 -> LCD DB4
const int DB5 = 10; PIN 10 -> LCD DB5
const int DB6 = 11; PIN 11 -> LCD DB6
const int DB7 = 12; PIN 12 -> LCD DB7
const int t = 800;
int text_state = 0;
int outputAddress [12] = {A, B, C, D, AF, AL, RS, E, DB4, DB5, DB6, DB7};
Boolean outputStatus [12];
int en blanco [4] = {A, B, C, D};
String LCDtext [4] = {"Bitte", "Inicio", "druecken", "laecheln"};
das de festlegen der Pin mit dem pantalla LCD angesprochen werden soll
LiquidCrystal lcd (RS E, DB4, DB5, DB6, DB7);
void setup() {}
Initialisieren LCD
LCD.Begin (16, 2);
LCD.Clear();
LCD.Home();
Pernos de als Eingang bestimmen:
pinMode (salida, entrada);
Pernos de als Ausgang bestimmen:
para (int var = 0; var < 12; var ++) {}
pinMode (outputAddress [var], salida);
}
}
void loop() {}
Si (text_state == 0) {}
Start_text();
Clear7Seg();
}
PROG();
}
void Start_text()
{
Imprimir un mensaje en la pantalla LCD. (Inicio de Bitte SENS)
LCD.Clear();
LCD.Home();
LCD.Print(LCDtext[0]);
LCD.Print(LCDtext[1]);
lcd.setCursor (0, 1);
LCD.Print(LCDtext[2]);
text_state = 1;
}
void Clear7Seg()
{
CD4511BE blanco 1111 = ABCD
para (int i = 0; i < 4; i ++) {}
digitalWrite (espacio en blanco [i], HIGH);
}
}
void lachen() {}
LCD.Clear();
LCD.Home();
LCD.Print(LCDtext[0]);
LCD.Print(LCDtext[3]);
}
void Prog()
{
Si (digitalRead(START) == HIGH)
{//Countdown für starten de Auslöser sekundentakt im und von 9 lassen zählen de auf 0
text_state = 0;
LACHEN();
ZAHL ZEIGE 9
digitalWrite (A, alto);
digitalWrite (B, LOW);
digitalWrite (C, LOW);
digitalWrite (D, alto);
Delay(t);
ZAHL ZEIGE 8
digitalWrite (un, bajo);
Delay(t);
ZAHL ZEIGE 7
digitalWrite (A, alto);
digitalWrite (B, alto);
digitalWrite (C alta);
digitalWrite (D, LOW);
Delay(t);
Autofokus de ARRA
digitalWrite (AF, alto);
ZAHL ZEIGE 6
digitalWrite (un, bajo);
Delay(t);
ZAHL ZEIGE 5
digitalWrite (A, alto);
digitalWrite (B, LOW);
Delay(t);
ZAHL ZEIGE 4
digitalWrite (un, bajo);
Delay(t);
ZAHL ZEIGE 3
digitalWrite (A, alto);
digitalWrite (B, alto);
digitalWrite (C, LOW);
Delay(t);
ZAHL ZEIGE 2
digitalWrite (un, bajo);
Delay(t);
ZAHL ZEIGE 1
digitalWrite (A, alto);
digitalWrite (B, LOW);
Delay(t);
ZAHL ZEIGE 0
digitalWrite (un, bajo);
Warte bis Kamera fokusiert sombrero und löst aus
digitalWrite (AL, alto);
Delay(400);
Beide Ausgänge wieder öffnen
digitalWrite (AF, LOW);
digitalWrite (AL, LOW);
Clear7Seg();
}
}