Alimentation de laboratoire contrôlée par un microcontrôleur. Alimentation de laboratoire à deux canaux avec contrôle par microprocesseur Alimentation à faire soi-même sur un microcontrôleur

Partager à:

La tension de sortie de l'alimentation peut être modifiée entre 1,25....26 V, le courant de sortie maximum est de 2 A. Le seuil de protection actuel peut être modifié entre 0,01...2 A par pas de 0,01 A et le délai de réponse - entre 1...10 ms par pas de 1 ms et 10...100 ms par pas de 10 ms. Le stabilisateur de tension (Fig. 1) est assemblé sur la puce LT1084-ADJ (DA2). Il fournit un courant de sortie allant jusqu'à 5 A et dispose d'unités de protection intégrées contre la surchauffe (la température de fonctionnement est d'environ 150 °C) et contre le dépassement du courant de sortie. De plus, le seuil de protection actuelle dépend de la chute de tension aux bornes du microcircuit (la différence entre les tensions d'entrée et de sortie). Si la chute de tension ne dépasse pas 10 V, le courant de sortie maximum peut atteindre 5 A ; lorsque cette tension augmente jusqu'à 15 V, il diminuera à 3...4 A, et à une tension de 17... 18 V ou de plus, elle ne dépassera pas 1 A. La tension de sortie de réglage dans la plage de 1,25...26 V est obtenue par la résistance variable R8.

Pour fournir à l'alimentation un courant de sortie allant jusqu'à 2 A sur toute la plage de tensions de sortie, un changement progressif de tension est appliqué à l'entrée du stabilisateur DA2. Quatre redresseurs double alternance sont montés sur un transformateur abaisseur T1 et des diodes VD1-VD8. Le redresseur à diode VD1, VD2 et le stabilisateur de tension DA1 sont conçus pour alimenter le microcontrôleur DD1, l'ampli opérationnel DA3 et l'indicateur numérique HG1. La tension de sortie du redresseur sur les diodes VD5, VD6 est de 9... 10 V, sur les diodes VD4, VD7 - 18...20 V et sur VD3, VD8 - 27...30 V. Les sorties de ces trois des redresseurs, en fonction des valeurs de la tension de sortie de l'alimentation, via les transistors à effet de champ de l'opto-relais U1-U3, peuvent être connectés au condensateur de lissage C4 et à l'entrée du stabilisateur DA2. L'opto-relais est contrôlé par le microcontrôleur DD1.

Le transistor de commutation VT1 remplit la fonction de clé électronique ; sur commande du microcontrôleur DD1, il connecte ou déconnecte la tension stabilisatrice de la sortie (jack XS1) de l'alimentation. Un capteur de courant est monté sur la résistance R14 ; la tension dessus dépend du courant de sortie. Cette tension est amplifiée par un amplificateur d'échelle CC sur l'ampli opérationnel DA3.1 et de la sortie de l'amplificateur tampon sur l'ampli opérationnel DA3.2 est fournie à la ligne PCO (broche 23) du microcontrôleur DD1, qui est configuré comme entrée de l’ADC intégré. Les modes de fonctionnement de l'alimentation, ainsi que les valeurs actuelles de courant et de tension, sont affichés par l'indicateur LCD HG1.

A la mise sous tension, la sortie du microcontrôleur RSZ DD1, quelle que soit la tension de sortie, sera réglée à un niveau logique haut, les transistors à effet de champ de l'optocoupleur U1 s'ouvriront et un redresseur utilisant les diodes VD3, VD8 (27...30 V) sera connecté à l'entrée du stabilisateur DA2. Ensuite, la tension de sortie de l'unité est mesurée à l'aide de l'ADC intégré au microcontrôleur DD1. Cette tension est fournie au diviseur résistif R9R11R12, et à partir du moteur de la résistance ajustée R11, la tension déjà réduite est fournie à la ligne PC1 du microcontrôleur, qui est configurée comme entrée ADC.

Pendant le fonctionnement, la tension de sortie est constamment mesurée et le redresseur correspondant sera connecté à l'entrée du stabilisateur. De ce fait, la différence entre les tensions d'entrée et de sortie du stabilisateur DA2 ne dépasse pas 10... 12 V, ce qui permet de fournir un courant de sortie maximal à n'importe quelle tension de sortie. De plus, cela réduit considérablement l'échauffement du stabilisateur DA2.

Si la tension de sortie de l'appareil ne dépasse pas 5,7 V, un niveau haut sera à la sortie PC5 du microcontrôleur DD1, et un niveau bas aux sorties RS3 et RS4, donc l'entrée du stabilisateur DA2 recevra une tension de 9...10V du redresseur sur les diodes VD5, VD6. Dans la plage de tension de sortie de 5,7...13,7 V, une tension de 18...20 V sera fournie au stabilisateur depuis le redresseur à l'aide des diodes VD4, VD7. Si la tension de sortie est supérieure à 13,7 V, le stabilisateur DA2 sera alimenté par une tension de 27...30 V provenant du redresseur sur les diodes VD3, VD8. Les tensions de seuil de commutation peuvent être modifiées dans le menu des paramètres initiaux de 1 à 50 V.

En même temps, le courant de sortie est mesuré ; si elle dépasse une valeur prédéfinie, la sortie PC2 sera réglée à un niveau logique bas, le transistor VT1 se fermera et la tension ne circulera pas vers la sortie de l'alimentation. Si le courant consommé est pulsé, sa valeur d'amplitude est indiquée.
Immédiatement après la mise sous tension, le transistor VT1 est fermé et aucune tension n'est fournie à la sortie. Le programme est en mode de réglage du courant de réponse de la protection et du temps de retard (si nécessaire), l'indicateur LCD HG1 affichera le message suivant :

PROTECTION
je=0,00A

et après avoir appuyé sur le bouton SB3 avec le chiffre le plus significatif clignotant :

RETARD 1ms

Dans le premier cas, l'un des trois chiffres clignote ; la valeur actuelle de ce chiffre est modifiée en appuyant sur le bouton SB1 « + » ou SB2 « - ». Ce chiffre est sélectionné en appuyant sur le bouton SB3 « Select ». Pour désactiver la protection, vous devez appuyer sur le bouton SB2 « - » jusqu'à ce que le message apparaisse à l'écran :
U= 10,0 V
z désactivé z

Après avoir réglé le courant de fonctionnement de protection requis, appuyez sur le bouton « Sélectionner » SB3 et maintenez-le enfoncé pendant environ une seconde - l'appareil passera en mode de fonctionnement, le transistor VT1 s'ouvrira et l'indicateur LCD HG1 affichera les valeurs actuelles de tension et de courant :
U= 10,0 V
je=0,00A

Lorsque le retard est activé, en plus des valeurs de tension et de courant, un point d'exclamation clignotant s'affichera sur l'indicateur pour rappel :
U=10,0 V
Je 0,00A !

Si la protection est désactivée, un éclair clignotant apparaîtra à la place du point d'exclamation.
Si le courant de sortie est égal ou supérieur à la valeur définie du courant de protection, le transistor VT1 se fermera et le message apparaîtra à l'écran :
PROTECTION
I=1,00A

De plus, le mot « PROTECTION » clignotera. Après avoir appuyé brièvement sur l'un des boutons, l'appareil passera à nouveau au mode de réglage du courant de fonctionnement de la protection.
Si vous appuyez sur le bouton SB1 « + » ou SB2 « - » en mode de fonctionnement, la section de réglage de la temporisation de la protection actuelle s'allumera et le message suivant apparaîtra sur l'indicateur :
RETARD 1ms

En appuyant sur le bouton SB1 "+" ou SB2 "-", vous modifiez le délai de 1 ms à 10 ms par pas de 1 ms et de 10 à 100 ms par pas de 10 ms. Le délai de protection actuel fonctionne comme suit. Si le courant de sortie devient égal ou supérieur à la valeur définie, une pause de la durée définie sera effectuée (de 1 à 100 ms), après quoi la mesure sera reprise. Si le courant est toujours égal ou supérieur à la valeur définie, le transistor VT1 se fermera et la charge sera mise hors tension. Si pendant cet intervalle de temps le courant de sortie devient inférieur au courant de fonctionnement, l'appareil restera en mode de fonctionnement. Pour désactiver le délai, vous devez diminuer sa valeur en appuyant sur le bouton SB2 « - » jusqu'à ce que le message apparaisse à l'écran :
HORS DÉLAIS

En mode fonctionnement, vous pouvez couper manuellement la tension de sortie et passer au mode de réglage du courant de protection ; pour ce faire, appuyez sur le bouton « Select » SB3.
Le programme dispose d'un menu de paramètres initiaux ; pour y accéder, vous devez allumer l'alimentation tout en maintenant enfoncé le bouton « Sélectionner » SB3. Le menu de réglage de la fréquence d'horloge de l'ADC intégré du microcontrôleur DD1 s'affichera en premier :
HORLOGE CAN 500 kHz

En appuyant sur le bouton SB1 "+" ou SB2 "-", vous pouvez sélectionner trois fréquences d'horloge de l'ADC intégré : 500 kHz, 1 MHz et 2 MHz. À une fréquence de 500 kHz, le temps de réponse de la protection est de 64 μs, aux fréquences de 1 et 2 MHz - 36 et 22 μs, respectivement. Il est préférable de calibrer l'appareil à une fréquence de 500 kHz (définie par défaut).

Pour passer au réglage suivant, appuyez sur le bouton SB3 « Select » et le message apparaîtra :
ÉTAPE 2
À PARTIR DE 5,7 V

Dans cette section du menu, vous pouvez modifier (en appuyant sur le bouton SB1 "+" ou SB2 "-") la valeur de la tension de sortie à laquelle l'un ou l'autre redresseur est connecté à l'entrée du stabilisateur DA2. La prochaine fois que vous appuierez sur le bouton SB3 « Sélectionner », un menu permettant de définir le seuil de commutation suivant apparaîtra :
PAS
DEPUIS 13,7V

Lorsque vous passez à la section suivante du menu, le transistor VT1 s'ouvrira et la protection actuelle sera désactivée. Le message apparaîtra : U= 10,0V* I=0,OOA*
Dans cette section, la valeur du coefficient k, qui est utilisée dans le programme pour corriger les lectures de tension de sortie en fonction du courant de sortie, est modifiée. Le fait est qu'aux bornes de la résistance R14 et du transistor VT1, au courant de sortie maximum, la chute de tension peut atteindre 0,5 V. Étant donné que le diviseur résistif R9R11R12, connecté avant la résistance R14 et le transistor VT1, est utilisé pour mesurer la tension de sortie, dans le programme, en fonction du courant circulant, cette chute de tension est calculée et soustraite de la valeur de tension mesurée. Lorsque vous appuyez sur le bouton SB1 "+" ou SB2 "-", l'indicateur affichera la valeur du coefficient k au lieu de la valeur actuelle :
U= 10,0 V* k=80

Par défaut il est de 80, il peut être modifié en appuyant sur le bouton SB1 "+" ou SB2 "-".
Lors de votre prochain appui sur le bouton SB3 « Select », le microcontrôleur DD1 redémarrera et tous les paramètres seront enregistrés dans sa mémoire non volatile et seront utilisés lors des démarrages ultérieurs.




La plupart des pièces, y compris le transformateur T1, sont placées sur un prototype de circuit imprimé (Fig. 2). Une installation filaire a été utilisée. Les condensateurs C5 et C7 sont installés au plus près des bornes du stabilisateur DA2. Le panneau avant (Fig. 3) contient un indicateur, un interrupteur d'alimentation, une résistance variable, des boutons et des prises de sortie.


Des résistances fixes MLT, S2-23 sont utilisées, en plus de la résistance R14 - elle est du type SQP-15, des résistances d'accord multitours - SP5-2, une résistance variable - SPZ-1, SPZ-400, dont le moteur est entraîné en rotation par un engrenage avec un rapport de démultiplication égal à trois (Fig. 4). Le résultat est une résistance variable à trois tours, qui vous permet de modifier rapidement et en même temps avec précision la tension à la sortie du stabilisateur.

Il est conseillé d'utiliser des condensateurs au tantale C5, C7, des condensateurs à oxyde importés, le reste - K10-17. Au lieu de ce qui est indiqué dans le schéma, vous pouvez utiliser un indicateur LCD (deux lignes de huit caractères chacune) avec un jeu de caractères anglais-russe sur les contrôleurs KS0066, HD47780, par exemple WH0802A-YGH-CT de Winstar. Les diodes 1N4005 sont remplaçables par les diodes 1N4002-1N4007, 1N5819, les diodes P600B - par P600DP600M, 1 N5401-1 N5408.

Le stabilisateur LT1084 est fixé via un joint isolant thermoconducteur au corps métallique de l'appareil, qui fait office de dissipateur thermique. Ce stabilisateur peut être remplacé par le LM1084, mais il doit avoir une tension de sortie réglable (avec l'indice ADJ). . L'analogue domestique est le microcircuit KR142EN22A, mais ses performances dans cet appareil n'ont pas été testées. Le stabilisateur 7805 peut être remplacé par le KR142EN5A domestique.

Starter L1 - DM-0.1 domestique ou EC-24 importé, il peut être remplacé par une résistance de 100 Ohm. Résonateur à quartz ZQ1 - RG-05, HC-49U. Boutons - tous avec un contact normalement ouvert, par exemple SDTM-630-N, interrupteur d'alimentation - B100G. Un transformateur a été utilisé dont le type est inconnu (seuls les paramètres de l'enroulement secondaire sont indiqués - 24 V, 2,5 A), mais en termes de dimensions, il est similaire au transformateur TTP-60. L'enroulement secondaire est retiré et deux nouveaux sont enroulés. Pour déterminer le nombre de tours requis avant de retirer l'enroulement, la tension de sortie a été mesurée et le nombre de tours pour 1 V de tension a été trouvé. Ensuite, à l'aide du fil PEV-2 0,7...0,8, deux enroulements avec deux prises chacun sont enroulés simultanément. Le nombre de tours doit être tel que les premières prises des deux enroulements aient une tension de 9 V et les secondes prises de 18 V. Dans la version de l'auteur, chacun des enroulements contenait 162 tours avec des prises des 54e et 108e tours.

La configuration commence sans microcontrôleur, ampli-op et indicateur installés en vérifiant les tensions constantes aux sorties des redresseurs et du stabilisateur DA1. Lors de la programmation du microcontrôleur, il est nécessaire de définir les bits de configuration (bits de fusible) :
CKSELO - 1 ;
CKSEL1-1 ;
CKSEL2-1 ;
CKSEL3-1 ;
SUT1-1 ;
BOOTRST - 1 ;
EESAVE-1 ;
WDTON - 1 ;
RSTDISBL-1 ;
SUTO - 0 ;
BODEN - 0;
NIVEAU CORPOREL - 0 ;
BOTTESZO - 0;
BOTTESZ1 - 0 ;
CKOPT - 0 ;
SPIEN - 0.

Le microcontrôleur peut être programmé en circuit, avec le programmateur connecté à la prise XP2. Dans ce cas, le microcontrôleur est alimenté par une alimentation.
Après avoir installé le microcontrôleur et l'ampli-op, connectez l'indicateur et allumez l'appareil (sans charge), en maintenant enfoncé le bouton « Sélectionner » SB3, et le programme du microcontrôleur passera en mode paramètres initiaux. La résistance R16 définit le contraste souhaité de l'image de l'indicateur et la sélection de la résistance R18 définit la luminosité du rétroéclairage du panneau indicateur.

Ensuite, en appuyant sur le bouton SB3 « Sélectionner », vous devez sélectionner la section de réglage du coefficient k dans le menu. Un voltmètre standard est connecté à la sortie de l'appareil et la tension de sortie est réglée près du maximum. La résistance R11 égalise les lectures de l'indicateur et du voltmètre. Dans ce cas, le courant de sortie doit être nul.

Réglez ensuite la tension de sortie minimale (1,25 V) et connectez à la sortie un ampèremètre standard connecté en série et une résistance de charge avec une résistance d'environ 10 Ohms et une puissance de 40...50 W. En modifiant la tension de sortie, réglez le courant de sortie à environ 2 A et utilisez la résistance R17 pour aligner les lectures de l'indicateur avec celles de l'ampèremètre. Après cela, une résistance d'une résistance de 1 kOhm est connectée en série avec l'ampèremètre et le courant de sortie est réglé sur 10 mA en modifiant la tension de sortie. L'indicateur doit afficher la même valeur actuelle ; si ce n'est pas le cas et que les lectures sont plus petites, il faut installer une résistance d'une résistance de 300...1000 Ohms entre la sortie du stabilisateur DA1 et la source du transistor VT1 et sa sélection pour égaliser les lectures de l'indicateur et de l'ampèremètre. Vous pouvez utiliser temporairement une résistance variable, puis la remplacer par une constante avec la résistance appropriée.

Enfin, la valeur du coefficient k est précisée. Pour ce faire, un voltmètre standard et une puissante résistance de charge sont à nouveau connectés à la sortie. En modifiant la tension de sortie, le courant de sortie est réglé près du maximum. En appuyant sur le bouton SB1 "+" ou SB2 "-", modifiez le coefficient k pour que les lectures de l'indicateur et du voltmètre coïncident. Après avoir appuyé sur le bouton SB3 « Select », le microcontrôleur redémarrera et l'alimentation sera prête à être utilisée.
Il est à noter que le courant de sortie maximum (2 A) est limité par le type d'opto-relais utilisé et peut être augmenté jusqu'à 2,5 A s'ils sont remplacés par des plus puissants.

ARCHIVE: Télécharger depuis le serveur


D. MALTSEV, Moscou
"Radio" n°12 2008
Chapitre:

L'alimentation est conçue pour l'installation et la réparation d'équipements dans un laboratoire radioamateur. Le capteur de température contrôle la température de l'appareil alimenté. S'il dépasse le seuil, l'appareil sera désactivé. Cela vous permet d'interrompre le développement d'une situation d'urgence à un stade précoce et d'éviter des conséquences catastrophiques. La minuterie coupe l'alimentation électrique après un certain temps, qui peut notamment être utilisé lors du chargement des batteries.

Principales caractéristiques techniques

Tension de sortie stabilisée, V………..0...15
Résolution du voltmètre numérique, V...................0,1
Seuil de limite de courant de sortie. UN
le minimum................................................. ......0,1
maximum................................................. .......1
Intervalle de mesure de la température, °C................0...100
Durée maximale de la minuterie......9 heures 50 minutes
Dimensions, mm ......................................105x90x70

Le schéma d'alimentation est présenté sur la Fig. 1. La base de l'appareil est le microcontrôleur PIC16F88 (DD1), dont l'utilisation de modules périphériques a permis d'étendre les fonctionnalités de l'unité sans la compliquer.
Stabilisateur de tension réglable - compensation linéaire. Il contient une source de tension de référence réglable, un régulateur de tension de sortie et un dispositif de comparaison de tension. Le dispositif de comparaison est un comparateur intégré du microcontrôleur, dont l'entrée inverseuse RA1 est alimentée par une tension de sortie via un diviseur R26R28 et une résistance R27, et une tension de référence est fournie à l'entrée non inverseuse RA2. Le signal de sortie du dispositif de comparaison contrôle le régulateur de tension de sortie.

La source de la tension de référence régulée est le module microcontrôleur SSR, fonctionnant en mode génération d'impulsions rectangulaires de durée variable à la sortie RB0. La tension de référence est une composante constante de ces impulsions, proportionnelle à leur rapport cyclique, qui peut être contrôlée par programme. La tension de référence est isolée par le filtre passe-bas R1C1R2R5C3. La résistance de réglage R2 est utilisée pour la réguler lors de la configuration.

Le régulateur de tension de sortie est monté sur un puissant transistor pnp composite VT1, connecté au fil d'alimentation positif. Étant donné que le transistor VT1 a un coefficient de transfert de courant de base élevé, un faible courant de base, fourni par le transistor à effet de champ de faible puissance VT2, est suffisant pour l'ouvrir. La résistance R7 relie la grille du transistor VT2 au fil commun, qui maintient ce transistor à l'état fermé lors de l'initialisation des ports du microcontrôleur au début de l'exécution de son programme. Le condensateur C9 corrige la réponse en fréquence de la boucle de contrôle, empêchant l'auto-excitation du stabilisateur.

Le circuit de commande du régulateur de tension de sortie est connecté à la ligne RA4 du microcontrôleur. À l'aide d'un interrupteur électronique interne, cette broche peut être connectée ou déconnectée de la sortie du comparateur du dispositif de comparaison. En contrôlant par programme ce commutateur, vous pouvez désactiver le régulateur de tension de sortie lorsque la tension de sortie est nulle ou l'activer lorsque la tension de sortie est proportionnelle à la tension de référence.

Un capteur de température analogique calibré LM35 (BK1), qui convertit linéairement la température en tension avec un coefficient de 10 mV/ºС, est connecté via le circuit R4C2 à la broche RA3 du microcontrôleur, configurée comme entrée analogique. Le convertisseur analogique-numérique (ADC) interne du microcontrôleur est utilisé dans le compteur numérique de tension et de température. L'entrée ADC peut être connectée par logiciel aux broches RA1 - RAZ. Pour augmenter l'immunité au bruit du trajet de mesure, le fonctionnement de l'ADC est synchronisé avec une période d'indication dynamique de 20 ms. Le résultat de la conversion est traité par un filtre de moyenne logiciel.

Au début de chaque période de mesure, l'ADC convertit d'abord la tension de la sortie, puis celle du capteur de température. A partir de 16 lectures de chaque paramètre, la valeur moyenne arithmétique est calculée, qui est affichée sur l'indicateur. La période de mise à jour de la lecture est de 320 ms. La valeur moyenne de la température, qu'elle soit affichée ou non sur l'indicateur HG1, est comparée à un seuil défini par l'utilisateur avant mise à jour. S'il dépasse le seuil, la tension de sortie sera coupée. Dès que la température descend de 2 ºС en dessous du seuil, la tension de sortie se réactive.

Le programme du microcontrôleur fournit un compteur de temps pour l'état de marche de l'alimentation. Les valeurs du registre du compteur sont mises à jour toutes les minutes et comparées à une valeur définie au-dessus de laquelle la tension de sortie est désactivée. Cela peut être nécessaire pour limiter la durée de certains processus, par exemple le chargement d'une batterie.

Le limiteur de courant de sortie fonctionne indépendamment du microcontrôleur et de son programme. Il protège l'alimentation des courts-circuits en sortie et limite le courant de sortie en réduisant la tension de sortie. La base du limiteur est une unité qui convertit le courant de charge en une tension proportionnelle à celui-ci par rapport au fil commun, décrite dans l'article de I. Nechaev « Indicateur de limite de courant » dans « Radio », 2002, n° 9, p . 23. Cette unité est assemblée à l'aide de l'ampli opérationnel DA2.2, du transistor VT4 et des résistances R23-R25. La résistance R25 est un capteur de courant de charge connecté au circuit du fil d'alimentation positif.

Une tension proportionnelle au courant de sortie de la source du transistor VT4 à travers la résistance R20 est fournie à l'entrée inverseuse (broche 6) de l'amplificateur opérationnel DA2.1, et son entrée non inverseuse (broche 5) est alimentée en tension du moteur de résistance variable R18. Lorsque la position de ce moteur reste inchangée, la tension sur celui-ci est stable, puisque les résistances R17 et R18 connectées en série sont connectées à une tension stabilisée de +5 V à partir de la sortie du microcircuit DA1. En déplaçant le curseur de la résistance variable R18, le seuil de limitation du courant de sortie est ajusté.

Si la tension à l'entrée non inverseuse de l'ampli-op DA2.1 est supérieure à la tension à la source du transistor VT4, qui est proportionnelle au courant, alors la tension à la sortie de cet ampli-op est proche de sa tension d'alimentation, la diode VD2 est fermée et n'affecte pas la stabilisation de la tension de sortie. La LED HL1 est éteinte et protégée des tensions inverses par la diode VD3. Si la tension à la source du transistor VT4 dépasse la tension à l'entrée non inverseuse de l'ampli-op DA2.1, la tension à la sortie de cet ampli-op DA2.1 tombera presque à zéro. Le courant commencera à circuler à travers la résistance R19, la diode VD3 et la LED HL1. La diode VD2 s'ouvre, provoquant la diminution de la tension de sortie comme suit. afin que le courant de sortie ne dépasse pas le seuil limite. La LED HL1 s'allumera - un indicateur du mode de limitation du courant de charge.

Après avoir allumé l'appareil, la tension d'alimentation 5 V du stabilisateur DA1 est fournie au microcontrôleur DD1. qui configure les ports d'entrée-sortie, la configuration et les modes des modules périphériques intégrés selon le programme, lit les valeurs de tension de sortie, les réglages de température et le délai de l'EEPROM (mémoire non volatile) dans les registres. L'indicateur HG1 affiche le numéro de version du programme pendant deux secondes puis, avec une luminosité réduite, la valeur de tension qui devrait être à la sortie, mais elle n'est pas encore allumée à ce moment. En appuyant sur le bouton SB1, la tension de sortie est activée. allumé avec la valeur précédemment enregistrée dans l'EEPROM, l'indicateur HG1 l'affichera en pleine luminosité. La prochaine pression sur ce bouton éteindra à nouveau la tension de sortie, et ainsi de suite. Appuyer sur SB3 et SB4 augmente ou diminue respectivement la tension de sortie. En appuyant brièvement, vous pouvez affiner la tension de sortie et en maintenant les boutons enfoncés, vous pouvez la régler grossièrement. S'il est nécessaire qu'à la prochaine mise sous tension de la source d'alimentation, la sortie ait une nouvelle valeur de tension, vous devez alors l'écrire dans la mémoire en appuyant longuement sur le bouton SB2. Lorsque l'indicateur affiche "SAU", le bouton est relâché, la nouvelle valeur sera enregistrée dans l'EEPROM.

Un appui court sur SB2 permet de visualiser la valeur du compteur de température et de temps sur l'indicateur par incréments de 10 minutes. Les valeurs des réglages de température et de temps peuvent être visualisées en maintenant ce bouton enfoncé, et l'indicateur affichera les valeurs clignotantes des réglages correspondants, qui peuvent être modifiés à l'aide des boutons SB3 et SB4. Appuyer et maintenir le bouton SB2 enregistrera les nouvelles valeurs dans l'EEPROM.

Si, pendant le fonctionnement de l'appareil avec la tension de sortie activée, la température du capteur BK1 dépasse celle réglée, la tension de sortie s'éteindra. L'indicateur affichera un « o.t » clignotant, ce qui signifie que la température a été dépassée. Dès que la température descend en dessous de la valeur définie de 2 C, la tension de sortie sera activée et l'indicateur HG1 affichera sa valeur.

Si la valeur du compteur de temps correspond à la valeur définie, la tension de sortie sera coupée et l'indicateur affichera un « o.h » clignotant, ce qui signifie que le temps a été dépassé. Vous pouvez ensuite activer la tension d'entrée en déplaçant le réglage de l'heure vers l'avant ou vers « 0 ».

Le transformateur de réseau T1 est fabriqué industriellement avec une tension d'enroulement secondaire de 17 V et un courant de charge admissible de 1,2 A. Vous pouvez utiliser un transformateur TP-115-K8 avec deux enroulements secondaires de 9 V chacun et un courant de 1,1 A, qui sont connectés en série en phase. Un transformateur réseau issu de la technologie des lampes avec trois enroulements filamentaires de 6,3 V chacun, connectés de la même manière, convient également. Le pont de diodes VD1 doit être conçu pour une tension d'au moins 50 V et un courant redressé moyen d'au moins 2 A. Les diodes 1N4148 (VD2 et VD3) peuvent être remplacées par KD522 avec n'importe quelle lettre d'index. Les diodes BAT85 (VD4-VD6) peuvent être remplacées par d'autres diodes Schottky, par exemple 1N5817, 1N5818.

Le transistor de régulation VT1 de structure pnp, un composite KT825G dans un boîtier métallique, a été sélectionné avec une grande réserve de courant pour assurer la fiabilité de l'appareil. Il peut être remplacé par un similaire avec une tension collecteur-émetteur maximale d'au moins 50 V et un courant de collecteur de 3 A ou plus. Le transistor VT1 est installé sur un dissipateur thermique à ailettes d'une surface de refroidissement de 100 cm2. Le dissipateur thermique avec transistor VT1 est fixé sur le couvercle supérieur du boîtier depuis l'extérieur, comme le montre la photo de la Fig. 2. Transistors à effet de champ VT2 et VT4 - n'importe lesquels de la série KP501 ou 2N7000 importé. Le transistor VT3 peut appartenir à l'une des séries KT3102, KT342.

L'indicateur HG1 est à trois ou quatre chiffres avec une anode commune. Il peut être composé de trois indicateurs distincts à un chiffre. Dans ce cas, les bornes des segments du même nom sont connectées les unes aux autres, le transistor VT3 n'est pas installé et la sortie du point décimal du deuxième chiffre est connectée au fil commun via une résistance de 1 kOhm.
Les boutons SB1-SB4 proviennent d'équipements de bureau défectueux, notamment d'une imprimante à jet d'encre. Stabilisateur de tension DA1 - n'importe lequel des séries 7805 dans un boîtier TO220. Résistance ajustable R28 - 3266W-1-103 - multitours de petite taille importée fabriquée par Bourns. Le capteur de courant R25 est composé de quatre résistances connectées en parallèle d'une résistance de 1 Ohm et d'une puissance nominale de 0,5 W.

L'alimentation est assemblée sans la diode VD2. vérifier la bonne installation et l'absence de court-circuit. Pour la première fois, connectez l'unité au réseau sans microcontrôleur DD1 ni charge. A l'aide d'un voltmètre, vérifier que la tension à la prise 14 du panneau DD1 est de 5 V, à l'émetteur du transistor VT1 - 17...20 V, à son collecteur - environ 0 V. L'appareil est éteint et le DD1 le microcontrôleur est installé dans le panneau avec un programme préenregistré, codes qui sont donnés dans le fichier ad_ps1 .hex.

Je présente à votre attention un schéma éprouvé d'une bonne alimentation de laboratoire, publié dans le magazine "Radio" n°3, avec une tension maximale de 40 V et un courant jusqu'à 10 A. L'alimentation est équipée d'un numérique unité d'affichage avec contrôle par microcontrôleur. Le circuit d'alimentation est représenté sur la figure :

Description du fonctionnement de l'appareil. L'optocoupleur maintient une chute de tension aux bornes du régulateur linéaire d'environ 1,5 V. Si la chute de tension aux bornes de la puce augmente (par exemple, en raison d'une augmentation de la tension d'entrée), la LED de l'optocoupleur et, par conséquent, le phototransistor s'allument. Le contrôleur PHI s'éteint, fermant le transistor de commutation. La tension à l'entrée du stabilisateur linéaire diminuera.

Pour augmenter la stabilité, la résistance R3 est placée aussi près que possible de la puce stabilisatrice DA1. Les selfs L1, L2 sont des sections de tubes en ferrite placées sur les bornes de grille des transistors à effet de champ VT1, VT3. La longueur de ces tubes est environ la moitié de la longueur du câble. L'inducteur L3 est enroulé sur deux noyaux magnétiques annulaires K36x25x7,5 repliés ensemble en permalloy MP 140. Son enroulement contient 45 tours, qui sont enroulés en deux fils PEV-2 d'un diamètre de 1 mm, posés uniformément autour du périmètre magnétique. cœur. Il est permis de remplacer le transistor IRF9540 par IRF4905 et le transistor IRF1010N par BUZ11, IRF540.

Si nécessaire avec un courant de sortie supérieur à 7,5 A, il est nécessaire d'ajouter un autre régulateur DA5 en parallèle avec DA1. Le courant de charge maximum atteindra alors 15 A. Dans ce cas, l'inductance L3 est enroulée avec un faisceau composé de quatre fils PEV-2 d'un diamètre de 1 mm et la capacité des condensateurs C1-SZ est approximativement doublée. Les résistances R18, R19 sont sélectionnées en fonction du même degré d'échauffement des microcircuits DA1, DA5. Le contrôleur PHI doit être remplacé par un autre qui permet un fonctionnement à une fréquence plus élevée, par exemple KR1156EU2.

Module de mesure numérique de tension et de courant d'unité d'alimentation de laboratoire

La base de l'appareil est le microcontrôleur PICI6F873. La puce DA2 contient un stabilisateur de tension, qui sert également de référence pour l'ADC intégré du microcontrôleur DDI. Les lignes de port RA5 et RA4 sont programmées comme entrées ADC pour mesurer respectivement la tension et le courant, et RA3 sert à contrôler un transistor à effet de champ. Le capteur de courant est la résistance R2 et le capteur de tension est le diviseur résistif R7 R8. Le signal du capteur de courant est amplifié par l'ampli opérationnel DAI. 1. et l'ampli-op DA1.2 est utilisé comme amplificateur tampon.

Caractéristiques:

  • Mesure de tension, V - 0..50.
  • Mesure de courant, A - 0,05..9.99.
  • Seuils de protection :
  • - par courant. A - de 0,05 à 9,99.
  • - par tension. B - de 0,1 à 50.
  • Tension d'alimentation, V - 9...40.
  • Consommation de courant maximale, mA - 50.

Une alimentation électrique de bonne qualité, fiable et facile à utiliser est l’appareil le plus important et le plus fréquemment utilisé dans chaque laboratoire de radioamateur.

Une alimentation industrielle stabilisée est un appareil assez coûteux. En utilisant un microcontrôleur lors de la conception d'une alimentation, vous pouvez créer un appareil doté de nombreuses fonctions supplémentaires, facile à fabriquer et très abordable.

Cette alimentation numérique DC a connu un grand succès et en est maintenant à sa troisième version. Elle est toujours basée sur la même idée que la première option, mais comporte quelques améliorations intéressantes.

Introduction

Cette alimentation est la moins complexe à réaliser que la plupart des autres circuits, mais possède bien plus de fonctionnalités :

L'écran affiche les valeurs de tension et de courant actuellement mesurées.
- L'écran affiche les limites de tension et de courant prédéfinies.
- Seuls des composants standards sont utilisés (pas de puces spéciales).
- Nécessite une tension d'alimentation unipolaire (pas de tension d'alimentation négative séparée pour les amplificateurs opérationnels ou la logique de contrôle)
- Vous pouvez contrôler l'alimentation depuis votre ordinateur. Vous pouvez lire le courant et la tension et les définir avec des commandes simples. Ceci est très utile pour les tests automatisés.
- Petit clavier pour saisir directement la tension et le courant maximum souhaités.
- Il s'agit d'une source d'alimentation vraiment petite mais puissante.

Est-il possible de supprimer certains composants ou d’ajouter des fonctionnalités supplémentaires ? L'astuce consiste à déplacer les fonctionnalités des composants analogiques tels que les amplificateurs opérationnels dans le microcontrôleur. En d’autres termes, la complexité des logiciels et des algorithmes augmente et la complexité matérielle diminue. Cela réduit la complexité globale pour vous puisque le logiciel peut être simplement téléchargé.

Idées de projets électriques de base

Commençons par l'alimentation stabilisée la plus simple. Il se compose de 2 parties principales : un transistor et une diode Zener, qui crée une tension de référence.

La tension de sortie de ce circuit sera Uref moins 0,7 Volt, qui se situe entre B et E au niveau du transistor. La diode Zener et la résistance créent une tension de référence stable même s'il y a des pics de tension à l'entrée. Un transistor est nécessaire pour commuter des courants élevés qu'une diode Zener et une résistance ne peuvent pas fournir. Dans ce rôle, le transistor ne fait qu'amplifier le courant. Pour calculer le courant sur la résistance et la diode Zener, vous devez diviser le courant de sortie par le HFE du transistor (numéro HFE, que l'on retrouve dans le tableau des caractéristiques du transistor).

Quels sont les problèmes de ce schéma ?

Le transistor grillera en cas de court-circuit à la sortie.
- Il fournit uniquement une tension de sortie fixe.

Ce sont des limitations assez sévères qui rendent ce circuit inadapté à notre projet, mais c'est la base pour concevoir une alimentation à commande électronique.

Pour surmonter ces problèmes, il est nécessaire d’utiliser une « intelligence » qui régulera le courant de sortie et modifiera la tension de référence. C'est tout (...et cela rend le circuit beaucoup plus compliqué).

Au cours des dernières décennies, les gens ont utilisé des amplificateurs opérationnels pour alimenter cet algorithme. Les amplificateurs opérationnels peuvent en principe être utilisés comme ordinateurs analogiques pour additionner, soustraire, multiplier ou effectuer des opérations logiques « ou » sur les tensions et les courants.

De nos jours, toutes ces opérations peuvent être réalisées rapidement à l’aide d’un microcontrôleur. La meilleure partie est que vous obtenez un voltmètre et un ampèremètre en complément gratuit. Dans tous les cas, le microcontrôleur doit connaître les paramètres de sortie courant et tension. Il vous suffit de les afficher. De quoi avons-nous besoin d'un microcontrôleur :

ADC (convertisseur analogique-numérique) pour mesurer la tension et le courant.
- DAC (convertisseur numérique-analogique) pour contrôler le transistor (réglage de la tension de référence).

Le problème est que le DAC doit être très rapide. Si un court-circuit est détecté à la sortie, alors il faut immédiatement réduire la tension à la base du transistor sinon il grillera. La vitesse de réponse doit être de l'ordre de quelques millisecondes (aussi rapide qu'un ampli opérationnel).

L'ATmega8 possède un ADC assez rapide, et à première vue il n'a pas de DAC. Vous pouvez utiliser la modulation de largeur d'impulsion (PWM) et un filtre passe-bas analogique pour réaliser un DAC, mais le PWM à lui seul est trop lent dans le logiciel pour mettre en œuvre une protection contre les courts-circuits. Comment construire un DAC rapide ?

Il existe de nombreuses façons de créer des convertisseurs numérique-analogique, mais cela doit être rapide et simple, qui s'interfacera facilement avec notre microcontrôleur. Il existe un circuit convertisseur connu sous le nom de « matrice R-2R ». Il se compose uniquement de résistances et d'interrupteurs. Deux types de valeurs de résistance sont utilisés. Un avec une valeur R et un avec le double de la valeur R.

Ci-dessus, le circuit d'un DAC R2R 3 bits. La commande logique commute entre GND et Vcc. Un logique un connecte le commutateur à Vcc et un zéro logique à GND. A quoi sert ce circuit ? Il régule la tension par pas de Vcc/8. La tension de sortie totale est :

Usortie = Z * (Vcc / (Zmax +1), où Z est la résolution en bits du DAC (0-7), dans ce cas 3 bits.

Comme on peut le voir, la résistance interne du circuit sera égale à R.

Au lieu d'utiliser un commutateur séparé, vous pouvez connecter la matrice R-2R aux lignes de port du microcontrôleur.

Création d'un signal DC de différents niveaux à l'aide de PWM (modulation de largeur d'impulsion)

La modulation de largeur d'impulsion est une technique qui génère des impulsions et les fait passer à travers un filtre passe-bas avec une fréquence de coupure nettement inférieure à la fréquence d'impulsion. En conséquence, le signal de courant et de tension CC dépend de la largeur de ces impulsions.

Atmega8 dispose d'un matériel PWM 16 bits. Autrement dit, il est théoriquement possible d'avoir un DAC 16 bits utilisant un petit nombre de composants. Pour obtenir un vrai signal DC à partir d'un signal PWM, vous devez le filtrer, cela peut poser un problème à haute résolution. Plus la précision est nécessaire, plus la fréquence du signal PWM doit être basse. Cela signifie que de gros condensateurs sont nécessaires et que le temps de réponse est très lent. Les première et deuxième versions de l'alimentation CC numérique ont été construites sur une matrice R2R de 10 bits. Autrement dit, la tension de sortie maximale peut être réglée sur 1 024 étapes. Si vous utilisez ATmega8 avec un générateur d'horloge de 8 MHz et un PWM de 10 bits, alors les impulsions du signal PWM auront une fréquence de 8 MHz/1024 = 7,8 KHz. Pour obtenir le meilleur signal DC, vous devez le filtrer avec un filtre de second ordre de 700 Hz ou moins.

Vous pouvez imaginer ce qui se passerait si vous utilisiez un PWM 16 bits. 8MHz/65536 = 122Hz. En dessous de 12 Hz, c'est ce dont vous avez besoin.

Combinaison de la matrice R2R et du PWM

Vous pouvez utiliser les matrices PWM et R2R ensemble. Dans ce projet, nous utiliserons une matrice R2R 7 bits combinée à un signal PWM 5 bits. Avec une vitesse d'horloge du contrôleur de 8 MHz et une résolution de 5 bits, nous obtiendrons un signal de 250 kHz. La fréquence de 250 kHz peut être convertie en signal DC à l'aide d'un petit nombre de condensateurs.

La version originale de l'alimentation CC numérique utilisait un DAC matriciel R2R 10 bits. Dans la nouvelle conception, nous utilisons une matrice R2R et PWM avec une résolution totale de 12 bits.

Suréchantillonnage

Au prix d'un certain temps de traitement, la résolution du convertisseur analogique-numérique (ADC) peut être augmentée. C'est ce qu'on appelle le rééchantillonnage. Le rééchantillonnage quadruple entraîne une double résolution. Autrement dit : 4 échantillons consécutifs peuvent être utilisés pour obtenir deux fois plus de pas par CAN. La théorie du rééchantillonnage est expliquée dans le document PDF que vous trouverez à la fin de cet article. Nous utilisons le suréchantillonnage pour la tension de la boucle de contrôle. Pour la boucle de contrôle de courant, nous utilisons la résolution d'origine de l'ADC car un temps de réponse rapide est ici plus important que la résolution.

Description détaillée du projet

Il manque encore quelques détails techniques :

Le DAC (convertisseur numérique-analogique) ne peut pas piloter le transistor de puissance
- Le microcontrôleur fonctionne à partir de 5V, cela signifie que la sortie maximale du DAC est de 5V, et la tension de sortie maximale sur le transistor de puissance sera de 5 - 0,7 = 4,3V.

Pour résoudre ce problème, nous devons ajouter des amplificateurs de courant et de tension.

Ajout d'un étage amplificateur au DAC

Lors de l’ajout d’un amplificateur, il faut garder à l’esprit qu’il doit gérer des signaux importants. La plupart des conceptions d'amplificateurs (par exemple pour l'audio) partent de l'hypothèse que les signaux seront faibles par rapport à la tension d'alimentation. Alors oubliez tous les livres classiques sur le calcul d’un amplificateur pour un transistor de puissance.

Nous pourrions utiliser des amplificateurs opérationnels, mais ceux-ci nécessiteraient une tension d'alimentation positive et négative supplémentaire, ce que nous voulons éviter.

Il existe également une exigence supplémentaire selon laquelle l'amplificateur doit amplifier la tension à partir de zéro dans un état stable sans oscillation. En termes simples, il ne devrait y avoir aucune fluctuation de tension lors de la mise sous tension.

Vous trouverez ci-dessous un schéma d'un étage amplificateur adapté à cet effet.

Commençons par le transistor de puissance. Nous utilisons BD245 (Q1). D'après les caractéristiques, le transistor a HFE = 20 à 3A. Il consommera donc environ 150 mA à la base. Pour amplifier le courant de commande, nous utilisons une combinaison connue sous le nom de « transistor Darlington ». Pour ce faire, nous utilisons un transistor de moyenne puissance. En règle générale, la valeur HFE doit être comprise entre 50 et 100. Cela réduira le courant requis à 3 mA (150 mA / 50). Le courant de 3 mA est le signal provenant de transistors de faible puissance tels que BC547/BC557. Les transistors avec un tel courant de sortie conviennent parfaitement à la construction d'un amplificateur de tension.

Pour obtenir une sortie de 30V, il faut amplifier le 5V provenant du DAC avec un facteur 6. Pour ce faire, nous combinons des transistors PNP et NPN, comme indiqué ci-dessus. Le gain en tension de ce circuit est calculé :

Vampl = (R6 + R7) / R7

L'alimentation peut être disponible en 2 versions : avec une tension de sortie maximale de 30 et 22V. La combinaison de 1K et 6,8K donne un facteur de 7,8, ce qui est bon pour la version 30V, mais il peut y avoir une certaine perte à des courants plus élevés (notre formule est linéaire, mais en réalité ce n'est pas le cas). Pour la version 22V, nous utilisons 1K et 4,7K.

La résistance interne du circuit indiquée sur la base BC547 serait :

Rin = hfe1 * S1 * R7 * R5 = 100 * 50 * 1K * 47K = 235 MOhm

HFE est d'environ 100 à 200 pour le transistor BC547
- S est la pente de la courbe de gain du transistor et est d'environ 50 [unité = 1/Ohm]

C'est plus que suffisant pour se connecter à notre DAC, qui a une résistance interne de 5 000 ohms.

Résistance de sortie équivalente interne :

Déroute = (R6 + R7) / (S1 + S2 * R5 * R7) = environ 2Ω

Assez bas pour utiliser le transistor Q2.

R5 connecte la base du BC557 à l'émetteur, ce qui signifie « éteint » pour le transistor avant que le DAC et le BC547 n'apparaissent. R7 et R6 relient d'abord la base de Q2 à la terre, ce qui abaisse l'étage de sortie Darlington.

En d’autres termes, chaque composant de cet étage amplificateur est initialement désactivé. Cela signifie que nous n’obtiendrons aucune oscillation d’entrée ou de sortie des transistors lorsque l’alimentation est allumée ou coupée. C'est un point très important. J'ai vu des alimentations industrielles coûteuses qui subissent des surtensions lorsqu'elles sont éteintes. De telles sources doivent certainement être évitées car elles peuvent facilement tuer des appareils sensibles.

Limites

D'après mon expérience précédente, je sais que certains radioamateurs aimeraient « personnaliser » l'appareil pour eux-mêmes. Voici une liste des limitations matérielles et des moyens de les surmonter :

BD245B : 10A 80W. 80W à une température de 25"C. En d'autres termes, il existe une réserve de marche basée sur 60-70W : (Tension d'entrée maximale * Courant maximal)< 65Вт.

Vous pouvez ajouter un deuxième BD245B et augmenter la puissance à 120W. Pour garantir que le courant est réparti uniformément, ajoutez une résistance de 0,22 ohm à la ligne émettrice de chaque BD245B. Le même circuit et la même carte peuvent être utilisés. Montez les transistors sur le refroidisseur en aluminium approprié et connectez-les avec des fils courts à la carte. L'amplificateur peut piloter un deuxième transistor de puissance (c'est le maximum), mais vous devrez peut-être ajuster le gain.

Shunt de détection de courant : Nous utilisons une résistance de 0,75 ohm 6 W. Il y a suffisamment de puissance à un courant de 2,5A (Iout ^ 2 * 0,75<= 6Вт). Для больших токов используйте резисторы соответствующей мощности.

Alimentations

Vous pouvez utiliser un transformateur, un redresseur et de gros condensateurs ou un adaptateur pour ordinateur portable 32/24 V. J'ai opté pour la deuxième option, parce que... les adaptateurs sont parfois vendus à très bas prix (en soldes), et certains d'entre eux fournissent 70W en 24V voire 32V DC.

La plupart des jambons utiliseront probablement des transformateurs ordinaires car ils sont faciles à obtenir.

Pour la version 22V 2,5A il vous faut : un transformateur 3A 18V, un redresseur et un condensateur 2200uF ou 3300uF. (18*1,4 = 25V)
Pour la version 30V 2A il vous faut : un transformateur 2,5A 24V, un redresseur et un condensateur 2200uF ou 3300uF. (24*1,4 = 33,6 V)

Cela ne fera pas de mal d'utiliser un transformateur de courant plus élevé. Un pont redresseur avec 4 diodes à faible chute (par exemple BYV29-500) donne de bien meilleures performances.

Vérifiez votre appareil pour une mauvaise isolation. Assurez-vous qu'il ne sera pas possible de toucher une partie de l'appareil où la tension peut être de 110/230 V. Connectez toutes les parties métalliques du boîtier à la terre (pas aux circuits GND).

Transformateurs et adaptateurs secteur pour ordinateurs portables

Si vous souhaitez utiliser deux alimentations ou plus dans votre appareil pour produire une tension positive et négative, il est important que les transformateurs soient isolés. Soyez prudent avec les adaptateurs secteur pour ordinateurs portables. Les adaptateurs basse consommation peuvent toujours fonctionner, mais certains peuvent avoir la broche de sortie négative connectée à la broche de masse d'entrée. Cela pourrait provoquer un court-circuit à travers le fil de terre lors de l'utilisation de deux alimentations dans l'unité.


Autre tension et courant

Il existe deux options 22V 2,5A et 30V 2A. Si vous souhaitez modifier les limites de tension de sortie ou de courant (il suffit de les diminuer), modifiez simplement le fichier hardware_settings.h.

Exemple : Pour créer une version 18 V 2,5 A, vous modifiez simplement la tension de sortie maximale à 18 V dans le fichier hardware_settings.h. Vous pouvez utiliser une alimentation 20 V 2,5 A.

Exemple : Pour créer une version 18 V 1,5 A, vous modifiez simplement dans le fichier hardware_settings.h la tension de sortie maximale à 18 V et max. courant 1,5A. Vous pouvez utiliser une alimentation 20 V 1,5 A.

Essai

Le dernier élément installé sur la carte doit être un microcontrôleur. Avant de l'installer, je vous recommande de faire quelques tests matériels de base :

Test 1 : Connectez une petite tension (10 V suffisent) aux bornes d'entrée de la carte et assurez-vous que le régulateur de tension produit exactement une tension CC de 5 V.

Test2 : mesurez la tension de sortie. Il doit être de 0 V (ou proche de zéro, par exemple 0,15, et il tendra vers zéro si vous connectez des résistances de 2 kOhm ou 5 kOhm au lieu de la charge.)

Test3 : installez le microcontrôleur sur la carte et chargez le logiciel de test LCD en exécutant les commandes dans le répertoire du package tar.gz digitaldcpower décompressé.

faire test_lcd.hex
faire load_test_lcd

Vous devriez voir le message « L'écran LCD fonctionne » sur l'écran.

Vous pouvez maintenant télécharger le logiciel fonctionnel.

Quelques mots d'avertissement pour des tests plus approfondis avec un logiciel fonctionnel : Soyez prudent avec les courts-circuits jusqu'à ce que vous ayez testé la fonction de limitation. Un moyen sûr de tester la limitation de courant consiste à utiliser des résistances à faible résistance (unités en ohms), telles que des ampoules de voiture.

Réglez la limite de courant à un niveau bas, par exemple 30 mA à 10 V. Vous devriez voir la tension chuter immédiatement jusqu'à presque zéro dès que vous connectez l'ampoule à la sortie. Il y a un défaut dans le circuit si la tension ne baisse pas. Avec une lampe de voiture, vous pouvez protéger le circuit d'alimentation même en cas de défaut car il ne court-circuite pas.

Logiciel

Cette section vous permettra de comprendre comment fonctionne le programme et comment vous pouvez utiliser ces connaissances pour y apporter des modifications. Cependant, il ne faut pas oublier que la protection contre les courts-circuits est réalisée par logiciel. Si vous avez commis une erreur quelque part, la protection risque de ne pas fonctionner. Si vous court-circuitez la sortie, votre appareil se retrouvera dans un nuage de fumée. Pour éviter cela, vous devez utiliser une lampe de voiture 12 V (voir ci-dessus) pour tester la protection contre les courts-circuits.

Parlons maintenant un peu de la structure du programme. Lorsque vous regardez pour la première fois le programme principal (fichier main.c, téléchargeable à la fin de cet article), vous verrez qu'il n'y a que quelques lignes de code d'initialisation qui sont exécutées au démarrage, puis le programme entre un boucle infinie.

En effet, il y a deux boucles infinies dans ce programme. L'une est la boucle principale ("while(1)( ...)" dans main.c) et l'autre est une interruption périodique du convertisseur analogique-numérique (le "ISR(ADC_vect)(...)" fonction en analogique.c). Après initialisation, l'interruption est exécutée toutes les 104 µs. Toutes les autres fonctions et codes sont exécutés dans le contexte de l'une de ces boucles.

Une interruption peut arrêter l'exécution d'une tâche de boucle principale à tout moment. Ensuite, il sera traité sans être distrait par d'autres tâches, puis l'exécution de la tâche se poursuivra à nouveau dans la boucle principale à l'endroit où elle a été interrompue. Deux conclusions en découlent :

1. Le code d'interruption ne doit pas être trop long, car il doit être terminé avant la prochaine interruption. Parce que le nombre d'instructions dans le code machine est ici important. Une formule mathématique qui peut être écrite sous la forme d’une seule ligne de code C peut utiliser jusqu’à des centaines de lignes de code machine.

2. Les variables utilisées dans la fonction d'interruption et dans le code de la boucle principale peuvent soudainement changer au milieu de l'exécution.

Tout cela signifie que des tâches complexes telles que la mise à jour de l'affichage, le test des boutons, la conversion du courant et de la tension doivent être effectuées dans le corps de la boucle principale. Lors des interruptions, nous effectuons des tâches critiques : mesure du courant et de la tension, protection contre les surcharges et configuration du DAC. Pour éviter des calculs mathématiques complexes lors des interruptions, ils sont effectués en unités DAC. C'est-à-dire dans les mêmes unités que l'ADC (valeurs entières de 0 à 1023 pour le courant et de 0 à 2047 pour la tension).

C'est l'idée principale du programme. Je vais également expliquer brièvement les fichiers que vous trouverez dans les archives (en supposant que vous soyez familier avec SI).

main.c - ce fichier contient le programme principal. Toutes les initialisations se font ici. La boucle principale est également implémentée ici.
analog.c est un convertisseur analogique-numérique, tout ce qui fonctionne dans le cadre d'une interruption de tâche se trouve ici.
dac.c - convertisseur numérique-analogique. Initialisé à partir de ddcp.c, mais utilisé uniquement avec analog.c
kbd.c - programme de traitement des données du clavier
lcd.c - Pilote LCD. Il s'agit d'une version spéciale qui ne nécessite pas de contact d'affichage RW.

Pour charger un logiciel dans le microcontrôleur, vous avez besoin d'un programmeur tel que l'avrusb500. Vous pouvez télécharger les archives zip du logiciel à la fin de l'article.

Modifiez le fichier hardware_settings.h et configurez-le en fonction de votre matériel. Ici, vous pouvez également calibrer le voltmètre et l'ampèremètre. Le dossier est bien commenté.

Connectez le câble au programmateur et à votre appareil. Définissez ensuite les bits de configuration pour exécuter le microcontrôleur à partir de l'oscillateur interne de 8 MHz. Le programme est conçu pour cette fréquence.

Boutons

L'alimentation dispose de 4 boutons pour le contrôle local de la tension et max. courant, le 5ème bouton est utilisé pour enregistrer les paramètres dans la mémoire EEPROM, de sorte que la prochaine fois que vous allumerez l'appareil, il y aura les mêmes paramètres de tension et de courant.

U+ augmente la tension et U - la diminue. Lorsque vous maintenez le bouton enfoncé, après un certain temps, les lectures « s'exécuteront » plus rapidement pour modifier facilement la tension dans une large plage. Les boutons I + et I - fonctionnent de la même manière.

Afficher

L'indication affichée ressemble à ceci :

La flèche à droite indique que la limitation de tension est actuellement en vigueur. S'il y a un court-circuit à la sortie ou si l'appareil connecté consomme plus que le courant réglé, une flèche apparaîtra sur la ligne inférieure de l'écran, indiquant que la limite de courant est activée.

Quelques photos de l'appareil

Voici quelques photos de l'alimentation que j'ai assemblée.

Il est très petit, mais plus performant et plus puissant que de nombreuses autres alimentations :

Les vieux radiateurs en aluminium des processeurs Pentium sont bien adaptés au refroidissement des éléments de puissance :

Placement de la carte et de l'adaptateur à l'intérieur du boîtier :

Apparence de l'appareil :

Option d'alimentation à double canal. Publié par boogyman :

Une alimentation électrique de bonne qualité, fiable et facile à utiliser est l’appareil le plus important et le plus fréquemment utilisé dans chaque laboratoire de radioamateur.

Une alimentation industrielle stabilisée est un appareil assez coûteux. En utilisant un microcontrôleur lors de la conception d'une alimentation, vous pouvez créer un appareil doté de nombreuses fonctions supplémentaires, facile à fabriquer et très abordable.

Cette alimentation numérique DC a connu un grand succès et en est maintenant à sa troisième version. Elle est toujours basée sur la même idée que la première option, mais comporte quelques améliorations intéressantes.

Introduction

Cette alimentation est la moins complexe à réaliser que la plupart des autres circuits, mais possède bien plus de fonctionnalités :

L'écran affiche les valeurs de tension et de courant actuellement mesurées.
- L'écran affiche les limites de tension et de courant prédéfinies.
- Seuls des composants standards sont utilisés (pas de puces spéciales).
- Nécessite une tension d'alimentation unipolaire (pas de tension d'alimentation négative séparée pour les amplificateurs opérationnels ou la logique de contrôle)
- Vous pouvez contrôler l'alimentation depuis votre ordinateur. Vous pouvez lire le courant et la tension et les définir avec des commandes simples. Ceci est très utile pour les tests automatisés.
- Petit clavier pour saisir directement la tension et le courant maximum souhaités.
- Il s'agit d'une source d'alimentation vraiment petite mais puissante.

Est-il possible de supprimer certains composants ou d’ajouter des fonctionnalités supplémentaires ? L'astuce consiste à déplacer les fonctionnalités des composants analogiques tels que les amplificateurs opérationnels dans le microcontrôleur. En d’autres termes, la complexité des logiciels et des algorithmes augmente et la complexité matérielle diminue. Cela réduit la complexité globale pour vous puisque le logiciel peut être simplement téléchargé.

Idées de projets électriques de base

Commençons par l'alimentation stabilisée la plus simple. Il se compose de 2 parties principales : un transistor et une diode Zener, qui crée une tension de référence.

La tension de sortie de ce circuit sera Uref moins 0,7 Volt, qui se situe entre B et E au niveau du transistor. La diode Zener et la résistance créent une tension de référence stable même s'il y a des pics de tension à l'entrée. Un transistor est nécessaire pour commuter des courants élevés qu'une diode Zener et une résistance ne peuvent pas fournir. Dans ce rôle, le transistor ne fait qu'amplifier le courant. Pour calculer le courant sur la résistance et la diode Zener, vous devez diviser le courant de sortie par le HFE du transistor (numéro HFE, que l'on retrouve dans le tableau des caractéristiques du transistor).

Quels sont les problèmes de ce schéma ?

Le transistor grillera en cas de court-circuit à la sortie.
- Il fournit uniquement une tension de sortie fixe.

Ce sont des limitations assez sévères qui rendent ce circuit inadapté à notre projet, mais c'est la base pour concevoir une alimentation à commande électronique.

Pour surmonter ces problèmes, il est nécessaire d’utiliser une « intelligence » qui régulera le courant de sortie et modifiera la tension de référence. C'est tout (...et cela rend le circuit beaucoup plus compliqué).

Au cours des dernières décennies, les gens ont utilisé des amplificateurs opérationnels pour alimenter cet algorithme. Les amplificateurs opérationnels peuvent en principe être utilisés comme ordinateurs analogiques pour additionner, soustraire, multiplier ou effectuer des opérations logiques « ou » sur les tensions et les courants.

De nos jours, toutes ces opérations peuvent être réalisées rapidement à l’aide d’un microcontrôleur. La meilleure partie est que vous obtenez un voltmètre et un ampèremètre en complément gratuit. Dans tous les cas, le microcontrôleur doit connaître les paramètres de sortie courant et tension. Il vous suffit de les afficher. De quoi avons-nous besoin d'un microcontrôleur :

ADC (convertisseur analogique-numérique) pour mesurer la tension et le courant.
- DAC (convertisseur numérique-analogique) pour contrôler le transistor (réglage de la tension de référence).

Le problème est que le DAC doit être très rapide. Si un court-circuit est détecté à la sortie, alors il faut immédiatement réduire la tension à la base du transistor sinon il grillera. La vitesse de réponse doit être de l'ordre de quelques millisecondes (aussi rapide qu'un ampli opérationnel).

L'ATmega8 possède un ADC assez rapide, et à première vue il n'a pas de DAC. Vous pouvez utiliser la modulation de largeur d'impulsion (PWM) et un filtre passe-bas analogique pour réaliser un DAC, mais le PWM à lui seul est trop lent dans le logiciel pour mettre en œuvre une protection contre les courts-circuits. Comment construire un DAC rapide ?

Il existe de nombreuses façons de créer des convertisseurs numérique-analogique, mais cela doit être rapide et simple, qui s'interfacera facilement avec notre microcontrôleur. Il existe un circuit convertisseur connu sous le nom de « matrice R-2R ». Il se compose uniquement de résistances et d'interrupteurs. Deux types de valeurs de résistance sont utilisés. Un avec une valeur R et un avec le double de la valeur R.

Ci-dessus, le circuit d'un DAC R2R 3 bits. La commande logique commute entre GND et Vcc. Un logique un connecte le commutateur à Vcc et un zéro logique à GND. A quoi sert ce circuit ? Il régule la tension par pas de Vcc/8. La tension de sortie totale est :

Usortie = Z * (Vcc / (Zmax +1), où Z est la résolution en bits du DAC (0-7), dans ce cas 3 bits.

Comme on peut le voir, la résistance interne du circuit sera égale à R.

Au lieu d'utiliser un commutateur séparé, vous pouvez connecter la matrice R-2R aux lignes de port du microcontrôleur.

Création d'un signal DC de différents niveaux à l'aide de PWM (modulation de largeur d'impulsion)

La modulation de largeur d'impulsion est une technique qui génère des impulsions et les fait passer à travers un filtre passe-bas avec une fréquence de coupure nettement inférieure à la fréquence d'impulsion. En conséquence, le signal de courant et de tension CC dépend de la largeur de ces impulsions.

Atmega8 dispose d'un matériel PWM 16 bits. Autrement dit, il est théoriquement possible d'avoir un DAC 16 bits utilisant un petit nombre de composants. Pour obtenir un vrai signal DC à partir d'un signal PWM, vous devez le filtrer, cela peut poser un problème à haute résolution. Plus la précision est nécessaire, plus la fréquence du signal PWM doit être basse. Cela signifie que de gros condensateurs sont nécessaires et que le temps de réponse est très lent. Les première et deuxième versions de l'alimentation CC numérique ont été construites sur une matrice R2R de 10 bits. Autrement dit, la tension de sortie maximale peut être réglée sur 1 024 étapes. Si vous utilisez ATmega8 avec un générateur d'horloge de 8 MHz et un PWM de 10 bits, alors les impulsions du signal PWM auront une fréquence de 8 MHz/1024 = 7,8 KHz. Pour obtenir le meilleur signal DC, vous devez le filtrer avec un filtre de second ordre de 700 Hz ou moins.

Vous pouvez imaginer ce qui se passerait si vous utilisiez un PWM 16 bits. 8MHz/65536 = 122Hz. En dessous de 12 Hz, c'est ce dont vous avez besoin.

Combinaison de la matrice R2R et du PWM

Vous pouvez utiliser les matrices PWM et R2R ensemble. Dans ce projet, nous utiliserons une matrice R2R 7 bits combinée à un signal PWM 5 bits. Avec une vitesse d'horloge du contrôleur de 8 MHz et une résolution de 5 bits, nous obtiendrons un signal de 250 kHz. La fréquence de 250 kHz peut être convertie en signal DC à l'aide d'un petit nombre de condensateurs.

La version originale de l'alimentation CC numérique utilisait un DAC matriciel R2R 10 bits. Dans la nouvelle conception, nous utilisons une matrice R2R et PWM avec une résolution totale de 12 bits.

Suréchantillonnage

Au prix d'un certain temps de traitement, la résolution du convertisseur analogique-numérique (ADC) peut être augmentée. C'est ce qu'on appelle le rééchantillonnage. Le rééchantillonnage quadruple entraîne une double résolution. Autrement dit : 4 échantillons consécutifs peuvent être utilisés pour obtenir deux fois plus de pas par CAN. La théorie du rééchantillonnage est expliquée dans le document PDF que vous trouverez à la fin de cet article. Nous utilisons le suréchantillonnage pour la tension de la boucle de contrôle. Pour la boucle de contrôle de courant, nous utilisons la résolution d'origine de l'ADC car un temps de réponse rapide est ici plus important que la résolution.

Description détaillée du projet

Il manque encore quelques détails techniques :

Le DAC (convertisseur numérique-analogique) ne peut pas piloter le transistor de puissance
- Le microcontrôleur fonctionne à partir de 5V, cela signifie que la sortie maximale du DAC est de 5V, et la tension de sortie maximale sur le transistor de puissance sera de 5 - 0,7 = 4,3V.

Pour résoudre ce problème, nous devons ajouter des amplificateurs de courant et de tension.

Ajout d'un étage amplificateur au DAC

Lors de l’ajout d’un amplificateur, il faut garder à l’esprit qu’il doit gérer des signaux importants. La plupart des conceptions d'amplificateurs (par exemple pour l'audio) partent de l'hypothèse que les signaux seront faibles par rapport à la tension d'alimentation. Alors oubliez tous les livres classiques sur le calcul d’un amplificateur pour un transistor de puissance.

Nous pourrions utiliser des amplificateurs opérationnels, mais ceux-ci nécessiteraient une tension d'alimentation positive et négative supplémentaire, ce que nous voulons éviter.

Il existe également une exigence supplémentaire selon laquelle l'amplificateur doit amplifier la tension à partir de zéro dans un état stable sans oscillation. En termes simples, il ne devrait y avoir aucune fluctuation de tension lors de la mise sous tension.

Vous trouverez ci-dessous un schéma d'un étage amplificateur adapté à cet effet.

Commençons par le transistor de puissance. Nous utilisons BD245 (Q1). D'après les caractéristiques, le transistor a HFE = 20 à 3A. Il consommera donc environ 150 mA à la base. Pour amplifier le courant de commande, nous utilisons une combinaison connue sous le nom de « transistor Darlington ». Pour ce faire, nous utilisons un transistor de moyenne puissance. En règle générale, la valeur HFE doit être comprise entre 50 et 100. Cela réduira le courant requis à 3 mA (150 mA / 50). Le courant de 3 mA est le signal provenant de transistors de faible puissance tels que BC547/BC557. Les transistors avec un tel courant de sortie conviennent parfaitement à la construction d'un amplificateur de tension.

Pour obtenir une sortie de 30V, il faut amplifier le 5V provenant du DAC avec un facteur 6. Pour ce faire, nous combinons des transistors PNP et NPN, comme indiqué ci-dessus. Le gain en tension de ce circuit est calculé :

Vampl = (R6 + R7) / R7

L'alimentation peut être disponible en 2 versions : avec une tension de sortie maximale de 30 et 22V. La combinaison de 1K et 6,8K donne un facteur de 7,8, ce qui est bon pour la version 30V, mais il peut y avoir une certaine perte à des courants plus élevés (notre formule est linéaire, mais en réalité ce n'est pas le cas). Pour la version 22V, nous utilisons 1K et 4,7K.

La résistance interne du circuit indiquée sur la base BC547 serait :

Rin = hfe1 * S1 * R7 * R5 = 100 * 50 * 1K * 47K = 235 MOhm

HFE est d'environ 100 à 200 pour le transistor BC547
- S est la pente de la courbe de gain du transistor et est d'environ 50 [unité = 1/Ohm]

C'est plus que suffisant pour se connecter à notre DAC, qui a une résistance interne de 5 000 ohms.

Résistance de sortie équivalente interne :

Déroute = (R6 + R7) / (S1 + S2 * R5 * R7) = environ 2Ω

Assez bas pour utiliser le transistor Q2.

R5 connecte la base du BC557 à l'émetteur, ce qui signifie « éteint » pour le transistor avant que le DAC et le BC547 n'apparaissent. R7 et R6 relient d'abord la base de Q2 à la terre, ce qui abaisse l'étage de sortie Darlington.

En d’autres termes, chaque composant de cet étage amplificateur est initialement désactivé. Cela signifie que nous n’obtiendrons aucune oscillation d’entrée ou de sortie des transistors lorsque l’alimentation est allumée ou coupée. C'est un point très important. J'ai vu des alimentations industrielles coûteuses qui subissent des surtensions lorsqu'elles sont éteintes. De telles sources doivent certainement être évitées car elles peuvent facilement tuer des appareils sensibles.

Limites

D'après mon expérience précédente, je sais que certains radioamateurs aimeraient « personnaliser » l'appareil pour eux-mêmes. Voici une liste des limitations matérielles et des moyens de les surmonter :

BD245B : 10A 80W. 80W à une température de 25"C. En d'autres termes, il existe une réserve de marche basée sur 60-70W : (Tension d'entrée maximale * Courant maximal)< 65Вт.

Vous pouvez ajouter un deuxième BD245B et augmenter la puissance à 120W. Pour garantir que le courant est réparti uniformément, ajoutez une résistance de 0,22 ohm à la ligne émettrice de chaque BD245B. Le même circuit et la même carte peuvent être utilisés. Montez les transistors sur le refroidisseur en aluminium approprié et connectez-les avec des fils courts à la carte. L'amplificateur peut piloter un deuxième transistor de puissance (c'est le maximum), mais vous devrez peut-être ajuster le gain.

Shunt de détection de courant : Nous utilisons une résistance de 0,75 ohm 6 W. Il y a suffisamment de puissance à un courant de 2,5A (Iout ^ 2 * 0,75<= 6Вт). Для больших токов используйте резисторы соответствующей мощности.

Alimentations

Vous pouvez utiliser un transformateur, un redresseur et de gros condensateurs ou un adaptateur pour ordinateur portable 32/24 V. J'ai opté pour la deuxième option, parce que... les adaptateurs sont parfois vendus à très bas prix (en soldes), et certains d'entre eux fournissent 70W en 24V voire 32V DC.

La plupart des jambons utiliseront probablement des transformateurs ordinaires car ils sont faciles à obtenir.

Pour la version 22V 2,5A il vous faut : un transformateur 3A 18V, un redresseur et un condensateur 2200uF ou 3300uF. (18*1,4 = 25V)
Pour la version 30V 2A il vous faut : un transformateur 2,5A 24V, un redresseur et un condensateur 2200uF ou 3300uF. (24*1,4 = 33,6 V)

Cela ne fera pas de mal d'utiliser un transformateur de courant plus élevé. Un pont redresseur avec 4 diodes à faible chute (par exemple BYV29-500) donne de bien meilleures performances.

Vérifiez votre appareil pour une mauvaise isolation. Assurez-vous qu'il ne sera pas possible de toucher une partie de l'appareil où la tension peut être de 110/230 V. Connectez toutes les parties métalliques du boîtier à la terre (pas aux circuits GND).

Transformateurs et adaptateurs secteur pour ordinateurs portables

Si vous souhaitez utiliser deux alimentations ou plus dans votre appareil pour produire une tension positive et négative, il est important que les transformateurs soient isolés. Soyez prudent avec les adaptateurs secteur pour ordinateurs portables. Les adaptateurs basse consommation peuvent toujours fonctionner, mais certains peuvent avoir la broche de sortie négative connectée à la broche de masse d'entrée. Cela pourrait provoquer un court-circuit à travers le fil de terre lors de l'utilisation de deux alimentations dans l'unité.


Autre tension et courant

Il existe deux options 22V 2,5A et 30V 2A. Si vous souhaitez modifier les limites de tension de sortie ou de courant (il suffit de les diminuer), modifiez simplement le fichier hardware_settings.h.

Exemple : Pour créer une version 18 V 2,5 A, vous modifiez simplement la tension de sortie maximale à 18 V dans le fichier hardware_settings.h. Vous pouvez utiliser une alimentation 20 V 2,5 A.

Exemple : Pour créer une version 18 V 1,5 A, vous modifiez simplement dans le fichier hardware_settings.h la tension de sortie maximale à 18 V et max. courant 1,5A. Vous pouvez utiliser une alimentation 20 V 1,5 A.

Essai

Le dernier élément installé sur la carte doit être un microcontrôleur. Avant de l'installer, je vous recommande de faire quelques tests matériels de base :

Test 1 : Connectez une petite tension (10 V suffisent) aux bornes d'entrée de la carte et assurez-vous que le régulateur de tension produit exactement une tension CC de 5 V.

Test2 : mesurez la tension de sortie. Il doit être de 0 V (ou proche de zéro, par exemple 0,15, et il tendra vers zéro si vous connectez des résistances de 2 kOhm ou 5 kOhm au lieu de la charge.)

Test3 : installez le microcontrôleur sur la carte et chargez le logiciel de test LCD en exécutant les commandes dans le répertoire du package tar.gz digitaldcpower décompressé.

faire test_lcd.hex
faire load_test_lcd

Vous devriez voir le message « L'écran LCD fonctionne » sur l'écran.

Vous pouvez maintenant télécharger le logiciel fonctionnel.

Quelques mots d'avertissement pour des tests plus approfondis avec un logiciel fonctionnel : Soyez prudent avec les courts-circuits jusqu'à ce que vous ayez testé la fonction de limitation. Un moyen sûr de tester la limitation de courant consiste à utiliser des résistances à faible résistance (unités en ohms), telles que des ampoules de voiture.

Réglez la limite de courant à un niveau bas, par exemple 30 mA à 10 V. Vous devriez voir la tension chuter immédiatement jusqu'à presque zéro dès que vous connectez l'ampoule à la sortie. Il y a un défaut dans le circuit si la tension ne baisse pas. Avec une lampe de voiture, vous pouvez protéger le circuit d'alimentation même en cas de défaut car il ne court-circuite pas.

Logiciel

Cette section vous permettra de comprendre comment fonctionne le programme et comment vous pouvez utiliser ces connaissances pour y apporter des modifications. Cependant, il ne faut pas oublier que la protection contre les courts-circuits est réalisée par logiciel. Si vous avez commis une erreur quelque part, la protection risque de ne pas fonctionner. Si vous court-circuitez la sortie, votre appareil se retrouvera dans un nuage de fumée. Pour éviter cela, vous devez utiliser une lampe de voiture 12 V (voir ci-dessus) pour tester la protection contre les courts-circuits.

Parlons maintenant un peu de la structure du programme. Lorsque vous regardez pour la première fois le programme principal (fichier main.c, téléchargeable à la fin de cet article), vous verrez qu'il n'y a que quelques lignes de code d'initialisation qui sont exécutées au démarrage, puis le programme entre un boucle infinie.

En effet, il y a deux boucles infinies dans ce programme. L'une est la boucle principale ("while(1)( ...)" dans main.c) et l'autre est une interruption périodique du convertisseur analogique-numérique (le "ISR(ADC_vect)(...)" fonction en analogique.c). Après initialisation, l'interruption est exécutée toutes les 104 µs. Toutes les autres fonctions et codes sont exécutés dans le contexte de l'une de ces boucles.

Une interruption peut arrêter l'exécution d'une tâche de boucle principale à tout moment. Ensuite, il sera traité sans être distrait par d'autres tâches, puis l'exécution de la tâche se poursuivra à nouveau dans la boucle principale à l'endroit où elle a été interrompue. Deux conclusions en découlent :

1. Le code d'interruption ne doit pas être trop long, car il doit être terminé avant la prochaine interruption. Parce que le nombre d'instructions dans le code machine est ici important. Une formule mathématique qui peut être écrite sous la forme d’une seule ligne de code C peut utiliser jusqu’à des centaines de lignes de code machine.

2. Les variables utilisées dans la fonction d'interruption et dans le code de la boucle principale peuvent soudainement changer au milieu de l'exécution.

Tout cela signifie que des tâches complexes telles que la mise à jour de l'affichage, le test des boutons, la conversion du courant et de la tension doivent être effectuées dans le corps de la boucle principale. Lors des interruptions, nous effectuons des tâches critiques : mesure du courant et de la tension, protection contre les surcharges et configuration du DAC. Pour éviter des calculs mathématiques complexes lors des interruptions, ils sont effectués en unités DAC. C'est-à-dire dans les mêmes unités que l'ADC (valeurs entières de 0 à 1023 pour le courant et de 0 à 2047 pour la tension).

C'est l'idée principale du programme. Je vais également expliquer brièvement les fichiers que vous trouverez dans les archives (en supposant que vous soyez familier avec SI).

main.c - ce fichier contient le programme principal. Toutes les initialisations se font ici. La boucle principale est également implémentée ici.
analog.c est un convertisseur analogique-numérique, tout ce qui fonctionne dans le cadre d'une interruption de tâche se trouve ici.
dac.c - convertisseur numérique-analogique. Initialisé à partir de ddcp.c, mais utilisé uniquement avec analog.c
kbd.c - programme de traitement des données du clavier
lcd.c - Pilote LCD. Il s'agit d'une version spéciale qui ne nécessite pas de contact d'affichage RW.

Pour charger un logiciel dans le microcontrôleur, vous avez besoin d'un programmeur tel que l'avrusb500. Vous pouvez télécharger les archives zip du logiciel à la fin de l'article.

Modifiez le fichier hardware_settings.h et configurez-le en fonction de votre matériel. Ici, vous pouvez également calibrer le voltmètre et l'ampèremètre. Le dossier est bien commenté.

Connectez le câble au programmateur et à votre appareil. Définissez ensuite les bits de configuration pour exécuter le microcontrôleur à partir de l'oscillateur interne de 8 MHz. Le programme est conçu pour cette fréquence.

Boutons

L'alimentation dispose de 4 boutons pour le contrôle local de la tension et max. courant, le 5ème bouton est utilisé pour enregistrer les paramètres dans la mémoire EEPROM, de sorte que la prochaine fois que vous allumerez l'appareil, il y aura les mêmes paramètres de tension et de courant.

U+ augmente la tension et U - la diminue. Lorsque vous maintenez le bouton enfoncé, après un certain temps, les lectures « s'exécuteront » plus rapidement pour modifier facilement la tension dans une large plage. Les boutons I + et I - fonctionnent de la même manière.

Afficher

L'indication affichée ressemble à ceci :

La flèche à droite indique que la limitation de tension est actuellement en vigueur. S'il y a un court-circuit à la sortie ou si l'appareil connecté consomme plus que le courant réglé, une flèche apparaîtra sur la ligne inférieure de l'écran, indiquant que la limite de courant est activée.

Quelques photos de l'appareil

Voici quelques photos de l'alimentation que j'ai assemblée.

Il est très petit, mais plus performant et plus puissant que de nombreuses autres alimentations :

Les vieux radiateurs en aluminium des processeurs Pentium sont bien adaptés au refroidissement des éléments de puissance :

Placement de la carte et de l'adaptateur à l'intérieur du boîtier :

Apparence de l'appareil :

Option d'alimentation à double canal. Publié par boogyman :

mob_info