Untitled
#include <EEPROM.h> #include <DigiPotX9Cxxx.h> int maxvalue = 255; int minvalue = 0; int butonhiz = 100; const int buttonPin = 14; int pwmPin = 9; DigiPot pot(18, 19, 5); 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; bool invert = 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); analogWrite(pwmPin, 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) { if (invert == false) value++; else value--; if (value > maxvalue) { invert = true; } if (value <= minvalue) { invert = false; } delay(butonhiz); 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); analogWrite(pwmPin, value); pot.set(value); delay(500); } else { Serial.print("Durum: 0"); pot.set(0); analogWrite(pwmPin, 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); } }
Leave a Comment