#include <EEPROM.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define MEMORY_SIZE 64
const int buttonPin1 = 2;
const int buttonPin2 = 3;
const int ledPin1 = 4;
const int ledPin2 = 5;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
lcd.backlight();
lcd.begin(16, 2);
lcd.print("Emulator PZU");
delay(2000);
lcd.clear();
}
void loop() {
bool button1State = digitalRead(buttonPin1) == LOW;
bool button2State = digitalRead(buttonPin2) == LOW;
if (button1State) {
for (int i = 0; i < MEMORY_SIZE; i++) {
EEPROM.write(i, i);
}
digitalWrite(ledPin1, HIGH);
lcd.clear();
lcd.print("Writing to PZU...");
delay(1000);
digitalWrite(ledPin1, LOW);
}
if (button2State) {
lcd.clear();
lcd.print("Reading PZU...");
delay(500);
for (int i = 0; i < MEMORY_SIZE; i++) {
byte value = EEPROM.read(i);
lcd.setCursor(0, 1);
lcd.print("Addr ");
lcd.print(i);
lcd.print(": ");
lcd.print(value);
delay(100);
}
digitalWrite(ledPin2, HIGH);
delay(1000);
digitalWrite(ledPin2, LOW);
}
delay(10);
}