#include "RTClib.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
char daysOfTheWeek[7][12] = {"Sun", "Mon", "Tue", "Wen", "Thu", "Fri", "Sat"};
RTC_DS1307 rtc;
void calculate () {
float bober = 0;
int nissanskyline = 0;
char peremennaya = '+';
float vtoroybober = 0;
float result = 0;
Serial.println("vvedi suda first chislo");
delay(4999);
if(Serial.available()>0)
{
bober = Serial.parseFloat();
}
delay(1000);
Serial.println("spasibo ura");
lcd.print(bober);
lcd.leftToRight();
Serial.println("vvedi suda deystvie pozhalusta 1+, 2-, 3*,4/,5^");
delay(4999);
if(Serial.available()>0)
{
nissanskyline = Serial.parseInt();
}
Serial.println("spasibo ura");
switch (nissanskyline) {
case 1:
peremennaya = '+';
break;
case 2:
peremennaya = '-';
break;
case 3:
peremennaya = '*';
break;
case 4:
peremennaya = '/';
break;
case 5:
peremennaya = '^';
break;
default:
lcd.setCursor(0, 1);
lcd.print("Error");
break;
}
lcd.print(peremennaya);
Serial.println("vvedi suda second chislo");
delay(4999);
if(Serial.available()>0)
{
vtoroybober = Serial.parseFloat();
}
lcd.print(vtoroybober);
delay(999);
lcd.setCursor(0, 1);
lcd.print("Calculating...");
Serial.println("u teba poluchilos:");
switch (nissanskyline) {
case 1:
result = bober + vtoroybober;
break;
case 2:
result = bober - vtoroybober;
break;
case 3:
result = bober * vtoroybober;
break;
case 4:
result = bober / vtoroybober;
break;
case 5:
result = pow(bober, vtoroybober);
break;
default:
Serial.println("NEPRAVILNO(((((((");
}
delay(2222);
Serial.print(bober); Serial.print(peremennaya); Serial.print(vtoroybober);
lcd.clear();
lcd.print(result);
}
void clock() {
DateTime now = rtc.now();
lcd.clear();
lcd.print(now.day(), DEC);
lcd.print("/");
lcd.print(now.month(), DEC);
lcd.print("/");
lcd.print(now.year(), DEC);
lcd.print(" ");
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.setCursor(0,1);
lcd.print(now.hour(), DEC);
lcd.print(":");
lcd.print(now.minute(), DEC);
lcd.print(":");
lcd.print(now.second(), DEC);
delay(999);
}
void setup() {
Serial.begin(115200);
short appid;
lcd.init();
lcd.backlight();
pinMode(A0, INPUT);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort(); }
}
void loop() {
short appid;
short button;
button = analogRead(A0);
button = map(button, 0, 1023, 1, 3);
appid = button;
Serial.println(appid);
if (appid == 1) {
calculate();
lcd.clear();
}
else if(appid == 2) {
clock();
lcd.clear();
}
else {
lcd.clear();
lcd.print("programm error");
}
}