Étape 8: Commencer à filer - mettre la planche inférieure en fonction
1. introduction
Ce PCB est responsable de la conduite du moteur assez rapidement pour les LEDs devenir « invisible » et leur lumière floue. J’ai fait deux versions de ce, étant donné que je n’étais pas en mesure de mise sous tension (PIC18F46J50 ne serait pas programmer et je n’ai pas envie de rester coincé sur ce) le jury précédent. Sur la deuxième version, j’ai décidé de mettre un PIC18F4550 dans un gros paquet de trempette, faire de la soudure et des mesures plus facile. J’aime BPC d’à travers-trou beaucoup, après avoir sélectionné le paquet DIP40 pour la photo, je me suis tourné tout le reste à DIP et composants à travers-trou. Résistances, circuits intégrés, tout ce côté les MOSFETs.
Ce PCB est le plus simple des conseils que j’ai fait (I).. compter le magnet holder trop comme un PCB, éventuellement celui plus difficile à percer, empiler, vu. Les composants de cette carte :
- 1 x PIC18F4550 microcontrôleur avec USB - contrôle tout
- 6 x domaine des MOSFET canal N - flotter ou connecter les bobines de la BLDC aux rails du bloc d’alimentation
- 2 x CD4081B quad, dual input AND-gates - ceux-ci donnent les signaux qui transforment le MOSFET on/off
- stabilisateur de tension de 1 x 7805 - fournit une alimentation de 5V propre sympa pour la photo et ses périphériques
- 1 x LM2903 comparateur double avec sortie de drain ouvert - capture les pointes de tension pour faire progresser le modèle de commutation
- 3 x LED - signaler le mode dans lequel le PIC est en ce moment : application bootloader/utilisateur
- 2 x boutons - entrées utilisateur externe pour le débogage
- 1 x potentiomètre - modifie le rapport cyclique qui se superposent avec les signaux de commutation
- n x résistances - actuelle limitant, pull, pull-down
- n x condensateurs - filtrage casquettes
- n x réglettes à broches - connexion aux autres conseils
Il s’agit de la première PCB il faut mettre en fonction, étant donné que la carte supérieure tirera sa puissance du mouvement du moteur. C’est ce que nous devons faire ici :
- Puissance de la chose et de mettre le chargeur de démarrage USB en fonction
- Assurer un contrôle des six N-MOSFET
- Conduite des LEDs
- Interface analogique
- Mesurer la vitesse de rotation
- Communication série pour le débogage
Nous allons prendre un par un !
2. mise sous tension l’appareil et faire utilisation du mod USBule à l’intérieur le PIC18F4550
Comme j’ai mentionné dans l’étape précédente, j’ai décidé d’utiliser l’USB pour mise à jour du firmware. Après le flash du firmware à la photo, j’ai prit une profonde inspiration et allumé mon alimentation. Et puis soudain... rien. Il n’a pas fonctionné, et il m’a donné tout à fait une chose à penser jusqu'à ce que je suis venu avec la solution de condensateur supplémentaire. Après cela, il y avait pas de problèmes à tous, sans erreurs, rien. La LED qui devait commencent à clignoter une fois que le bootloader courait clignotait en effet, après le passage au code d’application utilisateur, j’ai pu flasher une autre LED. Basculement entre code bootloader et utilisateur de l’application fonctionnait bien ainsi. Utilisation de mise sous tension et de chargeur de démarrage : vérifié !
3. volant moteur brushless DC
Le moteur BLDC possède trois broches, il faut contrôler la tension à travers tous les trois pour la faire bouger la façon dont nous attendons. L’État au cours de laquelle les trois broches sont seront toujours différent, changeant entre haute impédance, VDD et GND. Le modèle de que ces trois pions doivent alterner est montré sur la photo ci-dessus. Côté d’utiliser jusqu'à six broches d’e/s du microcontrôleur, je sera également superposer un signal PWM sur les trois lignes. Ceci peut être réalisé avec six AND-portes avec leurs sorties sur les six portes MOSFET. Les portes utilisées ont été : CD4081B. De cette façon, on peut contrôler la vitesse en n'utilisant qu’une seule variable - le rapport cyclique.
Nous devons fournir une interface pour changer le rapport cyclique de l’extérieur, la façon la plus pratique de le faire, est d’utiliser le potentiomètre. Interne, 10 bit AD converter prend la tension sur l’analogique input et le convertit en une valeur numérique. Chanceux que nous, le rapport cyclique Registre n’est 10 bits de large aussi bien, aucun filtrage ou la manipulation nécessaire, nous venons dois transférer la valeur de l’ADC s’inscrit aux registres rapport cyclique. L’installation des deux modules est facile, j’ai utilisé des cisailles code de vieux projets et ajusté les calculs réels pour eux. Après avoir assemblé ce forum que j’ai vu que le moteur ne tournait pas assez vite, il était plutôt marcher. Les signaux de commutation ont été chronométrés par une interruption de minuterie aléatoire de 100 ms, et qui n’était pas tout à droite. Un ami m’a suggéré pour changer ce timer interrupt à une interruption externe et de faire quelques modifications sur le matériel ainsi. Inutile de dire un autre PCB était hors de question, un autre PCB (plus petit) devait être conçu pour héberger les composants supplémentaires mentionnée sa suggestion. L’objectif était d’obtenir la tension des bornes du moteur, passez-les à travers un diviseur, relier les trois signaux par l’intermédiaire de résistances de limites actuelles et enfin les mettre sur un comparateur d’entrée. J’ai monté ce petit PCB sans les résistances sur l’entrée non inverseuse et mesuré la tension sur l’entrée inversible, où ce signal du moteur est venu. J’ai vu qu’elle a atteint environ 500 mV, les résistances non inverseuse devaient être cueillies alors le comparateur se déclenche à chaque fois un pic est venu sur une des trois entrées. Voir les images pour une meilleure compréhension de cette partie !
J’ai acheminé à la sortie du comparateur à une interruption externe sur le PIC8F4550 et changé la routine d’interruption du service pour vérifier cet événement avant de sauter pour le prochain cycle de commutation. De cette façon le moteur ne tombent pas synchronisé et sera tour assez rapide pour nous de travailler avec elle.
kep oszcilloszkop un jelrol harom, az egyesitett jelrol est
kep oszcilloszkop un komparator ket bemeneterol es a kimeneterol
4. conduite des LEDs
Les LEDs de debug ou statut de conduite est aussi simple qu’il peut obtenir, j’ai calculé la résistance pour 20mA: R = U / I = 5/0.02 = 250 ohms. Si vous voulez plus lumineux, mettre des résistances de valeur inférieure, si vous voulez gradateur, mettre des résistances de valeur de résistance plus élevées.
5. analogique entoilage
Avoir un potentiomètre de réglage du facteur de marche PWM est la meilleure façon de régler la vitesse de rotation de la broche. Le convertisseur analogique-numérique peut être utilisé pour lire la prise médiane du potentiomètre, la tension sera lue dans les registres de valeur AD, où qu’elle peut être retirée par le firmware pour transformation ultérieure et de manipulation. Ayant que cette valeur signifie, que nous pouvons facilement ajuster le facteur de marche PWM. À mon grand bonheur, les deux valeurs sont des mèches de 10, donc ce que j’ai à faire est d’acheminer les bits de la valeur de l’AD s’inscrire au registre duty cycle. Le code lors de l’initialisation du module AD sont visibles parmi les images que j’ai joint à cette étape.
6. vitesse de rotation des instruments de mesure
La mesure de la vitesse de rotation peut être réalisée en mesurant les interruptions externes (à partir de l’élément de comparaison comme mentionné ci-dessus) dans une délai d’une seconde. Après le passage à la synchronisation de signal de commutation externe, les interruptions de minuterie a été laissée activée et réglée à une seconde. Un compteur est incrémenté dans la routine d’interruption externe du service, il suffit de vérifier compte combien nous avons dans une secondes et diviser par six, une rotation complète donne six interruptions externes. Maintenant que nous connaissons le nombre d’impulsions par seconde, nous pouvons multiplier par 60 pour obtenir la vitesse de rotation en tr/min.
7. serial communication
Afin de simplifier le circuit imprimé, je ne sera pas compliquer les choses avec débogage affiche et beaucoup debug LEDs, ceux qui ne serait pas utiles sur la chose, une fois que ça fonctionne tout à droite. C’est pourquoi j’ai décidé d’utiliser la communication en série et un convertisseur série-usb pour faire approfondie de débogage si nécessaire. Si tout fonctionne, cette interface de débogage peut être tout simplement désactivée, donc il ne mange pas de temps processeur. UART de manutention dans les processeurs de PIC est très simple et très pratique en termes de facilité d’utilisation, lire la fiche technique vous apprendra tout là est à lui.
8. les problèmes que j’ai touché lorsque vous travaillez sur le sommier
Un problème que j’ai touché lorsque vous travaillez sur le sommier était des niveaux de tension incorrecte sur les portes MOSFET. J’ai enfin remonter le problème à la sélection erronée de l’IC, je pensais que 74LS08 est de brochage compatible avec CD4081B, que j’ai faite à l’origine le PCB pour. Je ne pouvais pas trouver n’importe quel CD4081B dans les magasins locaux et de la pensée de tout simplement en les remplaçant par 74HC08 et c’est tout. Ce n’était pas elle, si vous consultez les fiches techniques, vous comprendrez de quoi je parle. Les portes sont placés légèrement différentes dans les deux paquets, sorties a obtenu inversés avec entrées, c’est où les niveaux de tension incorrecte est venu ! J’ai commandé quelques 4081 ICs sur le web, problème résolu !
Un autre problème avait quelque chose à voir avec une connexion manquante. J’ai tout simplement oublié de percer deux trous et connecter Q6 avec la résistance de la porte ! J’ai ce tracé avec trois sondes sur les sorties de pont et une sonde voyager sur la voie de l’impulsion manquante. La vie est vraiment plus facile quand vous avez un oscilloscope quatre voies. J’ai réussi à déboguer les deux erreurs grâce à lui. Acheter une étendue a été a été un investissement vraiment gros, mais vraiment bon.