Cheap Hot Air Station With Arduino

20,330

105

27

first , it's my first instructable and i'm not native in english so be gentle

I had an idea weeks ago , build a hot air station for cheap , very cheap , i don't need a big stuff just a little station for few soldering.

i've find on ebay the 858 hot air station but to expensive for me, so i just buy the handle for 8 euros! and i have built a circuit with a arduino to control this handle.

lets go!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Study the Handle !

The handle comes with 8 pins:

2 wires for the heater , it works with 220v ac ( i dont know for 110v) it is the grey and the white wire.

2 wires for the 24v dc fan plus is blue ans gnd is brown

1 wire for the reed switch the green

1 wire for the earth the yellow

2 wire for the thermocouple red (plus ) and black

now how to control this?

i will separate in section the rest of the project

first the heating

Step 2: The Heating Control

the objectif is realy simple : start and stop the heating with a logic command of 5v .

But we can't do that with 220 vac easily the solution : a triac and an optocoupler,

tric is like a relay but static , it is control by an optocoupler to secure the rest of the circuit.

it is done here with a moc3063 and BTA140-800

Step 3: The Fan Control

the fan works with a 24vdc, it must be activated always when the gun is hot .

we have two commands: the first is to power on the fan with the arduino it's a simple transistor . the second is a potentiometer to control the speed .

note: here the components are not the best, i take what a had in stock and it works great!

Step 4: The Arduino

the arduino nano control all the things,

to measure the temperature i used a module with a max 6675 connect directly to the thermocoupler of the handle,

the max6675 is connect by spi to the arduino and the supply library is very simple to use.

I put 2 push buttons to control the temperature and a lcd , the lcd is control by i2C it's overkill but i only had this in stock so i used it!

there is a led wich is lighting when the heater is on

to conclude the arduino is connect to my card build earlier.

Step 5: The Code:

My code is the simplest possible:

first: i don't implement for the moment the reed use when you put-on the station the gun is always on!

then we read the temperature if it is lower than the consigne the heater is put on , and stop when it reach the goal !

with the two button you adjust the temperature.

that's all.

Off course it's not perfect but i thought it would be a good starting point for all the beginner in electronic.

Step 6: The Final

what's next?

in the future i would like to add the reed switch support , ( i've ordered in china the handle support) and most important the pid for the temperature management,

if you'd like to implement fonctions please be free and contact me , i will be very happy to test it!

4 People Made This Project!

Recommendations

  • CNC Contest

    CNC Contest
  • Make it Move

    Make it Move
  • Teacher Contest

    Teacher Contest

27 Discussions

0
None
tiendrum32

15 days ago

“Hey, I’ve got this error message, please help me.”
Arduino: 1.8.9 (Windows 10), Board: "Arduino/Genuino Uno"
hot_air_gun_station_V1.0:8:31: error: LiquidCrystal_I2C.h: No such file or directory
compilation terminated.
exit status 1
LiquidCrystal_I2C.h: No such file or directory
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

0
None
Ioan1959

Question 7 weeks ago on Step 5

Hello!

I do not know the programming and fail to compile the following code:


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <max6675.h>
// Initialize the MAX6675 Library for our chip
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
int chauffe;
int vent;
int plus;
int moins;
int led;
int temperature;
int etatboutonplus;
int etatboutonmoins;
int reed;
int CS = 5; // CS pin on MAX6675
int SO = 4; // SO pin of MAX6675
int aSCK = 6; // SCK pin of MAX6675
int units = 1; // Units to readout temp (0 = raw, 1 = ˚C, 2 = ˚F)
float temperaturemesure = 0.0; // Temperature output variable
MAX6675 temp(CS,SO,aSCK,units);
void setup()
{
temperature=200;
chauffe= 13;
vent=12;
plus=11;
moins=7;
led=3;
reed=2;
pinMode(chauffe, OUTPUT);
pinMode(vent, OUTPUT);
pinMode(plus, INPUT_PULLUP);
pinMode(moins, INPUT_PULLUP);
pinMode(led, OUTPUT);
pinMode(reed, INPUT_PULLUP);
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Station a ");
lcd.setCursor(3,1);
lcd.print("air chaud ");
delay(1500);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Marmotte 2017");
lcd.setCursor(3,1);
lcd.print("Version 1 ");
delay(1500);
}
void loop()
{
temperaturemesure = temp.read_temp();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Reglage: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print(temperaturemesure);
if (digitalRead (5) == LOW)
{
digitalWrite(led, LOW);
lcd.setCursor(0,1);
lcd.print("Station en pause");
}
else {
if (temperaturemesure <= temperature)
{
digitalWrite(chauffe, HIGH);
digitalWrite(led, HIGH);
digitalWrite(vent, HIGH);
}
else {
digitalWrite(chauffe, LOW);
digitalWrite(led, LOW);
digitalWrite(vent, HIGH);
}
}
if (digitalRead (11) == LOW)
{
temperature=temperature+10;
}
else {
}
if (digitalRead (7) == LOW)
{
temperature=temperature-10;
}
else {
}
delay(100);
}


And his is the error:


<Arduino: 1.8.7 (Windows 10), Board: "Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)"
pistolet_a_air_chaud:30:30: error: no matching function for call to 'MAX6675::MAX6675(int&, int&, int&, int&)'
MAX6675 temp(CS,SO,aSCK,units);
^
In file included from C:\Users\harba\OneDrive\Documents\libraries\pistolet_a_air_chaud\pistolet_a_air_chaud.ino:4:0:
C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library-1.0.1/max6675.h:12:3: note: candidate: MAX6675::MAX6675(int8_t, int8_t, int8_t)
MAX6675(int8_t SCLK, int8_t CS, int8_t MISO);
^
C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library-1.0.1/max6675.h:12:3: note: candidate expects 3 arguments, 4 provided
C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library-1.0.1/max6675.h:10:7: note: candidate: constexpr MAX6675::MAX6675(const MAX6675&)
class MAX6675 {
^
C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library-1.0.1/max6675.h:10:7: note: candidate expects 1 argument, 4 provided
C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library-1.0.1/max6675.h:10:7: note: candidate: constexpr MAX6675::MAX6675(MAX6675&&)
C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library-1.0.1/max6675.h:10:7: note: candidate expects 1 argument, 4 provided
C:\Users\harba\OneDrive\Documents\libraries\pistolet_a_air_chaud\pistolet_a_air_chaud.ino: In function 'void loop()':
pistolet_a_air_chaud:66:28: error: 'class MAX6675' has no member named 'read_temp'
temperaturemesure = temp.read_temp();
^
Multiple libraries were found for "max6675.h"
Used: C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library-1.0.1
Not used: C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675_library
Not used: C:\Users\harba\OneDrive\Documents\libraries\libraries\MAX6675-library-master
exit status 1
no matching function for call to 'MAX6675::MAX6675(int&, int&, int&, int&)'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


1 answer
0
None
MichalV26

Question 5 months ago on Step 1

Can you please advise me where the switch is located at the marked location in the picture?
Thank you Michal

F3NBLXFJ6748BRL.LARGE.jpg
0
None
PaulG302

Question 12 months ago

Hello, I'm having problems loading the program in arduino.

This error occurs:

In file included from D:\Hot air station\pistolet_a_air_chaud\pistolet_a_air_chaud.ino:5:0:

C:\Users\CNC\Documents\Arduino\libraries\MAX6675-library-master/MAX6675.h:10:7: error: redefinition of 'class MAX6675'

class MAX6675 {

^

In file included from D:\Hot air station\pistolet_a_air_chaud\pistolet_a_air_chaud.ino:1:0:

C:\Users\CNC\Documents\Arduino\libraries\MAX6675-library-master/max6675.h:10:7: error: previous definition of 'class MAX6675'

class MAX6675 {

^

pistolet_a_air_chaud:30: error: conflicting declaration 'MAX6675 temperaturemesure'

MAX6675 temperaturemesure(CS,SO,aSCK,units);

^

D:\Hot air station\pistolet_a_air_chaud\pistolet_a_air_chaud.ino:27:7: note: previous declaration as 'float temperaturemesure'

float temperaturemesure = 0.0; // Temperature output variable

^

D:\Hot air station\pistolet_a_air_chaud\pistolet_a_air_chaud.ino: In function 'void loop()':

pistolet_a_air_chaud:66: error: 'temp' was not declared in this scope

temperaturemesure = temp.read_temp();

^

Using library MAX6675-library-master at version 1.0.0 in folder: C:\Users\CNC\Documents\Arduino\libraries\MAX6675-library-master

Using library Wire at version 1.0 in folder: C:\Users\CNC\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21\libraries\Wire

Using library LiquidCrystal_I2C at version 1.1.2 in folder: C:\Users\CNC\Documents\Arduino\libraries\LiquidCrystal_I2C

exit status 1

conflicting declaration 'MAX6675 temperaturemesure'

I do not know programming.

Can you help me?

Eroare.png
2 answers
0
None
phivosPaulG302

Answer 6 months ago

First. You can’t call two “variables” the same thing. Rename either the “float temperaturemesure” or the “MAX6675 temperaturemesure”... temperaturemesure is the name of the variables the code is creating. Rename one of those “temperaturemesure” to something else.

0
None
phivosphivos

Reply 6 months ago

You may need to send me the code and I can help you...

0
None
SrećkoM1

Question 8 months ago

Dear friend please help .How to connected this hot air gun(858,8858D,878A,878) on pcb board 858D.My hot air gun it s 858 but pcb board it s 858D.
I have orange, blue, brown, green, white, black, red and yellow wire ( hot gun 858)
Please.....

Screenshot_7.jpgScreenshot_9.jpg
0
None
j666gak

1 year ago

Hello. I really like the project, thank you.

I want to build, but I think I would like to see the reed switch and PID support; have you managed to try this yet?

Thanks, well done

1 reply
0
None
springer18221

1 year ago

Hot air stations are going for $30 shipping included on ebay. Too cheap

1 reply
1
None
Festrada007springer18221

Reply 1 year ago

But where is the fun in just buying one, this place is for makers and celebrating ingenuity and self-sufficiency. So be nice to everyone, we are here to learn how to make things, not shop for the lowest price. So have fun and make something!! :)

0
None
Festrada007

1 year ago

What a wonderful Instructable, and great use of English. The minor grammatical mistakes add an endearing touch. Like Typing with an accent, it adds uniqueness and highlights the diversity of our group here. Thank you so much for sharing your knowledge and project with us. :)

0
None
lenink1

Question 1 year ago on Step 6

Total cost how much...sir

0
None
Jean-FrançoisR9

1 year ago

For the bracket :

https://www.aliexpress.com/snapshot/0.html?orderId=505220000599384&productId=32793701852

0
None
Jean-FrançoisR9

1 year ago

En ligne 45 le remplacement de lcd.init() par lcd.begin() résout le blocage pour ma configuration. Tout fonctionne.

0
None
Jean-FrançoisR9

1 year ago

Bonjour,

Des pb liés je pense à la bibliothèque LiquidCrystal I2C la ligne 45 lcd.int() est rejetée...

0
None
Jean-FrançoisR9

1 year ago

Bonjour,

des soucis avec la librairie Arduino LiquidCrystalI2C et MAX6675, une aide si c'est possible, il ne me reste plus que la prog du Nano à faire.

Cordialement

0
None
AhmedE41

1 year ago

hello sir my max6675 read very strange value like 300 , 600 & 700 while heater on and only read correct if heater is off

0
None
edusertorio

2 years ago

ERRATA: HOT GUN ~US$18.00 => ~ R$60 (BRL)
https://pt.aliexpress.com/item/Hot-Air-Gun-Desolder-Heater-Handle-For-858-8858D-878A-878-SMD-Rework-Soldering-Station-5pcs/32750653353.html?spm=a2g03.10010108.1000016.1.3c744047SWbMqa&isOrigTitle=true