#include <EEPROM.h>
#define interruptPin 27
#define IncValue 12
#define DecValue 14
volatile byte value;
volatile byte addr = 0;
void setup() {
Serial.begin(9600);
pinMode(IncValue, INPUT_PULLUP);
pinMode(DecValue, INPUT_PULLUP);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), mem2eeprom, FALLING);
for (int i = 0; i <= 10; i++) {
value = EEPROM.read(i);
Serial.print("Address ");
Serial.print(i);
Serial.print(" ---> ");
Serial.print(value);
Serial.println();
delay(100);
}
}
void loop() {
if (digitalRead(IncValue) == LOW) {
value++;
Serial.print("Data changed to: "); Serial.println(value);
}
else if (digitalRead(DecValue) == LOW) {
value--;
Serial.print("Data changed to: "); Serial.println(value);
}
delay(150);
}
void mem2eeprom() {
EEPROM.write(addr, value);
Serial.print("Write data "); Serial.print(value);
Serial.print(" to EEPROM address "); Serial.println(addr);
addr++;
}