{"id":1645,"date":"2024-10-03T16:10:19","date_gmt":"2024-10-03T14:10:19","guid":{"rendered":"https:\/\/labopothier.com\/?p=1645"},"modified":"2026-01-24T13:56:42","modified_gmt":"2026-01-24T12:56:42","slug":"activite-arduino-controler-un-moteur-a-courant-continu-avec-une-carte-arduino","status":"publish","type":"post","link":"https:\/\/labopothier.com\/index.php\/2024\/10\/03\/activite-arduino-controler-un-moteur-a-courant-continu-avec-une-carte-arduino\/","title":{"rendered":"ACTIVITE ARDUINO : Contr\u00f4ler un moteur \u00e0 courant continu avec une carte Arduino"},"content":{"rendered":"\n<p><strong>Objectif<\/strong>s : Utiliser une carte Arduino pour contr\u00f4ler un moteur continu. Savoir utiliser un transistor MOSFET pour une utilisation simple, ou un pont en  H si on d\u00e9sire faire tourner le moteur dans les deux sens. Comprendre l&rsquo;int\u00e9r\u00eat des sorties PWM pour faire varier la vitesse d&rsquo;un moteur<\/p>\n\n\n\n<p>Cet article ne pr\u00e9tend pas tout expliquer en d\u00e9tail, mais est plut\u00f4t destin\u00e9 \u00e0 pr\u00e9senter un r\u00e9sum\u00e9 des meilleures fa\u00e7ons d&rsquo;utiliser la carte Arduino avec un moteur \u00e0 courant continu.<\/p>\n\n\n\n<p>Pour des compl\u00e9ments d&rsquo;information (principe d&rsquo;un moteur \u00e0 courant continu, fonctionnement d&rsquo;un transistor, r\u00f4le de la diode de roue libre, fonctionnement d&rsquo;un pont en H, r\u00f4le des sorties PWM d&rsquo;une carte Arduino,&#8230;), je vous invite \u00e0 lire cette page qui est tr\u00e8s compl\u00e8te :<\/p>\n\n\n\n<p><a href=\"https:\/\/zestedesavoir.com\/tutoriels\/686\/arduino-premiers-pas-en-informatique-embarquee\/747_le-mouvement-grace-aux-moteurs\/3437_le-moteur-a-courant-continu\" target=\"_blank\" rel=\"noreferrer noopener\">Article Moteur \u00e0 courant continu Zeste de Savoir<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Montage simple pour faire tourner un moteur \u00e0 courant continu, \u00e0 l&rsquo;aide d&rsquo;un transistor MOSFET<\/h2>\n\n\n\n<p>Il n&rsquo;est <strong>pas possible d&rsquo;appliquer une tension directement au moteur \u00e0 partir d&rsquo;une carte Arduino<\/strong>. En effet, une carte Arduino peut fournir la tension n\u00e9cessaire mais n&rsquo;est pas assez puissante. <\/p>\n\n\n\n<p>L&rsquo;intensit\u00e9 du courant d\u00e9livr\u00e9 par la carte ARDUINO ne sera donc pas assez \u00e9lev\u00e9e pour faire tourner le moteur.<\/p>\n\n\n\n<p>Nous allons donc nous servir de la <strong>carte Arduino exclusivement pour contr\u00f4ler <\/strong>le moteur (<strong>circuit de commande<\/strong>, encadr\u00e9 vert \u00e0 gauche sur le sch\u00e9ma ci-dessous). <\/p>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 19%\"><div class=\"wp-block-media-text__content\">\n<p>Pour r\u00e9soudre le probl\u00e8me de puissance, nous allons utiliser un<strong> transistor MOSFET<\/strong>.<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.gotronic.fr\/art-transistor-irf530-1490.htm\">Transistor MOSFET sur Go Tronic<\/a><\/p>\n\n\n\n<p>Pour que ce transistor puisse supporter des courants d&rsquo;intensit\u00e9 sup\u00e9rieure \u00e0 2 A sans trop chauffer , il peut \u00eatre judicieux d&rsquo;utiliser un dissipateur :<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.gotronic.fr\/art-refroidisseur-ml1-5997.htm\">Dissipateur pour transistor sur Go Tronic<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8119-1024x768.jpg\" alt=\"\" class=\"wp-image-1657 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8119-1024x768.jpg 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8119-300x225.jpg 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8119-768x576.jpg 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8119-1536x1152.jpg 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8119-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Ce composant va agir comme un <strong>interrupteur sur le circuit de puissance<\/strong> (encadr\u00e9 rouge \u00e0 droite sur le sch\u00e9ma ci-dessous) \u00e0 partir des instructions donn\u00e9es \u00e0 la carte Arduino.<\/p>\n\n\n\n<p>Le circuit de puissance est compos\u00e9 :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>du moteur <\/li>\n\n\n\n<li>d&rsquo;une diode de roue libre pour \u00e9viter les surtensions dues aux interruptions de tension aux bornes du moteur (voir l&rsquo;article mentionn\u00e9 ci-dessus pour les d\u00e9tails)<\/li>\n\n\n\n<li>d&rsquo;une alimentation externe assez puissante pour faire tourner le moteur (une alimentation stabilis\u00e9e, une pile ou batterie LiPO peuvent convenir).<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"593\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/MCC-MOSFET_bb-1024x593.png\" alt=\"\" class=\"wp-image-1647\" style=\"width:733px;height:auto\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/MCC-MOSFET_bb-1024x593.png 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/MCC-MOSFET_bb-300x174.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/MCC-MOSFET_bb-768x444.png 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/MCC-MOSFET_bb-1536x889.png 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/MCC-MOSFET_bb-2048x1185.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8117-1024x768.jpg\" alt=\"\" class=\"wp-image-1660\" style=\"width:427px;height:auto\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8117-1024x768.jpg 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8117-300x225.jpg 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8117-768x576.jpg 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8117-1536x1152.jpg 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8117-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Nous avons choisi la broche 9 de la carte Arduino car il s&rsquo;agit d&rsquo;une broche qui peut agir comme une sortie PWM (symbole de vague \u00e0 c\u00f4t\u00e9 du num\u00e9ro). <\/p>\n\n\n\n<p><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Qu&rsquo;est ce que le PWM ?<\/h5>\n\n\n\n<p>Toutes les sorties Arduino ne peuvent d\u00e9livrer qu&rsquo;une tension de 0 V (\u00e9tat LOW) ou de 5V (\u00e9tat HIGH). <\/p>\n\n\n\n<p>Cependant avec les sorties PWM (<strong>Pulse Width Modulation<\/strong>, en fran\u00e7ais <strong>MLI<\/strong>&nbsp;ou&nbsp;<strong>Modulation de Largeur d&rsquo;Impulsions<\/strong>&nbsp;), il est possible de \u00ab\u00a0hacher\u00a0\u00bb cette tension de 5 V en faisant varier le rapport cyclique du signal donn\u00e9 par la broche (le rapport cyclique est le  rapport de la dur\u00e9e du signal au niveau haut divis\u00e9 par le temps de la p\u00e9riode du signal).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"982\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/rapportcyclique-1024x982.png\" alt=\"\" class=\"wp-image-1653\" style=\"width:622px;height:auto\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/rapportcyclique-1024x982.png 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/rapportcyclique-300x288.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/rapportcyclique-768x736.png 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/rapportcyclique.png 1071w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dans le code Arduino, il faut bien penser \u00e0 d\u00e9finir la broche <strong>9 <\/strong>comme <strong>OUTPUT <\/strong>dans le void setup(). De plus, au lieu de l&rsquo;instruction <strong>digitalWrite<\/strong>, il faut utiliser l&rsquo;instruction <strong>analogWrite<\/strong> (uniquement valable pour les sorties PWM) afin de jouer sur le rapport cyclique., avec une valeur comprise entre 0 (0%) et 255 (100%).<\/p>\n\n\n\n<p>Ci-dessous un exemple tr\u00e8s simple de code Arduino permettant de faire tourner le moteur \u00e0 50 % de sa vitesse maximale :<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>En recevant cet signal, le transistor va donc agir comme un interrupteur command\u00e9 qui va \u00e0 son tour commander la vitesse de rotation du moteur (aliment\u00e9 avec une alimentation fixe). Plus le rapport cyclique est \u00e9lev\u00e9, plus la vitesse de rotation est \u00e9lev\u00e9e (Tension aux bornes du moteur = Tension d&rsquo;alimentation <strong>x <\/strong>rapport cyclique)<\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre title=\"Contr\u00f4le d'un moteur avec Arduino et un transistor MOSFET\" class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\nconst int motorPin =  9; \/\/ Num\u00e9ro de broche pour contr\u00f4ler le rapport cyclique, et donc la vitesse de rotation du moteur\n\n\nvoid setup() {\n  \/\/ On d\u00e9finit la broche du moteur comme une sortie :\n  pinMode(motorPin, OUTPUT);\n\n}\n\nvoid loop() {\n\n  \/\/ vitesse de rotation \u00e0 50 % (avec l'instruction analogWrite)\n    analogWrite(motorPin, 128);\n  \n \n}<\/code><\/pre>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 20%\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-align-center has-medium-font-size\">Ce code est disponible <a href=\"https:\/\/github.com\/jonasforlot\/python-arduino\/blob\/main\/MCC_Arduino\/MCC_Arduino_MOSFET.ino\">ici<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"512\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png\" alt=\"\" class=\"wp-image-1603 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png 512w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-300x300.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-150x150.png 150w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Utilisation d&rsquo;un pont en H pour faire tourner le moteur dans les deux sens<\/h2>\n\n\n\n<p>Pour faire tourner un moteur dans les deux sens, il est n\u00e9cessaire d&rsquo;utiliser <strong>un pont en H<\/strong><\/p>\n\n\n\n<p>De nombreux articles expliquent le fonctionnement de ce composant de mani\u00e8re tr\u00e8s d\u00e9taill\u00e9e avec l&rsquo;application sur un moteur \u00e0 courant continu,  en agissant sur le sens de rotation ainsi que sur la vitesse de rotation :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/zestedesavoir.com\/tutoriels\/686\/arduino-premiers-pas-en-informatique-embarquee\/747_le-mouvement-grace-aux-moteurs\/3437_le-moteur-a-courant-continu\/\">Le m\u00eame article cit\u00e9 plus haut sur le site Zeste de Savoir<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/zestedesavoir.com\/tutoriels\/686\/arduino-premiers-pas-en-informatique-embarquee\/747_le-mouvement-grace-aux-moteurs\/3437_le-moteur-a-courant-continu\/\">Utilisation avec un shield pour simplifier les branchements<\/a> (site Electroile)<\/li>\n\n\n\n<li><a href=\"https:\/\/electrotoile.eu\/arduino-variation-vitesse-moteur-courant-continu.php\">Compl\u00e9ment pour faire varier la vitesse<\/a> (site Electrotoile)<\/li>\n<\/ul>\n\n\n\n<p>Voici les diff\u00e9rents fonctionnements d&rsquo;un pont en H :<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"311\" height=\"263\" data-id=\"1665\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/11e2f730-9491-4a56-b71a-e10da3bcb2a2.png.960x960_q85.png\" alt=\"\" class=\"wp-image-1665\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/11e2f730-9491-4a56-b71a-e10da3bcb2a2.png.960x960_q85.png 311w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/11e2f730-9491-4a56-b71a-e10da3bcb2a2.png.960x960_q85-300x254.png 300w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><figcaption class=\"wp-element-caption\">Fonctionnement dans le sens horaire<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"311\" height=\"263\" data-id=\"1668\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/39ee92d1-9212-4cd3-9d4d-7b134ab51cb5.png.960x960_q85.png\" alt=\"\" class=\"wp-image-1668\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/39ee92d1-9212-4cd3-9d4d-7b134ab51cb5.png.960x960_q85.png 311w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/39ee92d1-9212-4cd3-9d4d-7b134ab51cb5.png.960x960_q85-300x254.png 300w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><figcaption class=\"wp-element-caption\">Fonctionnement dans le sens anti horaire<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"311\" height=\"263\" data-id=\"1667\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/3baeca89-6e06-4c1a-8129-984f41964e40.png.960x960_q85.png\" alt=\"\" class=\"wp-image-1667\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/3baeca89-6e06-4c1a-8129-984f41964e40.png.960x960_q85.png 311w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/3baeca89-6e06-4c1a-8129-984f41964e40.png.960x960_q85-300x254.png 300w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><figcaption class=\"wp-element-caption\">Moteur \u00e0 l&rsquo;arr\u00eat<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"311\" height=\"263\" data-id=\"1666\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/9fca6594-bfef-45aa-b57d-8c63d8ff154c.png.960x960_q85.png\" alt=\"\" class=\"wp-image-1666\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/9fca6594-bfef-45aa-b57d-8c63d8ff154c.png.960x960_q85.png 311w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/9fca6594-bfef-45aa-b57d-8c63d8ff154c.png.960x960_q85-300x254.png 300w\" sizes=\"auto, (max-width: 311px) 100vw, 311px\" \/><figcaption class=\"wp-element-caption\">Moteur \u00e0 l&rsquo;arr\u00eat<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p>Il existe diff\u00e9rentes solutions \u00ab\u00a0cl\u00e9 en main\u00a0\u00bb utilisant ces ponts H, n\u00e9cessitant plus ou moins de c\u00e2blages &#8230;<\/p>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 22%\"><div class=\"wp-block-media-text__content\">\n<p>Il sera encore une fois n\u00e9cessaire d&rsquo;utiliser des diodes de roue libre pour \u00e9viter des ph\u00e9nom\u00e8nes de surtension :<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"356\" height=\"299\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/8e6fdc4f-1b1c-4497-93bc-a34e8cc92045.png.960x960_q85.png\" alt=\"\" class=\"wp-image-1670 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/8e6fdc4f-1b1c-4497-93bc-a34e8cc92045.png.960x960_q85.png 356w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/8e6fdc4f-1b1c-4497-93bc-a34e8cc92045.png.960x960_q85-300x252.png 300w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2.1. Utilisation d&rsquo;un circuit int\u00e9gr\u00e9 simple : le L293D<\/h3>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 18%\"><div class=\"wp-block-media-text__content\">\n<p>Une solution simple est d&rsquo;utiliser un circuit int\u00e9gr\u00e9 comme le <strong>L293D<\/strong> qui comporte <strong>deux ponts en H<\/strong> (<strong><em>avec diodes de roue libre int\u00e9gr\u00e9es<\/em><\/strong>)<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.gotronic.fr\/art-l293d-14072.htm\">L293D sur Go Tronic<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/581-L293D-Double-pont-en-H-Pilote-de-moteur-1A.jpg\" alt=\"\" class=\"wp-image-1671 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/581-L293D-Double-pont-en-H-Pilote-de-moteur-1A.jpg 800w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/581-L293D-Double-pont-en-H-Pilote-de-moteur-1A-300x300.jpg 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/581-L293D-Double-pont-en-H-Pilote-de-moteur-1A-150x150.jpg 150w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/581-L293D-Double-pont-en-H-Pilote-de-moteur-1A-768x768.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure><\/div>\n\n\n\n<p>Ci-dessous la configuration des broches du L293D et la table de la logique de commande, <strong>uniquement d\u00e9taill\u00e9e pour l&rsquo;un des deux ponts en H <\/strong>(sur la partie gauche du composant), le principe est le m\u00eame sur la partie de droite pour le deuxi\u00e8me pont en H:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"586\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L293D-Pinning-4-1024x586.png\" alt=\"\" class=\"wp-image-1695\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L293D-Pinning-4-1024x586.png 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L293D-Pinning-4-300x172.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L293D-Pinning-4-768x440.png 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L293D-Pinning-4.png 1221w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong>Configuration des broches<\/strong><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Enable 1<\/strong><\/td><td><strong>Input 1<\/strong><\/td><td><strong>Input 2<\/strong><\/td><td><strong>Fonction<\/strong><\/td><\/tr><tr><td>High &nbsp;<\/td><td>Low<\/td><td>High<\/td><td>Tourne dans le sens horaire<\/td><\/tr><tr><td>High<\/td><td>High<\/td><td>Low<\/td><td>Tourne dans le sens anti-horaire<\/td><\/tr><tr><td>High<\/td><td>Low<\/td><td>Low<\/td><td>Moteur \u00e0 l\u2019arr\u00eat<\/td><\/tr><tr><td>High<\/td><td>High<\/td><td>High<\/td><td>Moteur \u00e0 l\u2019arr\u00eat<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Voici le montage \u00e0 r\u00e9aliser pour contr\u00f4ler un seul moteur :<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"828\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/MCC-L293D_bb-2-1024x828.png\" alt=\"\" class=\"wp-image-1684\" style=\"width:694px;height:auto\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/MCC-L293D_bb-2-1024x828.png 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/MCC-L293D_bb-2-300x243.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/MCC-L293D_bb-2-768x621.png 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/MCC-L293D_bb-2-1536x1243.png 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/MCC-L293D_bb-2.png 1994w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"982\" height=\"1024\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8137-982x1024.jpg\" alt=\"\" class=\"wp-image-1678\" style=\"width:363px;height:auto\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8137-982x1024.jpg 982w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8137-288x300.jpg 288w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8137-768x801.jpg 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8137-1473x1536.jpg 1473w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8137-1964x2048.jpg 1964w\" sizes=\"auto, (max-width: 982px) 100vw, 982px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Et voici le code Arduino, avec dans la boucle (void loop)  rotation sens horaire\/arr\u00eat\/anti horaire\/arr\u00eat (chaque \u00e9tape dure 3 secondes) :<\/p>\n\n\n\n<pre title=\"Code Arduino utilisant un L293D,pour une rotation sens horaire\/arr\u00eat\/anti horaire\/arr\u00eat (chaque \u00e9tape dure 3 secondes)\" class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">int Moteur_sens1=4; \/\/ Pin 4 Arduino vers broche INPUT1 du L293D\nint Moteur_sens2=2; \/\/ Pin 2 Arduino vers broche INPUT2 du L293D\nint moteur1_PWM = 3; \/\/ Pin 3 Arduino PWM vers EN1 du L293D\nint PWM=255; \/\/ Variable PWM image de la vitesse\n\nvoid setup() {\n  Serial.begin(9600); \/\/ Ouverture du port s\u00e9rie et debit de communication fix\u00e9 \u00e0 9600 bauds\n  pinMode(moteur1_PWM, OUTPUT); \/\/ Pin 3 Arduino en sortie PWM\n  pinMode(Moteur_sens1, OUTPUT); \/\/ Pin 4 Arduino en sortie digitale\n  pinMode(Moteur_sens2, OUTPUT); \/\/ Pin 2 Arduino en sortie digitale\n  \n}\n\nvoid loop() {\n  \/\/ Le moteur tourne dans le sens normal\n  digitalWrite(Moteur_sens1, HIGH); \/\/ Activation de la broche INPUT1 du L293D\n  digitalWrite(Moteur_sens2, LOW); \/\/ D\u00e9sactivation de la broche INPUT2 du L293D\n  analogWrite(moteur1_PWM,PWM); \/\/ Envoi du signal PWM sur la sortie analogique 10\n  delay( 3000 ); \/\/ Attendre 3 secondes\n  \n  \/\/ Le moteur est \u00e0 l'arr\u00eat\n  digitalWrite(Moteur_sens1, LOW); \/\/ D\u00e9sactivation de la broche INPUT1 du L293D\n  digitalWrite(Moteur_sens2, LOW); \/\/ D\u00e9sactivation INPUT2 du L293D\n  analogWrite(moteur1_PWM,PWM); \/\/ Envoi du signal PWM sur la sortie analogique 10\n  delay( 3000 ); \/\/ Attendre 3 secondes\n  \n  \/\/ Le moteur tourne dans le sens inverse\n  digitalWrite(Moteur_sens1, LOW); \/\/ D\u00e9sactivation de la broche INPUT1 du L293D\n  digitalWrite(Moteur_sens2, HIGH); \/\/ Activation de la broche INPUT2 du L293D\n  analogWrite(moteur1_PWM,PWM); \/\/ Envoi du signal PWM sur la sortie analogique 10\n  delay( 3000 ); \/\/ Attendre 3 secondes\n  \n  \/\/ Le moteur est \u00e0 l'arr\u00eat\n  digitalWrite(Moteur_sens1, LOW); \/\/ D\u00e9sactivation de la broche INPUT1 du L293D\n  digitalWrite(Moteur_sens2, LOW); \/\/ D\u00e9sactivation de la broche INPUT2 du L293D\n  analogWrite(moteur1_PWM,PWM); \/\/ Envoi du signal PWM sur la sortie analogique 10\n  delay( 3000 ); \/\/ Attendre 3 secondes\n}<\/code><\/pre>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 20%\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-align-center has-medium-font-size\">Ce code est disponible <a href=\"https:\/\/github.com\/jonasforlot\/python-arduino\/blob\/main\/MCC_Arduino\/MCC_Arduino_MOSFET.ino\">i<\/a><a href=\"https:\/\/github.com\/jonasforlot\/python-arduino\/blob\/main\/MCC_Arduino\/MCC_L293_seul.ino\">c<\/a><a href=\"https:\/\/github.com\/jonasforlot\/python-arduino\/blob\/main\/MCC_Arduino\/MCC_Arduino_MOSFET.ino\">i<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"512\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png\" alt=\"\" class=\"wp-image-1603 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png 512w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-300x300.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-150x150.png 150w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2.2. Utilisation d&rsquo;un motorshield<\/h3>\n\n\n\n<p>Une solution encore plus simple serait d&rsquo;utiliser un <strong>motorshield <\/strong>qui ne n\u00e9cessite plus de c\u00e2blages sur une plaque d&rsquo;essai.<\/p>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 37%\"><div class=\"wp-block-media-text__content\">\n<p>Voici un motorshield contenant un<strong> L298P <\/strong>qui est un composant analogue au L293D avec quelques petites diff\u00e9rences.<\/p>\n\n\n\n<p>Tout d\u00e9j\u00e0 pr\u00e9 c\u00e2bl\u00e9 sur ce motorshield. Il suffit de le superposer directement sur la carte Arduino. <\/p>\n\n\n\n<p>Ensuite, il faut connecter les moteurs et l&rsquo;alimentation externe directement sur les borniers<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.gotronic.fr\/art-arduino-motor-shield-2-x-2-a-a000079-18747.htm\">Motorshield Arduino sur Go Tronic<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"600\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/ori-arduino-motor-shield-2-x-2-a-a000079-18747.jpg\" alt=\"\" class=\"wp-image-1686 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/ori-arduino-motor-shield-2-x-2-a-a000079-18747.jpg 600w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/ori-arduino-motor-shield-2-x-2-a-a000079-18747-300x300.jpg 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/ori-arduino-motor-shield-2-x-2-a-a000079-18747-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<p>C&rsquo;est un peu une \u00ab\u00a0bo\u00eete noire\u00a0\u00bb, il est donc utile de regarder dans la documentation technique l&rsquo;affectation des broches sur la carte Arduino. La voici :<\/p>\n\n\n\n<p>Canal A :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>D12<\/strong>&nbsp;&#8211; Direction<\/li>\n\n\n\n<li><strong>D3<\/strong>&nbsp;&#8211; PWM (fonctionnement en service)<\/li>\n\n\n\n<li><strong>D9<\/strong>&nbsp;&#8211; Frein<\/li>\n\n\n\n<li><strong>A0<\/strong>&nbsp;&#8211; d\u00e9tection de courant.<\/li>\n<\/ul>\n\n\n\n<p>Canal B :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>D13<\/strong>&nbsp;&#8211; Direction<\/li>\n\n\n\n<li><strong>D11<\/strong>&nbsp;&#8211; PWM (fonctionnement en service)<\/li>\n\n\n\n<li><strong>D8<\/strong>&nbsp;&#8211; Frein<\/li>\n\n\n\n<li><strong>A1<\/strong>&nbsp;&#8211; d\u00e9tection de courant.<\/li>\n<\/ul>\n\n\n\n<p>Nous allons utiliser uniquement le canal A pour un seul moteur. La carte Arduino est programm\u00e9e pour le cycle suivant : rotation sens horaire\/arr\u00eat\/anti horaire\/arr\u00eat (chaque \u00e9tape dure 3 secondes)<\/p>\n\n\n\n<p>Voici le montage, qui est tr\u00e8s simple :<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"720\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/Arduino_Motor_Shield_rev3_breadboard-1.png\" alt=\"\" class=\"wp-image-1689\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/Arduino_Motor_Shield_rev3_breadboard-1.png 960w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/Arduino_Motor_Shield_rev3_breadboard-1-300x225.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/Arduino_Motor_Shield_rev3_breadboard-1-768x576.png 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8140-768x1024.jpg\" alt=\"\" class=\"wp-image-1690\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8140-768x1024.jpg 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8140-225x300.jpg 225w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8140-1152x1536.jpg 1152w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8140-1536x2048.jpg 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8140-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Et voici le code Arduino, avec dans la boucle (void loop)  rotation sens horaire\/arr\u00eat\/anti horaire\/arr\u00eat (chaque \u00e9tape dure 3 secondes) :<\/p>\n\n\n\n<pre title=\"Code Arduino utilisant un motorshield avec un composant L289P,pour une rotation sens horaire\/arr\u00eat\/anti horaire\/arr\u00eat (chaque \u00e9tape dure 3 secondes)\" class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\nint PWM=255; \/\/ Variable PWM image de la vitesse\n\nint directionPin = 12; \/\/ broche pour le sens de rotation du moteur\nint pwmPin = 3; \/\/ broche PWM pour contr\u00f4ler la vitesse \nint brakePin = 9; \/\/ broche pour activer\/d\u00e9sactiver le frein\n\n\/\/d\u00e9commnenter pour utiliser le canal B\n\/\/int directionPin = 13;\n\/\/int pwmPin = 11;\n\/\/int brakePin = 8;\n\n\n\nvoid setup() {\n  \n\/\/ d\u00e9finition des broches\npinMode(directionPin, OUTPUT);\npinMode(pwmPin, OUTPUT);\npinMode(brakePin, OUTPUT);\n\n}\n\nvoid loop() {\n\n\n\/\/ Le moteur tourne dans le sens horaire\ndigitalWrite(directionPin, HIGH);\/\/ indique le sens de rotation\ndigitalWrite(brakePin, LOW);\/\/ rel\u00e2che le frein\nanalogWrite(pwmPin, PWM);\/\/ indique la vitesse de rotation\ndelay(3000); \/\/ Attendre 3 secondes\n\n\/\/Arr\u00eat du moteur\ndigitalWrite(brakePin, HIGH);\/\/ active le frein\nanalogWrite(pwmPin, 0);\/\/ on remet la valeur de vitesse de rotation \u00e0 0\ndelay(3000); \/\/ Attendre 3 secondes\n\n\/\/ Le moteur tourne dans le sens anti horaire\ndigitalWrite(directionPin, LOW);\/\/ indique le sens de rotation\ndigitalWrite(brakePin, LOW);\/\/ rel\u00e2che le frein\nanalogWrite(pwmPin, PWM);\/\/ indique la vitesse de rotation\ndelay(3000); \/\/ Attendre 3 secondes\n\n\/\/Arr\u00eat du moteur\ndigitalWrite(brakePin, HIGH);\/\/ active le frein\nanalogWrite(pwmPin, 0);\/\/ on remet la valeur de vitesse de rotation \u00e0 0\ndelay(3000); \/\/ Attendre 3 secondes\n\n\n}<\/code><\/pre>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 20%\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-align-center has-medium-font-size\">Ce code est disponible <a href=\"https:\/\/github.com\/jonasforlot\/python-arduino\/blob\/main\/MCC_Arduino\/MCC_L298_shield.ino\">ici<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"512\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png\" alt=\"\" class=\"wp-image-1603 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png 512w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-300x300.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-150x150.png 150w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2.3. Utilisation d&rsquo;un double pont en H pour une solution plus \u00ab\u00a0nomade\u00a0\u00bb(application \u00e0 deux roues de voiture)<\/h3>\n\n\n\n<p>Nous allons maintenant utiliser le m\u00eame composant L298 assembl\u00e9 directement sur un circuit appel\u00e9 motordriver. Il s&rsquo;agit d&rsquo;une solution tr\u00e8s simple pour commander par exemple deux moteurs d&rsquo;une petite voiture.<\/p>\n\n\n\n<p>L&rsquo;utilisation vue ici est tr\u00e8s simple car nous nous contentons de demander \u00e0 la voiture d&rsquo;aller vers l&rsquo;avant pendant 1 seconde, ensuite s&rsquo;arr\u00eater pendant 1 seconde, de reculer pendant une seconde, de s&rsquo;arr\u00eater pendant une seconde &#8230; puis de recommencer.<\/p>\n\n\n\n<p>Il faudra donc, une fois le code t\u00e9l\u00e9vers\u00e9, que la carte Arduino et le moteur driver soient aliment\u00e9s, par exemple  avec une pile ou une batterie LiPo.<\/p>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 37%\"><div class=\"wp-block-media-text__content\">\n<p>Un mod\u00e8le tr\u00e8s populaire pour  piloter jusqu\u2019\u00e0 deux&nbsp;moteurs \u00e0 courant continu est le module L298N<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.gotronic.fr\/art-commande-de-2-moteurs-sbc-motodriver2-27418.htm\">Module L298N disponible chez Go Tronic<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"740\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/module-L298N-arduino-branchement-borne-alimentation-commande.jpg\" alt=\"\" class=\"wp-image-1698 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/module-L298N-arduino-branchement-borne-alimentation-commande.jpg 900w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/module-L298N-arduino-branchement-borne-alimentation-commande-300x247.jpg 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/module-L298N-arduino-branchement-borne-alimentation-commande-768x631.jpg 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/figure><\/div>\n\n\n\n<p>Le cavalier (jumper JMP1) permet d&rsquo;activer un r\u00e9gulateur 5V. Avec ce cavalier, pas besoin de \u00ab\u00a0ramener\u00a0\u00bb le 5V \u00e0 partir de la carte Arduino. <\/p>\n\n\n\n<p>De plus, la broche 5 V pourrait \u00eatre utilis\u00e9e comme une sortie avec ce cavalier.<\/p>\n\n\n\n<p>Attention, en pr\u00e9sence de ce cavalier, \u00e0 ne pas d\u00e9passer 12 V sur la broche alim 5V-35V pour ne pas endommager le module.<\/p>\n\n\n\n<p>Voici le fonctionnement de ce module avec les instructions donn\u00e9es \u00e0 In1\/In2 (moteur A) et In3\/In4 (moteur B)<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Remarque 1<\/strong> : Le cavalier (jumper JMP1) permet d&rsquo;activer un r\u00e9gulateur 5V. Avec ce cavalier, pas besoin de \u00ab\u00a0ramener\u00a0\u00bb le 5V \u00e0 partir de la carte Arduino.<\/p>\n\n\n\n<p>De plus, la broche 5 V pourrait \u00eatre utilis\u00e9e comme une sortie avec ce cavalier.<\/p>\n\n\n\n<p>Attention, en pr\u00e9sence de ce cavalier, \u00e0 ne pas d\u00e9passer 12 V sur la broche alim 5V-35V pour ne pas endommager le module.<\/p>\n\n\n\n<p>Voici le fonctionnement de ce module avec les instructions donn\u00e9es \u00e0 In1\/In2 (moteur A) et In3\/In4 (moteur B)<\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Remarque 2<\/strong> : Retirer les deux cavaliers sur les broches <strong>EnA <\/strong>et <strong>ENB<\/strong>, pour permettre le contr\u00f4le de la vitesse des moteurs avec analogRead() (avec une valeur comprise entre 0 et 255)<\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"993\" height=\"483\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L298N.png\" alt=\"\" class=\"wp-image-1716\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L298N.png 993w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L298N-300x146.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/L298N-768x374.png 768w\" sizes=\"auto, (max-width: 993px) 100vw, 993px\" \/><\/figure>\n\n\n\n<p>Voici le montage r\u00e9alis\u00e9 pour alimenter les moteurs de deux roues sur un ch\u00e2ssis :<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"2185\" height=\"1305\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/l298n-arduino-1_bb-1.png\" alt=\"\" class=\"wp-image-1714\" style=\"width:757px;height:auto\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/l298n-arduino-1_bb-1.png 2185w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/l298n-arduino-1_bb-1-300x179.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/l298n-arduino-1_bb-1-1024x612.png 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/l298n-arduino-1_bb-1-768x459.png 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/l298n-arduino-1_bb-1-1536x917.png 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/l298n-arduino-1_bb-1-2048x1223.png 2048w\" sizes=\"auto, (max-width: 2185px) 100vw, 2185px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8160-768x1024.jpg\" alt=\"\" class=\"wp-image-1704\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8160-768x1024.jpg 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8160-225x300.jpg 225w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8160-1152x1536.jpg 1152w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8160-1536x2048.jpg 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8160-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8161-1024x768.jpg\" alt=\"\" class=\"wp-image-1705\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8161-1024x768.jpg 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8161-300x225.jpg 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8161-768x576.jpg 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8161-1536x1152.jpg 1536w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8161-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Et voici le code Arduino, avec dans la boucle (void loop) marche avant\/arr\u00eat\/marche arri\u00e8re\/arr\u00eat (chaque \u00e9tape dure 1 secondes) :<\/p>\n\n\n\n<pre title=\"Code Arduino pour alimenter deux moteurs de roues de voiture, avec dans la boucle (void loop) marche avant\/arr\u00eat\/marche arri\u00e8re\/arr\u00eat (chaque \u00e9tape dure 1 secondes) \" class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\n\/\/*******************************************************************************\/\/\n\/\/ Association des entr\u00e9es du L298N, aux sorties utilis\u00e9es sur notre Arduino Uno \/\/\n\/\/*******************************************************************************\/\/\n#define borneENA        10      \/\/ On associe la borne \"ENA\" du L298N \u00e0 la pin D10 de l'arduino\n#define borneIN1        9       \/\/ On associe la borne \"IN1\" du L298N \u00e0 la pin D9 de l'arduino\n#define borneIN2        8       \/\/ On associe la borne \"IN2\" du L298N \u00e0 la pin D8 de l'arduino\n#define borneIN3        7       \/\/ On associe la borne \"IN3\" du L298N \u00e0 la pin D7 de l'arduino\n#define borneIN4        6       \/\/ On associe la borne \"IN4\" du L298N \u00e0 la pin D6 de l'arduino\n#define borneENB        5       \/\/ On associe la borne \"ENB\" du L298N \u00e0 la pin D5 de l'arduino\nint PWM=128; \/\/ Variable PWM image de la vitesse\n\n\/\/*******\/\/\n\/\/ SETUP \/\/\n\/\/*******\/\/\nvoid setup() {\n  \n  \/\/ Configuration de toutes les pins de l'Arduino en \"sortie\" (car elles attaquent les entr\u00e9es du module L298N)\n  pinMode(borneENA, OUTPUT);\n  pinMode(borneIN1, OUTPUT);\n  pinMode(borneIN2, OUTPUT);\n  pinMode(borneIN3, OUTPUT);\n  pinMode(borneIN4, OUTPUT);\n  pinMode(borneENB, OUTPUT);\n}\n\n\/\/**************************\/\/\n\/\/ Boucle principale : LOOP \/\/\n\/\/**************************\/\/\nvoid loop() {\n\n  \/\/ Configuration du L298N en \"marche avant\", pour les 2 moteurs connect\u00e9s au pont A et au pont B. Selon sa table de v\u00e9rit\u00e9, il faut que :\n  \/\/ Moteur A\n  digitalWrite(borneIN1, HIGH);                 \/\/ L'entr\u00e9e IN1 doit \u00eatre au niveau haut\n  digitalWrite(borneIN2, LOW);                  \/\/ L'entr\u00e9e IN2 doit \u00eatre au niveau bas\n  \n  \/\/ Moteur B\n  digitalWrite(borneIN3, HIGH);                 \/\/ L'entr\u00e9e IN3 doit \u00eatre au niveau haut\n  digitalWrite(borneIN4, LOW);                  \/\/ L'entr\u00e9e IN4 doit \u00eatre au niveau bas\n\n  \/\/ Et on lance les moteurs \n  analogWrite(borneENA, PWM);       \/\/ Active l'alimentation du moteur 1\n  analogWrite(borneENB, PWM);       \/\/ Active l'alimentation du moteur 2\n\n  delay(1000);                        \/\/ et attend 3 secondes\n\n  \/\/ Arr\u00eat des moteurs pendant 3 secondes\n \n  digitalWrite(borneIN1, LOW);\n  digitalWrite(borneIN2, LOW);\n  \n  digitalWrite(borneIN3, LOW);\n  digitalWrite(borneIN4, LOW);\n  \n  analogWrite(borneENB, 0);\n  analogWrite(borneENA, 0);\n  delay(1000);    \n  \n  \/\/ Puis on configure le L298N en \"marche arri\u00e8re\",  pour les 2 moteurs connect\u00e9s au pont A et au pont B. Selon sa table de v\u00e9rit\u00e9, il faut que :\n  \/\/ Moteur A\n  digitalWrite(borneIN1, LOW);                 \/\/ L'entr\u00e9e IN1 doit \u00eatre au niveau haut\n  digitalWrite(borneIN2, HIGH);                \/\/ L'entr\u00e9e IN2 doit \u00eatre au niveau bas\n  \n  \/\/ Moteur B\n  digitalWrite(borneIN3, LOW);                 \/\/ L'entr\u00e9e IN3 doit \u00eatre au niveau haut\n  digitalWrite(borneIN4, HIGH);                \/\/ L'entr\u00e9e IN4 doit \u00eatre au niveau bas\n\n  \/\/ Et on lance les moteurs \n  analogWrite(borneENA, PWM);       \/\/ Active l'alimentation du moteur 1\n  analogWrite(borneENB, PWM);       \/\/ Active l'alimentation du moteur 2\n\n  delay(1000);                        \/\/ et attend 3 secondes\n\n\/\/  \/\/ Arr\u00eat des moteurs pendant 3 secondes\n \n  digitalWrite(borneIN1, LOW);\n  digitalWrite(borneIN2, LOW);\n  \n  digitalWrite(borneIN3, LOW);\n  digitalWrite(borneIN4, LOW);\n  \n  analogWrite(borneENB, 0);\n  analogWrite(borneENA, 0);\n  delay(1000);  \n}<\/code><\/pre>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 20%\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-align-center has-medium-font-size\">Ce code est disponible <a href=\"https:\/\/github.com\/jonasforlot\/python-arduino\/blob\/main\/MCC_Arduino\/MCC_L298N_deux_moteurs.ino\">ici<\/a><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"512\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png\" alt=\"\" class=\"wp-image-1603 size-full\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_.png 512w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-300x300.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2024\/09\/pngwing.com_-150x150.png 150w\" sizes=\"auto, (max-width: 512px) 100vw, 512px\" \/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 20%\"><div class=\"wp-block-media-text__content\">\n<p class=\"has-text-align-center\">Petit essai r\u00e9alis\u00e9 rapidement. \u00e7a manque de stabilit\u00e9 pour l&rsquo;instant !<\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><video controls src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2024\/10\/IMG_8147.mov\"><\/video><\/figure><\/div>\n\n\n\n<p>Ce type de montage ouvre la voie \u00e0 plusieurs applications, notamment dans la robotique.<\/p>\n\n\n\n<p> On pourrait par exemple contr\u00f4ler cette voiture \u00e0 l&rsquo;aide d&rsquo;un joystick, avec variation de la vitesse et la possibilit\u00e9 de faire tourner le v\u00e9hicule en agissant diff\u00e9remment sur les deux moteurs.<\/p>\n\n\n\n<p>Il est possible aussi de commander \u00e0 distance le v\u00e9hicule \u00e0 l&rsquo;aide d&rsquo;une autre carte Arduino, qui communiquerait en Bluetooth avec le montage d\u00e9j\u00e0 pr\u00e9sent sur le ch\u00e2ssis.<\/p>\n\n\n\n<p>On pourrait essayer d&rsquo;imaginer de construire un v\u00e9hicule plus sophistiqu\u00e9 avec des capteurs (capteurs de vitesse pour asservir les moteurs, capteurs de lumi\u00e8re, radar ultrason, camera, &#8230;) ou d&rsquo;autres actionneurs (servomoteurs pour bras articul\u00e9, LED, ..)<\/p>\n\n\n\n<p>D&rsquo;autres infos \u00e0 venir &#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objectifs : Utiliser une carte Arduino pour contr\u00f4ler un moteur continu. Savoir utiliser un transistor MOSFET pour une utilisation simple, ou un pont en H si on d\u00e9sire faire tourner le moteur dans les deux sens. Comprendre l&rsquo;int\u00e9r\u00eat des sorties PWM pour faire varier la vitesse d&rsquo;un moteur Cet article ne pr\u00e9tend pas tout expliquer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1707,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[9,7],"tags":[],"class_list":["post-1645","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-microcontroleurs-et-python"],"_links":{"self":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts\/1645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/comments?post=1645"}],"version-history":[{"count":49,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts\/1645\/revisions"}],"predecessor-version":[{"id":1951,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts\/1645\/revisions\/1951"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/media\/1707"}],"wp:attachment":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/media?parent=1645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/categories?post=1645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/tags?post=1645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}