Arduino Nano - LED-Strip leuchtet beim Hochfahren ungewollt auf

Hallo zusammen!

Ich habe ein Problem mit dem Arduino Nano und der Ansteuerung von RGB-LED Streifen. Google hat mir leider auch keine Antwort rausgegeben.

Jedes Mal, wenn ich die 12V Stromversorgung für den Nano + LED-Streifen herstelle, leuchtet der Streifen ungewollt für ungefähr eine Sekunde (Ich denke solange der Nano bootet) auf und schaltet sich dann wieder aus, wenn die digitalen Ausgänge (9, 10, 11) per analogWrite im setup() auf 0 gesetzt werden.

Auch die Farbe, in denen der LED-Streifen am Anfang leuchtet, ist nicht jedes mal die selbe. Jedoch leuchten die LEDs nicht mit voller Leistung auf.
Habe mal mit dem Multimeter nachgemessen und dabei kam heraus, dass an den Pins 9, 10 und 11 beim booten des Nanos keine 0V haben, sondern meistens so um die 0,5 - 1,2V. Diese Spannung lässt wohl die LEDs aufleuchten.

Die Schaltung ist wie in den unzähligen Tutorials aufgebaut:
Arduino -> je 3x Widerstand (10 kOhm) -> je 3x MOSFET (TO-220AB) -> RGB-Kanäle des Streifens.
Alles funktioniert super bis auf das Aufleuchten am Anfang.

Die setup() sieht so aus:

void setup() {
  pinMode(REDPIN, OUTPUT);
  pinMode(GREENPIN, OUTPUT);
  pinMode(BLUEPIN, OUTPUT);
  pinMode(pinSwitch, INPUT);

  analogWrite(REDPIN, 0);
  analogWrite(GREENPIN, 0);
  analogWrite(BLUEPIN, 0);

  Serial.begin(9600);
}

Ich denke die loop() muss ich nicht einfügen, da nach dem booten des Nanos alles problemlos funktioniert.

Es soll am Ende mal eine Fußraumbeleuchtung fürs Auto werden und da würde mich dieses unkontrollierte Leuchten am Anfang stören, wenn ich das Auto starte.

Habt Ihr eine Idee, wie man dies beheben könnte, oder ist der Nano vielleicht auch defekt?
Vielen Dank schon mal für Eure Hilfe!

weskes

Mal getestet andere Pins zunehmen? Weiß nicht, ob da der Bootloader zwischenfunkt.

Während des Bootladers sind die Pins noch hochohmig. Da können lustige Effekte entstehen. Deshalb stellt man eine zusätzliche Verbindung des Gates mit einem Widerstand zu GND her. Die 10kOhm solltest du zu GND schalten und kleinere Widerstände z.B. 100 Ohm zu den IO-Pins nehmen.

Prinzipschaltbild: Die Widerstandswerte sind nicht kritisch. Hauptsache R1 ist viel, viel kleiner als R2.

Quelle: Using MOSFETS with TTL levels (5 Volt and 3.3 Volt) – Arduino, ESP8266, ESP32 & Raspberry Pi stuff

Die Pins sind während der Ausführung des Bootloaders Eingänge. Die Spannung die Du mißt sind Störungen weil das Multimeter sehr hochomig ist.
Das Problem ist die Schaltung der MOSFETs deren Gate's nicht durch einen 10kOhm Widerstand auf Masse gezogen werden.

Grüße Uwe

ps 2 Minuten zu langsam

Wenn du den Widerstand der Gate auf Masse ziehen soll, "vor" dem Vorwiderstand schaltest, hast du keinen Spannungsteiler mehr und die kompletten 5V am Gate anliegen.

@Theseus, @uwefed
Vielen Dank für die Hinweise mit dem zusätzlichen Widerstand zwischen Gate und GND, das hat funktioniert!
Habe jetzt vom Arduino zum Gate einen 220 Ohm (R1) und vom Gate zum GND den 10k Ohm (R2) Widerstand verbaut und nun leuchtet der LED-Streifen erst, wenn im loop() die Ausgänge angesprochen werden.
Danke!

@MaHa76

MaHa76:
Wenn du den Widerstand der Gate auf Masse ziehen soll, "vor" dem Vorwiderstand schaltest, hast du keinen Spannungsteiler mehr und die kompletten 5V am Gate anliegen.

Habe die Schaltung von @Theseus nachgebaut mit den oben genannten Werten und ich kann bei roter Farbe (R = 255, G = 0, B = 0) am jeweiligen Pin des Arduino (R) 4,95V und am Gate 4,78V messen

Lohnt es sich (Was die Leuchtkraft des LED-Streifens betrifft), R2 aus dem Schaltbild nach links vor R1 zu verschieben oder nicht?
Ich müsste die ganzen Widerstände wieder auslöten, deswegen frage ich.

weskes