Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle de ferro de solda DIY para 862D +

Componentes e suprimentos

Arduino Nano R3
× 1
Diodo Flyback normal.
× 1
irf540n n-channel mosfet
× 1
regulador linear 5v
× 1
Resistor 330 ohm
× 1
cabeçalhos de alfinetes (masculino)
× 2
0,96 polegada Oled
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)
broca 8 mm / broca w

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 fornecido
 int 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

  1. Sensor de temperatura múltipla
  2. DIY 37 LED Roulette Game
  3. MotionSense
  4. Impressora 3D Segurança contra incêndio
  5. MIDI para órgãos digitais
  6. Levitação eletromagnética repulsiva Arduino
  7. Controle Remoto Gripper Bot
  8. Laboratório de microcontroladores
  9. Persistência da Visão (POV) Globo
  10. CoroFence - Detector Térmico🖖