#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
const int panel = 6;
const int timePot = A5;
const int brightnessPot = A4;
const int buttonPin = 13;
const int ctrlLED = 5;
//variabless
int setBrightness = 50;
int setTime;
int minutes;
int seconds = 0;
bool start;
void setup()
{
start = false;
pinMode(panel, OUTPUT);
pinMode(buttonPin, INPUT);
lcd.begin(16, 2);
lcd.print("TIME: :00");
lcd.setCursor(0, 1);
lcd.print("BRIGHTNESS: %");
}
void loop() {
if(!start)
{
setTime = analogRead(timePot);
setTime = map(setTime, 0, 1023, 1,30);
setBrightness = analogRead(brightnessPot);
setBrightness = map(setBrightness, 0, 1023, 1,100);
minutes = setTime;
if(setTime < 9.1)
{
lcd.setCursor(11, 0);
lcd.print(" ");
lcd.setCursor(12, 0);
lcd.print(setTime);
}
else
{
lcd.setCursor(11, 0);
lcd.print(setTime);
}
if(setBrightness < 9.1)
{
lcd.setCursor(14, 1);
lcd.print(setBrightness);
lcd.setCursor(13, 1);
lcd.print(" ");
}
else if(setBrightness <= 99)
{
lcd.setCursor(13, 1);
lcd.print(setBrightness);
lcd.setCursor(12, 1);
lcd.print(" ");
}
else
{
lcd.setCursor(12, 1);
lcd.print(setBrightness);
}
}
if(!start && digitalRead(buttonPin))
{
start = true;
lcd.setCursor(0, 0);
lcd.print("TIME LEFT : : ");
}
if(start)
{
if(minutes <= 9)
{
lcd.setCursor(12, 0);
lcd.print(minutes);
lcd.setCursor(11, 0);
lcd.print(" ");
}
else
{
lcd.setCursor(11, 0);
lcd.print(minutes);
}
if(seconds == 0)
{
lcd.setCursor(14, 0);
lcd.print("00");
}
else if(seconds > 9)
{
lcd.setCursor(14, 0);
lcd.print(seconds);
}
else
{
lcd.setCursor(14, 0);
lcd.print(seconds);
lcd.setCursor(15, 0);
lcd.print(" ");
}
delay(1000);
if(seconds == 0)
{
seconds = 59;
minutes = minutes - 1;
}
else
{
seconds = seconds - 1;
}
int PWM = map(setBrightness, 0, 100, 0,255);
analogWrite(panel, PWM);
}
if(minutes == 0 && seconds == 0)
{
alarm();
}
if(digitalRead(buttonPin) == HIGH)
{
alarm();
}
int PWM = map(setBrightness, 0, 100, 0,255);
analogWrite(ctrlLED, PWM);
}
void alarm()
{
lcd.setCursor(0, 0);
lcd.print(" EXSPOSURE TIME ");
lcd.setCursor(0, 1);
lcd.print(" OVER ");
setBrightness = 0;
start = false;
tone(2, 999, 250);
lcd.setCursor(0, 0);
delay(500);
lcd.print("TIME: :00");
lcd.setCursor(0, 1);
lcd.print("BRIGHTNESS: %");
seconds = 0;
minutes = 0;
if(minutes <= 9)
{
lcd.setCursor(12, 0);
lcd.print(minutes);
lcd.setCursor(11, 0);
lcd.print(" ");
}
else
{
lcd.setCursor(11, 0);
lcd.print(minutes);
}
if(seconds == 0)
{
lcd.setCursor(14, 0);
lcd.print("00");
}
else if(seconds > 9)
{
lcd.setCursor(14, 0);
lcd.print(seconds);
}
else
{
lcd.setCursor(14, 0);
lcd.print(seconds);
lcd.setCursor(15, 0);
lcd.print(" ");
}
delay(1000);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
lcd1:VSS
lcd1:VDD
lcd1:V0
lcd1:RS
lcd1:RW
lcd1:E
lcd1:D0
lcd1:D1
lcd1:D2
lcd1:D3
lcd1:D4
lcd1:D5
lcd1:D6
lcd1:D7
lcd1:A
lcd1:K
pot1:GND
pot1:SIG
pot1:VCC
pot2:GND
pot2:SIG
pot2:VCC
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
bz1:1
bz1:2
r1:1
r1:2
led21:A
led21:C
led1:A
led1:C