Le monde des micro contrôleurs Périphériques des micro contrôleurs Éléments de programmation du 12F509 Éléments de programmation du 12F675 |
Sur cette page, vous trouverez des montages simples à base de microcontrôleurs, destinés à être utilisés avec une radiocommande proportionnelle et étudiés principalement pour les modèles réduits de bateaux. Beaucoup de gens se lancent dans la construction de navires utilitaires, du genre bateaux de pêche, pousseurs, remorqueurs et autres engins sympathiques rentrant dans la catégorie loisirs, par opposition aux catégories donnant lieu à des compétitions effrénées. Avec ce genre de bateaux, une radiocommande proportionnelle est utile pour la direction et la propulsion, par contre, ils nécessitent plein de commandes tout ou rien pour faire des animations ou allumer des lumières. Je vous propose donc des montages à brancher sur une (ou plusieurs) voie(s) proportionnelle(s) et qui commandent plusieurs fonctions tout ou rien. Des solutions commerciales existent, mais, avec des composants ne coûtant pas grand chose et aisément disponibles, il est possible de faire presque aussi bien avec un travail minime !
C'est un microcontrôleur (en abrégé "MCU" : Micro Controler Unit) fabriqué par Microchip, la fiche descriptive du produit est ici. Il ressemble physiquement à ceci :
Cette photo est un agrandissement, lorsque le MCU est monté sur un support (ce que je recommande), il mesure environ 1 cm dans toutes les dimensions. Sous ce format réduit :
On le trouve couramment en France à 1.00 EUR pièce ou à 0.79 EUR, si on l'achète par paquet de 10.
C'est un autre MCU fabriqué par Microchip, la fiche descriptive est ici. Il se présente également sous la forme d'un boîtier à huit broches. Il reprend l'organisation interne et les caractéristiques du 12F509, mais il permet en plus :
On le trouve couramment en France à 1.64 EUR pièce (1.26 EUR pièce, acheté par paquet de 5).
C'est le même circuit que le PIC 12F675, mais ses capacités de mémoire sont doublées : 2048 mots de programme, 128 octets de mémoire dynamique (données) et 256 octets de mémoire EEPROM. Un troisième timer, d'une capacité de huit bits est disponible. Ce circuit sera utilisé lorsqu'on aura un programme trop volumineux pour le 12F675. Si, par hasard, le 12F675 était indisponible, ce circuit peut le remplacer sans problème. On le trouve couramment en France à 1.73 EUR pièce (1.23 EUR pièce, acheté par paquet de 10).
Il s'agit ici, non pas d'un, mais de deux circuits : le 16F1825 se présente sous la forme d'un boîtier de 14 broches et le 16F1829 sous la forme d'un boîtier de 20 broches. Ils sont de la même famille que le PIC 12F675, mais ils disposent d'un plus grand nombre de ports : 2 pour le 16F1825 et 3 pour le 16F1829. Mis à part cette différence, ils sont strictement identiques fonctionnellement.
Ils ressemblent physiquement à ceci : ![]() ![]() Voici un résumé de leurs possibilités :
On trouve couramment le PIC 16F1825 en France à 1.58 EUR pièce. Le PIC 16F1829 n'est pas facile à trouver à un prix amateur. Il est disponible chez les distributeurs professionnels, mais avec des frais de port prohibitifs quand on commande en petite quantité. Pour obtenir le port gratuit, il faut faire une commande de 65.00 EUR HT minimum, en dessous les frais sont de 18.00 EUR, ça fait cher pour un composant qui coûte moins de 2.00 EUR ! À défaut de trouver un 16F1829, on peut utiliser un 16F1828, qui est "presque" pareil avec moins de mémoires (4196 mots de mémoire programme et 256 octets de mémoire dynamique). Sa fiche descriptive est ici.
C'est un transistor de technologie MOSFET, sa fiche technique est ici. Il s'utilise lorsqu'il y a besoin de puissance sur les sorties du MCU. Il agit comme un interrupteur pour commander n'importe quelle charge consommant jusqu'à 500 mA en continu et 1200 mA en impulsion. Si cette intensité n'est pas suffisante, un MOSFET de puissance peut être utilisé, par exemple l'IRF540, qui supporte jusqu'à 28A en continu et 110 A en impulsion ou encore l'IRF3808, qui supporte jusqu'à 140A en continu et 550 A en impulsion. L'avantage du MOSFET sur un transitor classique est qu'il est commandé par une tension et non par un courant. Pratiquement, cela signifie qu'il peut être branché directement sur une sortie du MCU sans aucun composant supplémentaire, en particulier aucune résistance n'est nécessaire.
La broche "G" est l'entrée de commande, lorsque la tension sur cette broche est supérieure à 3 V,
le transistor conduit. La broche "S" est à brancher à la masse (0 V) et la broche "D" est à brancher
sur le pôle négatif du dispositif à commander, l'autre pôle du dispositif étant branché à la source positive,
cette source peut éventuellement être différente de l'alimentation du MCU. La tension maximum entre les broches "S" et "D" est 60 V. Celle entre les broches "G" et S est 20 V. A priori, cela ne devrait pas nous poser de problème. On trouve généralement le BS170 pour un prix de 0.60 EUR vendu à l'unité, il est moins cher quand on l'achète par quantité, par exemple 0.28 EUR par paquet de 100.
Étant donné la simplicité des circuits, le cablage est aussi très simple. Une première solution est de souder directement les différents cables en l'air sur un support de circuit intégré (CI) à huit broches. Il faut utiliser, de préférence, un support de type "tulipe", ayant de meilleurs contacts. Une autre solution, un peu plus sophistiquée et permettant de faire de nombreux essais sans avoir à souder à chaque fois, est de monter le support de CI sur une plaquette d'essai à bande cuivrée, au pas de 2.54x2.54mm, comme celle ci : ![]() Il existe un outil pour couper les bandes de la plaquette cuivrée, mais un foret à métaux de 3.5 mm, monté sur une perceuse ne tournant pas trop vite, convient parfaitement. Monter ensuite de chaque côté du support deux rangées de picots de barrette mâle sécable de type HE14 : ![]() Enfin, souder un cable de servo : le plus (fil rouge) sur la broche 1, repérée par un point sur le boîtier, le moins (fil noir ou marron) sur la broche 8 et le signal (fil blanc ou jaune) sur la broche 4. La réalisation finale ressemble à ceci :
Les connexions aux dispositifs se feront avec des prises et des cables de servos.
Pour pouvoir fonctionner, un MCU doit avoir un programme chargé en mémoire. Il existe différents langages pour
écrire les programmes : l'assembleur, le BASIC, le langage C et divers langages propriétaires. Avec cet environnement, il est possible d'écrire et modifier le programme, de le compiler et d'écrire le code généré dans la mémoire du MCU.
Pour transférer le code généré par la compilation (rangé dans un fichier suffixé par ".hex") depuis l'ordinateur vers la mémoire du MCU, il faut utiliser un programmateur. C'est un boîtier qui se branche sur une prise USB (ou sur un port série ou parallèle) côté ordinateur et sur le MCU de l'autre. Il en existe de deux types :
Une fois le programme rangé en mémoire, il n'est pas nécessaire de le recharger avant 40 ans minimum (c'est peut être plus, mais on n'a pas le recul nécessaire). Il en existe à tous les prix, depuis les gratuits, à réaliser soi même, jusqu'aux très chers ! Si je devais indiquer une préférence, je dirais que le programmateur PICkit2 de Microchip est un bon choix.
La plupart des "petits" PICs ont les broches de programmation regroupées sur les huit du haut, sauf certains MCU avec 18 broches : Pour brancher le programmateur correctement, il faut donc d'abord aller vérifier le brochage du MCU sur la feuille de caractéristiques (data sheet). |