Coole Sache!
Hab ein bisschen an deinem Code herumgebastelt und eine Memory-Funktion eingebunden, d.h. das zuletzt eingestellte Blitzmuster bleibt nach Abschalten erhalten.
Nötige Änderungen im Code:
Code:
//Fahrrad-Blaulicht by Doc112
//Blitzmuster von Hella K-LED FO und RTK7
#include < EEPROM.h > //LEERZEICHEN zwischen den Klammern ENTFERNEN!
const int buttonPin = 2;
int rate= 1;
int reset= 100;
int timer = 0;
int buttonState = 0;
int counter = 0;
int buttonStateHIGH = 0;
int blau = 13; //PWN
int sensorPin = A7;
int sensorValue = 0;
int addr = 0;
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(blau, OUTPUT);
counter = EEPROM.read(addr);
}
void loop(){
timer++; //timer erhöhen
delay(rate); //Geschwindigkeit timer
if (timer == reset) //Reset
timer = 0;
// sensorValue = analogRead(sensorPin); //Poti auslesen
// rate = map(sensorValue, 0, 1023, 0, 100); //Bereich Sensor u Rate festlegen
// analogWrite(gelb, rate); //Ausgabe zur Kontrolle
buttonState = digitalRead(buttonPin); //Modiwahl durch Taster
if (buttonState == HIGH)
{
buttonStateHIGH = 1;
}
if (buttonState == LOW && buttonStateHIGH == 1)
{
counter++; //Modi hochzählen
EEPROM.write(addr, counter);
buttonStateHIGH = 0;
}
if (counter == 12) //Modi zurücksetzen (letzter Modi + 1)
{
counter = 0;
}
Der Rest ab hier bleibt gleich.
Hoffentlich hat das Forum alles übernommen, denn interessanterweise kann ich "#include < EEPROM.h >" ohne die Leerzeichen zwischen den eckigen Klammern nicht schreiben, es verschwindet warum auch immer...