Vélo électrique, épisode 4 : le spectacle pyrotechnique

Bonjour à tous,

Vous voici dans l’épisode 4 de la saga “Vélo électrique” !

Nous sommes en mars 2017, je roule depuis presque un an avec mon vélo électrique maison (environ 5000km au compteur). Tout s’est très bien passé, hormis quelques crevaisons et défauts de jeunesse.

Comme vous pouvez le voir sur cette image, il n’y a aucune protection contre l’eau de pluie sur la face arrière du coffret en bois :

Pas besoin de vous expliquer ce qu’il se passe, lorsque la roue tourne, dans le sens de la flèche, par temps humide ?

Bref, toutes les projections d’eau partent exactement et directement sur le PCB du contrôleur. Un beau jour, après avoir roulé 20km sous une pluie battante, j’arrive chez moi certes trempé, mais soulagé que l’électronique n’ait pas claqué.

Quoi, vous me voyez venir ?

Une heure plus tard, je remets le vélo sous tension pour faire quelques essais et améliorations. Et là…

PAF le contrôleur !

Voici l’étendue des dégâts :

L’un des transistors MOS est complètement vaporisé. Que s’est-il passé ? Pourquoi le contrôleur a-t-il cramé seulement maintenant, et pas une heure avant, alors que j’étais carrément sous la pluie ?

Seul la divinité de l’électronique le sait, mais j’émets l’hypothèse suivante :

  • Les deux transistors d’un demi-pont se sont mis à conduire simultanément et ont engendré un court-circuit franc, pour avoir des dégâts de cette ampleur.
  • Les grilles de transistor sont commandés par des drivers de MOS, et sont donc toujours à basse impédance
  • Par contre, les entrées logiques des drivers sont rappelées à l’état bas par une résistance pull-down de plusieurs kΩ. Le circuit imprimé ayant été mouillé alors qu’il était déjà sous tension, les résistances parasites induites par l’eau de pluie ne modifiait pas les niveaux logiques émis par le microcontrôleur grâce à ses sorties configurées en push-pull.
  • Par contre, au démarrage du micro, toutes les E/S sont en haute impédance pendant quelques instants. Il faut donc croire que l’eau de pluie a relié l’entrée de commande d’un driver à un rail positif avec une résistance inférieure à celle de la pull-down…

Bref, je suis dépité. Compte tenu des dégâts, impossible de réparer. Je vais devoir me passer plusieurs jours de mon vélo, que j’utilise pourtant quotidiennement.

N’ayant guère d’autres solutions, je décide de refaire un circuit imprimé propre, rassemblant la commande et la puissance sur la même carte. Je dessine alors le schéma grâce au logiciel de CAO Eagle :

Les batteries sont connectées entre +UB et AGND. Aucun connecteur n’apparaît sur le schéma, car compte tenu du courant qui passe (j’ai dimensionné ce contrôleur pour 30A, soit 1kW, durant pas trop longtemps), je souderai directement les fils sur les plans de cuivre.

Pour la même raison, les 3 phases du moteur sont connectées avec des cosses vissées sur le dissipateur des transistors low-side, qui est au potentiel de leur drain.

Parmi les composants principaux, on retrouve le même Arduino Nano que j’avais installé sur ma carte précédente. Il est alimenté en 5V via un DC/DC buck TL2575HV-5.0, que vous connaissez déjà car je l’ai utilisé dans mon chargeur de batteries Ni-Cd. Je profite de ce nouveau PCB pour installer un phare plus puissant sur mon vélo, qui permet d’éclairer la route et pas seulement d’être vu. Ce phare est composé d’une LED de 10W ayant une tension de seuil de l’ordre de 12V, je monte donc un autre TL2575HV-ADJ en générateur de courant constant pour l’alimenter.

La commande des MOS est réalisée en +15V issu d’un LM317T. Comme il ne tient pas en entrée une tension suffisante, j’ai rajouté, en série avec la résistance R1, une zener de 15V (c’est assez sale… si c’était à refaire je prendrais plutôt un autre régulateur adapté).

SG1 est un buzzer qui permet de signaler différents événements. Le ACS712 est un capteur de courant à effet Hall, que je n’utilise pas pour le moment. L’optocoupleur OK1 sert à renvoyer l’information de l’interrupteur à lame souple de la roue (et non du pédalier, il y a une erreur sur le texte du schéma) à un éventuel compteur de vélo. Les drivers de MOS utilisés sont des IR2101 (au format DIL, monté sur supports SVP ! j’ai déjà eu à en changer plusieurs sur la version précédente). Ils sont assez vieillissants mais c’était la référence utilisée sur la carte précédente. Comme cela fonctionnait et que le mieux est l’ennemi du bien, je n’ai pas pris le risque de les faire évoluer.

Je route ensuite la carte, à nouveau en simple face : je vais faire moi-même le circuit imprimé au fer à repasser. Je pourrais le commander chez les fournisseurs chinois, mais le délai de plusieurs semaines (pour ne pas payer une fortune de frais de port) est incompatible avec l’urgence de la réparation. Les pistes sur la face TOP sont des straps, à l’exception de celui tout à droite qui est le dissipateur aluminium des transistors lui-même.

Quelques jours plus tard, j’obtiens donc ceci :

Une fois les composant (presque) tous soudés :

A droite, le dissipateur est relié au positif de la batterie et le distribue sur le drain des MOS du haut. Je n’avais pas encore reçu tous les MOS, c’est pourquoi il en manque trois. J’ai choisi des Nexperia PSMN5R0-80PS. Comme pour les drivers de MOS, hors de question de les commander sur un site chinois : je ne veux pas prendre de risque et exige des composants authentiques, que je me procure chez Farnell (merci Rafik !).

Une autre vue avec cette fois tous les composants montés :

On voit accessoirement les cosses qui relient les drains des transistors low-side au moteur. Seuls ceux-ci sont isolés du dissipateur aluminium par un mica, c’est au contraire ce dernier qui fournit le positif de la batterie aux transistor high-side.

Je termine la carte, et fais les premiers essais avec une alim AC/DC 24V 2A : ça fonctionne ! Je l’intègre dans le vélo et mets sous tension la peur en ventre, redoutant un nouveau spectacle son et lumières… mais tout se passe bien !

Je vais alors faire un tour, mais je n’ai même pas roulé 100m que j’entends l’Arduino qui redémarre (le buzzer est programmé pour émettre un double-bip au démarrage). Quelques instants après, PAF ! Cette fois, ça a claqué :’-( . Les dégâts semblent toutefois limités à la patte d’un transistor, qui a fondue et a fait office de fusible :

A noter que ce n’était pas la patte d’origine, qui était elle certainement suffisamment dimensionnée : je les avais coupées trop court et je les avais rallongées avec des queues de résistances, de plus faible section.

L’Arduino ayant redémarré, je soupçonnes un mauvais découplage. Je rajoute alors des condensateur au tantale un peu partout, y compris sur le circuit imprimé de l’Arduino lui-même. J’imagine également que le court-circuit est dû à un parasite qui a fait conduire le transistor MOS au mauvais moment : j’ajoute alors des pull-down de 1k sur les entrées des drivers et de 10k entre grille et source des MOS. Pour terminer, j’intercale un filtre LC entre les batteries et les régulateurs.

Cette fois, c’est la bonne ! Assez peu serein durant les premiers kilomètres, je prends confiance petit à petit en mon circuit. Je l’utilise encore à l’heure où j’écris ces lignes, plus de deux ans et 15000km plus tard.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *