Arduino UNO spinnt plötzlich rum (die 'L' LED ist aus)

Hey,

gestern alles fertig programmiert, heute geht nichts mehr. Mein Projekt (kurz) :

Betätigt man TasterA, soll sich ein Servo um 180 Grad drehen und die RGB LED soll solange rot leuchten, das klappt soweit.

Betätigt man TasterB, soll man die Farben der RGB LED auf dem Breadboard ändern können. Das geht irgendwie nicht mehr.. mir ist dann aufgefallen, dass die 'L' LED auf dem Arduino immer aus ist, sobald man GND anschließt.. das war gestern irgendwie anders. Jedenfalls funktioniert TasterB nicht, wenn diese LED aus ist. (A aber irgendwie schon)

#include <Servo.h>

Servo myservo;
int pos = 0;
int ButtonA = 7;
int ButtonB = 13;
int mode = 0;
int redPin = 9;
int greenPin = 10;
int bluePin = 11;

void setup() {

  myservo.attach(6);
  pinMode(ButtonA, INPUT);
  pinMode(ButtonB, INPUT);

  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

  Serial.begin(1000);

}

void loop() {

  if(digitalRead(ButtonA) == HIGH)
  {
    setRGB(255, 0, 0);
    delay(1000);
    myservo.write(180);
    delay(800);
    myservo.write(0);
    delay(1000);
    mode;
  }



  if(digitalRead(ButtonA) == LOW)
  {
    myservo.write(0);
  }

int buttonState;
  buttonState = digitalRead(ButtonB);

  if(buttonState == LOW)
  {
    mode++;
    delay(100);
  }
  else if (mode == 0)
  {
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, LOW);
    digitalWrite(bluePin, LOW);
  }
  else if (mode == 1)
  {
    digitalWrite(redPin, HIGH);
    digitalWrite(greenPin, LOW);
    digitalWrite(bluePin, HIGH);
  }
   else if (mode == 2)
  {
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, HIGH);
    digitalWrite(bluePin, HIGH);
  }
  else if (mode == 3)
  {
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, HIGH);
    digitalWrite(bluePin, LOW);
  }
   else if (mode == 4)
  {
    digitalWrite(redPin, HIGH);
    digitalWrite(greenPin, HIGH);
    digitalWrite(bluePin, LOW);
  } 
  else
  {
    mode = 0;
  }
}

void setRGB(int redWert, int greenWert, int blueWert)
{
  analogWrite(redPin, redWert);
  analogWrite(greenPin, greenWert);
  analogWrite(bluePin, blueWert);
}

Woran kann das liegen ? Ist vlt. etwas kaputt ?

Danke im Voraus.

EDIT!: wenn man den TasterB drückt, ist die 'L' LED solange an, wie er gedrückt wird. Drückt man in dann schnell hintereinander wird er auch wieder erkannt.

Ok DAS hat sich erledigt.

Aber das umschalten der Farbmodi funktioniert nicht mehr. Es geht manchmal nur ein Mode, danach geht die LED wieder aus, manchmal switcht er zwischen 2 Farben durch, aber keine feste Reihenfolge, schon gar nicht die festgelegte. Warum ?

Du solltest für den TasterB einen anderen Pin verwenden. Deine Led ist ach an Pin D13 angeschlossen.
Die kommen sich dann irgendwie in die Quere.

Die kommen sich dann irgendwie in die Quere.

Beim UNO kein Problem.
Aber beim Nano und Pro Mini schon.

Außerdem fehlt jede Angabe zu Pullup oder Pulldown.
Schaltplan!


Wie auch sonst oft, frage ich mich:
Warum müssen unbedingt so wichtige Dinge unerwähnt bleiben....?

  1. Ich habe keine Lust mehr nachzufragen!
  2. Der Fehler steckt meist in den geheimen Dingen.

combie:
Beim UNO kein Problem.
Aber beim Nano und Pro Mini schon.

Mag sein, dass es beim Originalen (wissen wir nicht ob der TO den hat) so ist, aber wenn der Pin als Input definiert ist, was macht die Led dann ?

aber wenn der Pin als Input definiert ist, was macht die Led dann ?

Die LED ist beim UNO über einen Impedanzwandler entkoppelt.

Sie wird dann synchron zum Pegel des Pins an und aus gehen.

combie:
Die LED ist beim UNO über einen Impedanzwandler entkoppelt.

Sie wird dann synchron zum Pegel des Pins an und aus gehen.

Ja, beim originalen....aber das meckert der TO ja auch an.
Oder lese ich seine Fehlerbeschreibung falsch.

Ja, beim originalen....

Bei den einfachen Arduinos funktioniert der Pin, mit Pullup, nicht zuverlässig als Input.

Mit Pulldown ja.
Aber wenn der Bootloader dann blinkt, und man die Taste drückt gibts einen Kurzschluss.
Und das wollen wir doch nicht....
Mit einem Angstwiderstand würde sich auch dieses Problem umschiffen lassen.

Dein Tipp, Pin 13 nicht als Input zu verwenden, ist also grundsätzlich die sicherere Variante.

Aber wie schon erwähnt:
Wir sind es mal wieder nicht Wert, zu erfahren, welche Teile eingesetzt werden.

combie:
Bei den einfachen Arduinos funktioniert der Pin, mit Pullup, nicht zuverlässig als Input.

Mit Pulldown ja.
Aber wenn der Bootloader dann blinkt, und man die Taste drückt gibts einen Kurzschluss.
Und das wollen wir doch nicht....
Mit einem Angstwiderstand würde sich auch dieses Problem umschiffen lassen.

Dein Tipp, Pin 13 nicht als Input zu verwenden, ist also grundsätzlich die sicherere Variante.
Wenn man z.B. zu faul ist den Schaltplan des verwendeten Arduino(kompatiblen) zu lesen.
Oder ihn nicht versteht.

Aber wie schon erwähnt:
Wir sind es mal wieder nicht Wert, zu erfahren, welche Teile eingesetzt werden.

Ok und da sich der TO auch nicht weiter äusserst, werden wir auch nicht erfahren wie es hier ausgeht.