Guten Tag,
ich bin neu im Forum und bräuchte hilfe. Ich baue zur zeit ein variables Heizbett für meinen 3D-Drucker. Ich habe eine Schaltung entworfen. Im Anhang befindet sich diese. Ich möchte über die Mosfets die platinen an bzw ausschalten. Dies soll über die PWM funktionieren. Ich habe einen tempsensor womit ich die Temp auslese und danach halt regel, indem die platte warm oder kalt werden soll. BZW Spannung anlegen oder nicht. Der Code sieht wie folgt aus.
int PT1000=A0; //PIN A0
int t=500; //Delay-Time
float sollwert =27 ; //Der Wert, der Eingestellt werden soll
/*float temperatur=0; //Variable soll zu beginn auf 0 sein
float sensorwert=0; //" " " " " " "*/
float minWert = sollwert -2; //Mindestwert
float maxWert = sollwert +2; //Maximalwert
void setup() {
analogReference(INTERNAL1V1);
Serial.begin(9600);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(4,OUTPUT); //LED GRÜN
//pinMode(5,OUTPUT); //LED ROT
//pinMode(7,OUTPUT); //SCHALTER
digitalWrite(11,LOW); // Zu Beginn auf LOW
digitalWrite(12,LOW); // Zu Beginn auf LOW
}
void loop() {
long tmp_sensorwert = 0;
for(int i = 0; i < 32; i++) {
tmp_sensorwert += analogRead(PT1000); //Auslesen des Temp-Sensors
}
float sensorwert = tmp_sensorwert / 32.0;
Serial.print("Sensor Value: ");
Serial.print(sensorwert);
float voltage = (sensorwert / 1023.0) * 1.1; //Spannungsumrechnung für den Temp-Sensor
Serial.print(", Volts: ");
Serial.print(voltage);
float temperatur = (sensorwert - 707) / (1023.0 - 707.0) * 150.0;
Serial.print(", Celsius: ");
Serial.println(temperatur);
/*int regelwert = 255 * (sollwert - temperatur) / (maxWert - minWert);
if(regelwert > 255)
regelwert = 255;
else if(regelwert < 0)
regelwert = 0;*/
// if temperature is greater then sollwert deactive the heater, this is done by activating the pin (inverted logic)
// if temperature is lower then then sollwert activate the heater, this is done by deactivating the pin (inverted logic)
//int regelwert = (temperatur > sollwert ? 255 : 0);
// 57 - 20 = 37
int deltaTemp = sollwert - temperatur;
// If deltaTemp is greater 0 we need to activate the heater, if it is lower zero we need to deactivate it
int maxDeltaTemp = 10;
int regelwert = 255;
if (deltaTemp >= maxDeltaTemp) {
regelwert = 0; // if deltaTemp is greater maxDeltaTemp then activate the heater with full power
}
else if (deltaTemp <= 0 ) {
regelwert = 255; // if deltaTemp is lower 0
}
else {
// deltaTemp = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
regelwert = 255 - map(deltaTemp, 1, maxDeltaTemp-1, 0, 255);
}
analogWrite(10, regelwert);
analogWrite(9, regelwert);
delay(t);
}
könntet ihr mir beim Code ein wenig helfen. Ist neuland für mich. Ich weis nicht ob das programm laufen wird bzw ob ich fehler drinne habe. Kann es leider momentan auch nciht überprüfen.
Wofür sind die Pins 10, 11, 12 ?
Bei analogWrite(9,255); ist die Heizung aus ?
Ich hätte als 3D-Drucker-Laie vermutet, dass zum Temperatur halten (wenn Soll = Ist) die Heizung mit kleiner Leistung laufen sollte...
Aber PWM braucht nicht unbedingt eine PID-Regelung, nur um einen I-Anteil drin zu haben, da gebe ich dir schon recht.
Ob 32 mal messen innerhalb von 3..4 ms viel bringt, wenn dein Sketch nur alle 500 ms läuft ? Aber warum nicht...
Hallo Michael,
ja genau die Heizung soll dabei aus bleiben. Also quasi das programm ist einmal invertiert. Kann erst am montag wieder alles nachprüfen und wollte wissen ob es so schon klappen könnte. Da ich 2 N-MOSFET's habe und keine P_MOSFET's hier rumliegen hatte, musste ich das programm einmal invertieren quasi. War mir halt nur nicht sicher ob es so klappen würde.
Da ich 2 N-MOSFET's habe und keine P_MOSFET's hier rumliegen hatte, musste ich das programm einmal invertieren quasi. War mir halt nur nicht sicher ob es so klappen würde.
Ich sehe es eher umgekehrt:
Durch einen N-mosfet fließt Strom, wenn am Gate eine Spannung anliegt und man schaltet zwischen Last und GND.
wofür du 2 brauchst, ist noch nicht klar. ..
Ich habe mir dabei gedacht, das wenn an dem einen Mosfet der mit dem Gate an dem Arduino ist, der strom von last nach gnd fließen soll wenn die heizplatte nicht mehr betrieben werden soll. Und dann habe ich mir gedacht wenn der mosfet nicht mit spannung versorgt wird, steigt die spannung am gate vom zweiten mosfet. Somit Schaltet er und der strom fließt sowohl über die heizplatte als auch über den zweiten mosfet andem die heizplatte an source angeschlossen ist. Falls es einfacher geht bin ich ganz ohr
schließlich habe ich mich deshalb hier angemeldet. Ich habe ein wenig nachgedacht und weis jetzt gerade nicht ob auch schon ein mosfet reichen würde.
Und dann habe ich mir gedacht wenn der mosfet nicht mit spannung versorgt wird, steigt die spannung am gate vom zweiten mosfet. Somit Schaltet er und der strom fließt sowohl über die heizplatte als auch über den zweiten mosfet andem die heizplatte an source angeschlossen ist.
Versteh ich nicht.
Nimm eine normale N-MOSFET Schaltung, oder zeichne bitte einen Plan von deiner Erfindung.
Welche Spannung/Strom braucht deine Heizplatte, was für einen MOSFET willst du verwenden ?
(Prüfe im Datenblatt, ob der MOSFET bei VGS = 5V schon ordentlich durchschaltet)
Ich habe einen kleinen Schaltplan hinzugefügt. Als N-Mosfets verwende ich diesen hier: http://www.mouser.com/ds/2/308/FQP20N06L-1120358.pdf
ist ein Logic Level Mosfet.
Ich dachte mir jetzt, da ich eine externe Stromversorgung habe, muss der Strom ja irgendwo abfließen wenn die Heizplatte ausgeschaltet ist, bzw, der zweite mosfet nicht schalten soll. Daher habe ich vor das Gate vom zweiten mosfet noch einen mosfet gesetzt, damit der strom dann über den nach GND abfließt. Zwischen Arduino und Gate von Mosfet 1 kommt noch ein Widerstand damit das board vor zu großen strömen sicher ist. Könnte man also meine Schaltung auch nur mit einem N-Mosfet realisieren? Zu beginn habe ich ja gesagt, dass ich 2 N-Mosfets verwende weshalb ich das Programm invertieren muss, da wenn der Mosfet 1 geschaltet wird, Mosfet 2 aus wäre und somit meine Schaltung bei normalem betrieb nicht funktionieren würde. Vielleicht ist es jetzt etwas deutlicher. Über jede eurer hilfen bin ich sehr dankbar.
Der Strom beträgt dabei 7,34A pro platte und die Spannung sind 12V. Jede meiner platten hat dabei einen widerstand con 1.64 ohm und eine leiterbahnlänge von 6.6m
Hi, warum willst Du den Strom 'ableiten' also verheizen, wenn die Heizplatte ausgeschaltet ist???
Wenn Du die Heitzplatte ausschalten willst, schalte den Mosfet aus und gut ist. Der Mosfet wirkt wie ein Schalter.
wenn der ausgeschaltet ist (keine Gate-Spannung), ist der Stromkreis unterbrochen und es fliesst kein Strom mehr, der irgendwohin abgeleitet werden muss. (Na ja, theoretisch, in der praxis ist es so, dass Mosfet's einen ganz kleinen Leckstrom haben, nur ist der in den meisten Fällen vernachlässigbar) so auch bei Deiner Anwendung.
Wenn du zu Hause eine Lampe an ne Steckdose anschliesst, und du brauchst das licht nicht mehr, gehst du auch nicht hin, und steckst statt der Lampe, den Stecker vom Radio in die Steckdose, damit der Strom abfliessen kann und die Steckdose nicht überladen wird!
LG Stefan
Jetzt verstehe ich deine Beschreibung:
Mosfet1 schaltet das Gate von Mosfet2 entweder LOW oder auf 12V.
Mosfet2 schaltet die Heizplatte.
Kann man machen, muss man bei dem Mosfet aus deinem Datenblatt aber nicht.
Oder soll der Sinn Sein, dass die Heizung bei ausgeschaltetem Arduino immer an ist, sobald 12V da sind ?
Wenn du deswegen invertieren, und das Gate von Mosfet2 auf mehr als 5V Logik-Level heben willst, geht das auch mit jedem kleinen NPN Bipolar-Transistor, da über den 10k Widerstand praktisch kein Strom (1mA) fliesst.
Die Heizplatte bleibt aus, wenn der arduino ausgeschaltet ist. Ich habe nur mal irgendwo aufgegriffen gehabt, dass wenn der verbraucher ausgeschaltet ist, der strom trotzdem zum GND potenzial muss und somit bröuchte ich 2 mosfets. Aber so wie ich euch verstanden habe, würde das auch mit einem mosfet direkt an dem pin ausgang vom arduino funktionieren? Dann wäre das ja praktisch und ich müsste nichts invertieren. Eine frage dann noch an euch. Über das kabel welches sowohl an die heizplatte als auch über source und drain verläuft fließt ja 7.4A. Ich habe ein 4mm^2 für auto hifi anlagen bestellt, da ich gelesen habe, dass die kleinen jumper wire solch einen strom nicht vertragen und verbrennen würden, da der Querschnitt des kabels zu gering ist. Kann ich den einfach an source und drain löten? Da die kontakte von dem mosfet ja sehr klein sind und das kabel sehr dick.
Hi HalloWelt,
für 7,4A hätte auch 1,5 mm^2 gereicht.
Aber ja, du kannst die Kabel direckt an den Mosfet löten. Bei 4mm^2 kabeln ist halt das Problem, dass Du nen Lötkolben mit hoherer Leistung oder ne sehr gute Lötstation, mit min 50W, besser etwas mehr, benötigst um die kabel ohne langes 'herumbraten' an den mossfet zu bekommen. Wenn Du da zu lange dran rumbraten musst, weil das Kabel die wärme schneller abführen kann, als der Lötkolben sie liefert, kannst Du den Mosfet verheizen (zerstören).
LG Stefan
Zwischen 4mm^2 und Signaldrähtchen gibt es ja noch was dazwischen.
1.5 mm² sollte bis 16A ok sein und wird gern in der Hausinstallation verwendet.
TO220 haben extra dickere Beinchen. Ich würde die Heizplatte und die 12V Stromversorgung über Schraubklemmen anschliessen.
Dann kommt es noch auf ausreichende Leiterbahnen zwischen Transistor und Schraubklemmen an.
Es tut mir leid michael aber ich habe das nicht so ganz verstanden was du meinst mit entsprechend vielen leiterbahnen? Und wie berechne ich wieviel der querschnitt betragen muss für eine bestimmte anzahl. An ampere? Ich wollte so etwas wie ein shield bauen das ich direkt auf den arduino stecke und meine heizbetten einfach nur dadran anschließe. Es sollen insgesamt 3 heizbetten parallel verschaltet werden die insgesamt einen gesamtstrom von ca 22 A benötigen. Ich wollte diese über die mosfets verschalten. Da die heizbetten parallel geschaltet wrden da sie verschiedene "zonen" bilden sollen, habe ich 3 temperatur sensoren. Pro heizplatte eine. Ich habe aus FR4 material meine heizbetten mit 0.035mm kupferdicke leiterbahnen drauf belichtet und dementsprechend danach geätzt und mit einer lötstoppmaske überzogen. Ich werde nun einen mosfet benutzen mitdem ich dann meine heizplatte an bzw ausschalte. Aufgrund meiner 3 heizplatten wollte ich diese an einem Kabel des netzteils anlöten. Also an der Plus klemme ein Langes kabel anschliesen und an das kabel den plus eingang der platten anschließen und an den source kontakten der mosfets dann dementsprechend minus anschließen. Ich möchte daher das so kompakt bauen wie es nur geht und meine heizbetten mit dem arduino per pwm ansteuern.
Ich meinte mit ausreichend nicht viele Leiterbahnen sondern ausreichend dicke.
Die Schraubklemmen haben z.B. Pins mit 0.9 mm Durchmesser (also ca. 0.6 mm² Querschnitt)
Nach VDE 100 ist bei 2.5 .. 16A für Schaltanlagen-Leitungen ein Mindestquerschnitt von 0.75 mm² Kupfer vorzusehen. ( So als Größenordnung )
Zum Vergleich: Eine Leiterbahn mit 2mm Breite und 35µm Dicke hat z.B. nur 0.07 mm² Querschnitt. Da würde es sich wohl empfehlen, die Dicke per Lötzinn und evtl. Zusatzkupfer etwas zu erhöhen.
Ein schlechter Kontakt mit 22A kann sehr heiss werden. Nicht dass im Betrieb das Lötzinn flüssig wird 
Ist mir in nem RC-Elektro Buggy schon passiert, als ich ein etwas zu grosses Ritzel auf dem Motor hatte (18Z statt 17Z). laut Regler-Log hat sich eine der drei Phasen am Motor bei etwa 12V/250A entlötet. Das Lot ist in den BL-Motor getropft und hat da nen Kurzschluss fabriziert, worauf sich der Regler abgeschaltet hat.
LG Stefan
Könnte ich die Schraubklemmen also nun verwenden oder nicht? Und würde die kupferplatine jetzt nicht funktionieren? Also ich habe auf die heizplatine 5A bei 12V angelegt und die platine wurde optimal warm ohne das ich irgendwelche nachteile gesehen habe. Also es fing nichts an zu schmelzen oder sonst was. Natürlich mit dem 4mm2 kabel am ein und ausgang des Heizbetts. Die schraubklemmen wären dabei von vorteil für mich. Könnte die heizplatten dann direkt in die klemmen stecken und von den klemmen aus eine verbindung zum source verlegen.
Klar könntest du solche Schraubklemmen (vorgesehen bis 13A und mit 1.5 mm² Kabel) verwenden.
Meiner Meinung nach.
Mein Einwand war: "Hängt von deiner Leiterbahn zwischen Klemmen, D, S und GND ab", da solltest du evtl.aufpassen und die 35 µm ggfls. etwas verstärken.
Hallo michael
Ich habe heute die platine mit dem 4mm2 kabel getestet und die schaltung funktioniert super. Auch die platine selber. Dann werde ich solche klemmen verwenden. Dankesehr