#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
int idtval = 30;
LiquidCrystal_I2C lcd(0x27, 16, 2);
char keys[4][4] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[4] = {1,2,3,4};
byte colPins[4] = {5,6,7,8};
Keypad myKeypad = Keypad(makeKeymap(keys), rowPins, colPins, 4, 4);
String kod = "1";
String inputPassword = "";
bool inMainLoop = true;
bool c=1;
int z;
int y;
int deyerm = 10;
int suret1 = 25;
int suret2 = 217;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(5, 0);
lcd.print("LOADING");
for (int i = 0; i < 3; i++) {
lcd.setCursor(13, 0);
lcd.print(".");
delay(600);
lcd.setCursor(14, 0);
lcd.print(".");
delay(400);
lcd.setCursor(15, 0);
lcd.print(".");
delay(200);
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("LOADING");
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sifre:");
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
}
void loop() {
if (inMainLoop) {
char keyPressed = myKeypad.getKey();
if (keyPressed) {
if (keyPressed == '*') {
if (inputPassword == kod) {
inMainLoop = false;
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("MADEIN");
lcd.setCursor(4, 1);
lcd.print("TEXNOLAB");
delay(2000);
cixis();
} else {
lcd.clear();
lcd.print("Sifre:");
lcd.setCursor(7, 0);
}
inputPassword = ""; // Reset the password
} else {
inputPassword += keyPressed;
lcd.print(keyPressed);
}
}
}
}
void cixis() {
lcd.clear();
while (1) {
z = analogRead(A3);
Serial.println(z);
char keyPressed = myKeypad.getKey();
y = analogRead(A2);
Serial.println(y);
int a0 = analogRead(A0);
float v = a0 * 5.0 / 1024;
float RT = 10 * v / (5 - v);
float tempK = 1 / (log(RT / 10) / 3950 + 1 / (273.15 + 25));
float tempC = tempK - 273.15;
int tem = tempC;
int duy1 = digitalRead(2);
int duy2 = digitalRead(4);
lcd.setCursor(3, 1);
lcd.print(idtval);
lcd.setCursor(0, 0);
lcd.print("T");
lcd.setCursor(0, 1);
lcd.print(tem);
lcd.print(" ");
delay(100);
lcd.setCursor(2, 0);
lcd.print("IDT");
lcd.setCursor(6, 0);
lcd.print("M");
lcd.setCursor(8, 0);
lcd.print("IDTM");
lcd.setCursor(9, 1);
lcd.print("AV");
lcd.setCursor(14, 0);
lcd.print("MS");
if (tem > idtval) {
lcd.setCursor(6, 1);
lcd.print("S");
}
if (tem < idtval) {
lcd.setCursor(6, 1);
lcd.print("I");
}
if(z==0){
mator();
delay(200);
if(z==0){
c=0;
if(c==0){
digitalWrite(9,0);
digitalWrite(10,0);
}
}
}
if (keyPressed == 'B') {
tempratur();
} else if (keyPressed == 'C') {
suret();
}
else if( keyPressed=='3'){
lcd.clear();
manual();
}
else if (keyPressed == 'A') {
lcd.clear();
cixis();
}
}
}
void tempratur() {
lcd.clear();
while (1) {
char keyPressed = myKeypad.getKey();
int a0 = analogRead(A0);
float v = a0 * 5.0 / 1024;
float RT = 10 * v / (5 - v);
float tempK = 1 / (log(RT / 10) / 3950 + 1 / (273.15 + 25));
float tempC = tempK - 273.15;
int tem = tempC;
int duy1 = digitalRead(2);
int duy2 = digitalRead(4);
lcd.setCursor(1, 0);
lcd.print("TEMP");
lcd.setCursor(12, 0);
lcd.print("IDT");
lcd.setCursor(1, 1);
lcd.print(tem);
lcd.setCursor(12, 1);
lcd.print(idtval);
if (duy1 == LOW) {
idtval++;
delay(50);
}
if (duy2 == LOW) {
idtval--;
delay(50);
}
if (keyPressed == 'C') {
lcd.clear();
suret();
}
if( keyPressed=='3'){
lcd.clear();
manual();
}
if (keyPressed == 'A') {
lcd.clear();
cixis();
}
}
}
void suret() {
lcd.clear();
while (1) {
int duy3 = digitalRead(3);
int duy5 = digitalRead(5);
char keyPressed = myKeypad.getKey();
lcd.setCursor(0, 0);
lcd.print("MAX");
lcd.setCursor(11, 0);
lcd.print("MIN");
lcd.setCursor(11, 1);
lcd.print(suret1);
lcd.setCursor(0, 1);
lcd.print(suret2);
if(keyPressed== '1'){
max1();
}
if(keyPressed== '2'){
min1();
}
if (keyPressed == 'A') {
lcd.clear();
cixis();
}
if(keyPressed=='B'){
lcd.clear();
tempratur();
}
if(keyPressed=='3'){
lcd.clear();
manual();
}
}
}
void max1() {
while (1) {
char keyPressed = myKeypad.getKey();
lcd.setCursor(5, 0);
lcd.print("<");
int duy3 = digitalRead(3);
int duy5 = digitalRead(5);
if (duy3 == LOW) {
suret2++;
delay(100);
}
if (duy5 == LOW) {
suret2--;
delay(100);
}
lcd.setCursor(11, 1);
lcd.print(suret1);
lcd.setCursor(0, 1);
lcd.print(suret2);
if (keyPressed == '#') {
lcd.clear();
break;
}
delay(200);
}
}
void min1() {
while (1) {
char keyPressed = myKeypad.getKey();
lcd.setCursor(8, 0);
lcd.print(">");
int duy3 = digitalRead(3);
int duy5 = digitalRead(5);
lcd.setCursor(11, 1);
lcd.print(suret1);
lcd.setCursor(0, 1);
lcd.print(suret2);
if (duy3 == LOW) {
suret1++;
}
if (duy5 == LOW) {
suret1--;
}
if ( keyPressed == '#') {
lcd.clear();
break;
}
delay(100);
}
}
void mator(){
while(1){
int z =analogRead(A3);
digitalWrite(9,1);
digitalWrite(10,0);
if(z==0){
break;
}
}
}
void manual(){
lcd.clear();
while (1) {
char keyPressed = myKeypad.getKey();
z = analogRead(A3);
Serial.println(z);
int a0 = analogRead(A0);
float v = a0 * 5.0 / 1024;
float RT = 10 * v / (5 - v);
float tempK = 1 / (log(RT / 10) / 3950 + 1 / (273.15 + 25));
float tempC = tempK - 273.15;
int tem = tempC;
int duy1 = digitalRead(2);
int duy2 = digitalRead(4);
lcd.setCursor(3, 1);
lcd.print(idtval);
lcd.setCursor(0, 0);
lcd.print("T");
lcd.setCursor(0, 1);
lcd.print(tem);
lcd.print(" ");
delay(100);
lcd.setCursor(2, 0);
lcd.print("IDT");
lcd.setCursor(6, 0);
lcd.print("M");
lcd.setCursor(8, 0);
lcd.print("IDTM");
lcd.setCursor(9, 1);
lcd.print("MAN");
lcd.setCursor(14, 0);
lcd.print("MS");
lcd.setCursor(13, 1);
lcd.print(deyerm);
int deyer=analogRead(A2);
deyerm =map(deyer, 517 , 1023 , suret1 , suret2);
if(deyerm>0){
analogWrite(9,deyerm);
delay(deyer);
analogWrite(10,0);
delay(deyer);
}
if (tem > idtval) {
lcd.setCursor(6, 1);
lcd.print("S");
}
if (tem < idtval) {
lcd.setCursor(6, 1);
lcd.print("I");
}
if(keyPressed=='*'){
lcd.clear();
tempratur();
}
if(keyPressed =='#'){
lcd.clear();
break;
}
}
}