Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

DIY Lötkolbensteuerung für 862D+

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
Normale Flyback-Diode.
× 1
irf540n n-Kanal-Mosfet
× 1
5-V-Linearregler
× 1
Widerstand 330 Ohm
× 1
Stiftleisten (männlich)
× 2
0,96 Zoll Oled
× 1

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)
8-mm-Bohrer /w Bohrer

Ü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 bereitgestellt
int 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

  1. Multi-Temperatursensor
  2. DIY 37 LED-Roulette-Spiel
  3. MotionSense
  4. 3D-Drucker Brandschutz
  5. MIDI für digitale Orgeln
  6. Arduino Repulsive Electromagnetic Levitation
  7. Greifer-Bot mit Fernbedienung
  8. Mikrocontroller-Labor
  9. Persistenz der Vision (POV) Globe
  10. CoroFence - Wärmedetektor🖖