Untitled
unknown
plain_text
10 months ago
2.6 kB
7
Indexable
#include <EEPROM.h>
#include <DigiPotX9Cxxx.h>
DigiPot pot(18, 19, 5);
const int buttonPin = 14;
int buttonState = 0;
int lastButtonState = 0;
unsigned long buttonPressTime = 0;
int value = 0;
bool onOffState = false;
const int eepromAddressLow = 0;
const int eepromAddressHigh = 1;
const int eepromAddressOnOff = 2;
bool buttonok = false;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(115200);
byte lowByte = EEPROM.read(eepromAddressLow);
byte highByte = EEPROM.read(eepromAddressHigh);
value = (highByte << 8) | lowByte;
if (value < 85)
value = 85;
onOffState = EEPROM.read(eepromAddressOnOff) == 1;
Serial.println("Cihaz Baslatildi");
Serial.print("Baslangic degeri: ");
Serial.println(value);
if (onOffState) {
Serial.print("Durum: ");
Serial.println(value);
pot.set(value);
delay(500);
} else {
Serial.print("Durum: 0");
pot.set(0);
delay(500);
}
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
buttonok = true;
if (lastButtonState == HIGH) {
buttonPressTime = millis();
}
if (millis() - buttonPressTime > 2000) {
value++;
if (value > 100) {
value = 85;
}
delay(200);
pot.set(value);
Serial.print("Deger: ");
Serial.println(value);
}
} else {
if (lastButtonState == LOW) {
unsigned long pressDuration = millis() - buttonPressTime;
if (pressDuration > 2000) {
byte lowByte = value & 0xFF;
byte highByte = (value >> 8) & 0xFF;
EEPROM.write(eepromAddressLow, lowByte);
EEPROM.write(eepromAddressHigh, highByte);
Serial.print("Yeni deger EEPROM'a kaydedildi: ");
Serial.println(value);
} else {
if (buttonok) {
onOffState = !onOffState;
EEPROM.write(eepromAddressOnOff, onOffState ? 1 : 0);
if (onOffState) {
Serial.print("Durum: ");
Serial.println(value);
pot.set(value);
delay(500);
} else {
Serial.print("Durum: 0");
pot.set(0);
delay(500);
}
}
}
delay(500);
}
}
delay(30);
lastButtonState = buttonState;
}
void setPotValue(int value) {
for (int i = 255; i > 0; i--) {
pot.decrease(1);
delay(10);
}
for (int i = 0; i < value; i++) {
pot.increase(1);
delay(10);
}
}
void setPotValuelow(int value) {
for (int i = 255; i > 0; i--) {
pot.decrease(1);
delay(10);
}
}
Editor is loading...
Leave a Comment