Station de soudage numérique bricolage Hakko 907

55 313

509

174

Introduction : Station de soudure numérique DIY Hakko 907

À propos de : Salut ! Je suis Angelo, d'autres me connaissent sous le nom de TechBuilder. Je suis un spécialiste de l'ingénierie électronique et des communications. Instructables est ma maison depuis que j'ai 10 ans. J'espère que vous apprécierez tous mes projets !

Construisez une station de soudage numérique Homebrew Hakko 907 abordable ! Profitez des températures variables et constantes pouvant atteindre jusqu'à 525°C. Le projet ne nécessite que peu de composants et coûte environ 7 $ hors alimentation électrique réutilisée. J'ai à peine pu trouvertutoriels détaillés sur un, j'ai donc décidé de faire une vidéo et Instructable à ce sujet.

Spécifications du projet :

  • Conçu pour les poignées Hakko 907
  • Compatible avec des poignées similaires
  • Plage de température : 27 °C-525°C
  • Temps de préchauffage : 25s - 37s 325°C
  • Alimentation recommandée : 24 V, 3 A
  • Puissance : 50W Moyenne

Tutoriel vidéo complet :

Schéma, mise en page PCB, code et fichiers STL : Lien de téléchargement

MISE À JOUR :

- Le MOSFET utilisé est un IRLZ44N et non un IRFZ44N IRLB4132 fonctionne le mieux, à peine sans problème de chauffe

- Les codes de connexion à un écran LCD non I2C 16X2 ont été téléchargés

- Les erreurs de trace de PCB imprimables ont été corrigées gerber non affecté

Étape 1 : fers à souder normaux ou numériques

Fers à souder réguliers :

Comme tout autre amateur, j'ai commencé avec un fer à souder ordinaire. Ils sont géniaux mais ils ont plusieurs inconvénients. Tout amateur qui en a essayé un sait à quel point ces fers prennent environ 7 à 15 minutes pour se réchauffer avantêtre capable de souder. Une fois réchauffés, ces fers continueront de fonctionner à leur plage de température maximale. Dans certains cas, ces fers peuvent potentiellement endommager les composants électroniques lorsque le contact est prolongé. Par expérience, la chaleur intense fait parfois tomber les plaquettes de cuivre en pointillés lorsqueIl existe des moyens et des techniques pour surmonter cela, mais une fois que vous avez essayé une station de soudage numérique, vous n'aurez plus jamais envie de revenir en arrière.

Fers à souder réguliers avec gradateurs variables:

Il existe un moyen simple et courant de contrôler la chaleur des fers ordinaires, c'est en connectant un circuit de gradation pour limiter la puissance allant à l'élément chauffant. Ceux-ci sont également présents dans certains produits, j'ai déjà possédé une station de soudage Weller qui avaitceux-ci. Ils sont vraiment bons ! Le seul inconvénient est qu'il n'y a pas de retour de température en boucle fermée. Dans certains cas, vous n'obtiendrez pas les températures marquées sur le bouton du gradateur, car les températures chuteraient lorsque vous soudez des composants quiabsorber la chaleur. Vous pouvez augmenter le bouton pour compenser les baisses de température thermique, mais une fois que vous arrêtez de souder, les températures augmenteront à nouveau. Vous pouvez augmenter les temps de préchauffage en tournant le bouton du gradateur à fond puis en le baissant une foisc'est chaud.

Station de soudage numérique :

C'est mon préféré parmi les trois. C'est très similaire aux fers à gradateur variable mais tout est automatisé avec un système PID. En termes simples, le système de contrôle électronique automatisé de votre station de soudage ajuste constamment ce "bouton de gradateur" pour vousLorsque le système détecte que les températures de la pointe de votre fer sont inférieures à la température définie, le système augmente la puissance requise pour générer de la chaleur sur la pointe de votre fer. Lorsque la température du fer est supérieure à la température définie, l'alimentation du fer est coupée.provoquant une chute de température. Le système effectue ce processus très rapidement, en allumant et en éteignant constamment l'élément chauffant de votre fer pour maintenir une température constante au niveau de votre panne. C'est pourquoi les temps de préchauffage sont nettement plus rapides avec les stations de soudage numériques.

Étape 2 : pièces et matériaux

Les prix varient en fonction de l'endroit où vous obtenez vos composants Alixpress est le moins cher. Je mettrai à jour cette étape avec des liens une fois que j'aurai trouvé les composants en ligne les moins chers. J'ai acheté mes composants localement dans la boutique E-Gizmo Mechatronics Manila.

Matériaux nécessaires :

  • Hakko 907 Poignée 3 Clone
  • Arduino Nano
  • Buck Converter MP2303 par D-SUN
  • connecteur femelle DIN 5 broches
  • Jack CC 2.1mm
  • Alimentation 24V 3A
  • 16X2 I2C LCD
  • LM358 Op-Amp IC
  • IRLZ44N MOSFET j'ai utilisé un IRLB4132, c'est mieux
  • 1N4007 Diode
  • condensateur électrolytique 470uF 25V
  • 470Ω Résistance 1/4W
  • Résistance 2,7kΩ 1/4W
  • Résistance 3.3kΩ 1/4W
  • Résistance 10kΩ 1/4W
  • potentiomètre 10k

REMARQUE : L'étiquette IRFZ44N sur le schéma et le PCB de la vidéo était une faute de frappe. Utilisez l'IRLZ44N, c'est la version de niveau logique de l'IRFZ44N. J'ai utilisé un IRLB4132 sur le mien car il était plus disponible dans ma région. Autres MOSFETSfonctionnerait tant qu'il a les spécifications ci-dessous. Mon ancienne version de ce fer utilise un IRLZ44N.

Spécifications MOSFET recommandées :

  • MOSFET de niveau logique N-Channel - Les MOSFET de niveau logique peuvent être directement connectés à une broche logique broche numérique de et Arduino. Étant donné que la tension de saturation de la grille est inférieure à la Vg habituelle des MOSFET ordinaires, un MOSFET de niveau logique a une porte pourtensions de saturation de la source de 5 V ou 3,3 V Vgs. Lors de l'affichage des fiches techniques, certains fabricants omettent de le préciser dans le texte. Vous pouvez vous référer à la courbe Vgs vs. Id de la fiche technique.
  • Vds d'au moins 30V ou supérieur - C'est la limite de tension du MOSFET, nous fonctionnons à 24V, un Vgs de 24V devrait faire, mais c'est une pratique courante d'ajouter une certaine marge de stabilité. Les Vgs typiques pourla plupart des MOSFET est de 30 V. Il n'y a aucun mal à utiliser des MOSFET avec des tensions Vgs plus élevées, tant que les autres spécifications sont dans la plage.
  • Rdson de 0,022Ω 22mΩ, plus bas est le meilleur - Rdson est la résistance formée entre les broches Drain et Source du MOSFET lorsqu'il est saturé. Pour tout simplifier, plus votre Rdson est bas, plus votre MOSFET sera froid. Si vous avez un Rds activé élevé, votre MOSFET chauffera car la puissance est dissipée par la nature résistive minuscule d'un MOSFET, même lorsqu'il est conducteur.
  • Id d'au moins 3A ou plus je suggère au-dessus de 20A - C'est le courant maximum que votre MOSFET peut gérer.

Étape 3 : Processus de conception

À l'intérieur de la poignée Hakko 907 se trouve un élément chauffant avec un capteur de température à proximité. Les deux sont enfermés sur un matériau céramique. L'élément chauffant est simplement un serpentin qui produit de la chaleur lorsque l'alimentation est appliquée. Le capteur de température, quant à lui, estune thermistance. Une thermistance est comme une résistance, lorsque la température change, la résistance de la thermistance change également.

La Thermistance Mystère Hakko :

Malheureusement, Hakko ne fournit pas suffisamment de données sur la thermistance à l'intérieur de leurs unités d'éléments chauffants. Cela est resté un mystère pour moi pendant des années. Ainsi, en 2017, j'ai effectué un petit test au banc pour recueillir les caractéristiques thermiques de la mystérieuse thermistance à l'intérieur.J'ai ajouté un capteur de température à la pointe de mon fer, connecté un ohmmètre aux broches de la thermistance de mon fer et connecté l'élément chauffant à mon alimentation de banc variable. J'ai ensuite augmenté la température du fer et enregistré les résistances correspondantes de la thermistance. Je suis finalement arrivé avec un tracé de donnéescela a été utile pour la conception du circuit. J'ai alors découvert qu'il avait probablement une thermistance PTC, ayant un coefficient thermique positif. Cela signifie que, à mesure que la température autour de la thermistance augmente, la résistance de la thermistance augmente également.

Pour les étapes suivantes, veuillez vous référer à la troisième image pour le calcul

Diviseur de tension pour le capteur :

Afin d'acquérir une sortie utilisable du capteur de température à thermistance. J'ai dû le câbler avec un diviseur de tension. Là encore, il n'y a pas de fiche technique pour le capteur mystère, j'avais donc réglé la résistance supérieure du diviseur de tension surlimiter la puissance maximale dissipée au niveau du capteur en la réglant sur 50 mW max. Maintenant que j'ai acquis la résistance supérieure du diviseur de tension, j'ai ensuite calculé la tension de sortie maximale à la condition de température de fonctionnement maximale. La sortie duLe diviseur de tension a donné environ 1,6 V. J'ai ensuite résolu la compatibilité ADC pour l'ADC 10 bits de l'Arduino Nano et j'ai finalement découvert que je ne pouvais pas connecter la configuration du capteur de diviseur de tension directement car les valeurs sont trop petites pour qu'il puisse être capté avec précision. En simplemots, si je devais connecter le capteur diviseur de tension directement à la broche analogique, il y aurait des écarts entre les lectures de température Ex: 325°C, 326°C, 328°C..... 327°C est manquant

L'ampli-op :

Afin d'éviter le problème potentiel d'avoir des écarts entre la lecture de la température, un amplificateur opérationnel a été utilisé pour augmenter ou amplifier la faible tension de sortie de crête de 1,6 V du diviseur de tension. Les calculs suivants de la troisième image montrent le minimum requisgain et le gain que j'ai sélectionné sur l'implémentation.Je n'ai pas maximisé le gain pour mettre à l'échelle la sortie 1.6V du diviseur de tension à la tension de référence 5V ADC de l'Arduino car je voulais ajouter une marge au cas où d'autres poignées hakko connectées à la tensionLe diviseur peut produire des tensions supérieures à 1,6 V ce qui peut entraîner un écrêtage. Un gain de 2,22 devrait donner une marge suffisamment grande pour que la conception du projet fonctionne également avec d'autres modèles de poignées en fer.

Étape 4 : Le diagramme schématique

Le projet utilise un simple MOSFET à canal N de niveau logique comme dispositif de commutation pour le contrôle PWM. Il sert de commutateur numérique pour alimenter l'élément chauffant. L'amplificateur opérationnel non inverseur LM358 est utilisé pour amplifier ou monter en gammeles minuscules tensions que la thermistance du diviseur de tension combine.Le potentiomètre 10k est utilisé comme bouton de contrôle de température variable et la LED est simplement un indicateur que j'ai câblé et programmé dans le projet pour afficher si l'élément chauffant est actif.Pour ce projet spécifique, jeJ'utilise un écran LCD 16X2 avec un pilote de sac à dos I2C car il est plus convivial pour les débutants en électronique.

Étape 5: Le PCB

J'ai conçu la disposition du PCB dans Proteus. J'en ai fait une conception de PCB simple face afin qu'il soit facile pour tout le monde de le fabriquer sur un PCB homebrew. Notez qu'un cavalier est nécessaire si cela devait être fabriqué sur unPCB simple face. Le fichier PDF imprimable peut être téléchargé à partir du lien Google Drive ci-dessous.

Si vous souhaitez profiter de la fabrication de circuits imprimés en ligne, les fichiers Gerber peuvent être téléchargés à partir du lien Google Drive ci-dessous. Vous pouvez également commander ma conception directement sur PCBway.com sans avoir à saisir les fichiers Gerber manuellement Acheter mon lien PCB

Fichiers PCB Proteus, Gerber et imprimables :

https://drive.google.com/drive/folders/1Mc8ELiDs4Q...

Étape 6 : Étalonnage du convertisseur Buck

Étant donné que la plupart des clones Arduino Nano ne peuvent absorber que 15 V max sans faire sauter le régulateur AMS1117 5 V tandis que l'élément chauffant nécessite 24 V pour fonctionner de manière optimale, le convertisseur buck peut être utilisé pour que les deux fonctionnent ensemble. Le régulateur AMS1117 5 V que l'on trouve dans la plupart des Arduino Nanoclones a une tension de chute de 1,5 V, cela signifie que la tension d'entrée de la broche VIN de l'Arduino Nano doit être de 6,5 V 5 V + 1,5 V.

Étapes :

  1. Réglez votre alimentation sur 24V
  2. Connectez l'alimentation à l'entrée de votre convertisseur buck
  3. Surveillez la tension de sortie de votre convertisseur buck à l'aide de votre multimètre
  4. Ajustez la résistance du trimmer jusqu'à ce que vous obteniez une tension de sortie de 6,5V
  5. Vous pouvez utiliser 7V pour une meilleure stabilité.

Étape 7 : Assemblage du circuit

Utilisez le schéma de principe ou le schéma de placement des pièces des étapes précédentes pour assembler le circuit.

Étape 8 : Boîtier imprimé en 3D

Vous pouvez choisir de construire votre projet sur un boîtier en plastique bon marché ou d'utiliser ma conception imprimée en 3D. J'inclus le fichier Solidworks à des fins d'édition. Si vous souhaitez imprimer à l'avance, les fichiers STL sont disponibles à partir du lien Google Drive ci-dessous.

Mes paramètres d'imprimante 3D :

  • Imprimé sur une Creality CR-10
  • hauteur de couche 0.3mm
  • buse de 0,5 mm
  • 30% de remplissage
  • Aucun support nécessaire

Fichiers d'impression 3D Solidworks et STL :

https://drive.google.com/drive/folders/1XxkaTaWJ18...

Étape 9 : raffinements de l'enceinte peinture et ponçage

Une fois l'impression terminée, vous pouvez poncer le boîtier imprimé en 3D pour une finition plus lisse. J'ai peint le mien en noir mat pour le rendre élégant et élégant.

Étape 10 : Montez les composants externes

Vissez l'écran LCD, le potentiomètre 10k, la prise CC et la carte de commande en place. Ensuite, collez le connecteur DIN et la LED au boîtier.

Étape 11 : Connecteur Hakko 907

Vous pourriez avoir du mal à trouver le connecteur DIN 5 broches propriétaire de la poignée Hakko comme je l'ai fait. Vous pouvez couper le connecteur mâle du fer et le remplacer par un connecteur mâle 4 broches que vous avez. Ironiquement, j'ai un connecteur 5 broches.Paire de connecteurs DIN mais pas celui utilisé sur le Hakko. La 3ème broche est simplement la masse, vous pouvez l'omettre si vous n'êtes pas particulier aux normes de mise à la terre et à la protection ESD.

Étape 12 : câbler les composants externes

Vous pouvez baser votre connexion sur le schéma des étapes précédentes. Je suggère d'ajouter un fusible entre la prise CC et la carte de commande assemblée pour une protection supplémentaire. J'ai omis le fusible car mon alimentation a déjà un fusible du côté CC.

Étape 13 : Programmation

ÉTAPES :

  1. Connectez votre Arduino à votre ordinateur
  2. Télécharger mon croquis de programme
  3. Ajustez-le si vous le devez
  4. J'ai standardisé les valeurs pour les poignées Hakko 907
  5. Je mettrai bientôt à jour cette étape pour le processus d'étalonnage précis.
  6. Assurez-vous que les bibliothèques Wire.h et LiquidCrystal_I2C.h sont installées
  7. Outils > Cartes > Sélectionnez Arduino Nano
  8. Outils > Port > Sélectionnez le port où Arduino est connecté
  9. Télécharger le croquis/programme

Comment fonctionne le code :

Lorsque le système détecte que les températures de la pointe de votre fer sont inférieures à la température définie, le système augmente la puissance requise pour générer de la chaleur sur la pointe de votre fer. Lorsque la température du fer est supérieure à la température définie, l'alimentation est coupée de lafer provoquant une chute de température. Le système effectue ce processus très rapidement, en allumant et en éteignant constamment l'élément chauffant de votre fer pour maintenir une température constante à votre panne. C'est pourquoi les temps de préchauffage sont considérablement plus rapides avec les stations de soudage numériques.

Contrôle PID :

Non le code n'utilise pas de technique PID. Ma version une utilise mon ancien code PID mais ils fonctionnent presque de la même manière avec la version comparateur du code la sur ce tutoriel. J'ai choisi la version simple car c'est plus facile à modifier. Vous pouvez m'envoyer un email pour la version PID mais cela fait très peu de différence.

Code Arduino V1.0:

https://drive.google.com/drive/folders/1Fzx1aGWWVw...

Étape 14 : Ajustez le contraste de l'écran LCD et le bouton d'ajout de potentiomètre

Si vous êtes nouveau sur les Arduinos et les écrans LCD 16x2, vous devez régler la résistance de réglage du contraste de votre écran LCD pour qu'il s'affiche correctement. Une fois que vous êtes prêt, vous pouvez enfin ajouter un bouton en plastique pour votre potentiomètre pour le contrôle de la température.

Étape 15 : Fermez le boîtier et mettez-le sous tension !

Une fois que vous êtes sûr que votre station de soudage est bien calibrée, vous pouvez maintenant fermer et visser le panneau arrière. Vous pouvez utiliser des piles ou n'importe quelle alimentation CA à CC de mon tableau de recommandations d'alimentation. Si vous voulez obtenir les meilleures performancesEn dehors de votre station, utilisez une alimentation 24 V 3 A. Il peut s'agir de ces alimentations SMPS en boîtier métallique ou peut-être réutiliser un chargeur d'ordinateur portable pour votre station de soudage. Les brocantes et les magasins de surplus en ont des tonnes si vous voulez économiser de l'argent en achetant une alimentationLes chargeurs d'ordinateurs portables généralement évalués à 18V 2,5A fonctionnent bien aussi, mais le temps de préchauffage de votre fer peut atteindre environ 37s.

Étape 16 : Bonus : Meilleure conduction thermique

Astuce rapide. Voici une petite astuce que je fais habituellement. Vous pouvez ajouter de la pâte thermique dans votre panne à souder Hakko 907 pour une meilleure conductivité thermique. Cela fonctionne et améliore considérablement le transfert de chaleur ! Assurez-vous simplement de l'évacuer pendantles 30 premières minutes de fonctionnement car la graisse commencerait à bouillir et à émettre des fumées. Après la période de 30 minutes, elle se transforme en ce matériau ressemblant à de la craie. Juste un avertissement, lorsque le temps viendra et que vous devrez remplacer la pointe, la pâte séchéeadhérerait à la pointe et à l'élément chauffant. Utilisez un maillet sur la pointe pour desserrer le matériau crayeux.

Étape 17 : Profitez-en !

Profitez de votre station de soudure ! J'utilise cette station depuis près de 5 ans maintenant, celle de ce tutoriel est une refonte de ma version raffinée de ma station d'origine. J'ai pris mon temps pour perfectionner le design en open sourcedes kits que tout le monde peut modifier et apprécier. Faites-moi savoir comment se passe votre DIY Hakko Station !

Premier prix au
Concours de microcontrôleurs

17 personnes ont réalisé ce projet !

Recommandations

  • Défi d'art comestible

  • Cookie Speed ​​Challenge

  • Concours de matériaux récupérés

174 commentaires

0
a021031

Question il y a 2 mois

Bonjour
Est-il possible d'ajouter un pistolet à air chaud à cette station de soudage ?
Ceux qui ont un ventilateur intégré

0
patte

il y a 7 jours

Le Weller LR21 fonctionnera-t-il avec ce projet ? Il possède également un capteur PTC avec résistance comme dans le tableau. Edit. J'ai fait des calculs selon les formules que vous avez fournies, et....Tmin27deg-->Vout=0.233V / Tmax 450deg --> Vout = 0,531 V. Target Vout = 2,06 V. Derrière l'amplificateur Tmax Vout = 1,17 V .... à peu. J'ai changé Rf en 4k7 et Ri en 1k et maintenant j'aiTmax Vout=3,08V. Est-ce suffisant ou dois-je changer le code ?

0
Monsieur_Vivek

Question il y a 11 jours

Combien d'argent avez-vous pu économiser

0
jeffiet3

il y a 4 semaines

Je me demande, seulement parce qu'il m'en reste plusieurs. Peut-on utiliser fqp30n06l ?

0
science ath

il y a 5 mois

Je l'ai fait mais il y a un problème. Je ne peux pas commander un élément original pour l'instant et j'ai essayé de travailler avec l'élément fourni avec le clone et voici quelques-unes de ses spécifications :
1 il n'y a pas de marquage hakko sur l'élément lui-même donc c'est un clone
2 lorsque je l'allume, il démarre à l'arrêt et lorsque je tourne le bouton à 30 ° C seulement, il chauffe à pleine puissance.
3 Avec l'aide d'un multimètre, j'ai trouvé que l'élément avait une polarité.
4 il mesure environ 2 ohms à froid, donc je suppose que c'est un type de thermocouple.
Donc, pour l'instant au moins, comment puis-je modifier les valeurs dans le code ou la résistance sur l'ampli op pour le faire fonctionner pour cet élément de type thermocouple clone ?

0
MøĦsîñR

Répondre il y a 7 semaines

J'ai le même clone que vous trouvez une solution s'il vous plaît aidez-moi je veux construire ceci

0
science ath

Répondre il y a 7 semaines

Je n'ai trouvé aucune solution à ce problème et je ne peux pas non plus faire livrer l'élément d'origine :
Mais j'ai trouvé un moyen de travailler actuellement avec cette poignée
Si vous avez un thermomètre de type k, vous pouvez simplement noter les valeurs et modifier un peu le code.
Pour ma solution en ce moment, j'ai téléchargé un code pwm simple avec écran LCD et un potentiomètre largement utilisé pour les didacticiels simples de contrôle de la luminosité des LED et toujours régler le pot sur 80 sur 255 et cela fonctionne plutôt bien pour moi, justepas de contrôle précis de la température pour le moment.
Mais j'obtiendrai certainement l'élément original dès qu'il sera disponible.

0
science ath

Répondre il y a 7 semaines

Mais vous devriez acheter l'élément original si vous l'avez disponible quelque part

0
science ath

Répondre il y a 7 semaines

Vous pouvez vérifier si vos poignées ont un élément a1321 ou a1322 en les faisant passer de la lumière. Il existe un article populaire qui le montre faux éléments hakko a1321

0
BirdmanMC

Question il y a 3 mois

Bonjour merci pour une excellente conception de station de soudure, je l'ai fait et fonctionne bien le seul problème que j'ai trouvé est la température à la pointe est 50 c plus froide que ce qui est indiqué sur la lecture toutes les réflexions sur l'ajustement requis au code à atteindreun remède.
Encore merci.

0
MrTechCreator

il y a 4 mois

Je suis sur le point de le faire. Je vais également concevoir un boîtier pour le bloc d'alimentation 24V 3A que j'utiliserai.

Aussi, pour le connecteur, j'ai dû utiliser un en-tête mâle, mais la bonne chose est que le connecteur est réversible de cette façon.

De plus, j'ai eu le même problème quand j'ai commencé. Mon fer à souder actuel fonctionne très bien, mais j'avais besoin d'une station de soudure. Ce projet est donc pour moi.

0
berreizeta

il y a 6 mois

FAIT !! version A1322

0
Jorge Humberto

Répondre il y a 5 mois

Génial, félicitations ! Pourriez-vous partager les valeurs ADC que vous avez obtenues pour l'élément chauffant A1322 ? J'ai essayé de mesurer le mien, mais ma sonde multimètre ne monte qu'à 230 °C :

0
berreizeta

Répondre il y a 5 mois

A1322 Élément chauffant Thermocouple + -

CC 24V - 2A
Résistance variable environ 110k

LM358 broche 1 :
100º - 1.56v
150º - 1.94v
200º - 2.32v
250º - 2.69v
300º - 3.29v
325º - 3.49v
350º - 3.69v


0
science ath

Répondre il y a 5 mois

Pouvez-vous partager le code que vous utilisez pour a1322 et pourquoi vous avez utilisé un pot sur lm358? Je n'ai actuellement qu'un élément thermocouple fourni avec des clones et je ne peux pas en obtenir de thermistance pour l'instant donc j'ai dû faire le travail avecle clone

0
berreizeta

Répondre il y a 5 mois

// Station de soudure Berreizeta pour A1322
#include
#include
LiquidCrystal_I2C lcd 0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIF;
// LiquidCrystal_I2C lcd 0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIF;
#define tempSensor A1 // A1
#définir le bouton A3 // A3
#définir le fer 10 // D10
#définir la LED 5 // D5
//--------------------------------------------------------
int
Temp,
minTemp = 25, //Minimum température de pointe de fer acquise pendant les tests °C
MaxTemp = 500, //Maximum température de pointe de fer acquise pendant les tests °C
minADC = 25, //Minimum valeur ADC acquise lors du test minTemp
maxADC = 740, //Maximum valeur ADC acquise lors du test minTemp
maxPWM = 255, //MaximumPuissance PWM
nombre moy = 20, //Nombre d'échantillons moyens
lcdInterval = 80, //LCD taux de rafraîchissement millisecondes
mpm = 0, //Système Variable
tempRAW = 0, //Système Variable
boutonRAW = 0, //Système Variable
compteur = 0, //Système Variable
setTemp = 0, //Système Variable
setTempAVG = 0, //Système Variable
currentTempAVG = 0, //Système Variable
précédentMillis = 0; //Système Variable
//-------------------------
flotter
currentTemp = 0.0, //Système Variable
magasin = 0.0, //Système Variable
knobStore = 0.0; //Système Variable
non signé long currentMillis ;
float X = 5,0 / 1023 ; // lecture analogique en volts basée sur 5 volts max
int i = 0;
int u = 0;
valeur entière = 0 ;
int err = 0;
température flottante = 0 ;
entiers échantillons = 1 ;
unités entières = 0 ;
int command = 0; // Ceci est la commande char, sous forme ascii, envoyée depuis le port série
//----------------------------------------------------------------------------
configuration vide{
Serial.begin115200;
lcd.rétroéclairage;
lcd.begin16,2;
lcd.clear;
écriture numérique LED, ÉLEVÉ ;
pinMode tempSensor, INPUT; //EnsembleBroche du capteur de température en entrée
pinMode bouton, INPUT; //Ensemblebouton de potentiomètre comme entrée
pinMode fer, SORTIE; //Ensemble Broche MOSFET PWM comme SORTIE
pinMode LED, SORTIE; //EnsembleBroche d'état de la LED en tant que SORTIE
lcd.setCursor0,1;
lcd.print"PRESET T: ";
lcd.setCursor0,0;
lcd.print"ACTUAL T:";
lcd.setCursor14,0;
lcd.printchar223;
lcd.print"C";
lcd.setCursor14,1;
lcd.printchar223;
lcd.print"C";
} // terminer la configuration
//----------------------------------------------------------------------
double Temp_Outdouble Vin{ // calcule deg C à partir de la tension pour le thermocouple K
double somme;
double a0 = 0;
double a1 = 2.5132785E-2;
double a2 = 6.0883423E-8;
double a3 = 5.5358209E-13;
double a4 = 9.3720918E-18 ;
Somme = a1 * Vin + a2* powVin,2+ a3* powVin,3+ a4* powVin,4;
retourne Somme * 10000; //
}
//-------------------------------------------------------------------------
void Average10 { // moyenne de 10 lectures
float Ave;
int AveCt ;
CtAve = 0 ;
Moy = 0;
faire {
Ave = Ave + analogReadA1 ;
MoyCt = MoyCt + 1 ;
retard1;
} tandis que AveCt < 10 ;
temp = Ave / AveCt / 408 ; // Convertir en lecture 5 volts en degrés F/204
temp = Temp_Outtemp;
}
//------------------------------------------------------------------------
boucle vide{
valeur = 0 ;
Average10; // prendre un échantillon moyenné
boutonRAW = analogReadbouton; //Obtenir valeur analogique du potentiomètre
setTemp = mapanalogReadknob, 0, 1023, minTemp, maxTemp; //Échelle pot la valeur analogique dans l'unité de température
//-------- Obtenir la moyenne du capteur de température et du bouton--------//
if compteur //Somme échantillons de données de température et de bouton
magasin = magasin + température ;
// store = store + currentTemp;
knobStore = knobStore + setTemp ;
contre++;
}
autre
{
currentTempAVG = store / moyCounts - 1 ; //Obtenir température moyenne moyenne
setTempAVG = knobStore / avgCounts; //Obtenir bouton - régler la température moyenne moyenne
knobStore = 0; //Réinitialiser variable de stockage
magasin = 0; //Réinitialiser variable de stockage
compteur = 0; //Réinitialiser variable de stockage
}
//-------- Contrôle de puissance du fer à souder PWM --------//
if analogReadknob <= 10{ //Tourner hors fer lorsque le bouton est au plus bas arrêt du fer
digitalWriteLED,LOW;
mpm = 0 ;
}
sinon if temp <= setTemp - 2{ //Tourner sur le fer lorsque la température du fer est inférieure à la température préréglée avec hystérésis
digitalWriteLED,HIGH;
pwm = maxPWM ;
}
sinon si temp >= setTemp + 2{ //Tourner hors fer lorsque la température du fer est supérieure à la température préréglée avec hystérésis
digitalWriteLED,LOW;
mpm = 0 ;
}
analogWritefer,pwm; //Appliquer la valeur PWM acquise dans les trois cas ci-dessus
//-------- Affichage des données------------------------------------------------
currentMillis = millis; //Utiliser et acquérir la fonction millis au lieu d'utiliser le délai
if currentMillis - previousMillis >= lcdInterval{ //LCD n'affichera les nouvelles données que tous les n intervalles de millisec
Millis précédent = Millis actuel ;
if analogReadknob== 0{
lcd.setCursor10,1;
lcd.print"OFF ";
Serial.println"PRESET: OFF";
}
autre {
si setTempAVG < 100 {
lcd.setCursor12,1;
lcd.print" ";
}
lcd.setCursor10,1;
lcd.printsetTempAVG;
Serial.print"PRESET: ";
Serial.printlnsetTempAVG;
}
si temp < minTemp{
lcd.setCursor10,0;
lcd.print"COOL";
Serial.println"TEMP : COOL";
}
autre
{
si temp < 100 {
lcd.setCursor12,0;
lcd.print" ";
}
lcd.setCursor10,0;
lcd.printinttemp;
Serial.print"TEMP : ";
Serial.printlninttemp;
Serial.println;
}
}
} // fin de la boucle
//-----------------------------------------------------------------------

0
Jorge Humberto

Répondre il y a 5 mois

Merci ! Je vais essayer ! :

0
mfaris01

Répondre il y a 6 mois

Maintenant, cliquez sur "Je l'ai fait !"
Bon travail !