#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include "Clock.h"
#include <WiFi.h>
#include <ArduinoJson.h>
const byte satirsayisi = 4;
const byte sutunsayisi = 4;
const char* sifre = "";
const char* ssid = "Wokwi-GUEST";
#define I2C_ADDR 0x27
#define lcdsutun 20
#define lcdsatir 4
#define buton 12
const byte led = 26;
uint8_t valIndex = 0;
uint8_t cursorPos = 0;
byte durum ;
String durusturu;
unsigned long Saat;
unsigned long clockTimer;
char entered_value[6];
char keys[satirsayisi][sutunsayisi]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','-'},
{'*','0','#','-'}
};
byte satirpinleri[satirsayisi] = {4,16,17,5};
byte sutunpinleri[sutunsayisi] = {18,19,21,22};
LiquidCrystal_I2C lcd(I2C_ADDR, lcdsutun, lcdsatir);
Keypad keypad1 = Keypad(makeKeymap(keys),satirpinleri,sutunpinleri,satirsayisi,sutunsayisi);
Clock ss(&lcd);
void setup() {
// put your setup code here, to run once:
pinMode(buton, INPUT);
pinMode(led, OUTPUT);
Serial.begin(115200);
Wire.begin(27,14);
lcd.init();
lcd.backlight();
WiFi.begin(ssid,sifre);
while (WiFi.status() != WL_CONNECTED)
{
lcd.print(".");
delay(1000);
}
if (!ss.apisaatal())
{
char t[] = __TIME__;
char derlesaat[] = {t[0], t[1], t[3], t[4], t[6], t[7] };
ss.saatal(derlesaat);
}
// lcd.clear();
lcd.setCursor(0,0);
lcd.print("Merhaba durus");
lcd.setCursor(0,1);
lcd.print("Sistemine");
lcd.setCursor(0,3);
lcd.print("Hosgeldiniz");
Serial.println(ss.saat());
delay(3000);
kapat();
}
void loop() {
// int sa = ss.saat();
// Serial.print(sa);
unsigned long millisNow = millis();
if (millisNow - clockTimer >= 1000)
{
clockTimer = millisNow;
ss.saatguncelle();
}
//delay(1000);
// 14:10 da 37 verdi
// 14:24 da 188 verdi
if (durum == 0)
{
if (digitalRead(buton) == 1){
durum = 1 ;
secimekrani();
// Serial.print("Açıldı durum =" + durum);
}
}
if (durum == 1)
{
if (digitalRead(buton) == 1){
durum = 0 ;
// Serial.print("Kapandı durum =" + durum);
}
durusgir();
}
if (durum == 2)
{
durusgir();
}
if (durum == 3)
{
ledac();
if (digitalRead(buton) == 1){
durum = 0 ;
ledkapat();
kapat();
//Serial.print("kapandı durum=" + durum);
}
}
}
void durusgir(){
if (durum == 1)
{
// Serial.println("Açıldı durum =" + durum);
char keydurus = keypad1.getKey();
//lcd.setCursor(0,1);
if (keydurus != NO_KEY)
{
switch(keydurus)
{
case 'A':
durusturu = "Plansiz Durus" ;
durum = 2;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(durusturu);
break;
case 'B':
durusturu = "Planli Durus" ;
durum = 2;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(durusturu);
break;
default:
//sonrakikarakter(keydurus);
break;
}
}
}
if (durum == 2)
{
char keydurus = keypad1.getKey();
//lcd.setCursor(0,1);
if (keydurus != NO_KEY)
{
switch (keydurus)
{
case '#':
calistir();
break;
default:
if (isDigit(keydurus))
{
sonrakikarakter(keydurus);
}
break;
}
}
}
}
void calistir()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Makine Calisiyor.");
durum=3;
}
void ledac()
{
analogWrite(led,HIGH);
}
void ledkapat()
{
analogWrite(led,LOW);
}
void secimekrani()
{
lcd.setCursor(0,0);
lcd.print("Durus Turu sec");
lcd.setCursor(0,1);
lcd.print("A plansız");
lcd.setCursor(0,2);
lcd.print("B planlı");
}
void kapat()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Makine Duruyor");
sifirla();
cursorPos = 0;
valIndex = 0;
}
void sifirla()
{
for (byte i = 0 ; i <= valIndex; i++ )
{
entered_value[i] = '\0';
}
}
void sonrakikarakter(char key)
{
if (valIndex < 6)
{
lcd.clear();
entered_value[valIndex] = key;
//lcd.clear();
//lcd.setCursor(0,0);
//lcd.print("Kod giriniz1" + valIndex );
lcd.setCursor(0, 0);
lcd.print(durusturu);
lcd.setCursor(0, 1);
lcd.print(entered_value);
// Serial.println(entered_value);
// Serial.println(valIndex);
cursorPos++;
valIndex++;
}
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4
<-------------Plansız Duruşlar
<-------------Planlı Duruşlar
l------------------------------ Durus Kaydet
^