Ich habe mal versucht, Deinen Sketch (wo erforderlich) zeilenweise zu kommentieren:
byte LED = 6;
byte Taster1 = 8;
byte Taster2 = 7;
byte Tasterstatus1 = 0;
byte Tasterstatus2 = 0;
byte Zaehler = 0;
void setup() {
pinMode(LED, OUTPUT);
pinMode(Taster1, INPUT); // Wenn die Taster nicht mittels eines Widerstands an 3,3V oder 5V je nach
pinMode(Taster2, INPUT); // Prozessor angeschlossen sind, ist der Eingang in einem undefinierten
// Zustand
// Bei einfachem Tasteranschluss schreibt man pinMode(Taster1, INPUT_PULLUP);
// so dass der Eingang dann zwangsweise intern vom Prozessor auf HIGH
// geschaltet wird
}
void loop() {
Tasterstatus1 = analogRead(Taster1); // Für Taster besser digitalRead() zu verwenden, da Taster zwischen
// Logisch LOW und Logisch HIGH schalten; analogRead() ist
// für den Anschluss von z.B. veränderlichen Widerständen vorgesehen
// Ausserdem fehlt ein "debouncing", mechanische Taster prellen
// und können so zigmal in wenigen Millisekunden hin- und her-
// schalten, für uns zu schnell, aber nicht für einen Mikroprozessor,
// der bekommt das alles mit und schaltet ggf. ebensoschnell hin und her.
if (Tasterstatus1 == HIGH) {
digitalWrite(LED, HIGH); // Hier wird die LED eingeschaltet
analogWrite(LED, Zaehler); // Hier beim ersten Mal mit analogWrite() und Zaehler = 0 aus
// analogWrite kann dazu benutzt werden, die LED-Helligkeit zu
// steuern, dann aber entweder digitalWrite ODER analogWrite()
// Beides zusammen ist wenig sinnvoll, da der Prozessor mit
// beidem unterschiedlich umgeht -> mal "PWM" googeln ...
Zaehler = Zaehler + 1; // Hier wird Zaehler beim ersten Durchgang von 0 auf 1 gesetzt
if (Zaehler == 0 || Zaehler == 1){ // Wenn Zaehler == 0 ist oder Zaehler == 1
Zaehler = -Zaehler; // dann wird 1 abgezogen, also wird hier sofort aus Zaehler 1
// wieder Zaehler = 0 ...
if (Zaehler == 0) LED = 0; // und damit wird der Pin von LED auf Null gesetzt
// ab sofort wirken digitalWrite(LED,..) o.ä. auf den Anschluss
// Pin 0 ... also i.d.R. die RX-Leitung des Arduino
}
}
else {
digitalWrite(LED, LOW);
}
Tasterstatus2 = analogRead(Taster2); // Das oben Geschriebene gilt hier sinngemäß genauso für
// den folgenden Anteil des Sketches
if (Tasterstatus2 == HIGH) {
digitalWrite(LED, HIGH);
analogWrite(LED, Zaehler);
Zaehler = Zaehler + 1;
if (Zaehler == 0 || Zaehler == 1){
Zaehler = -Zaehler;
if (Zaehler == 0) LED = 0;
}
}
else {
digitalWrite(LED, LOW);
}
}
Im Prinzip wenig Neues zu dem, was @my_xy_projekt schon geschrieben hat ...
Mein Vorschlag: Mit kleinen Schritten anfangen und den Sketch, wenn er sicher läuft, erweitern.
Gleich mit zwei Tasten zu beginnen, wo eine Taste schon nicht läuft, erschwert Fehlersuche und -behebung..
Gruß
ec2021
P.S.: Ich suche mal ein paar Seiten heraus, wo Du an die Sache herangeführt wirst.
Erste Seite: https://www.mymakerstuff.de/2016/03/22/arduino-tutorium-kapitel-5-pull-up-und-pull-down-widerst%C3%A4nde/
Zweite Seite : https://www.mymakerstuff.de/2016/03/22/arduino-tutorium-kapitel-6-einen-taster-ohne-widerst%C3%A4nde-benutzen/
Dritte Seite: https://www.mymakerstuff.de/2016/03/22/arduino-tutorium-kapitel-7-der-prellende-taster/
und noch zum Thema PWM
https://www.mymakerstuff.de/2016/05/13/arduino-tutorial-die-rgb-led/
Die vielen delay() in der loop() im dortigen Beispiel sind dem Demo-Charakter geschuldet und entsprechen nicht dem, was man in einem "richtigen" Sketch machen würde, aber das ist ein anderes Thema ("Blink Without Delay") ... 