ich muss mich entschuldigen. Der Strahler ist wunderbar dimmbar per PWM.
Es lag am Sketch :
Ich hab einfach nicht aufgepasst und den Wert zu schnell wieder überschrieben. Damit hat die LED geflackert.
Danke an alle ...
Ok, man lernt ja meist aus den eigenen Fehlern.
Danke für die Rückmeldung.
ich muss mich entschuldigen. Der Strahler ist wunderbar dimmbar per PWM.
Es lag am Sketch :
Ich hab einfach nicht aufgepasst und den Wert zu schnell wieder überschrieben. Damit hat die LED geflackert.
Dann wäre es jetzt schön, wenn Du den funktionierenden Sketch hier einstellen würdest.
Die kleine LED steht symbolisch für den Strahler (Farlux SF42049, 3W, DC/12V).
Der MOSFET ist ein IRF520.
Strom kommt über ein 12V 3A Netzteil (es sollen ja noch ein paar Strahler mehr werden).
Feedback ist willkommen
Grüße und Danke nochmal!
// The button that should function like a switch
int const buttonPin = 2;
int button = LOW;
int currState = LOW;
int prevState = LOW;
// The poti used to dimm
int const potPin = A0;
int potVal;
// The LED we want to dimm
int const led1Pin = 11;
int led1Val = 0;
unsigned long currTime = millis();
unsigned long buttonTime = 0;
unsigned long interval = 500;
void setup() {
// Initialize serial output
Serial.begin(9600);
// Initialize pins
pinMode(buttonPin, INPUT);
pinMode(led1Pin, OUTPUT);
digitalWrite(led1Pin, LOW);
}
void loop() {
// get millis since start
currTime = millis();
// read the button
button = digitalRead(buttonPin);
// read the poti
potVal = analogRead(potPin);
// Check if the button state changed
if(button == HIGH && prevState == LOW && currTime - buttonTime >= interval) {
if(currState == HIGH) {
currState = LOW;
} else {
currState = HIGH;
}
buttonTime = currTime;
}
if(currState == LOW) {
// Turn off the LED
digitalWrite(led1Pin, currState);
} else {
// Turn on the LED and dimm
led1Val = map(potVal, 0, 1023, 0, 254);
analogWrite(led1Pin, led1Val);
}
// Some debug output
Serial.print("potVal: ");
Serial.print(potVal);
Serial.print(" led1Val: ");
Serial.println(led1Val);
// Save the state off the button
prevState = button;
}
Wenn Du den MOSFET direkt vom Arduino ansteuern willst dann brauchst Du einen LogicLevelMOSFET.
Außerdem sollte der MOSFET einen Widerstand von ca 10kOhm vom Gate auf Masse haben damit er sperrt wenn der Arduino ausgeschaltet ist.
Bei LED als Verbraucher braucht es eigentlich keine Diode da diese keine Indultive Last ist und keine Gegeninduktionsspannung beim Ausschalten aufbaut.
Und ich hoffe, du lernst auch aus unseren Beiträgen.
Das mit dem Mosfet offensichtlich nicht.
Auch wenn es aktuell funktioniert, kann das bei höherer Last zum Problem werden.
Der Mosfet steuert nicht richtig durch und wird wegen der zu hohen Verlustleistung "sterben".
Auch ist es üblich den Sketch in Code-Tags (Schaltfläche </> oben links im Editorfenster) zu posten.
Damit den alle, auch die Mobilisten unter uns, lesen können.
uwefed:
Wenn Du den MOSFET direkt vom Arduino ansteuern willst dann brauchst Du einen LogicLevelMOSFET.
Wie meinst du das? Ich steuere doch auch heute schon den MOSFET "direkt" mit dem Arduino über einen PIN?! - Sorry da kommt der Anfänger durch.
uwefed:
Außerdem sollte der MOSFET einen Widerstand von ca 10kOhm vom Gate auf Masse haben damit er sperrt wenn der Arduino ausgeschaltet ist.
Das bekomme ich hin.
uwefed:
Bei LED als Verbraucher braucht es eigentlich keine Diode da diese keine Indultive Last ist und keine Gegeninduktionsspannung beim Ausschalten aufbaut.
Hatte ich eben aus der Motorenschaltung übernommen, hier fehlen mir schlicht die E-Tech Hintergründe ...
HotSystems:
Und ich hoffe, du lernst auch aus unseren Beiträgen.
Das mit dem Mosfet offensichtlich nicht.
Auch wenn es aktuell funktioniert, kann das bei höherer Last zum Problem werden.
Der Mosfet steuert nicht richtig durch und wird wegen der zu hohen Verlustleistung "sterben".
Lern- und Beratungsresistent bin ich schonmal nicht. Ich habe nur einfach keine Ahnung warum das was du schreibst zutrifft. Ich habe die Schaltung mit den Mitteln umgesetzt, die mir derzeit zur Verfügung stehen. Ob das jetzt ein guter oder schlechter MOSFET ist kann ich nicht beurteilen (scheinbar ein schlechter). Auf was muss ich den achten damit ich mir den "richtigen" kaufe? Die Auswahl erscheint ja auch grenzenlos ... nicht so einfach für jemanden mit meinem Hintergrundwissen die Lage da zu durchblicken.
Geplant ist jeden LED Strahler einzeln steuerbar zu machen. 4 Stück davon. Zusätzlich will ich dann noch 3 LED Streifen RGBWW (auch 12V) nehmen. Welche konkret ist noch nicht klar.
Das ganze will ich dann über Schalter steuern können. An ein Bluetooth Modul habe ich auch nachgedacht aber das hat Zeit
Übrigens die Energiequelle für all das, auch dem Arduino, ist am Ende eine Autobatterie (Versorgungsbatterie). Bezüglch Spannung liegt die Wahrheit dann irgendwo zwischen 10V und 15V.
HotSystems:
Auch ist es üblich den Sketch in Code-Tags (Schaltfläche </> oben links im Editorfenster) zu posten.
Damit den alle, auch die Mobilisten unter uns, lesen können.
Wenn ich den alten Beitrag noch editieren kann, hole ich das nach.
Normale N-MOSFETs schalten bei 6-8V total durch (kleinster Source-Drain Widestand). Dadurch bekommst Du sie mit 5V des Arduino nicht ganz durchgeschaltet. Nicht ganz durchgeschaltet bedeutet daß die Verlustwärme größer ist und so eine Kühlung ohne Kühlkörper unzureichend sein kann.
Ein Logic Level n-MOSFET leitet sicher schon bei 4V und ist somit für Ansteuerung mit 5V besser geeigne (UGS(th) < 2V).
Da LogicLevel MOSFETs in der gleichen Preisklasse wie normale MOSFETS sin sind LLMOSFETs vorzuziehen, auch in Anwendungen wie Deiner wo relativ kleine Leistungen geschaltet werden.
Tommy56:
Diese Aufstellung ist zwar nicht mehr ganz taufrisch aber immer noch brauchbar.
Gruß Tommy
Danke dafür das hilft!!
uwefed:
Da LogicLevel MOSFETs in der gleichen Preisklasse wie normale MOSFETS sin sind LLMOSFETs vorzuziehen, auch in Anwendungen wie Deiner wo relativ kleine Leistungen geschaltet werden.
Ich wage dann einfach mal einen Versuch
Gesucht wird also einen N-Kanal MOSFET Anreicherungstyp (selbst sperrend) der bei 5V einen sehr geringen Widerstand (RDSon) hat.
Damit es ein Logic Level ist, einen der mit "IRL" beginnt
UGS(th) bzw. VGS(th) sollten also deutlich unter 5V sein
UDS bzw. VDS sollten mit guter Reserve über den ~15V (Autobatterie) liegen, z.B. 30V
ID nehme ich so groß wie halt geht
Ptot nehme ich so groß wie halt geht
RDSon so klein wie möglich
Also was hab ich gemacht:
Die Tabelle auf N-Kanal MOSFET von hier genommen und gefiltert.
Nach allem was mit IRL beginnt: 17 übrig
UDS >= 30V: 14 übrig
ID >= 20A: 11 übrig
Nach Preis sortiert ... Die Top2 sind: IRLZ34N oder IRLZ44N
Der IRLZ34N scheint wohl weit verbreitet, der IRLZ44N ist ein paar Cent teurer aber hat nach meinem Verständnis etwas höhere Reserven.
Lösen beide das Problem "Verlustleistung" und "ganz durchgeschaltet" tatsächlich?
GS(th) bzw. VGS(th) sollten also deutlich unter 5V sein
VGS(th) max sollten deutlich unter der Hälfte sein (sagen wir unter 2V.
Wie gesagt bei einer 12V 3W Leuchte (250mA) wird die Verlustleistung nicht sigificant höher (über 1W) wenn Du einen LL Typ oder einen nicht LL Typ MOSFET nimmst. Aber einen LL MOSFET zu hause zu haben weil man einfach den einen statt den anderen MOSFET kauft ist besser.
Nehmen wir mal den IRLZ44N für 47A und 22mOhm dann ist bei max Strom die Verlustleistung 1,034W. Da braucht es schon einen kleinen Kühlkörper. Wenn Du ihn dann für 250mA nimmst ist die Verlustleistung 5,5mW. Da merkst Du an der Temperatur gar nicht ob er eingeschaltet ist oder nicht.
uwefed:
Nehmen wir mal den IRLZ44N für 47A und 22mOhm dann ist bei max Strom die Verlustleistung 1,034W. Da braucht es schon einen kleinen Kühlkörper. Wenn Du ihn dann für 250mA nimmst ist die Verlustleistung 5,5mW. Da merkst Du an der Temperatur gar nicht ob er eingeschaltet ist oder nicht.
Klingt als sollte ich das tun
Schaltung mit eingearbeitetem Feedback:
IRLZ44N als LogicLevel MOSFET statt dem bisher verwendetem IRF520
10kOhm Widerstand vom Gate auf Masse, damit der Transistor schließt wenn der Arduino aus ist
Jupp - auf dem Steckbrett hast Du nur GND von Links nach Rechts verbunden.
Die Spannungsversorgung hast Du nur Rechts - es sei, diese Spannung ist ein Andere und der Arduino wird per USB versorgt - steht bei dem Bildchen aber nicht bei.
postmaster-ino:
Die Spannungsversorgung hast Du nur Rechts - es sei, diese Spannung ist ein Andere und der Arduino wird per USB versorgt - steht bei dem Bildchen aber nicht bei.