Controle de ferro de solda DIY para 862D +
Componentes e suprimentos
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
| × | 2 | ||||
| × | 1 |
Ferramentas e máquinas necessárias
![]() |
| |||
|
Sobre este projeto
Atualização (21/10/2019):Atualização principal do código. Leia também abaixo. Um pouco disso mudou.
Meu ferro de solda 862D + quebrou, então, em vez de comprar um novo, peguei um segundo ferro e consertei. O mais difícil é que não havia solução em outro lugar online. O PCB estava quebrado porque depois de substituir o ferro ainda dizia S-E ou erro de sensor.

Então decidi criar meu próprio circuito controlador e colocá-lo dentro. Exigia um segundo transformador, mas sendo barato, havia muito espaço dentro.


Pode não parecer bom, mas funciona perfeitamente. Como bônus, removi o botão liga / desliga do ferro de solda e o adicionei entre 5v e o arduino.
Sobre as dicas de construção:
Todas as peças podem ser compradas agora. LCSC é um site de eletrônicos em massa. O transporte é caro para a América, mas os componentes são ridiculamente baratos.
EX mosfet na Amazon $ 6, mas mosfet no LCSC 32 centavos. No entanto, itens como resistores devem ser comprados a granel. Ainda assim, 50 resistores custam literalmente 0,84 centavos.
CERTIFIQUE-SE DE PROTEGER OS FIOS DE DADOS LONGOS com folha de alumínio aterrada ou outra coisa. O fio da tela 12c, por exemplo.
No código:
1023 lava 0 mais fria. Altere o settemp de acordo com sua preferência. Algo em torno de 600 normalmente.
O controlador do ferro de solda pode detectar se o ferro está conectado ou quebrado. Se o ferro de soldar for desconectado, o arduino zera a entrada analógica. Se o ferro de soldar esquentava adequadamente, mas não esquenta agora:desconecte o ferro, espere até que diga conecte o ferro, então você está pronto para continuar. (Isso tem sido um problema para mim)
Agora você conhece os fundamentos do seu ferro. Esta pode ser uma alternativa barata à compra de um ferro de solda de qualidade. Embora existam ferros de qualidade superior, este é muito barato e faça você mesmo.
Código
- Código de controle
- O código
- Código atualizado em 21/10/2019
Código de controle C / C ++
Cole isso no arduino e faça o upload. Isso só funciona com o circuito fornecidoint output =0; int temp =0; int settemp =630; String inputString =""; // uma string para conter o databoolean de entrada rap =false; boolean stringComplete =false; // se a string está completaint t =0; void setup () {Serial.begin (9600); inputString.reserve (200); pinMode (6, SAÍDA); digitalWrite (6, LOW);} void loop () {serialEvent (); if (stringComplete) {Serial.println (inputString); t =inputString.toInt (); // settemp =t // define a temperatura definida para a entrada serial inputString =""; stringComplete =false; } rápido (); pid ();} void rapid () {// Controla o ferro de solda aquecendo-o rapidamente no início. if (rap ==false) {digitalWrite (6, HIGH); faça {temp =analogRead (0); Serial.print ("rápido"); Serial.println (temp); } while (temp - settemp> 10); digitalWrite (6, BAIXO); rap =verdadeiro; }} void pid () {// Controla a soldagem com aquecimento lento de potência ativa. temp =leitura analógica (0); output =temp - settemp; if (output <0) {output =0; } if (output> 255) {output =255; } Serial.print ("pid"); Serial.print (temp); Serial.print (","); Serial.println (saída); analogWrite (6, output);} void serialEvent () {// Comunicação serial que pode ser usada para atualizar settemp while (Serial.available ()) {char inChar =(char) Serial.read (); inputString + =inChar; if (inChar =='\ n') {stringComplete =true; }}}
O código C / C ++
Cole no editor e faça upload. Funciona apenas com o esquema projetado.#include#include #include #define OLED_ADDR 0x3CAdafruit_SSD1306 display (-1); int settemp =590; // conjunto manual de variáveisint 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; deslocamento de saída de byte =0; leitura de escala de byte =0; configuração vazia () {Serial.begin (9600); pinMode (12, SAÍDA); digitalWrite (12, BAIXO); display.begin (SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay (); display.display (); rápido ();} loop vazio () {pid (); display.clearDisplay (); barra de atualização (); updatetext (); display.display ();} void rapid () {// Controla o ferro de soldar aquecendo-o rapidamente no início. if (rap ==false) {digitalWrite (12, HIGH); saída =255; faça {temp =analogRead (0); Serial.print ("rápido"); Serial.println (temp); display.clearDisplay (); barra de atualização (); updatetext (); display.display (); } while (temp - settemp> 1); digitalWrite (12, BAIXO); rap =verdadeiro; }} void pid () {// Controla a soldagem com aquecimento lento de potência ativa. temp =leitura analógica (0); // Temp averager temp2 =temp; atraso (50); temp =leitura analógica (0); temp =temp + temp2; temp =temp / 2; zeroscale; // não ativa o verificador de ferro de solda temp =temp + outputoffset; output =temp - settemp; output =output + powermultiply; saída =saída * 4; if (output <0) {output =0; } if (output> 255) {output =255; } contador =contador + 1; if (contador> 10) {contador =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 (saída); analogWrite (12, output);} void updatebar () {// Atualiza Powerbar no display OLED mappedpower =map (output, 0, 255, 0, 127) - 10; display.fillRect (0, 0, mappedpower, 8, WHITE); display.fillRoundRect (mappedpower - 5, 0, 20, 8, 3, BRANCO);} void updatetext () {// Atualizar texto no display Oled display.setCursor (0, 9); display.setTextColor (WHITE); display.setTextSize (1); display.print ("Definir Temp:"); display.print (settemp); display.setCursor (0, 20); display.print ("Temp:"); display.print (temp);} void zeroscale () {// Se o ferro de solda estiver desconectado, ajuste o valor do pino de entrada para zerar if (output <200) {display.clearDisplay (); display.setCursor (0, 9); display.setTextColor (WHITE); display.setTextSize (1); display.print ("Sem ferro de solda ou com defeito"); display.setCursor (0, 15); display.print ("ferro."); display.setCursor (0, 20); display.print ("Teste em 5 segundos."); display.display (); atraso (5000); if (output <200) {outputoffset =temp; } display.clearDisplay (); display.setCursor (0, 9); display.setTextColor (WHITE); display.setTextSize (1); display.print ("Conjunto de deslocamento de saída."); display.setCursor (0, 20); display.print ("Conecte o ferro."); display.display (); faça {scaleread =analogRead (0); } while (scaleread <200); }}
Código atualizado em 21/10/2019 C / C ++
Cole no IDE e faça upload. Funciona apenas com shematic.#include#include #include #define OLED_ADDR 0x3CAdafruit_SSD1306 display (-1); int settemp =590; // conjunto manual de variáveisint 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; deslocamento de saída de byte =0; leitura de escala de byte =0; configuração vazia () {Serial.begin (9600); pinMode (12, SAÍDA); digitalWrite (12, BAIXO); display.begin (SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay (); display.display (); rápido ();} loop vazio () {pid (); display.clearDisplay (); barra de atualização (); updatetext (); display.display ();} void rapid () {// Controla o ferro de soldar aquecendo-o rapidamente no início. if (rap ==false) {digitalWrite (12, HIGH); saída =255; faça {temp =analogRead (0); Serial.print ("rápido"); Serial.println (temp); display.clearDisplay (); barra de atualização (); updatetext (); display.display (); } while (temp - settemp> 1); digitalWrite (12, BAIXO); rap =verdadeiro; }} void pid () {// Controla a soldagem com aquecimento lento de potência ativa. temp =leitura analógica (0); // Temp averager temp2 =temp; atraso (50); temp =leitura analógica (0); temp =temp + temp2; temp =temp / 2; zeroscale (); // não ativa o verificador de ferro de solda temp =temp + outputoffset; output =temp - settemp; output =output + powermultiply; saída =saída * 4; if (output <0) {output =0; } if (output> 255) {output =255; } contador =contador + 1; if (contador> 10) {contador =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 (saída); analogWrite (12, output);} void updatebar () {// Atualiza Powerbar no display OLED mappedpower =map (output, 0, 255, 0, 127) - 10; display.fillRect (0, 0, mappedpower, 8, WHITE); display.fillRoundRect (mappedpower - 5, 0, 20, 8, 3, BRANCO);} void updatetext () {// Atualizar texto no display Oled display.setCursor (0, 9); display.setTextColor (WHITE); display.setTextSize (1); display.print ("Definir Temp:"); display.print (settemp); display.setCursor (0, 20); display.print ("Temp:"); display.print (temp);} void zeroscale () {// Se o ferro de solda estiver desconectado, ajuste o valor do pino de entrada para zerar if (temp <200) {display.clearDisplay (); display.setCursor (0, 20); display.setTextColor (WHITE); display.setTextSize (1); display.print ("Sem ferro de solda."); display.display (); atraso (10000); display.setCursor (0, 0); display.print ("Teste em 5 segundos."); display.display (); atraso (5000); if (temp <200) {outputoffset =temp; } display.clearDisplay (); display.setCursor (0, 20); display.setTextColor (WHITE); display.setTextSize (1); display.print ("Conjunto de deslocamento de saída."); display.setCursor (0, 0); display.print ("Conecte o ferro."); display.display (); faça {scaleread =analogRead (0); } while (scaleread <200); }}
Esquemas
Use este esquema para criar um circuito para o ferro
Processo de manufatura
- Sensor de temperatura múltipla
- DIY 37 LED Roulette Game
- MotionSense
- Impressora 3D Segurança contra incêndio
- MIDI para órgãos digitais
- Levitação eletromagnética repulsiva Arduino
- Controle Remoto Gripper Bot
- Laboratório de microcontroladores
- Persistência da Visão (POV) Globo
- CoroFence - Detector Térmico🖖