Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Contrôle de fer à souder DIY pour 862D+

Composants et fournitures

Arduino Nano R3
× 1
Diode Flyback normale.
× 1
irf540n n-channel mosfet
× 1
Régulateur linéaire 5v
× 1
Résistance 330 ohm
× 1
en-têtes de broche (mâle)
× 2
.96 pouces Oled
× 1

Outils et machines nécessaires

Fer à souder (générique)
Mèche de 8 mm/avec perceuse

À propos de ce projet

Mise à jour (21/10/2019) :mise à jour majeure du code. Lisez également ci-dessous. Cela a un peu changé.

Mon fer à souder 862D+ est tombé en panne, alors au lieu d'en acheter un nouveau, j'ai pris un deuxième fer et l'ai réparé. Le plus dur, c'est qu'il n'y avait pas de solution ailleurs en ligne. Le PCB était cassé car après avoir remplacé le fer, il était toujours indiqué S-E ou erreur de capteur.

J'ai donc décidé de créer mon propre circuit de contrôleur et de le mettre à l'intérieur. Cela nécessitait un deuxième transformateur mais étant bon marché, il y avait beaucoup de place à l'intérieur.

Cela n'a peut-être pas l'air bien, mais cela fonctionne comme un charme. En bonus, j'ai retiré le bouton power du fer à souder, et l'ai ajouté entre 5v et l'arduino.

Sur les conseils de construction :

Toutes les pièces peuvent être achetées maintenant. LCSC est un site d'électronique en vrac. L'expédition est chère en Amérique, mais les composants sont ridiculement bon marché.

EX mosfet sur Amazon 6 $ mais mosfet sur LCSC 32 cents. Cependant, des choses comme les résistances doivent être achetées en gros. Pourtant, 50 résistances valent littéralement 0,84 cent.

ASSUREZ-VOUS DE PROTÉGER LES LONGS FILS DE DONNÉES avec du papier d'aluminium mis à la terre ou autre chose. Le fil de blindage 12c par exemple.

Dans le code :

1023 laves les plus froides. Modifiez le settemp à votre guise. Quelque part environ 600 généralement.

Le contrôleur de fer à souder peut détecter si votre fer est connecté ou cassé. Si le fer à souder est déconnecté, l'arduino mettra à zéro l'entrée analogique. Si le fer à souder avait l'habitude de chauffer correctement, mais qu'il ne le fait pas maintenant :débranchez le fer, attendez qu'il soit indiqué de brancher le fer, alors vous êtes prêt à partir. (Cela a été un problème pour moi)

Vous connaissez maintenant les bases de votre fer à repasser. Cela peut être une alternative bon marché à l'achat d'un fer à souder de qualité. Bien qu'il existe des fers de meilleure qualité, celui-ci est très bon marché et fait maison.

Code

  • Code de contrôle
  • Le Code
  • Code mis à jour le 21/10/2019
Code de contrôleC/C++
Collez-le dans l'arduino et téléchargez-le. Cela ne fonctionne qu'avec le circuit fourni
int output =0;int temp =0;int settemp =630;String inputString =""; // une chaîne pour contenir les données entrantesboolean rap =false;boolean stringComplete =false; // si la chaîne est complèteint t =0;void setup() { Serial.begin(9600); inputString.reserve(200); pinMode (6, SORTIE); digitalWrite(6, LOW);}void loop() { serialEvent(); if (stringComplete) { Serial.println(inputString); t =inputString.toInt(); //settemp =t //définit la température définie sur l'entrée série inputString =""; stringComplete =false; } rapide(); pid();}void rapid() { //Contrôle le fer à souder en le chauffant rapidement au début. if (rap ==false) { digitalWrite (6, HIGH); do { temp =analogRead(0); Serial.print("rapide"); Serial.println(temp); } while (temp - settemp>
 10); digitalWrite (6, FAIBLE); rap =vrai; }}void pid() { //Contrôle la soudure avec un chauffage à puissance active lente. temp =analogRead(0); sortie =temp - settemp; if (sortie <0) { sortie =0; } if (sortie> 255) { sortie =255; } Serial.print("pid"); Serial.print(temp); Serial.print(", "); Serial.println(sortie); analogWrite (6, sortie);} void serialEvent() { // Communication série pouvant être utilisée pour mettre à jour settemp while (Serial.available()) { char inChar =(char)Serial.read(); chaîne d'entrée +=inChar; if (inChar =='\n') { stringComplete =true; } }}
Le CodeC/C++
Collez dans l'éditeur et téléchargez. Fonctionne uniquement avec le schéma conçu.
#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 outputoffset =0;byte scaleread =0;void setup() { Serial.begin(9600); pinMode(12, SORTIE); digitalWrite(12, LOW); display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); display.display(); rapid();}boucle vide() { pid(); display.clearDisplay(); barre de mise à jour (); updatetext(); display.display();}void rapid() { //Contrôle le fer à souder en le chauffant rapidement au début. if (rap ==false) { digitalWrite(12, HIGH); sortie =255 ; do { temp =analogRead(0); Serial.print("rapide"); Serial.println(temp); display.clearDisplay(); barre de mise à jour (); updatetext(); display.display(); } while (temp - settemp>
 1); digitalWrite(12, LOW); rap =vrai; }}void pid() { //Contrôle la soudure avec un chauffage à puissance active lente. temp =analogRead(0); //Temp moyenneur temp2 =temp; retard (50); temp =analogRead(0); temp =temp + temp2; temp =temp / 2; échelle zéro ; //activer pas de vérificateur de fer à souder temp =temp + outputoffset; sortie =temp - settemp; sortie =sortie + multiplicateur de puissance ; sortie =sortie * 4 ; if (sortie <0) { sortie =0; } if (sortie> 255) { sortie =255; } compteur =compteur + 1; if (compteur> 10) { compteur =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(sortie); analogWrite(12, sortie);}void updatebar() { //Mise à jour la barre d'alimentation sur l'affichage OLED mappedpower =map(output, 0, 255, 0, 127) - 10 ; display.fillRect(0, 0, mappedpower, 8, WHITE); display.fillRoundRect(mappedpower - 5, 0, 20, 8, 3, WHITE);}void updatetext() {//Mettre à jour le texte sur l'affichage Oled display.setCursor(0, 9); display.setTextColor(BLANC); display.setTextSize(1); display.print("Définir la température :"); display.print(settemp); display.setCursor(0, 20); display.print("Temp:"); display.print(temp);}void zeroscale() { //Si le fer à souder est débranché, ajustez la valeur de la broche d'entrée pour la mettre à zéro if (output <200) { display.clearDisplay(); display.setCursor(0, 9); display.setTextColor(BLANC); display.setTextSize(1); display.print("Pas de fer à souder ou défectueux"); display.setCursor(0, 15); display.print("fer."); display.setCursor(0, 20); display.print("Test en 5 secondes."); display.display(); retard (5000); if (sortie <200) { outputoffset =temp; } display.clearDisplay(); display.setCursor(0, 9); display.setTextColor(BLANC); display.setTextSize(1); display.print("Décalage de sortie défini."); display.setCursor(0, 20); display.print("Veuillez brancher le fer."); display.display(); do { scaleread =analogRead(0); } while (scaleread <200); }}
Code mis à jour le 21/10/2019C/C++
Collez dans IDE et téléchargez. Fonctionne uniquement avec 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 outputoffset =0;byte scaleread =0;void setup() { Serial.begin(9600); pinMode(12, SORTIE); digitalWrite(12, LOW); display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); display.display(); rapid();}boucle vide() { pid(); display.clearDisplay(); barre de mise à jour (); updatetext(); display.display();}void rapid() { //Contrôle le fer à souder en le chauffant rapidement au début. if (rap ==false) { digitalWrite(12, HIGH); sortie =255 ; do { temp =analogRead(0); Serial.print("rapide"); Serial.println(temp); display.clearDisplay(); barre de mise à jour (); updatetext(); display.display(); } while (temp - settemp>
 1); digitalWrite(12, LOW); rap =vrai; }}void pid() { //Contrôle la soudure avec un chauffage à puissance active lente. temp =analogRead(0); //Temp moyenneur temp2 =temp; retard (50); temp =analogRead(0); temp =temp + temp2; temp =temp / 2; zeroscale(); //activer pas de vérificateur de fer à souder temp =temp + outputoffset; sortie =temp - settemp; sortie =sortie + multiplicateur de puissance ; sortie =sortie * 4 ; if (sortie <0) { sortie =0; } if (sortie> 255) { sortie =255; } compteur =compteur + 1; if (compteur> 10) { compteur =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(sortie); analogWrite(12, sortie);}void updatebar() { //Mise à jour la barre d'alimentation sur l'affichage OLED mappedpower =map(output, 0, 255, 0, 127) - 10 ; display.fillRect(0, 0, mappedpower, 8, WHITE); display.fillRoundRect(mappedpower - 5, 0, 20, 8, 3, WHITE);}void updatetext() {//Mettre à jour le texte sur l'affichage Oled display.setCursor(0, 9); display.setTextColor(BLANC); display.setTextSize(1); display.print("Définir la température :"); display.print(settemp); display.setCursor(0, 20); display.print("Temp:"); display.print(temp);}void zeroscale() { //Si le fer à souder est débranché, ajustez la valeur de la broche d'entrée pour la mettre à zéro if (temp <200) { display.clearDisplay(); display.setCursor(0, 20); display.setTextColor(BLANC); display.setTextSize(1); display.print("Pas de fer à souder."); display.display(); retard (10000); display.setCursor(0, 0); display.print("Test en 5 secondes."); display.display(); retard (5000); if (temp <200) { outputoffset =temp; } display.clearDisplay(); display.setCursor(0, 20); display.setTextColor(BLANC); display.setTextSize(1); display.print("Décalage de sortie défini."); display.setCursor(0, 0); display.print("Connectez le fer."); display.display(); do { scaleread =analogRead(0); } while (scaleread <200); }}

Schémas

Utilisez ce schéma pour créer un circuit pour le fer

Processus de fabrication

  1. Capteur de température multiple
  2. Jeu de roulette DIY 37 LED
  3. MotionSense
  4. Sécurité incendie des imprimantes 3D
  5. MIDI pour orgues numériques
  6. Lévitation électromagnétique répulsive Arduino
  7. bot de préhension de la télécommande
  8. Laboratoire de microcontrôleurs
  9. CoroFence - Détecteur thermique🖖