Cheap Hot Air Station With Arduino

28,937

116

28

Introduction: Cheap Hot Air Station With Arduino

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!

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

  • The 1000th Contest

    The 1000th Contest
  • Battery Powered Contest

    Battery Powered Contest
  • Hand Tools Only Challenge

    Hand Tools Only Challenge

28 Discussions

0
stephen.mcmxiv
stephen.mcmxiv

10 months ago

HI, I just want to ask if you can suggest alternative component of the BTA140-800. It is currently unavailable in my country. I hope you can help.

0
tiendrum32
tiendrum32

1 year 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
Ioan1959
Ioan1959

Question 1 year 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.


0
MichalV26
MichalV26

Question 1 year 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
PaulG302
PaulG302

Question 2 years 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
0
phivos
phivos

Answer 1 year 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
phivos
phivos

Reply 1 year ago

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

0
SrećkoM1
SrećkoM1

Question 1 year 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
j666gak
j666gak

2 years 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

0
springer18221
springer18221

2 years ago

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

2
Festrada007
Festrada007

Reply 2 years 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!! :)

1
Festrada007
Festrada007

2 years 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
lenink1
lenink1

Question 2 years ago on Step 6

Total cost how much...sir

0
Jean-FrançoisR9
Jean-FrançoisR9

2 years ago

For the bracket :

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

0
Jean-FrançoisR9
Jean-FrançoisR9

2 years ago

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

0
Jean-FrançoisR9
Jean-FrançoisR9

2 years ago

Bonjour,

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

0
Jean-FrançoisR9
Jean-FrançoisR9

2 years 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
AhmedE41
AhmedE41

3 years ago

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