boolean probleme......

Hallo,
ich habe angefangen mir ein kleines Programm zu schreiben mit dem ich die Schüsse einer Waffe mit einer LED immitieren möchte.
Mein Problem jedoch ist das die LED immer in der selben Geschwindigkeit blinkt, bzw. nicht den Feuermodus wechselt, wenn ich den Button dazu drücke.

int fire=7; 
int trigger=3;  
int change=5; 
boolean running = false;

void setup(){
  pinMode(trigger, INPUT);
  pinMode(change, INPUT);   
  pinMode(fire, OUTPUT);
  digitalWrite(change, HIGH); 
  digitalWrite(trigger, HIGH);   
}

void loop()
{
  if (digitalRead(change) == LOW)
  { 
    if(running=true){ // Wenn der change Button gedrückt wird soll die LED langsam blinken.
    running = false;  
    }else{//Wenn der change Button wieder gedrückt wird soll die LED schnell blinken.
    delay(1000);                        
    running = true;
    }
  }
  if (running = false)//Feuermodus 1
  { 
    if(digitalRead(trigger)== LOW){ //Abfrage ob der trigger button betätigt wird.
      digitalWrite(fire,LOW);
      delay(90);
      digitalWrite(fire,HIGH);
      delay(90);
      digitalWrite(fire,LOW);
    }
  }else{ //Feuermodus 2
    if(digitalRead(trigger)== LOW){//Abfrage ob der trigger button betätigt wird.
      digitalWrite(fire,LOW);
      delay(45);
      digitalWrite(fire,HIGH);
      delay(45);
      digitalWrite(fire,LOW);
    }
  }
}

Ich möchte es zudem gern abändern das die LED in einem der beiden Modi pro drücken nur einmal Blinkt, habe keinen blassen schimmer wie.....

if(running=true)

if (running = false)

Der Compiler lässt das leider durchgehen, da eine Zuweisung den zugewiesenen Wert zurück gibt

if (running = false)

Muss running == false lauten

Jetzt funktionierts ,super, ich bekomm es nur nicht hin das die LED im 1. Feuermodus pro druck nur einmal leuchtet, einfach ein break; einbauen kann ich sicher auch nicht?

Schreibe deinen Sketch erst einmal ohne delay und nimm anstatt dessen millis und mache eine Taster Entprellungen. In den dazu passenden Tutorials kannst du dann auch sehen, wie man den ButtonStatus abfragt. Eine Aktion wird dann nur noch nach einer Statusänderung von LOW auf HIGH gemacht.

Danke für den Tipp, ich hoffe ich werde das verstehen :wink: