DIY Lötkolbensteuerung für 862D+
Komponenten und Verbrauchsmaterialien
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 2 | ||||
| × | 1 |
Notwendige Werkzeuge und Maschinen
![]() |
| |||
|
Über dieses Projekt
Update (21.10.2019):Großes Update des Codes. Lesen Sie auch unten. Ein bisschen davon hat sich geändert.
Mein 862D+ Lötkolben ist kaputt gegangen, also habe ich, anstatt einen neuen zu kaufen, einen zweiten Lötkolben genommen und ihn repariert. Das Schwierigste daran ist, dass es an anderer Stelle online keine Lösung gab. Die Platine war kaputt, weil nach dem Austausch des Bügeleisens immer noch S-E oder Sensorfehler angezeigt wurde.

Also beschloss ich, meine eigene Controller-Schaltung zu erstellen und sie hineinzustopfen. Es erforderte einen zweiten Transformator, aber da es billig war, war viel Platz im Inneren.


Es sieht vielleicht nicht gut aus, aber es funktioniert wie ein Zauber. Als Bonus habe ich den Netzschalter des Lötkolbens entfernt und zwischen 5 V und dem Arduino hinzugefügt.
Zu den Bautipps:
Alle Teile können ab sofort gekauft werden. LCSC ist eine Massenelektronik-Site. Der Versand nach Amerika ist teuer, aber die Komponenten sind lächerlich günstig.
EX-Mosfet bei Amazon $6, aber Mosfet bei LCSC 32 Cent. Dinge wie Widerstände müssen jedoch in großen Mengen gekauft werden. Trotzdem sind 50 Widerstände buchstäblich 0,84 Cent.
STELLEN SIE SICHER, LANGE DATENKABEL mit geerdeter Aluminiumfolie oder etwas anderem abzuschirmen. Der 12c-Schirmdraht zum Beispiel.
Im Code:
1023 kälteste 0 Lava. Ändern Sie die Settemp nach Ihren Wünschen. Etwa 600 normalerweise.
Der Lötkolben-Controller kann erkennen, ob Ihr Bügeleisen angeschlossen oder defekt ist. Wenn der Lötkolben getrennt wird, wird das Arduino den analogen Eingang auf Null setzen. Wenn der Lötkolben früher richtig aufgeheizt hat, jetzt aber nicht:Lötkolben abklemmen, warten bis Lötkolben einstecken steht, dann kann es losgehen. (Dies war ein Problem für mich)
Jetzt kennen Sie die Grundlagen Ihres Bügeleisens. Dies kann eine günstige Alternative zum Kauf eines hochwertigen Lötkolbens sein. Es gibt zwar qualitativ hochwertigere Eisen, aber dieses ist sehr billig und selbstgemacht.
Code
- Kontrollcode
- Der Kodex
- Code aktualisiert 21.10.2019
SteuercodeC/C++
Fügen Sie dies in das Arduino ein und laden Sie es hoch. Dies funktioniert nur mit der Schaltung bereitgestelltint output =0;int temp =0;int settemp =630;String inputString =""; // eine Zeichenfolge für eingehende Datenboolean rap =false;boolean stringComplete =false; // ob die Zeichenfolge vollständig istint t =0;void setup () { Serial.begin (9600); inputString.reserve(200); pinMode(6, AUSGANG); digitalWrite(6, LOW);}void loop() { serialEvent(); if (stringComplete) { Serial.println (inputString); t =inputString.toInt(); //settemp =t //setzt die eingestellte Temperatur auf den seriellen Eingang inputString =""; stringComplete =false; } schnell(); pid();}void rapid() { // Steuert den Lötkolben durch schnelles Aufheizen am Anfang. if (rap ==false) { digitalWrite (6, HIGH); do {temp =analogRead(0); Serial.print ("schnell"); Serial.println (temp); } while (temp - settemp> 10); digitalWrite(6, LOW); rap =wahr; }}void pid() { // Steuert das Löten mit langsamer aktiver Leistungserwärmung. temp =analogRead(0); Ausgang =Temp - Solltemp; wenn (Ausgabe <0) { Ausgabe =0; aufrechtzuerhalten. Wenn (Ausgabe> 255) {Ausgabe =255; } Serial.print ("pid"); Serial.print (temp); Serial.print (", "); Serial.println (Ausgabe); analogWrite(6, Ausgabe);}void serialEvent() { //Serielle Kommunikation, die verwendet werden kann, um settemp zu aktualisieren while (Serial.available()) { char inChar =(char)Serial.read(); inputString +=inChar; if (inChar =='\n') { stringComplete =true; } }}
Der CodeC/C++
In Editor einfügen und hochladen. Funktioniert nur mit entworfenem Schaltplan.#include#include #include #define OLED_ADDR 0x3CAdafruit_SSD1306 display(-1);int settemp =590; //manual set variablesint output =0;int temp =0;String inputString ="";boolean rap =false;boolean stringComplete =false;int t =0;int mappedpower =0;byte powermultiply =0;long counter =0; int temp2 =0;Byte Ausgabeoffset =0;Byte scaleread =0;void setup () { Serial.begin (9600); pinMode(12, AUSGANG); digitalWrite(12, LOW); display.begin (SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); display.display(); rapid();}void loop() { pid(); display.clearDisplay(); updatebar(); updatetext(); display.display();}void rapid() { // Steuert den Lötkolben durch schnelles Aufheizen am Anfang. if (rap ==false) { digitalWrite (12, HIGH); Ausgang =255; do {temp =analogRead(0); Serial.print ("schnell"); Serial.println (temp); display.clearDisplay(); updatebar(); updatetext(); display.display(); } while (temp - settemp> 1); digitalWrite(12, LOW); rap =wahr; }}void pid() { // Steuert das Löten mit langsamer aktiver Leistungserwärmung. temp =analogRead(0); // Temperaturmittelwerter temp2 =temp; Verzögerung (50); temp =analogRead(0); temp =temp + temp2; Temperatur =Temperatur / 2; Nullskala; // Aktivieren Sie keinen Lötkolben-Checker temp =temp + outputoffset; Ausgang =Temp - Solltemp; Leistung =Leistung + Leistung multiplizieren; Ausgang =Ausgang * 4; wenn (Ausgabe <0) { Ausgabe =0; aufrechtzuerhalten. Wenn (Ausgabe> 255) {Ausgabe =255; } Zähler =Zähler + 1; wenn (Zähler> 10) {Zähler =0; if (temp> settemp + 3) { powermultiply =powermultiply + 1; } if (temp 0) { powermultiply =powermultiply - 1; }} Serial.print (powermultiply); Serial.print (", "); Serial.print (temp); Serial.print (", "); Serial.println (Ausgabe); analogWrite (12, Ausgang);}void updatebar () {// Aktualisiert Powerbar auf dem OLED-Display mappedpower =map(output, 0, 255, 0, 127) - 10; display.fillRect(0, 0, zugeordnete Leistung, 8, WEISS); display.fillRoundRect (mappedpower - 5, 0, 20, 8, 3, WHITE);}void updatetext() {//Text auf dem Oled-Display aktualisieren display.setCursor (0, 9); display.setTextColor (WEISS); display.setTextSize(1); display.print("Temp. einstellen:"); display.print (settemp); display.setCursor(0, 20); display.print("Temp:"); display.print (temp);}void zeroscale () {// Wenn der Lötkolben nicht angeschlossen ist, stellen Sie den Eingangs-Pin-Wert auf Null ein, wenn (Ausgang <200) { Display.clearDisplay (); display.setCursor(0, 9); display.setTextColor (WEISS); display.setTextSize(1); display.print ("Kein Lötkolben oder defekt"); display.setCursor(0, 15); display.print("Eisen."); display.setCursor(0, 20); display.print("Testen in 5 Sekunden."); display.display(); Verzögerung (5000); if (output <200) {outputoffset =temp; } display.clearDisplay(); display.setCursor(0, 9); display.setTextColor (WEISS); display.setTextSize(1); display.print("Ausgabe-Offset eingestellt."); display.setCursor(0, 20); display.print("Bitte stecken Sie das Bügeleisen ein."); display.display(); do { scaleread =analogRead (0); } while (scaleread <200); }}
Code aktualisiert 21.10.2019C/C++
IDE einfügen und hochladen. Funktioniert nur mit shematic.#include#include #include #define OLED_ADDR 0x3CAdafruit_SSD1306 display(-1);int settemp =590; //manual set variablesint output =0;int temp =0;String inputString ="";boolean rap =false;boolean stringComplete =false;int t =0;int mappedpower =0;byte powermultiply =0;long counter =0; int temp2 =0;Byte Ausgabeoffset =0;Byte scaleread =0;void setup () { Serial.begin (9600); pinMode(12, AUSGANG); digitalWrite(12, LOW); display.begin (SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); display.display(); rapid();}void loop() { pid(); display.clearDisplay(); updatebar(); updatetext(); display.display();}void rapid() { // Steuert den Lötkolben durch schnelles Aufheizen am Anfang. if (rap ==false) { digitalWrite (12, HIGH); Ausgang =255; do {temp =analogRead(0); Serial.print ("schnell"); Serial.println (temp); display.clearDisplay(); updatebar(); updatetext(); display.display(); } while (temp - settemp> 1); digitalWrite(12, LOW); rap =wahr; }}void pid() { // Steuert das Löten mit langsamer aktiver Leistungserwärmung. temp =analogRead(0); // Temperaturmittelwerter temp2 =temp; Verzögerung (50); temp =analogRead(0); temp =temp + temp2; Temperatur =Temperatur / 2; Nullskala(); // Aktivieren Sie keinen Lötkolben-Checker temp =temp + outputoffset; Ausgang =Temp - Solltemp; Leistung =Leistung + Leistung multiplizieren; Ausgang =Ausgang * 4; wenn (Ausgabe <0) { Ausgabe =0; aufrechtzuerhalten. Wenn (Ausgabe> 255) {Ausgabe =255; } Zähler =Zähler + 1; wenn (Zähler> 10) {Zähler =0; if (temp> settemp + 3) { powermultiply =powermultiply + 1; } if (temp 0) { powermultiply =powermultiply - 1; }} Serial.print (powermultiply); Serial.print (", "); Serial.print (temp); Serial.print (", "); Serial.println (Ausgabe); analogWrite (12, Ausgang);}void updatebar () {// Aktualisiert Powerbar auf dem OLED-Display mappedpower =map(output, 0, 255, 0, 127) - 10; display.fillRect(0, 0, zugeordnete Leistung, 8, WEISS); display.fillRoundRect (mappedpower - 5, 0, 20, 8, 3, WHITE);}void updatetext() {//Text auf dem Oled-Display aktualisieren display.setCursor (0, 9); display.setTextColor (WEISS); display.setTextSize(1); display.print("Temp. einstellen:"); display.print (settemp); display.setCursor(0, 20); display.print("Temp:"); display.print (temp);}void zeroscale () {// Wenn der Lötkolben nicht angeschlossen ist, stellen Sie den Eingangs-Pin-Wert auf Null ein, wenn (temp <200) { display.clearDisplay (); display.setCursor(0, 20); display.setTextColor (WEISS); display.setTextSize(1); display.print("Kein Lötkolben."); display.display(); Verzögerung (10000); display.setCursor(0, 0); display.print("Testen in 5 Sekunden."); display.display(); Verzögerung (5000); if (temp <200) { outputoffset =temp; } display.clearDisplay(); display.setCursor(0, 20); display.setTextColor (WEISS); display.setTextSize(1); display.print("Ausgabe-Offset eingestellt."); display.setCursor(0, 0); display.print("Bügeleisen anschließen."); display.display(); do { scaleread =analogRead (0); } while (scaleread <200); }}
Schaltpläne
Verwenden Sie dieses Schema, um einen Stromkreis für das Bügeleisen zu erstellen
Herstellungsprozess