Comme indiqué dans « Une carte Arduino pour le pilotage du pont tournant », j’ai conçu deux cartes de pilotage du pont tournant. La première, qui est décrite ici, intègre un Arduino Nano et une DRV8824 et est destiné à une commande manuelle. Par manuelle, j’entends que l’utilisateur, après avoir programmé quelles sont les positions correspondant à une voie, utilise des poussoirs pour demander l’alignement avec la voie correspondante.
L’alimentation
La carte est alimentée en 12V continu. Le courant nécessaire ne dépasse pas les 500mA. On trouve facilement de petites alimentations industrielles à découpage pour une quinzaine d’Euros.
Cette tension passe par une diode de protection. Cette diode, une 1N4007, évite de détruire l’électronique par un branchement inversé de l’alimentation.
On trouve ensuite le schéma classique des composants autour du régulateur 7805 : deux condensateurs, un électrochimique de 470µF destiner à filtrer les basses fréquences et notamment le pic de la mise sous tension et un polyester de 100nF destiné à filtrer les hautes fréquences. Le 7805 lui même qui, à partir du 12V rectifié, fabrique le 5V d’alimentation de l’Arduino Nano et des LED témoin. Enfin, deux condensateurs en sortie, un électrochimique de 47µF pour le filtrage basse fréquence du 5V et l’autre de 100nF pour le filtrage haute fréquence.
On peut noter que sur le schéma, le boîtier du moteur pas-à-pas qui est fixé à la carte est relié à la masse pour constituer une cage de Faraday et limiter l’émission de rayonnement électromagnétique issu du moteur.
La tension de 12V, rectifiée par la diode et appelée VMOT, sert directement pour l’alimentation moteur de la DRV8824, pour l’alimentation des bobines de 2 relais donc la fonction est décrite plus loin et pour l’alimentation des diodes IR des capteurs. Cette diode engendre une chute de tension de 1V. VMOT est donc de 11V et il faut en tenir compte. Ce n’est pas un problème pour les relais qui collent à partir de 9,6V maximum ou pour le moteur pas-à-pas car avec les courants employés, environ la moitié de ce que consomme le moteur sous 12V, il y a de la marge. Par contre, le calcul du courant dans les diodes IR doit être effectivement fait avec une alimentation de 11V.
L’intégration de la DRV8824
Le montage est repris de l’expérimentation sur breadboard. Les broches qui nous intéressent sont le RST (reset) qui permet d’initialiser la DRV8824 par programme, DIR qui permet de fixer la direction de rotation, STEP qui permet de franchir un micropas à chaque transition de l’état bas à l’état haut et FAULT qui permettra au programme de diagnostiquer un problème sur la DRV8824. SLP est fixé à 5V pour que la DRV8824 ne soit jamais endormie, EN est laissé en l’air pour la même raison. Les broches M0, M1 et M2 sont reliées à 5V via un DIP-switch. Ceci n’est pas très utile car le mode 32µPas sera toujours sélectionné mais j’avais des DIP-switch 3 interrupteurs en stock. Le rôle de chacune de ces broches est décrit plus précisément dans l’article sur de la DRV8824.
L’intégration de l’Arduino Nano v3.0
L’Arduino Nano v3.0 est une des incarnations de la famille Arduino. Il est équipé du micro-contrôleur AT-Mega 328. Il s’agit en fait d’une breakout board de 30 broches permettant le montage sur une breadboard mais aussi sur un support. C’est donc un bon choix pour intégrer un Arduino sur une carte de votre conception. Le Nano dispose de 14 entrées/sorties numériques et de 8 entrées analogiques dont 6 peuvent être aussi utilisées en entrées/sorties numériques. Il dispose également d’une prise mini-USB pour le téléversement et la console. Il peut être alimenté via l’USB, via son entrée VIN et son régulateur intégré ou via l’entrée 5V [1]. J’ai choisi de l’alimenter via le 5V et de laisser VIN en l’air.
TON et REVERSE sont les commandes des relais, STEP et DIR permettent de piloter le moteur pas-à-pas, RESET_DRV permet de faire une remise à 0 du DRV8824, FAULT permet de détecter d’éventuelles erreurs sur ce même DRV8824, ENABLE_C active les capteurs de positions, enfin, b0 à b6 sont les 6 bits lus des capteurs de position.
Les capteurs de position
Il s’agit du capteur OMRON EE-SY193 déjà présenté. Les LED IR des capteurs sont placés en série. La tension de seuil typique avec un courant de 25mA est d’environ 1,25V. 7 capteurs en série donne donc une tension de seuil totale de 8,75V. Par conséquent, sous 11V, la résistance de limitation du courant doit avoir une valeur de (11 - 8,75V) / 25mA = 90Ω.
Les LED IR des capteurs ne sont pas alimentées en permanence mais mises sous tension par programme. Ceci permet d’augmenter la durée de vie du capteur qui n’est utilisé que rarement [2]. À cet effet, un transistor NPN est mis en série avec les LED IR et sa base est attaquée par la sortie D8 de l’Arduino au travers d’un résistance de 10kΩ.
Les phototransistors sont montés en émetteur commun. L’émetteur est à la masse et le collecteur est tiré à 5V par une résistance de 3,3kΩ établissant un niveau haut au niveau du collecteur lorsque la surface en vis-à-vis du capteur est noire. Lorsque le phototransistor est passant de par la présence d’une surface blanche, le collecteur est au niveau bas.
Les relais d’alimentation traction et d’inversion de marche
On se place dans le cas d’un réseau analogique. Par sécurité, on peut souhaiter couper l’alimentation traction lorsque le pont n’est pas aligné sur une des voies de sortie. À cet effet, un relai DPDT est intercalé entre l’alimentation du pont et l’alimentation traction. D’autre part, le pont peut aussi opérer une inversion de marche lors du passage d’une position à une autre. Un second relai DPDT permet de décider du sens de marche. Une inversion de marche mécanique est prévue sur le pont PECO NB-55 mais peut s’avérer peu pratique.
La commande de ces relais est classique. Un transistor permet de commander le relai et une diode roue libre absorbe le courant résiduel de la bobine du relai. Les résistances 47kΩ assurent que le transistor reste bloqué à la mise sous tension alors que le micro-contrôleur ne pilote pas encore les bases des transistors.