Table des matières:

Alimentation numérique Bluetooth alimentée par USB C : 8 étapes (avec photos)
Alimentation numérique Bluetooth alimentée par USB C : 8 étapes (avec photos)

Vidéo: Alimentation numérique Bluetooth alimentée par USB C : 8 étapes (avec photos)

Vidéo: Alimentation numérique Bluetooth alimentée par USB C : 8 étapes (avec photos)
Vidéo: comment activer le débogage USB OTG sur un android !! facilement #samsung #usb #otg #huawei #redmi 2024, Juillet
Anonim
Alimentation numérique Bluetooth alimentée par USB C
Alimentation numérique Bluetooth alimentée par USB C
Alimentation numérique Bluetooth alimentée par USB C
Alimentation numérique Bluetooth alimentée par USB C
Alimentation numérique Bluetooth alimentée par USB C
Alimentation numérique Bluetooth alimentée par USB C
Alimentation numérique Bluetooth alimentée par USB C
Alimentation numérique Bluetooth alimentée par USB C

Vous avez toujours voulu une alimentation que vous pouvez utiliser en déplacement, même sans prise murale à proximité ? Et ne serait-ce pas cool s'il était aussi très précis, numérique et contrôlable via PC et votre téléphone ?

Dans ce instructable, je vais vous montrer comment construire exactement cela: une alimentation numérique, qui est alimentée par USB C. Il est compatible arduino et peut être contrôlé via le PC via USB ou via votre téléphone via Bluetooth.

Ce projet est une évolution de mon alimentation précédente, qui fonctionnait sur batterie et avait un écran et des boutons. Vérifiez le ici! Cependant, je voulais faire plus petit, c'est pourquoi j'ai fait ça !

L'alimentation peut être alimentée à partir d'un banc de batteries USB C ou d'un chargeur de téléphone. Cela permet jusqu'à 15 W de puissance, ce qui est suffisant pour alimenter la plupart des appareils électroniques à faible consommation ! Pour avoir une bonne interface utilisateur sur un si petit appareil, j'ai inclus Bluetooth et une application Android pour les commandes. Cela rend cette alimentation ultra portable !

Je vais montrer l'ensemble du processus de conception et tous les fichiers du projet se trouvent sur ma page GitHub:

Commençons!

Étape 1: Caractéristiques et coût

Caractéristiques et coût
Caractéristiques et coût

Caractéristiques

  • Alimenté par USB C
  • Contrôlé via l'application Android via Bluetooth
  • Contrôlé via Java via USB C
  • Modes tension constante et courant constant
  • Utilise un régulateur linéaire à faible bruit, précédé d'un prérégulateur de suivi pour minimiser la dissipation de puissance
  • Alimenté par ATMEGA32U4, programmé avec Arduino IDE
  • Peut être alimenté par un banc de batteries USB C pour le rendre portable
  • Détection de chargeur USB C et Apple
  • Fiches bananes espacées de 18 mm pour une compatibilité avec les adaptateurs BNC

Caractéristiques

  • 0 - 1A, pas de 1 mA (DAC 10 bits)
  • 0 - 25V, pas de 25 mV (DAC 10 bits) (vrai fonctionnement 0V)
  • Mesure de tension: résolution 25 mV (10 bits ADC)
  • Mesure de courant:< 40 mA: résolution de 10 uA (ina219)< 80 mA: résolution de 20 uA (ina219)< 160 mA: résolution de 40 uA (ina219)< 320 mA: résolution de 80 uA (ina219)> 320 mA: résolution de 1 mA (ADC 10 bits)

Coût

L'alimentation complète m'a coûté environ 100 $, avec tous les composants uniques. Bien que cela puisse sembler coûteux, les alimentations avec des performances et des fonctionnalités bien inférieures coûtent souvent plus que cela. Si cela ne vous dérange pas de commander vos composants sur ebay ou aliexpress, le prix chuterait à environ 70 $. Il faut plus de temps pour que les pièces arrivent, mais c'est une option viable.

Étape 2: Schéma et théorie de fonctionnement

Schéma et théorie de fonctionnement
Schéma et théorie de fonctionnement

Pour comprendre le fonctionnement du circuit, nous devrons regarder le schéma. Je l'ai divisé en blocs fonctionnels, de manière à ce qu'il soit plus facile à comprendre; Je vais donc également vous expliquer le fonctionnement étape par étape. Cette partie est assez approfondie et nécessite une bonne connaissance en électronique. Si vous voulez juste savoir comment construire le circuit, vous pouvez passer à l'étape suivante.

Bloc principal

Le fonctionnement est basé sur la puce LT3080: c'est un régulateur de tension linéaire, qui peut abaisser les tensions, en fonction d'un signal de commande. Ce signal de commande sera généré par un microcontrôleur; comment cela est fait, sera expliqué en détail plus tard.

Réglage de la tension

Les circuits autour du LT3080 génèrent les signaux de commande appropriés. Tout d'abord, nous allons voir comment la tension est réglée. Le réglage de tension du microcontrôleur est un signal PWM (PWM_Vset), qui est filtré par un filtre passe-bas (C23 & R32). Cela produit une tension analogique - entre 0 et 5 V - proportionnelle à la tension de sortie souhaitée. Étant donné que notre plage de sortie est comprise entre 0 et 25 V, nous devrons amplifier ce signal avec un facteur de 5. Cela se fait par la configuration opamp non inverseuse de U7C. Le gain de la broche de réglage est déterminé par R31 et R36. Ces résistances sont tolérantes à 0,1%, pour minimiser les erreurs. R39 et R41 n'ont pas d'importance ici, car ils font partie de la boucle de rétroaction.

Paramètre actuel

Cette broche de réglage peut également être utilisée pour le deuxième réglage: mode courant. Nous voulons mesurer la consommation de courant et désactiver la sortie lorsque celle-ci dépasse le courant souhaité. On recommence donc par un signal PWM (PWM_Iset), généré par le microcontrôleur, qui est maintenant filtré passe-bas et atténué pour passer d'une plage 0 - 5 V à une plage 0 - 2,5 V. Cette tension est maintenant comparée à la chute de tension aux bornes de la résistance de détection de courant (ADC_Iout, voir ci-dessous) par la configuration du comparateur de l'amplificateur opérationnel U1B. Si le courant est trop élevé, cela allumera une LED et tirera également la ligne définie du LT3080 à la terre (via Q1), éteignant ainsi la sortie. La mesure du courant, et la génération du signal ADC_Iout se fait comme suit. Le courant de sortie traverse la résistance R22. Lorsque le courant traverse cette résistance, il crée une chute de tension, que nous pouvons mesurer, et il est placé avant le LT3080, car la chute de tension à ses bornes ne devrait pas influencer la tension de sortie. La chute de tension est mesurée avec un amplificateur différentiel (U7B) avec un gain de 5. Cela se traduit par une plage de tension de 0 à 2,5 V (nous y reviendrons plus loin), d'où le diviseur de tension au signal PWM du courant. Le tampon (U7A) est là pour s'assurer que le courant circulant dans les résistances R27, R34 et R35 ne passe pas par la résistance de détection de courant, ce qui influencerait sa lecture. Notez également qu'il devrait s'agir d'un amplificateur opérationnel rail à rail, car la tension d'entrée à l'entrée positive est égale à la tension d'alimentation. L'amplificateur non inverseur n'est destiné qu'à la mesure du parcours, cependant, pour des mesures très précises, nous avons la puce INA219 à bord. Cette puce nous permet de mesurer des courants très faibles, et est adressée via I2C.

Choses supplémentaires

A la sortie du LT3080, on a encore du matos. Tout d'abord, il y a un puits de courant (LM334). Celui-ci consomme un courant constant de 677 uA (réglé par la résistance R46), pour stabiliser le LT3080. Il n'est cependant pas relié à la masse, mais au VEE, une tension négative. Ceci est nécessaire pour permettre au LT3080 de fonctionner jusqu'à 0 V. Lorsqu'il est connecté à la terre, la tension la plus basse serait d'environ 0,7 V. Cela semble assez faible, mais gardez à l'esprit que cela nous empêche de couper complètement l'alimentation. Malheureusement, ce circuit est à la sortie du LT3080, ce qui signifie que son courant contribuera au courant de sortie que nous voulons mesurer. Heureusement, il est constant donc nous pouvons calibrer pour ce courant. La diode Zener D7 est utilisée pour bloquer la tension de sortie si elle dépasse 25 V, et le diviseur de résistance fait chuter la plage de tension de sortie de 0 - 25 V à 0 - 2,5 V (ADC_Vout). Le tampon (U7D) garantit que les résistances ne tirent pas de courant de la sortie.

Pompe de charge

La tension négative dont nous avons parlé précédemment est générée par un curieux petit circuit: la pompe de charge. Il est alimenté par un PWM à 50% du microcontrôleur (PWM).

Convertisseur boost

Jetons maintenant un œil à la tension d'entrée de notre bloc principal: VCC. On voit que c'est du 5 - 27V, mais attendez, l'USB donne un maximum de 5 V ? En effet, et c'est pourquoi nous devons augmenter la tension, avec un convertisseur dit boost. Nous pourrions toujours augmenter la tension à 27 V, quelle que soit la sortie que nous voulons; Cependant, cela gaspillerait beaucoup d'énergie dans le LT3080 et les choses deviendraient chaudes ! Donc, au lieu de faire cela, nous augmenterons la tension un peu plus que la tension de sortie. Une augmentation d'environ 2,5 V est appropriée pour tenir compte de la chute de tension dans la résistance de détection de courant et de la tension de chute du LT3080. La tension est définie par des résistances sur le signal de sortie du convertisseur élévateur. Pour changer cette tension à la volée, nous utilisons un potentiomètre numérique, le MCP41010, qui est contrôlé via SPI.

USB-C

Cela nous amène à la vraie tension d'entrée: le port USB ! La raison de l'utilisation de l'USB C (type USB 3.1 pour être exact, l'USB C n'est que le type de connecteur) est qu'il permet un courant de 3A à 5V, c'est déjà pas mal de puissance. Mais il y a un hic, l'appareil doit être conforme pour tirer ce courant et « négocier » avec l'appareil hôte. En pratique, cela se fait en connectant deux résistances pulldown 5.1k (R12 et R13) à la ligne CC1 et CC2. Pour la compatibilité USB 2, la documentation est moins claire. En bref: vous tirez le courant que vous voulez, du moment que l'hébergeur peut vous le fournir. Cela peut être vérifié en surveillant la tension du bus USB: si la tension chute en dessous de 4,25 V, l'appareil consomme trop de courant. Ceci est détecté par le comparateur U1A et désactivera la sortie. Il envoie également un signal au microcontrôleur pour définir le courant maximum. En bonus, des résistances ont été ajoutées pour prendre en charge la détection de l'identifiant du chargeur des chargeurs Apple et Samsung.

Régulateur 5V

La tension d'alimentation 5 V de l'arduino provient normalement directement de l'USB. Mais comme la tension USB peut varier entre 4,5 et 5,5 V selon la spécification USB, ce n'est pas assez précis. Par conséquent, un régulateur 5V est utilisé, qui peut générer 5V à partir de tensions inférieures et supérieures. Pourtant, cette tension n'est pas très précise, mais cela est résolu par une étape d'étalonnage où le rapport cyclique du signal PWM est ajusté en conséquence. Cette tension e est mesurée par le diviseur de tension formé par R42 et R43. Mais comme je n'avais plus d'entrées libres, j'ai dû faire une double fonction. Lorsque l'alimentation démarre, cette broche est d'abord définie comme entrée: elle mesure le rail d'alimentation et se calibre. Ensuite, il est défini comme une sortie et peut piloter la ligne de sélection de puce du potentiomètre.

Référence de tension 2,56 V

Cette petite puce fournit une référence de tension de 2,56 V très précise. Celui-ci sert de référence pour les signaux analogiques ADC_Vout, ADC_Iout, ADC_Vbatt. C'est pourquoi nous avions besoin de diviseurs de tension pour ramener ces signaux à 2,5 V.

FTDI

La dernière partie de cette alimentation est la connexion avec le monde extérieur cruel. Pour cela, nous devons convertir les signaux série en signaux USB. Heureusement, cela est fait par l'ATMEGA32U4, c'est la même puce qui est utilisée dans l'Arduino Micro.

Bluetooth

La partie Bluetooth est très simple: un module Bluetooth sur étagère est ajouté et s'occupe de tout pour nous. Comme son niveau logique est de 3,3 V (VS 5 V pour le microcontrôleur), un diviseur de tension est utilisé pour décaler le niveau du signal.

Et c'est tout !

Étape 3: PCB et électronique

PCB et électronique
PCB et électronique
PCB et électronique
PCB et électronique
PCB et électronique
PCB et électronique

Maintenant que nous comprenons le fonctionnement du circuit, nous pouvons commencer à le construire ! Vous pouvez simplement commander le PCB en ligne auprès de votre fabricant préféré (le mien coûte environ 10 $), les fichiers gerber se trouvent sur mon GitHub, avec la nomenclature. L'assemblage du PCB consiste alors essentiellement à souder les composants en place selon la sérigraphie et la nomenclature.

Alors que mon alimentation précédente n'avait que des composants traversants, la contrainte de taille pour mon nouveau a rendu cela impossible. La plupart des composants sont encore relativement faciles à souder, alors n'ayez pas peur. A titre d'illustration: un de mes amis qui n'avait jamais soudé auparavant a réussi à peupler cet appareil !

Il est plus facile de faire d'abord les composants sur la face avant, puis sur l'arrière et de finir avec les composants à trous traversants. En faisant cela, le PCB ne vacillera pas lors de la soudure des composants les plus difficiles. Le dernier composant à souder est le module Bluetooth.

Tous les composants peuvent être soudés, à l'exception des 2 fiches bananes, que nous monterons à l'étape suivante !

Étape 4: boîtier et assemblage

Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage

Une fois le pcb fait, on peut passer au boitier. J'ai spécifiquement conçu le PCB autour d'un boîtier en aluminium 20x50x80mm (https://www.aliexpress.com/item/Aluminum-PCB-Instr…), donc l'utilisation d'un autre boîtier n'est pas recommandée. Cependant, vous pouvez toujours imprimer en 3D un boîtier avec les mêmes dimensions.

La première étape consiste à préparer le panneau d'extrémité. Nous devrons percer des trous pour les prises banane. Je l'ai fait à la main, mais si vous avez accès à une CNC, ce serait une option plus précise. Insérez les fiches bananes dans ces trous et soudez-les sur le PCB.

C'est une bonne idée d'ajouter des tampons de soie maintenant et de les maintenir en place avec une petite goutte de super colle. Ceux-ci permettront le transfert de chaleur entre le LT3080 et le LT1370 et le boîtier. Ne les oubliez pas !

Nous pouvons maintenant nous concentrer sur le panneau avant, qui se visse juste en place. Avec les deux panneaux en place, nous pouvons maintenant insérer l'assemblage dans le boîtier et le fermer. À ce stade, le matériel est terminé, il ne reste plus qu'à lui donner un peu de vie avec le logiciel !

Étape 5: Code Arduino

Code Arduino
Code Arduino

Le cerveau de ce projet est l'ATMEGA32U4, que nous programmerons avec l'IDE Arduino. Dans cette section, je vais passer en revue le fonctionnement de base du code, les détails peuvent être trouvés sous forme de commentaires à l'intérieur du code.

Le code parcourt essentiellement ces étapes:

  1. Envoyer des données à l'application
  2. Lire les données de l'application
  3. Mesurer la tension
  4. Mesurer le courant
  5. Bouton Sondage

La surintensité USB est gérée par une routine de service d'interruption pour qu'elle soit aussi réactive que possible.

Avant que la puce puisse être programmée via USB, le chargeur de démarrage doit être gravé. Cela se fait via le port ISP/ICSP (les en-têtes mâles 3x2) via un programmeur ISP. Les options sont AVRISPMK2, USBTINY ISP ou un arduino comme ISP. Assurez-vous que la carte est alimentée et appuyez sur le bouton « burn bootloader ».

Le code peut maintenant être téléchargé sur la carte via le port USB C (puisque la puce a un chargeur de démarrage). Carte: Arduino Micro Programmeur: AVR ISP / AVRISP MKII Nous pouvons maintenant examiner l'interaction entre l'Arduino et le PC.

Étape 6: Application Android

Application Android
Application Android

Nous avons maintenant une alimentation entièrement fonctionnelle, mais aucun moyen de la contrôler pour le moment. Très ennuyant. Nous allons donc créer une application Android pour contrôler l'alimentation via Bluetooth.

L'application a été créée avec le programme d'inventeur d'applications du MIT. Tous les fichiers peuvent être inclus pour cloner et modifier le projet. Tout d'abord, téléchargez l'application compagnon MIT AI2 sur votre téléphone. Ensuite, importez le fichier.aia sur le site Web d'AI. Cela vous permet également de télécharger l'application sur votre propre téléphone en choisissant "Créer> Application (fournir le code QR pour.apk)"

Pour utiliser l'application, sélectionnez un appareil Bluetooth dans la liste: il apparaîtra en tant que module HC-05. Une fois connecté, tous les paramètres peuvent être modifiés et la sortie de l'alimentation peut être lue.

Étape 7: Code Java

Code Java
Code Java

Pour enregistrer les données et contrôler l'alimentation via le PC, j'ai créé une application java. Cela nous permet de contrôler facilement la carte via une interface graphique. Comme avec le code Arduino, je ne vais pas entrer dans tous les détails, mais donner un aperçu.

Nous commençons par créer une fenêtre avec des boutons, des champs de texte, etc. trucs de base de l'interface graphique.

Vient maintenant la partie amusante: ajouter les ports USB, pour lesquels j'ai utilisé la bibliothèque jSerialComm. Une fois qu'un port est sélectionné, Java écoutera toutes les données entrantes. Nous pouvons également envoyer des données à l'appareil.

De plus, toutes les données entrantes sont enregistrées dans un fichier csv, pour un traitement ultérieur des données.

Lors de l'exécution du fichier.jar, nous devons d'abord choisir le bon port dans le menu déroulant. Après la connexion, les données commenceront à entrer et nous pourrons envoyer nos paramètres à l'alimentation.

Bien que le programme soit assez basique, il peut être très utile de le contrôler via un PC et d'enregistrer ses données.

Étape 8:

Image
Image
Image
Image
Image
Image

Après tout ce travail, nous avons maintenant une alimentation entièrement fonctionnelle !

Nous pouvons maintenant profiter de notre propre bloc d'alimentation fait maison, ce qui nous sera utile tout en travaillant sur d'autres projets impressionnants ! Et le plus important: nous avons appris beaucoup de choses en cours de route.

Si vous avez aimé ce projet, s'il vous plaît votez pour moi dans le concours de format de poche et microcontrôleur, je l'apprécierais vraiment !

Conseillé: