Un petit article sur la fabrication indépendante d'un appareil pour le soudage par contact de batteries (18650 et similaires). Avec l'aide d'un tel appareil, à la maison
et à partir de matériaux improvisés , les batteries et les assemblages peuvent être soudés et réparés. Pas cher, gai et abordable pour tout le monde.

Salutations à tous!
Le soudage par points est un type de soudage par contact (
source ).
Il existe des options achetées, le même SUNKKO, mais presque toutes les options nécessitent un raffinement pour leurs matériaux et sont nécessaires - augmentation du courant, remplacement de la minuterie, etc. Il est plus facile de créer vous-même une option «pour vous-même».
Avantages - vous obtenez une option fonctionnelle bien connue, avec des caractéristiques inhérentes. Ce dont vous avez besoin - et fournissez-le.
Les options de bricolage basiques et éprouvées sont construites sur la base d'un puissant transformateur (abaisseur) et d'une minuterie avec relais. Il est possible de le rendre encore plus simple - simplement des électrodes alimentées par une batterie de voiture, mais ce n'est pas l'option la plus pratique.
Spécifiquement requis:
- courant de soudage élevé (jusqu'à 600 ... 900A);
- double impulsion de soudage;
- ajustement de la durée d'impulsion (fractions de seconde);
- alimentation de la carte sans transformateur auxiliaire;
- firmware ouvert (Arduino) et la possibilité d'ajuster le code.
La version sélectionnée de la carte de contrôle est basée sur le microcontrôleur ATmega. En plus - la présence d'un convertisseur de puissance (Hi-Link) et l'isolement galvanique de la partie basse tension du circuit.

La carte de contrôle peut être trouvée assemblée ou séparément (
carte de circuit imprimé ). Pour l'auto-production d'une carte de circuit imprimé (LUT), je joins le fichier
dot_svarka.lay6 .

De plus, l'
encodeur KY-040 a été acheté pour contrôler le menu et effectuer les réglages.

Pour plus de commodité, un écran
OLED de 0,96 pouce avec bus I2C (4 broches) a été sélectionné. Cette option fonctionne correctement avec les bibliothèques Arduino et semble décente. Vous pouvez utiliser d'autres options, à condition que vous ayez les modifications appropriées.

Pour fournir un signal de soudage, un bouton ou un micro-interrupteur (fin de course) est utilisé.
Une simple pédale convient également, ici à qui et ce qui est pratique. Il s'agit d'une simple connexion à deux fils.

De plus, vous aurez besoin de fils, de fusibles, de fiches, de connecteurs, d'un ventilateur, etc. ... De petites choses qui peuvent être trouvées à portée de main ou dans le magasin de radio le plus proche. Et un homme fait maison économe devrait être disponible.

Des consommables, comme du
ruban de nickel pour les éléments de soudage, seront nécessaires.

Il existe un bon modèle de poignée imprimée en 3D pour le soudage par contact (poignée de soudage par
points ZBU-4.2 avec bouton ).

Lien vers l'esquisse de
soudure__dot.ino .
Partie du code de traitement de l'encodeur// encoder pin and interrupt const byte encoder_A_Pin = 3; const byte encoder_B_Pin = 2; const byte encoderButtonPin = 4; const byte interruptA = 1; const byte interruptB = 0; boolean encoder_rotate = false; // last state encoder A pin boolean currentA = false; // last state encoder B pin boolean currentB = false; // Timeout for different long and short button on const unsigned long timoutHoldButton = 9000; // 9 sec // Timeout for bounce protect encoder button const unsigned long debounceEncButton = 20; // 20 ms // Time on encoder button unsigned long timeOnEncButton = 0; // Time off encoder button unsigned long timeOffEncButton = 0; unsigned int buttonEncCurrentVal = HIGH; unsigned int buttonEncLastVal = HIGH; boolean ignoreEncOff = false; void setup() { // encoder init pinMode(encoder_A_Pin, INPUT); digitalWrite(encoder_A_Pin, HIGH); pinMode(encoder_B_Pin, INPUT); digitalWrite(encoder_B_Pin, HIGH); pinMode(encoderButtonPin, INPUT); digitalWrite(encoderButtonPin, HIGH); // enable encoder change interrupt attachInterrupt(interruptA, onA, CHANGE); attachInterrupt(interruptB, onB, CHANGE); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // increment rotate //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void onA(){ if (encoder_rotate) delay (1); if (digitalRead(encoder_A_Pin) != currentA ) { currentA = !currentA; if ( currentA && !currentB ) { Serial.println("+ encoder"); } encoder_rotate = false; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // decrement rotate //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void onB(){ if ( encoder_rotate ) delay (1); if( digitalRead(encoder_B_Pin) != currentB ) { currentB = !currentB; if( currentB && !currentA ){ Serial.println("- encoder"); } encoder_rotate = false; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // main loop //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void loop() { CurrentTime = millis(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ENCODER BUTTON encoder_rotate = true; buttonEncCurrentVal = digitalRead(encoderButtonPin); // Test for button pressed and store the down time if (buttonEncCurrentVal == LOW && buttonEncLastVal == HIGH && (CurrentTime - timeOffEncButton) > long(debounceEncButton)){ timeOnEncButton = CurrentTime; } // Test for button release and store the up time if (buttonEncCurrentVal == HIGH && buttonEncLastVal == LOW && (CurrentTime - timeOnEncButton) > long(debounceEncButton)){ if (ignoreEncOff == false){ Serial.println(F("short enc")); }else{ ignoreEncOff = false; } timeOffEncButton = CurrentTime; } // Test for button held down for longer than the hold time if (buttonEncCurrentVal == LOW && (CurrentTime - timeOnEncButton) > long(timoutHoldButton)){ Serial.println(F("long enc")); ignoreEncOff = true; timeOnEncButton = CurrentTime; } buttonEncLastVal = buttonEncCurrentVal; }
L'assemblage de l'appareil n'est pas difficile. La chose la plus chère pour moi a été de trouver un bon transformateur abaisseur puissant. L'une des options les plus abordables est un transformateur d'un four à micro-ondes, au lieu de l'enroulement de levage secondaire dont 1,5 ... 2 tours de fil de cuivre épais sont enroulés (section 50 ... 70 mm²).
Je n'écris pas sciemment sur le boîtier de l'appareil - il n'y a pas d'exigences particulières. Utilisez généralement des cas pour CEA ou à partir d'appareils plus anciens. De ma part, je peux recommander de protéger le boîtier de l'intérieur contre les interférences d'impulsion, et également prévoir un ventilateur de refroidissement pour le transformateur, qui se réchauffe décemment pendant un fonctionnement prolongé.

Le soudage du circuit imprimé est le suivant.

Après l'assemblage, il est préférable d'effectuer des tests et de déterminer les valeurs optimales de la durée d'impulsion. Dans mon cas, un fil de cuivre de 6 mètres carrés a été utilisé. mm comme électrodes.

La double impulsion bout bien, la durée est choisie en fonction de l'épaisseur de la bande. Garde un écart pas pire que le soudage en usine.

Maintenant, vous pouvez facilement assembler une grande batterie pour un vélo électrique, réparer une batterie pour un scooter gyroscopique et mettre à niveau un tournevis.

Vidéo de test de soudage par contact fait maison.
Le processus de soudage des éléments 18650 dans la batterie.
Pour moi, cette option coûte presque la moitié du prix que celle de l'usine. Qui demandent encore du raffinement. Et le résultat donne un soudage par contact fait maison excellent.