Contrôleur fer à souder Hakko 907 v2 : Projet Arduino DIY
Composants nécessaires
| Composant | Quantité | Notes |
|---|---|---|
| Manche Hakko 907 (thermocouple ou thermistance) | 1 | Vérifier type capteur avant câblage |
| Prise aviation 5 broches (GX16-5 ou GX12-5) | 1 | Remplace la prise d'origine |
| Convertisseur DC-DC (buck) 24V → 5V | 1 | Alimente l'Arduino |
| Arduino Nano R3 | 1 | |
| Écran LCD 8x2 (ou 16x2 via sketch alternatif) | 1 | Affichage 2 lignes |
| Ampli-op MCP602 (rail-to-rail) | 1 | Précision lecture capteur |
| MOSFET IRFZ44N | 1 | Commande puissance résistance |
| Diode récupération rapide FR107 | 1 | Protection MOSFET (freinage) |
| Transistors NPN + PNP (driver MOSFET) | 1+1 | Ex: 2N2222 / 2N2907 - commande rapide grille |
| Encodeur rotatif + bouton | 1 | Réglage + navigation menus |
| Condensateur 1000 µF 35V | 1 | Découplage entrée 24V (démarrage résistance froide) |
| Condensateurs 100 nF, résistances (1k, 10k, 100k, 330, 470, 39, 33k...) | Selon BOM | Voir liste détaillée |
| Potentiomètres multi-tours : 10k (offset) + 500k (gain) | 1+1 | Réglage ampli-op |
| Buzzer | 1 | Signaux sonores |
Caractéristiques principales
- Compatible manches Hakko 907 à thermocouple OU thermistance (sélection par jumpers JP1/JP2)
- Régulation PID : montée ~30s, maintien ±1-2°C même en usage intensif
- PWM haute fréquence (31,25 kHz) via Timer1 → fonctionnement silencieux (vs 490 Hz standard)
- Encodeur accéléré : lent = ±1°C, rapide = ±5°C
- Mémorisation EEPROM : consigne, unités (°C/°F), calibration, timeout auto-off
- Calibration 3 points (200, 300, 400°C) automatisée par PID
- Mode « Puissance fixe » : contrôle manuel % puissance (dépannage, préchauffage)
- Mode « Tune » : aide au réglage initial gain ampli-op (cible ADC ~900 à 400°C)
- Arrêt automatique : détection inactivité par analyse puissance fournie (dispersion minimisée)
Interface utilisateur (6 modes)
- Veille (Standby)
- Fer éteint. Affiche : consigne (gauche haut), « OFF » (droite haut), T° réelle (gauche bas). « no iron » si manche absent, « cold » si refroidi.
- Régulation (Main Mode)
- Appui court encodeur → démarrage. Affiche : consigne, « ON »/« rdy », T° réelle, % puissance. Rotation = nouvelle consigne. Appui court = retour veille.
- Mode Puissance (Power Mode)
- Appui long en régulation. Affiche : puissance interne, T° réelle. Rotation = % puissance. Appui court = ON/OFF puissance. Appui long = retour régulation.
- Setup (Configuration)
- Appui long en veille. Menu 7 items : timeout auto-off (min), unités (°C/°F), calibrage, tune, save, cancel, reset defaults. Rotation = navigation, appui court = édition, appui long = retour + save.
- Calibration (Calibrate)
- Depuis Setup. Choix point (200/300/400°C) → chauffe PID → bip → lecture thermomètre externe → encodeur = valeur réelle → save. Répétable par point.
- Tune (Réglage initial)
- Depuis Setup. Chauffe à 400°C (thermomètre externe), encodeur = puissance, potentiomètre 500k → ADC ~900-950. Appui long = valider.
Chaîne de mesure température
Version Thermocouple (JP1, JP2 ouverts)
- Thermocouple K génère ~0-9 mV (0-400°C)
- MCP602 amplifie (gain ~500-600x via pot 500k)
- Sortie 0-5V → Arduino A0 (0-1023)
Version Thermistance (JP1, JP2 fermés)
- Thermistance ~50Ω (froid) → ~200Ω (400°C)
- Pont diviseur + MCP602 en suiveur/ampli
- Pot 10k (offset) + 500k (gain) pour étalonnage
Ampli-op rail-to-rail (MCP602) essentiel : utilise toute la plage ADC 0-1023 pour résolution maximale.
Étage de puissance : MOSFET + Driver bipolaire
Le MOSFET IRFZ44N a une capacité de grille importante. Pour commuter à 31 kHz :
- Driver « totem-pole » : transistor NPN (tirage haut) + PNP (tirage bas)
- Diode Zener 15V (D2) : limite Vgs max du MOSFET
- Diode FR107 (D1) : récupération rapide, écarte le courant de la résistance quand MOSFET bloqué
- Condensateur 1000 µF à l'entrée 24V : absorbe le pic d'appel résistance froide (R~2-3Ω)
Algorithme PID (extrait)
// PID itératif (coefficients v2020 : Kp=50, Ki=16, Kd=50, dénominateur 2^11)
long reqPower(int temp_set, int temp_curr) {
if (first_call) {
i_summ += temp_set - temp_curr;
power = Kp*(temp_set - temp_curr) + Ki*i_summ;
if (temp_set - temp_curr < 30) { // Proche consigne → mode itératif
pid_iterate = true; power = 0; i_summ = 0;
}
} else {
long kp = Kp * (temp_h1 - temp_curr);
long ki = Ki * (temp_set - temp_curr);
long kd = Kd * (temp_h0 + temp_curr - 2*temp_h1);
power += kp + ki + kd; // power maintenu ×2048
}
temp_h0 = temp_h1; temp_h1 = temp_curr;
return (power + 1024) >> 11; // Arrondi / 2048
}
Code source complet
Disponible sur GitHub : sfrwmaker/soldering_907_lcd
Deux versions :
soldering_907_lcd.ino: pour LCD 8x2 (original)soldering_907_lcd1602.ino: pour LCD 16x2 (plus courant)
Schéma électrique (Eagle)
Fichier complete_9vLI2a96Rv.sch incluant :
- Entrée 24V DC (jack) → 1000µF → DC-DC 5V → Arduino
- Chaîne mesure (thermocouple/thermistance) → MCP602 → A0
- Driver MOSFET (NPN/PNP) → IRFZ44N → Résistance fer
- Interface : LCD (4/8 bits), encodeur, buzzer, jumpers JP1/JP2
Évolutions historiques (extraits)
- 2017-07-31 : Nouveaux schémas hardware (driver MOSFET, alim)
- 2017-08-01 : Correction bug sketch, ajout version LCD1602
- 2018-02-18 : Procédure calibration mise à jour
- 2019-04-03 : Schémas et description mis à jour
Conseils de construction
- Câblage manche : Remplacez la prise d'origine par une aviation GX16-5 (robuste, polarisée). Repérez les fils : chauffage (2 gros), capteur (2 fins), commun (1).
- Testez l'ampli-op AVANT de souder le MOSFET : vérifiez 0-5V sur A0 pour 0-400°C.
- Chargez les défauts (Setup → Reset Config → Save) au premier démarrage ou après mise à jour firmware.
- Thermomètre externe obligatoire pour calibration (sonde K sur pointe fer).
- Boîtier : prévoyez dissipation MOSFET (radiateur si >50W continu).
Projets dérivés / Alternatives
- ManojBR : Version avec PCB Eagle, écran I2C, encodeur, manche air chaud (station retouche SMD) — GitHub
- Soldering Iron Controller v3 (sfrwmaker) : Supporte T12, JBC, Hakko, avec OLED, PID avancé, détection mouvement — GitHub
- Contrôleurs commerciaux DIY : KSGER T12, Miniware TS100/TS80 (intégrés manche)
Processus de fabrication
- Système de Capteur de Température Multi-Position pour Intégration Domotique
- Manette de jeu USB Arduino DIY – Construisez votre propre gamepad haute performance
- Contrôleur DIY pour fer à souder 862D+ — Précision et fiabilité
- MotionSense : Détection d'intrusion intelligente avec Arduino et ESP8266
- Prévention incendie imprimante 3D : Système de sécurité à capteur intelligent
- Intégration MIDI pour Orgues Numériques : Composants et Guide de Configuration
- CoroFence : Détecteur Thermique Avancé PIR + Capteur Grid-EYE & IoT
- Procédé FINEX : Production avancée de fer liquide à partir de fines de minerai et charbon non cokéfiable
- Composants Invar 36 : matériaux, propriétés et achat de confiance