lundi 4 novembre 2019

ARDUINO : prototypage amélioré sur breadboard







ARDUINO : prototypage amélioré

sur breadboard


Le bricolage sur planche à pain sans soudure a des inconvénients majeurs :
  • les faux contacts sont une source d'ennui permanente
  • il devient vite difficile d'accéder à un bouton ou de voir un afficheur lorsqu'il est noyé sous un tas de fils DUPONT
  • les boutons du type TACT ne tiennent pas en place
Tout d'abord voici quelques liens pour les débutants qui ne connaissent pas la breadboard :
https://www.robot-maker.com/ouvrages/2-1-utiliser-breadboard/
http://www.zpag.net/Electroniques/Breadboard/Breadboard.htm

Sur les grands modèles les lignes d'alimentation sont souvent discontinues. On peut les relier (ou pas) en fonction du besoin :


1. Cartes de prototypage du commerce

Vous connaissez probablement ces cartes de prototypage (cartes ARDUINO, ESP8266, capteurs, relais, etc.) que l'on trouve chez les revendeurs.

1.1. Les cartes en général

Les cartes ARDUINO sont livrées avec leurs connecteurs :
  • UNO, MEGA : connecteurs femelle
  • NANO, MINI : connecteurs mâles
Les contacts des connecteurs des cartes UNO ou MEGA posent en général peu de problèmes.

Une NANO ou une MINI enfichée sur une breadboard a toutes ses chances de fonctionner correctement. La situation se complique si l'on raccorde ces cartes à des modules à l'aide de fils DUPONT.
Les faux contacts sont souvent au rendez-vous (les contacts femelles pour fil DUPONT ont tendance à s'écarter). On obtient en général de meilleurs résultats avec une UNO et des fils DUPONT mâles.

Les petits modules, en général des capteurs ou des écrans, sont faciles à enficher sur une breadboard. Il sont également facilement soudables sur un PCB ou enfichables sur un connecteur femelle lui-même soudé :

Il n'en va pas de même si l'on veut les utiliser tel quels, reliés à une carte ARDUINO à l'aide de fils mâle-femelle ou femelle-femelle. Gare aux faux contacts.

1.1.1. Prototypage
Lors du prototypage les modules ont avantage à être enfichés sur une breadboard et reliées à la carte ARDUINO par des fils DUPONT mâle-mâle :
  • UNO ou MEGA
  • NANO ou MINI enfichée également sur la breadboard
1.1.2. Réalisation finale
On peut parfaitement assembler un ARDUINO ou un ESP8266 et d'autres modules à l'aide de fils DUPONT et obtenir un résultat tout à fait fonctionnel. Mais qu'en est-il sur le long terme ?

Utiliser des modules de ce type dans une application finale est parfaitement possible, mais il faut être rigoureux lors du câblage.
Pour une réalisation plus soignée on peut utiliser des connecteurs DUPONT femelles multi-points (cela impose de posséder une pince à sertir) :
Si l'on désire utiliser des fils DUPONT unitaires il est préférable de remplacer les connecteurs mâles de la carte ARDUINO ou des modules par des modèles femelle, comme ceux des cartes UNO ou MEGA. Les contacts lyre de ces connecteurs offrent une qualité de contact supérieure à celle des contacts femelle sur fil.
On utilisera de préférence des fils DUPONT sertis et non pas surmoulés.

Reste le problème de l'intégration mécanique, assez compliqué. on obtiendra une intégration de meilleure qualité et une fiabilité plus importante en soudant les composants nécessaires sur un PCB, y compris sur une plaquette à pastilles :


1.2. Les cartes du commerce

1.2.1. Les cartes boutons / afficheur
Prenons ceci comme exemple :

On voit sur cette carte 4 boutons, 4 condensateurs anti-rebond et un connecteur (1 broche par bouton, et une broche GND).
L'idée est bonne mais ne correspond pas forcément au besoins ou aux habitudes de chacun. Si je préfère résoudre les problèmes de rebond de manière logicielle c'est mon droit.

Ces autres cartes utilisent des composants du type expander et nécessitent l'emploi d'une librairie spécialisée :
Afficheur et clavier TM1638

Afficheur et clavier TM1637

Afficheur et clavier TM1638
Ces cartes assurent parfaitement leur fonction, mais elles intègrent des composants un peu trop spéciaux pour être repris dans une application finalisée, à moins d'avoir des contraintes fortes d'occupation des entrées / sorties.

1.2.2. Les cartes relais
Cette carte comporte un relais, un transistor de commande, 2 LEDs, trois résistances de 220Ω et un connecteur 3 broches (GND, 5V, IN).
La description de la carte précise que ce relais doit être commandé par un niveau bas.
Cela me convient-il ? pas forcément. j'ai plutôt l'habitude de commander mes relais avec un niveau haut et les LEDs sont inutiles. De plus la résistance de base de 220Ω est trop faible et impose un courant de commande de 20mA (tous les modules ne sont pas équipés de cette façon).
D'autres cartes proposent un jumper afin de pouvoir choisir le niveau de la broche de commande mais elles sont en général équipées d'un optocoupleur. Quel intérêt ? Le relais offre déjà lui-même une isolation galvanique tout à fait suffisante.

1.2.3. Les capteurs
Les modules capteurs (température, humidité, pression, luminosité, etc.) sont en général bien construits et peuvent être directement utilisés dans une application finale.
Certains modules sont cependant encombrés de composants inutiles, de LEDs en particulier.
DS18B20 (avec LED)
1.2.4. Les cartes MOSFET
Le choix est étriqué : IRF520 ou IRF540, deux transistors qui n'ont même pas l'avantage d'être "logic level", c'est à dire commandables par une tension de gate faible. Autant dire qu'avec les cartes 3.3V cela risque de poser certains problèmes.

1.2.5. Les cartes ESP8266

Il serait difficile d'enficher un ESP8266 sur une breadboard sans ces accessoires.

1.2.6. Les adaptateurs NRF24L01
Simplement indispensable sur une breadboard.

1.2.7. Les modules et cartes d'alimentation
Ces cartes sont en général simples et peuvent être directement enfichables sur une breadboard ou soudées sur un PCB :
Convertisseur LM2596
Chargeur LITHIUM TP4056
Sauf besoin particulier, elles conviennent souvent au prototypage ainsi qu'à la réalisation finale. Équipées de quelques fils rigides soudés elles s'enfichent facilement dans une breadboard ou peuvent être soudées sur un PCB.

Module MeanWell IRM-03

Pour des raisons de sécurité il est plutôt déconseillé d'enficher un module d'alimentation 230V sur une breadboard ou une plaquette à pastilles.

1.2.8. Les adaptateurs CMS

Ces plaquettes permettent d'utiliser un composant CMS sur breadboard.

2. Cartes de prototypage maison

Comme on l'a vu plus haut, les cartes de prototypage du commerce collent rarement de près au besoin. Si l'on veut réaliser un prototype avec ce matériel il est préférable de le conserver tel quel pour la réalisation finale. Cela conduit en général à un nombre important de cartes et de fils volants. Le produit final sera également assez volumineux.

D'autre part, certains composants n'existent pas sous forme de modules tout faits, ou ne sont pas forcément enfichables sur breadboard (cas des composants CMS ou de ceux dont les broches n'ont pas l'écartement adéquat). Il est souvent nécessaire de fabriquer un module soi-même.

2.1. Le pourquoi

2.1.1. Fiabilité
Si l'on désire une électronique fiable dans le temps, il est préférable de passer par la réalisation d'un PCB, qu'il soit gravé ou élaboré à partir d'une plaquette à pastilles.

2.1.2. Coller au besoin
Les cartes de prototypage du commerce intègrent des composants pas forcément utiles (condensateurs, résistances, LEDs, optocoupleurs, etc.).
Il serait assez peu intéressant de reprendre exactement leur schéma pour notre propre besoin.

2.1.3. Le prototype
Le but d'un prototype est de vérifier le fonctionnement d'un schéma, en collant au plus près à celui-ci. Rien ne permet d'affirmer qu'un produit fini aura le même comportement qu'un prototype réalisé avec des cartes du commerce ne comportant pas exactement les mêmes composants.
D'autre part, il n'est pas forcément évident de trouver le schéma exact des cartes du commerce, et cela peut conduire à des interprétations erronées.

2.1.4. Montages spaghetti
Certains montages sont difficiles à réaliser sur breadboard, car cela impliquerait un nombre de fils important. Dans ce cas la réalisation d'une petite carte de prototypage soudée s'avère bien plus intéressante.
Voir plus bas : 2.3.7. La carte LCD

2.1.5. Les composants discrets
Qui n'a pas expérimenté les désagréments liés aux pattes trop longues des résistances qui risquent d'entrer en contact avec d'autres composants sur la breadboard ?
Bien sûr on peut raccourcir les pattes des résistances afin qu'elles soient plaquées sur la breadboard, mais c'est encore une perte de temps.

Réunir sur une petite plaquette un transistor ou un circuit intégré avec ses quelques composants additionnels pour former un module prêt à l'emploi fait gagner un temps précieux.

2.1.6. Fabriquer ses propres cartes
Nous allons essayer ici de décrire quelques cartes de prototypage utiles représentatives de la réalité finale d'une application, au plus proche des besoins.
Le but est d'employer uniquement les composants qui seront utilisés dans la réalisation finalisée. Le but est aussi de dessiner des schémas modulaires faciles à reprendre dans un schéma complet définitif (copier / coller).

Cela ressemble d'assez près à la manière de travailler en logiciel avec des libriairies, sauf qu'il s'agit d'une librairie matérielle.

Les avantages sont évidents :
  • conception collant parfaitement au besoin
  • maîtrise totale des schémas
  • composants choisis et donc connus
  • modularité
En fin d'article, des liens sont disponibles pour télécharger quelques projets.

Bien entendu, ce sujet est sans intérêt pour qui assemble des modules tout faits et ne désire pas se lancer dans la production d'un PCB, qu'il soit gravé ou élaboré à partir d'une plaquette à pastilles.

2.2. Les règles de base

2.2.1. Sécurité
Sécurité avant tout : je ne place jamais de composants soumis à la tension secteur 230V sur une plaquette à pastilles. L'espacement entre pastilles est insuffisant :
2.2.3. Colonnettes
Mes cartes destinées à être posées sur table sont toutes surélevées à l'aide de colonnettes afin d'éviter certains problèmes :
  • s'il s'agit d'une plaquette à pastilles, les fils soudés sous la carte sont fragiles
  • un court circuit peut être provoqué par un bout de fil nu, un composant traînant sous la carte, ou un trombone
2.2.4. Connecteurs
Pour les raisons évoquées plus haut mes cartes de prototypage sont équipées de connecteurs DUPONT femelle. Les connexions de fils femelles sur des connecteurs de carte mâles sont trop sujettes à faux contact.

2.2.5. Repérage des connecteurs
Une bonne habitude à prendre est de repérer les broches sur les connecteurs. On peut utiliser une étiquette imprimée (voir plus bas 2.3.4. La carte boutons) ou de simples points de couleur (voir plus bas 2.3.2. La carte capteur DS18B20).
Le vernis à ongles est très pratique pour cela. Si madame n'utilise pas de vernis jaune, bleu ou vert, essayez de la persuader que c'est très original.

2.3. Les modules

2.3.1. La carte relais


Cette carte est équipée de 4 relais avec leur électronique de commande :
  • transistors NPN 2N2222
  • résistances de base 1KΩ
  • diodes de roue libre 1N4148
Aucune LED n'est présente et la commande se fait par un niveau haut.

Les relais sont enfichables sur des broches tulipe afin de pouvoir les changer pour des modèles 3V, 5V, 12V ou 24V.

Pour des raisons évidentes de sécurité, car la carte peut commander du 230V, un PCB maison a été développé, avec des pistes suffisamment larges et espacées du côté puissance.

2.3.2. La carte capteur DS18B20


Cette carte est équipée d'un DS18B20 et de sa résistance de 4.7KΩ ou 5.1KΩ. Aucune LED n'est présente, juste ce qui est nécessaire et indispensable.
Le connecteur est repéré par des points de couleur (GND, DATA, VCC).


2.3.3. Les cartes MOSFET

Les MOSFETs représentent une bonne alternative aux cartes à relais lorsque l'on doit commuter une tension continue.


Ces cartes sont chacune équipée d'un MOSFET avec sa résistance de gate de 220Ω et sa résistance grille-source de 100KΩ.
De gauche à droite :
  • canal N BS170 boîtier TO92
  • canal N IRML2502 boîtier SOT23
  • canal P AOI403 boîtier IPAK
  • canal N IRLZ44NS boîtier D2PAK
Un connecteur coudé 3 broches (sortie, GND et commande) permet d'enficher le tout sur la breadboard.

Une résistance de 220Ω limite le courant d'appel lors de la montée du signal sur la gate. Une résistance de pull-down de 100KΩ est câblée entre gate et source afin de ne pas laisser la gate en l'air dans le cas où la sortie du microcontrôleur est en haute impédance, au démarrage par exemple :
L'IRLZ44N en boîtier TO220 est certes enfichable sur breadboard mais les broches entrent difficilement. Il faut au minimum vriller les broches à 90° si l'on veut éviter de trop écarter les contacts de celle-ci et les détériorer. Le connecteur de ces petites cartes maison sera beaucoup plus facile à enficher.
Je n'utilise pas l'IRML2502, l'AOI403 et le l'IRLZ44N pour leur grande capacité en courant mais pour leur faible résistance RDSon, ce qui explique leur usage sur breadboard avec un connecteur capable de laisser passer seulement 1A ou 2A.
L'IRLB3034 est encore moins résistif : 2mΩ.

Ce choix de cartes adaptées à l'ARDUINO et processeurs 3.3V me permet de palier à l'absence de modules "logic level" dans le commerce. Ceux-ci sont limités aux IRF520 et IRF540 et leur 200mΩ ou 44mΩ de résistance RDSon pour une tension VGS de 10V.
De plus les modules du commerce n'existent pas avec MOSFET canal P.

On peut bien entendu fabriquer aussi des modules à transistors NPN ou PNP.

Ces cartes ne sont pas prévues pour supporter des courants supérieurs à 1A ou 2A, mais la breadboard n'est pas prévue pour cela non plus.
Si l'on a besoin de courants forts il faudra utiliser des borniers :



Un exemple avec 8 MOSFETs IRLZ44NS :


Cette carte est équipée d'un connecteur DUPONT 9 broches GND + 8 entrées.

Elle est également équipée de borniers :
  • bornier 16A d'alimentation de puissance à gauche (maxi 55V pour l'IRLZ44N)
  • 8 borniers 7A pour 8 charges
Le câblage de puissance de cette carte est réalisé avec du fil rigide :
  • liaisons entre borne d'entrée - et sources des MOSFETs (1.5mm²)
  • liaisons entre borne d'entrée + et bornes de sortie + (1.5mm²)
  • liaisons entre bornes de sortie - et drains des MOSFETs (0.5mm²)
Le câblage entre entrées et résistances de grille est fait en fil à wrapper.

Elle peut fournir environ 5A par sortie et 16A au total. On pourrait faire plus en câblant en fil de 2.5mm² et en utilisant d'autres borniers supportant un ampérage plus élevé.

Un autre exemple avec 16 MOSFETs AO3400 :


L'AO3400 est un MOSFET canal N supportant 30V maxi et 5.6A. Sa faible tension VGSth de 1.45V maxi permet de le commander même avec un processeur 3.3V

Cette carte est équipée d'un connecteur DUPONT 17 broches GND + 16 entrées.

Un connecteur DUPONT 32 broches est utilisé pour les 16 sorties.
A gauche, un connecteur 2 broches permet d'alimenter en 5V, 12V, ou 24V.

Cette carte est prévue pour de la puissance moyenne : 1A par sortie et 3A au total. Elle peut être utilisée par exemple pour piloter 16 rubans de LEDs 5630 12V de petite taille, jusqu'à une soixantaine de LEDs, soit 1m.

Les connecteurs sont coudés, ce qui permet de les souder sur ce PCB maison simple face. Dans le cas d'un PCB double face à trous métallisés on pourra utiliser des connecteurs droits.

2.3.4. La carte boutons


Cette carte est équipée de 4 boutons TACT 12mm et de 8 LEDs avec leurs résistances.
Les boutons sont câblés côté GND et ne nécessitent donc pas de résistances de pullup. Les LEDs sont commandées par un niveau haut. Une étiquette sur le connecteur permet de repérer le brochage.

Sa petite sœur, sans LEDs :



2.3.5. La carte encodeur rotatif


Cette carte est équipée de 2 encodeurs rotatifs avec bouton (5 broches), de deux interrupteurs DPST et de 8 LEDs avec leurs résistances.

Les encodeurs sont câblés côté GND et ne nécessitent donc pas de résistances de pullup.
Les interrupteurs sont également câblés côté GND. Il ne s'agit évidemment pas d'interrupteurs utilisables pour la mise sous tension d'une carte, mais plutôt de sélecteurs ayant une fonction précise dans une application.
Les LEDs sont commandées par un niveau haut.

L'envers du décor :


Le câblage est réalisé à l'aide de fil à wrapper, dénudé ou non, et soudé.
Le tout est relativement fragile, d'où la présence de colonnettes.

2.3.6. La carte à LEDs


Cette carte est censée imiter une diode laser commandée par un transistor.
Les 2 LEDs consomment 40mA et ne pourraient pas être commandées directement par une sortie du microcontrôleur.
Pendant le développement j'utilise deux LEDs rouges, moins dangereuses pour les yeux.

Un transistor 2N3904 est utilisé :
  • résistance de base 1KΩ
  • résistance 120Ω entre collecteur et cathodes
  • anodes des LEDs reliées au +5V
Un connecteur coudé 3 broches +5V, GND et commande permet d'enficher le tout sur la breadboard.

2.3.7. La carte afficheur 7 segments
 

Cette carte est équipée d'un afficheur 7 segments 4 digits 0.56 pouce à cathode commune et de 8 résistances de 330Ω.
Elle se pilote très facilement à l'aide de la librairie SevenSeg :
https://github.com/sigvaldm/SevenSeg

Pourquoi réaliser une carte de ce type alors qu'un module TM1637 conviendrait ?
Ce type d'afficheur est meilleur marché, et s'intègre très facilement à un PCB.

Contrairement à un module TM1637 elle monopolise 12 sorties d'un ARDUINO mais il en reste assez pour ajouter un module I2C ou SPI, comme ici un NRF24L01 :
https://riton-duino.blogspot.com/2018/02/une-horloge-numerique-mysensors-cette.html

On peut parfaitement imaginer la même carte avec un afficheur 0.8 pouce ou plus, pour lequel on ne trouvera pas de module tout fait.

2.3.8. La carte afficheur MAX7219

Cette carte est équipée d'un afficheur 7 segments 6 digits 0.36 pouce à cathode commune, d'un MAX7219 avec sa résistance ISET de 100KΩ et d'un condensateur de découplage de 100nF.

Pourquoi réaliser une carte de ce type alors que des afficheurs tout faits existent ?
Parce que les afficheurs du commerce n'intègrent pas un afficheur monobloc 6 digits. On trouve seulement des modèles 2x4 digits, 3x2 digits ou 6x1digit.

Si j'ai besoin de 8 digits j'utilise le module du commerce :
2.3.9. La carte LCD


Cette carte est équipée d'un afficheur LCD 7 segments 4 digits Varitronix VI-402, d'un PCF8577 avec son oscillateur et d'un condensateur de découplage de 100nF.

Un montage de ce type est très fastidieux à réaliser sur breadboard étant donné le nombre de fils nécessaires : 34.

Il existe des afficheurs tout faits dans le commerce mais ils ont une consommation supérieure et un contraste assez moyen.

2.3.10. La carte régulateur
Placer un régulateur sur une breadboard n'est pas d'une simplicité extrême. Deux condensateurs doivent l'accompagner, et rechercher à chaque fois quelle est la valeur préconisée dans la datasheet est fastidieux. L'équiper d'un dissipateur l'est encore plus.


Cette carte est équipée d'un régulateur HT-7533-1 100mA. Elle intègre les deux condensateurs nécessaires (10µF 25V et 10µF 10V).
Un connecteur coudé 3 broches permet d'enficher le tout sur la breadboard.

Cette autre carte comporte un L7805 1.5A, ses deux condensateurs (470nF et 100nF) et un dissipateur :


2.3.11. La carte écran OLED


Cette carte est équipée d'une carte ARDUINO NANO, de deux afficheurs OLED SSD1306 128x64 et 126x32, de cinq boutons et 5 LEDs.
Deux connecteurs 15 broches de part et d'autre de la NANO permettent d'enficher des fils DUPONT.
Le connecteur 10 broches en haut à gauche est relié aux boutons et LEDs. Il est situé à côté de la NANO pour faciliter le câblage.
Les boutons sont câblés côté GND et ne nécessitent donc pas de résistances de pullup. Les LEDs sont commandées par un niveau haut.

L'adresse I2C de l'écran de gauche est modifiée (0x3D au lieu de 0x3C), car sinon les deux écrans seraient en conflit. Le but n'est pas de les faire fonctionner ensemble mais de choisir dans le logiciel avec quel écran on veut travailler.

J'utilise cette carte en lieu et place d'une breadboard à chaque fois que je commence un projet à base de NANO + écran OLED.
Il suffit en général d'ajouter quelques modules (capteurs, relais, etc.) pour compléter le montage.

Sur la photo la LED rouge est reliée à D13 et le bouton de gauche est relié à D2. Dans l'exemple le logiciel allume la LED lorsqu'on appuie sur le bouton.

L'envers du décor :


Toujours la même méthode : fil à wrapper et fil de cuivre nu rigide pour la ligne de masse. Les fils longs sont fixés sur la plaquette avec de la colle.

2.3.12. La carte connectée ARDUINO PRO MINI
Ici on entre dans la catégorie des cartes très spécialisée. Cela vaut la peine d'investir dans ce genre de matériel seulement si le besoin est fréquent.


Cette carte est équipée des quelques composants nécessaires pour alimenter une carte ARDUINO PRO MINI sur batterie et la faire communiquer par radio :
  • batterie LITHIUM 18650
  • module NRF24L01
  • régulateur 3.3V
  • connecteurs
Il est facile de l'équiper d'un ou plusieurs capteurs pour en faire un prototype d'objet connecté.
Elle est décrite ici : https://riton-duino.blogspot.com/2018/04/carte-dexperimentation-mysensors.html

Elle est parfaitement réalisable sur plaquette à pastilles. 

3. Trucs et astuces

3.1. Un ESP8266 ou un module large sur une breadboard



C'est ballot. Comment ajouter les fils DUPONT ?


Avec deux breadboard jumelées cela va mieux.

3.2. Un peigne de liaison pour breadboard

Relier plusieurs rangées d'une breadboard à GND ou VCC sans utiliser plusieurs fils mais un seul.
  • utilisez un petit bout de barrette (pin header) mâle
  • soudez les broches ensemble avec un fil de cuivre :

3.3. Un jack d'alimentation

On peut alimenter une breadboard à l'aide de deux fils terminés par des connecteurs mâles du type DUPONT :


Ce n'est pas très optimal, les connecteurs ont du mal à tenir en place lors des manipulations.




Cette plaquette à pastilles est équipée de 2 barrettes de broches mâles 5 ou 10 points qui s'enfichent dans les lignes d'alimentation de la breadbooard. Cette solution tient beaucoup mieux en place.

4. Téléchargement

Les cartes relais et 7 segments à LED :
https://bitbucket.org/henri_bachetti/arduino-prototyping.git

La carte 7 segments LCD :
https://bitbucket.org/henri_bachetti/arduino-7segments-lcd.git

La carte 16 MOSFETs :

Cette page vous donne toutes les informations nécessaires :
https://riton-duino.blogspot.com/p/migration-sous-bitbucket.html

5. Liens

Cet article contient aussi des infos sur le développement ARDUINO en général :
https://riton-duino.blogspot.com/2019/01/developpement-electronique-arduino.html

5. Conclusion

Ces quelques petites cartes me rendent service au quotidien et le temps passé à les produire est vite amorti.

Il est possible d'en imaginer à l'infini.
Le principe de base est de souder le maximum de composants sur quelques petites cartes modulaires réutilisables. Le nombre d'éléments présents sur la breadboard est ainsi considérablement réduit, ainsi que les faux contacts, et c'est tellement plus confortable !


Cordialement
Henri

6. Mises à jour

09/11/2019 : 2.2.5. Repérage des connecteurs
                       2.3.2. La carte capteur DS18B20
14/11/2019 : 2.3.8. La carte afficheur 7 segments
22/11/2019 : 2.3.11. La carte écran OLED

Aucun commentaire:

Enregistrer un commentaire