#include <EEPROM.h>
const int redLedPin = 8;
const int greenLedPin = 9;
const char writePassword = 'X'; // Пароль для запису
const char readPassword = 'Y'; // Пароль для зчитування
void setup() {
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
digitalWrite(redLedPin, HIGH);
Serial.begin(9600);
Serial.println("Hello");
}
void loop() {
if (Serial.available() > 0) {
String input = Serial.readStringUntil('?');
int dividerPos = input.indexOf('/');
if (dividerPos == -1) {
dividerPos = input.indexOf('\\');
}
if (dividerPos != -1 && input.length() > dividerPos + 1) {
char password = input.charAt(0);
String commandAndData = input.substring(1, dividerPos);
int byteValue = input.substring(dividerPos + 1).toInt();
if (password == writePassword) {
handleWrite(byteValue);
} else if (password == readPassword) {
handleRead();
} else {
handleInvalidPassword();
}
}
}
}
void handleWrite(int byteValue) {
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
EEPROM.write(0, byteValue);
delay(1000);
digitalWrite(greenLedPin, LOW);
}
void handleRead() {
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
int byteValue = EEPROM.read(0);
delay(1000);
digitalWrite(greenLedPin, LOW);
Serial.println(byteValue);
}
void handleInvalidPassword() {
Serial.println("Invalid password.");
for (int i = 0; i < 5; i++) {
digitalWrite(redLedPin, LOW);
delay(500);
digitalWrite(redLedPin, HIGH);
delay(500);
}
}