#define button 8 //Der druckknopf für's schritweise fortschreiten der Genarationen wird an diesen Pin angeschlossen #define Switch 7 //Der Kippschalter, mit dem zwischen "Manuell" und "Automatisch" gewechselt werden kann, wird an diesen Pin angeschlossenangeschlossen #define PulseOut A5 //Output Pin für die Pulse #define Delay 5 //verzögerung zwischen den einzelnen Pulsen (ein Genarationswechsel braucht 16*Delay millisekunden) boolean stepTOGGLE = false; //toggle mit dem ein Knopfdruck eine funktion bloß einmal ausführt, bis der knopf das nächste mal gedrückt wird void setup() { Serial.begin(9600); pinMode(PulseOut, OUTPUT); pinMode(button, INPUT); pinMode(7, INPUT); } void loop() { if(digitalRead(Switch)== true){ //wenn der Schalter umgelegt ist for (int i = 1; i <= 9; i++ ){ //wird acht mal digitalWrite(PulseOut,HIGH); //der Takt pin an, delay(Delay); //nach kurzem Delay digitalWrite(PulseOut,LOW); //aus geschaltet. delay(Delay); //dies wird nach kurzem delay wiederholt } } else{ //ist der schalter nicht umgelegt if(stepTOGGLE == false && button == true){ //wird nach der selben Logik wie im code "CellGenome" getestet ob gerade ein Signal eingegangen ist (der knopf gedrückt wurde) stepTOGGLE = true; for (int i = 1; i <= 9; i++ ){ //und 8 impulse mit entsprechender länge und entsprechenden Pausen abgegeben. Serial.println(i); digitalWrite(PulseOut,HIGH); delay(Delay); digitalWrite(PulseOut,LOW); delay(Delay); } } if(stepTOGGLE == true && button == false){ stepTOGGLE = false; } }