/* tlacitka tl1 pin Digital 5 tl2 pin Digital 6 relatko Digital 4 spoust relatko Digital 7 naslap display sda A4 sdl A5 */ #include //nutne pro pripojeni displaye ---nevim #include //vlozeni knihovny pro LCD display //Nastaveni zapojeni talcitek a relatka int tl_status; int tl2_status; int tl1=5; int tl2=6; byte rele=4; byte naslap=7; //promena pro namacknuti spouste (ostreni, expozice atd.) //promene pro ulozeni casu mezi snimky a pocet snimku int mezicas=3; int pocet=10; //promena pro urceni zda je nastaveno int setok=0; //cyklus promena pro vypocet millis +mezicas int totokolo; //inicializace LCD LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //inicializace LCD zapojeni je zapojeni LCD, GND 0V, VCC 5V, SDA A4, SCL A5 void setup() { // Setup LCD to 16x2 characters lcd.begin(16, 2); //Uvitani lcd.setCursor(0, 0); lcd.print("CASOSBER"); delay(1000); lcd.clear(); //nastaveni pinu pro tlacitka pinMode (tl1, INPUT_PULLUP); pinMode (tl2, INPUT_PULLUP); pinMode (rele, OUTPUT); pinMode (naslap, OUTPUT); digitalWrite (rele, LOW); digitalWrite (naslap, LOW); } void loop() { if (setok==0) { //kdyz neni nastavencasosber preskoc do nastaven lcd.clear(); lcd.setCursor(0, 0); lcd.print("vteriny"); lcd.setCursor(0, 1); lcd.print("pocet"); lcd.setCursor(14,0); //nastaveni blikaciho kurzoru u vterin lcd.blink(); tl_status=digitalRead(tl1); while (tl_status == HIGH) { lcd.setCursor(10, 1); lcd.print(pocet); tl2_status=digitalRead(tl2); if (tl2_status == LOW) { mezicas=mezicas+1; } if (mezicas>100) { mezicas=3; lcd.setCursor(14,0); lcd.print(" "); } lcd.setCursor(14,0); lcd.print(mezicas); delay (200); tl_status=digitalRead(tl1); } lcd.setCursor(10,1); //nastaveni blikaciho kurzoru u poctu lcd.blink(); delay (2000); tl_status=digitalRead(tl1); while (tl_status == HIGH) { tl2_status=digitalRead(tl2); if (tl2_status == LOW) { pocet=pocet+10; } if (pocet>3000) { pocet=0; } lcd.setCursor(10,1); lcd.print(pocet); tl_status=digitalRead(tl1); delay (200); setok=1; } delay(300); } lcd.noBlink(); long cas=millis()/1000; //pro millis lcd.setCursor(8, 0); lcd.print("Exp"); if (cas >= totokolo) { totokolo=cas+mezicas; digitalWrite (naslap, HIGH); delay(1000); digitalWrite (rele, HIGH); delay (300); digitalWrite (rele, LOW); digitalWrite (naslap, LOW); pocet=pocet-1; lcd.setCursor(10,1); lcd.print(" "); lcd.setCursor(10, 1); lcd.print(pocet); if (pocet <= 0) { setok=0; } tl_status=digitalRead(tl1); tl2_status=digitalRead(tl2); if (tl_status ==LOW && tl2_status ==LOW) {setok=0;} //kdyz zmacknu obe tlacitka dostanu se do nastaveni } }