{"id":1496,"date":"2016-02-26T08:09:29","date_gmt":"2016-02-26T12:09:29","guid":{"rendered":"http:\/\/nagashur.com\/blog\/?p=1496"},"modified":"2016-02-26T08:18:12","modified_gmt":"2016-02-26T12:18:12","slug":"rea-controle-moteurs-pwm-choix-composant-adapte","status":"publish","type":"post","link":"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/","title":{"rendered":"REA &#8211; contr\u00f4le des moteurs, PWM et choix du composant adapt\u00e9"},"content":{"rendered":"<p>Dans le cadre du <a href=\"http:\/\/nagashur.com\/blog\/2015\/10\/25\/programme-rea-rover-dexploration-autonome-introduction\/\">programme REA<\/a>, nous d\u00e9veloppons un rover. Nous avons tout d&#8217;abord <a href=\"http:\/\/nagashur.com\/blog\/2015\/11\/12\/rea-mode-de-propulsion-du-robot\/\">d\u00e9cid\u00e9 du mode de d\u00e9placement du robot<\/a>, avant de nous <a href=\"http:\/\/nagashur.com\/blog\/2015\/11\/19\/rea-motorisation-choix-composants\/\">pencher sur le type de moteurs \u00e0 utiliser<\/a>, puis au <a href=\"http:\/\/nagashur.com\/blog\/2016\/01\/12\/rea-roues-chenilles-transmission-de-puissance\/\">choix des roues ou chenilles pour la propulsion<\/a>. Nous disposons maintenant d&#8217;un groupe moto-propulseur, qu&#8217;il convient de s&#8217;int\u00e9resser au contr\u00f4le des moteurs pour g\u00e9rer\u00a0pr\u00e9cis\u00e9ment\u00a0les d\u00e9placements du rover. Nous nous pencherons maintenant sur cette probl\u00e9matique.<\/p>\n<p><!--more--><\/p>\n<h2>Probl\u00e9matique du contr\u00f4le des moteurs<strong><br \/>\n<\/strong><\/h2>\n<p>Si nous nous appuyons sur des servomoteurs \u00e0 rotation continue, alors il n&#8217;y a besoin de rien de plus pour les contr\u00f4ler. En revanche, avec des moteurs DC ou des moteurs pas \u00e0 pas, il faut pouvoir les commander. Laissons de cot\u00e9 le cas un peu sp\u00e9cifique des moteurs pas \u00e0 pas pour le moment, et revenons sur les moteurs DC.<\/p>\n<p>Quand le courant \u00e9lectrique passe dans un sens, le rotor se met \u00e0 tourner dans le sens A. Quand on inverse le sens du courent \u00e9lectrique, le rotor tourne dans le sens B. Notre moteur peut donc tourner dans deux sens, ce qui nous permet d&#8217;avancer, reculer, et tourner en combinant deux moteurs tournant en sens contraires.<\/p>\n<p>&nbsp;<\/p>\n<h3><strong>Le pont en H<\/strong><\/h3>\n<div style=\"width: 340px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" class=\"bbc_img\" src=\"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/c\/c7\/Pont_En_H.png\/330px-Pont_En_H.png\" alt=\"Sch\u00e9ma d'un pont en H\" width=\"330\" height=\"429\" \/><p class=\"wp-caption-text\">Pont en H (sch\u00e9ma \u00e9lectronique)<\/p><\/div>\n<p>Le probl\u00e8me est le suivant : comment peut on commander ces moteurs? Il faut en effet pouvoir faire varier le sens du courant \u00e0 la vol\u00e9e quand on le souhaite. Pour ce faire, nous utiliserons une structure \u00e9lectronique appel\u00e9e le &#8220;pont en H&#8221;.<\/p>\n<p>Je cite <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Pont_en_H\">Wikipedia<\/a> : &#8220;<strong><em>Le pont en H est une structure \u00e9lectronique servant \u00e0 contr\u00f4ler la polarit\u00e9 aux bornes d&#8217;un dip\u00f4le. Il est compos\u00e9 de quatre \u00e9l\u00e9ments de commutation g\u00e9n\u00e9ralement dispos\u00e9s sch\u00e9matiquement en une forme de H d&#8217;o\u00f9 le nom. Les commutateurs peuvent \u00eatre des relais, des transistors, ou autres \u00e9l\u00e9ments de commutation en fonction de l&#8217;application vis\u00e9e.<\/em><\/strong>&#8220;.<\/p>\n<p>Sur l&#8217;illustration ci dessus, on peut voir le sch\u00e9ma d&#8217;un tel montage. Le + du circuit se s\u00e9pare en deux, et le cot\u00e9 gauche passe par un commutateur S1, tandis que le c\u00f4t\u00e9 droit passe par un commutateur S2. Apr\u00e8s S1 et S2, on trouve les deux cot\u00e9s de la charge, qui forme la branche horizontale du H, tandis que S1 et S2 sont les branches hautes, respectivement gauche et droite.<\/p>\n<p>Le e c\u00e2ble partant de S1 continue vers S3 apr\u00e8s l&#8217;intersection avec la charge au milieu, et idem pour le c\u00e2ble partant de S2, qui arrive en S4 apr\u00e8s avoir crois\u00e9 la charge. Les deux autres p\u00f4les des commutateurs S3 et S4 se rejoignent alors \u00e0 la masse du circuit.<\/p>\n<p>Le principe est qu&#8217;on ouvrira les contacts en S1 et S4, et fermera en S2 et S3. Ainsi, le courant circulera \u00e0 travers la charge : le cot\u00e9 droit sera connect\u00e9 au +, et le cot\u00e9 gauche au -.<\/p>\n<p>Si l&#8217;on veut inverser le sens du courant, on fermera les contacts S1 et S4, et on ouvrira les contacts S2 et S3. Cette fois, le c\u00f4t\u00e9 gauche de la charge sera connect\u00e9 au +, et le cot\u00e9 droit au -.<\/p>\n<p>Pour les commutateurs, on pourra donc en th\u00e9orie utiliser n&#8217;importe quoi, mais en pratique on utilisera plut\u00f4t des transistors, pour leur capacit\u00e9 rapide de commutation. Maintenant, pour de tr\u00e8s gros moteurs, on pourrait utiliser de gros relais, et reproduire le montage. Pour nos robots, les transistors permettront une tr\u00e8s grande r\u00e9activit\u00e9 du syst\u00e8me, et \u00e9galement de contr\u00f4ler la vitesse des moteurs via un signal <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Modulation_de_largeur_d%27impulsion\" rel=\"nofollow external\">PWM<\/a>\u00a0(nous reviendrons dessus plus tard).<\/p>\n<p>Il faut donc 4 transistors pour faire un pont en H, et ainsi contr\u00f4ler un moteur. Puisqu&#8217;il nous faut deux moteurs, il nous faudra deux ponts en H, et donc 8 transistors. On peut ais\u00e9ment construire un double pont en H. Toutefois, puisque cette construction \u00e9lectronique est assez classique, il existe de nombreux circuits int\u00e9gr\u00e9s. On trouvera donc des puces &#8220;tout en un&#8221;, qu&#8217;on branchera simplement sur nos moteurs, \u00e0 l&#8217;alimentation, et au circuit de commande.<\/p>\n<h2>\u00a0<strong>Exemples de composants impl\u00e9mentant des ponts en H<br \/>\n<\/strong><\/h2>\n<p>Il existe de tr\u00e8s nombreux composants r\u00e9alisant ces fonctions, mais nous nous int\u00e9resserons \u00e0 trois mod\u00e8les sp\u00e9cifiques :<\/p>\n<ul>\n<li>le <strong>L293D;<\/strong><\/li>\n<li>le <strong>SN754410;<\/strong><\/li>\n<li>le\u00a0<strong>DRV8835.<\/strong><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Le L293D<\/strong><\/p>\n<p>Le L293D est un circuit int\u00e9gr\u00e9 tr\u00e8s utilis\u00e9 et connu pour commander de petits moteurs. Ce n&#8217;est pas la puce la plus efficace, mais elle est peu ch\u00e8re, facile \u00e0 trouver, et de nombreuses ressources sont disponibles.<\/p>\n<p>Cette puce contient l&#8217;\u00e9quivalent d&#8217;un double pont en H, et peut donc commander deux moteurs, en g\u00e9rant le sens, mais aussi la vitesse gr\u00e2ce \u00e0 un signal PWM (nous d\u00e9taillerons le principe plus bas). Voici le sch\u00e9ma d&#8217;un montage \u00e0 base de L293D :<\/p>\n<div style=\"width: 430px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"bbc_img\" src=\"http:\/\/www.robotplatform.com\/howto\/L293\/img_l\/L293D_connections.jpg\" alt=\"Sch\u00e9ma de c\u00e2blage d'un L293D pour le contr\u00f4le des moteurs\" width=\"420\" height=\"507\" \/><p class=\"wp-caption-text\">Sch\u00e9ma de c\u00e2blage d&#8217;un L293D pour le contr\u00f4le des moteurs<\/p><\/div>\n<p>Source : <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.robotplatform.com\/howto\/L293\/motor_driver_1.html\" rel=\"nofollow external\">article sur\u00a0robotplatform sur le L293D<\/a>.<\/p>\n<p>Cette puce disponible au format DIP16 comporte 2 rang\u00e9es de 8 broches.<\/p>\n<p>A gauche, en partant du haut, la broche 1 est appel\u00e9e enable 1, et permet de contr\u00f4ler l&#8217;activation du premier moteur. Si on envoie un signal logique bas sur cette broche, le moteur 1 sera \u00e9teint. C&#8217;est via cette broche qu&#8217;on contr\u00f4lera la vitesse du moteur avec un signal PWM. Les broches 2 et 7 sont les entr\u00e9es qui permettent de contr\u00f4ler le sens de rotation du moteur. Si on envoie un signal haut sur la broche 2, et un signal bas sur la broche 7, le moteur tournera dans un sens, et si on envoie un signal bas sur la broche 2 et haut sur la broche 7, le moteur tournera dans l&#8217;autre sens. Toutes les autres combinaisons entra\u00eeneront l&#8217;arr\u00eat du moteur. Bien sur, le moteur ne tournera que si la broche 1 re\u00e7oit un signal logique haut.<\/p>\n<p>Les broches 3 et 6 seront connect\u00e9es au moteur, tandis que les broches 4 et 5 seront connect\u00e9e \u00e0 la masse. Enfin la broche 8 sera connect\u00e9e au Vmotor, \u00e0 savoir le + de l&#8217;alimentation \u00e9lectrique des moteurs (g\u00e9n\u00e9ralement directement le + de la batterie)<\/p>\n<p>Sur le c\u00f4t\u00e9 droit, on retrouvera quelque chose de similaire, \u00e0 quelques diff\u00e9rences pr\u00e8s.<\/p>\n<p>Nous partirons cette fois ci du bas, pour la broche 9, vers le haut pour la broche 16. La broche 9 sera la broche enable2, qui contr\u00f4le l&#8217;activation du second moteur. Les broches 10 et 14 commandent le sens de rotation du moteur exactement comme les broches 2 et 7 commandent le moteur 1. Les broches 11 et 14 sont connect\u00e9es au second moteur, et les broches 12 et 13 sont connect\u00e9es \u00e0 la masse. La broche 16 est connect\u00e9e \u00e0 l&#8217;alimentation logique (5V).<\/p>\n<p>Il faut donc 6 signaux logiques pour commander nos deux moteurs avec cette puce. L&#8217;alimentation \u00e9lectrique des moteurs peut varier de 5V \u00e0 36V. L&#8217;alimentation logique peut accepter jusqu&#8217;\u00e0 7V.<\/p>\n<p>La puce peut d\u00e9livrer jusqu&#8217;\u00e0 600mA par moteur selon les sp\u00e9cifications. On peut toutefois aller un peu plus loin en refroidissement efficacement la puce, ou en mettant plusieurs puces en parall\u00e8le.<\/p>\n<p>Quelques documents sur cette puce :<\/p>\n<ul>\n<li><a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/mchobby.be\/wiki\/index.php?title=Pont-H_L293D\" rel=\"nofollow external\">Un article d\u00e9taill\u00e9 en fran\u00e7ais sur le L293D, \u00e0 lire pour aller plus loin<\/a>;<\/li>\n<li><a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/lit\/ds\/symlink\/l293d.pdf\" rel=\"nofollow external\">la documentation (datasheet) du L293\/L293D sur le site de TI<\/a>;<\/li>\n<li><a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/product\/l293?keyMatch=L293D\" rel=\"nofollow external\">la fiche produit du L293\/L293D sur le site de TI<\/a>.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><strong>Le SN754410<\/strong><\/h3>\n<p>Le\u00a0SN754410, de TI est une puce au m\u00eame format que le L293D, et compatible broche \u00e0 broche (c&#8217;est \u00e0 dire que dans un circuit, on peut enlever un L293D et mettre un\u00a0SN754410 sans rien changer). Cette puce plus efficace fait tout ce que fait le L293D, mais peut d\u00e9livrer plus de puissance. Ainsi, on peut atteindre 1A par moteur, et il est possible de recourir aux m\u00eames astuces qu&#8217;avec le L293D pour augmenter la puissance disponible. Ces puces int\u00e8grent de plus des diodes de protection pour prot\u00e9ger les transistors contre les retours de courant. Bref, une puce plus puissante, plus r\u00e9sistante, et compatible broche \u00e0 broche avec les L293D. Si on a le choix, autant prendre celle ci \u00e0 la place d&#8217;une L293D. Les deux inconv\u00e9nients de cette puce sont qu&#8217;elle est moins courante et donc moins facile \u00e0 trouver que le L293D, et qu&#8217;elle \u00e0 un nom difficile \u00e0 retenir!<\/p>\n<p>Voici quelques documents:<\/p>\n<ul>\n<li><a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.pololu.com\/product\/24\" rel=\"nofollow external\">La fiche du SN754410 chez Pololu<\/a>;<\/li>\n<li><a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/lit\/ds\/symlink\/sn754410.pdf\" rel=\"nofollow external\">la documentation du SN754410 (datasheet)<\/a>;<\/li>\n<li><a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/product\/sn754410\" rel=\"nofollow external\">la fiche produit du 754410 chez TI<\/a>.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><strong>Le DRV8835<\/strong><\/h3>\n<p>Le\u00a0DRV8835, encore de TI, est une puce plus moderne, capable de d\u00e9livrer davantage de courant (1.5A max par moteur), et de contr\u00f4ler deux moteurs. Par rapport aux deux puces pr\u00e9c\u00e9dentes, celle ci peut donc commuter plus de courant, mais \u00e9galement une tension plus faible pour les moteurs. Les deux pr\u00e9c\u00e9dentes sont pr\u00e9vues pour une tension de moteurs d&#8217;au moins 4.5V, contre 2V pour le DRV8835. En revanche, le DRV8835 ne permet pas ce commander des moteurs n\u00e9cessitant une tension de plus de 11V.<\/p>\n<p>L&#8217;int\u00e9r\u00eat de cette puce sera donc de pouvoir commander des moteurs \u00e0 une faible tension (par exemple, si on utilise une batterie une cellule lipo, la tension variera entre 3 et 4.2V, ce qui est trop faible pour un L293D ou un SN754410), et\/ou avec des courants plus forts. Il est \u00e0 noter que le DRV8833 permet de monter jusqu&#8217;\u00e0 2A en pointe par moteur, au d\u00e9pens de la plage de tension, puisqu&#8217;il faut au moins 2.7V, et au plus 10.8V.<\/p>\n<p>Ces puces sont fabriqu\u00e9es dans un format peu pratique pour ceux qui ne peuvent pas souder des composants de surface, mais heureusement, on trouve des cartes permettant d&#8217;utiliser ces puces sur une breadboard ou simplement en soudant des c\u00e2bles.<\/p>\n<p>Avec la carte de Pololu, on contr\u00f4lera donc diff\u00e9remment la puce par rapport \u00e0 un L293D\/SN754410:<\/p>\n<div style=\"width: 610px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"bbc_img\" src=\"http:\/\/a.pololu-files.com\/picture\/0J4058.600.png?9eff351b63a93064f7eaeb6b781449d6\" alt=\"Contr\u00f4le des moteurs depuis un DRV8835 (cr\u00e9dits pololu)\" width=\"600\" height=\"284\" \/><p class=\"wp-caption-text\">Contr\u00f4le des moteurs depuis un DRV8835 (cr\u00e9dits pololu)<\/p><\/div>\n<p>En pratique, du c\u00f4t\u00e9 gauche de la carte, tout en haut, nous aurons la masse (<em><strong>GND<\/strong><\/em>), puis le <em><strong>VCC<\/strong><\/em> (alimentation logique).<\/p>\n<p>En dessous, la broche enable (<em><strong>BENABL<\/strong><\/em>) du moteur B (m\u00eame principe que la broche <em>enable<\/em> des deux pr\u00e9c\u00e9dentes puces).<\/p>\n<p>Encore en dessous (quatri\u00e8me\u00a0broche en partant du haut), nous aurons l&#8217;entr\u00e9e <em><strong>BPHASE<\/strong><\/em>, qui permet de contr\u00f4ler le sens du moteur : si cette entr\u00e9e re\u00e7oit un signal logique bas, le moteur tournera dans un sens, et si elle re\u00e7oit un signal logique haut, le moteur tournera dans l&#8217;autre sens (toujours si la broche <em><strong>benabl<\/strong><\/em> est active).<\/p>\n<p>En dessous, en 5 et 6, nous aurons la broche enable du moteur A (<em><strong>AENABL<\/strong><\/em>), et la broche phase du moteur A (<em><strong>APHASE<\/strong><\/em>), qui auront le m\u00eame r\u00f4le que pour le moteur B. Enfin, la broche tout en bas (<em><strong>MODE<\/strong><\/em>) est la broche permettant de r\u00e9gler le mode de contr\u00f4le. Pour que l&#8217;on puisse utiliser le moteur comme d\u00e9crit plus haut, il faut que cette broche re\u00e7oive un signal logique haut (il suffit de la connecter \u00e0 VCC). Dans le cas contraire, on contr\u00f4lera les moteurs de fa\u00e7on diff\u00e9rente, avec davantage de possibilit\u00e9s (voir la documentation pour cela).<\/p>\n<p>Du cot\u00e9 droit, en partant du haut, nous aurons d&#8217;abord la masse des moteurs (<em><strong>GND<\/strong><\/em>), \u00a0puis le <em><strong>VIN<\/strong><\/em>, ou le + des moteurs. En dessous, en 3 et 4, les broches de sortie du moteur B (<em><strong>BOUT2<\/strong><\/em> et <em><strong>BOUT1<\/strong><\/em>), puis en 5 et 6 les broches de sortie du moteur A (<em><strong>AOUT2<\/strong><\/em> et <em><strong>AOUT1<\/strong><\/em>). Enfin, la derni\u00e8re broche, <em><strong>VMM<\/strong><\/em>, permet de r\u00e9cup\u00e9rer le + de l&#8217;alimentation des moteurs, apr\u00e8s le circuit de protection contre l&#8217;inversion de tension.<\/p>\n<p>On notera donc ici qu&#8217;il suffira de 2 broches par moteur pour contr\u00f4ler la vitesse et le sens, par rapport \u00e0 3 pour les deux pr\u00e9c\u00e9dentes puces.<\/p>\n<p>Encore une fois, on peut multiplier les puces pour augmenter le courant de sortie, ou refroidir la puce. En pratique, d&#8217;apr\u00e8s les tests de pololu, dans une pi\u00e8ce \u00e0 temp\u00e9rature ambiante, la puce peut d\u00e9livrer 1.2A par canal en continu, et \u00a01.5A pendant 15s avant que la protection thermique int\u00e9gr\u00e9e ne coupe l&#8217;alimentation.<\/p>\n<p>Dans tous les cas, il est \u00e0 noter que cette protection thermique existe, et donc vous ne grillerez pas votre puce, elle s&#8217;arr\u00eatera avant.<\/p>\n<p>Voici quelques documents:<\/p>\n<ul>\n<li>La <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/product\/drv8835\" rel=\"nofollow external\">fiche produit chez TI du DRV3385<\/a>, la <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/lit\/gpn\/drv8835\" rel=\"nofollow external\">documentation (datasheet) du DRV3385 sur le site de TI<\/a>, la <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.pololu.com\/product\/2135\" rel=\"nofollow external\">fiche produit du DRV3385 sur Pololu<\/a>.<\/li>\n<li>La <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/product\/drv8833\/description\" rel=\"nofollow external\">fiche produit chez TI du DRV3383<\/a>, la <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.ti.com\/lit\/gpn\/drv8833\" rel=\"nofollow external\">documentation (datasheet) du DRV3383 sur le site de TI<\/a>, la <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.pololu.com\/product\/2130\" rel=\"nofollow external\">fiche produit du DRV3383 sur Pololu<\/a>.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Il existe de nombreuses autres puces, comme par exemple le <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/www.st.com\/web\/en\/catalog\/sense_power\/FM142\/CL851\/SC1790\/SS1555\/PF63147\" rel=\"nofollow external\">L298<\/a>, le <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/mchobby.be\/wiki\/index.php?title=Pont-H_L298N\" rel=\"nofollow external\">L298N<\/a>, etc&#8230;<\/p>\n<p>Certaines solutions sont plus complexes \u00e0 utiliser que d&#8217;autres, et les plages de tension, les courants disponibles ainsi que d&#8217;autres param\u00e8tres varieront grandement.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Utilisation de signaux PWM pour contr\u00f4ler la vitesse<\/strong><\/h2>\n<p>Pour contr\u00f4ler la vitesse des moteurs, on utilisera bien souvent des signaux PWM. En effet, on pourrait faire varier la tension d\u00e9livr\u00e9e aux moteurs, mais cela n\u00e9cessite un circuit capable de fournir un signal de sortie analogique. Une autre solution consiste en gros \u00e0 allumer et \u00e9teindre tr\u00e8s rapidement le moteur, ce qui fait qu&#8217;il tournera en moyenne moins vite. C&#8217;est le principe de la <a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/fr.wikipedia.org\/wiki\/Modulation_de_largeur_d%27impulsion\" rel=\"nofollow external\">PWM, ou Pulse Witdth Modulation, soit Modulation de la Largeur d&#8217;Impulsion<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<div style=\"width: 510px\" class=\"wp-caption aligncenter\"><a class=\"bbc_url\" title=\"Lien externe\" href=\"http:\/\/en.wikipedia.org\/wiki\/File:Delta_PWM.svg\" rel=\"nofollow external\"><img loading=\"lazy\" class=\"bbc_img\" src=\"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/d\/dc\/Delta_PWM.svg\/500px-Delta_PWM.svg.png\" alt=\"Un signal PWM et le signal analogique \u00e9quivalent g\u00e9n\u00e9r\u00e9\" width=\"500\" height=\"300\" \/><\/a><p class=\"wp-caption-text\">Un signal PWM et le signal analogique \u00e9quivalent g\u00e9n\u00e9r\u00e9<\/p><\/div>\n<p>Le principe est, comme sur le graphique ci dessus, d&#8217;envoyer un signal en cr\u00e9neaux, c&#8217;est \u00e0 dire que par moment on enverra alternativement un signal bas, et alternativement un signal haut. Si on fait tr\u00e8s rapidement cette alternance, cela permet d&#8217;activer\/d\u00e9sactiver tr\u00e8s rapidement le moteur, donc qu&#8217;il tournera moins vite.<\/p>\n<p>En pratique, si 500 fois par seconde, on envoie du courant \u00e0 la tension du moteur pendant 1ms, avant de couper le courant pour 1ms, le moteur recevra du courant 50% du temps. Il tournera donc moins vite, on dira qu&#8217;il a un cycle de 50%. En faisant varier la dur\u00e9e pendant laquelle on envoie du courant par rapport \u00e0 la dur\u00e9e pendant laquelle le courant ne passe pas, on pourra ainsi faire varier la vitesse de rotation du moteur.<\/p>\n<p>En pratique, si l&#8217;on envoie un signal PWM sur la broche enable du moteur, on pourra ainsi contr\u00f4ler la vitesse du moteur, car le signal en sortie du pont en H aura le m\u00eame cycle PWM.<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusions<\/h2>\n<p>Avec ce dernier composant, nous avons enfin le dernier composant n\u00e9cessaire pour assurer la propulsion d&#8217;un robot roulant. Il est \u00e0 noter que ces contr\u00f4leurs de moteurs permettent \u00e9galement (au moins les deux premiers) de commander des moteurs pas \u00e0 pas, et qu&#8217;il existe des contr\u00f4leurs sp\u00e9cifiques pour les moteurs pas \u00e0 pas.<\/p>\n<p>On prendra bien soin d&#8217;ajuster le composant utilis\u00e9 \u00e0 la puissance des moteurs : si les moteurs atteignent X amp\u00e8res au maximum, alors le contr\u00f4leur devrait pouvoir g\u00e9rer au moins X amp\u00e8res en continu pour le ou les canaux assign\u00e9s \u00e0 ce moteur. Il est pr\u00e9f\u00e9rable en outre de ne pas pousser les composants au maximum, donc il vaut mieux surdimensionner le contr\u00f4leur de moteur pour \u00eatre sur de ne pas avoir de probl\u00e8me de surchauffe.<\/p>\n<p>Certains composants apportent en outre diverses fonctionnalit\u00e9s suppl\u00e9mentaires, par exemple une protection anti-surchauffe, une mesure du courant consomm\u00e9, etc. Il conviendra de consid\u00e9rer ces fonctionnalit\u00e9s selon les besoins, bien qu&#8217;on puisse en ajouter certaines avec des composants externes.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans le cadre du programme REA, nous d\u00e9veloppons un rover. Nous avons tout d&#8217;abord d\u00e9cid\u00e9 du mode de d\u00e9placement du robot, avant de nous pencher sur le type de moteurs \u00e0 utiliser, puis au choix des roues ou chenilles pour la propulsion. Nous disposons maintenant d&#8217;un groupe moto-propulseur, qu&#8217;il convient de s&#8217;int\u00e9resser au contr\u00f4le des [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1558,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":""},"categories":[140,144,389],"tags":[473,491,146,475,476,176,145,177,255,477,448,447,474,490],"jetpack_featured_media_url":"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2016\/02\/R.Hasika_arduino_drv8835_211714_800px_2.jpg","jetpack_publicize_connections":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>REA - contr\u00f4le des moteurs, PWM et choix du composant adapt\u00e9 - Nagashur<\/title>\n<meta name=\"description\" content=\"Tout sur le contr\u00f4le des moteurs DC pour un projet de robot compact.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"REA - contr\u00f4le des moteurs, PWM et choix du composant adapt\u00e9 - Nagashur\" \/>\n<meta property=\"og:description\" content=\"Tout sur le contr\u00f4le des moteurs DC pour un projet de robot compact.\" \/>\n<meta property=\"og:url\" content=\"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/\" \/>\n<meta property=\"og:site_name\" content=\"Nagashur\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-26T12:09:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-02-26T12:18:12+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2016\/02\/R.Hasika_arduino_drv8835_211714_800px_2.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"244\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@audreyrobinel\" \/>\n<meta name=\"twitter:site\" content=\"@audreyrobinel\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"http:\/\/nagashur.com\/blog\/#website\",\"url\":\"http:\/\/nagashur.com\/blog\/\",\"name\":\"Nagashur\",\"description\":\"raspi et arduino FTW :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"http:\/\/nagashur.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"ImageObject\",\"@id\":\"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/#primaryimage\",\"inLanguage\":\"fr-FR\",\"url\":\"http:\/\/nagashur.com\/blog\/wp-content\/uploads\/2016\/02\/R.Hasika_arduino_drv8835_211714_800px_2.jpg\",\"width\":800,\"height\":244,\"caption\":\"Arduino et contr\\u00f4leur de moteurs DRV8835 sur R.Hasika\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/#webpage\",\"url\":\"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/\",\"name\":\"REA - contr\\u00f4le des moteurs, PWM et choix du composant adapt\\u00e9 - Nagashur\",\"isPartOf\":{\"@id\":\"http:\/\/nagashur.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/#primaryimage\"},\"datePublished\":\"2016-02-26T12:09:29+00:00\",\"dateModified\":\"2016-02-26T12:18:12+00:00\",\"author\":{\"@id\":\"http:\/\/nagashur.com\/blog\/#\/schema\/person\/11a329fa33df4e94444716624beb8186\"},\"description\":\"Tout sur le contr\\u00f4le des moteurs DC pour un projet de robot compact.\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/nagashur.com\/blog\/2016\/02\/26\/rea-controle-moteurs-pwm-choix-composant-adapte\/\"]}]},{\"@type\":\"Person\",\"@id\":\"http:\/\/nagashur.com\/blog\/#\/schema\/person\/11a329fa33df4e94444716624beb8186\",\"name\":\"sky99\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6yqc2-o8","jetpack-related-posts":[{"id":1489,"url":"http:\/\/nagashur.com\/blog\/2015\/11\/19\/rea-motorisation-choix-composants\/","url_meta":{"origin":1496,"position":0},"title":"REA - motorisation : choix des composants","date":"19 novembre 2015","format":false,"excerpt":"Pour notre programme REA, nous d\u00e9veloppons un Rover d'Exploration Autonome. A la pr\u00e9c\u00e9dente \u00e9tude, nous avons \u00e9tudi\u00e9 les modes de d\u00e9placement accessibles, avant d'opter pour un syst\u00e8me bas\u00e9 sur des roues\/chenilles, avec un syst\u00e8me de conduite diff\u00e9rentielle. L'objectif sera d'utiliser une source d'\u00e9nergie quelconque pour g\u00e9n\u00e9rer un\u00a0mouvement de rotation pour\u2026","rel":"","context":"Dans &quot;composants&quot;","img":{"alt_text":"moteur \u00e0 courant continu simple","src":"https:\/\/i0.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2015\/11\/moteur_DC_1533.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":495,"url":"http:\/\/nagashur.com\/blog\/2013\/01\/01\/les-moteurs-electriques-ou-comment-faire-bouger-les-choses\/","url_meta":{"origin":1496,"position":1},"title":"Les moteurs \u00e9lectriques ou comment faire bouger les choses","date":"1 janvier 2013","format":false,"excerpt":"Les 4 types de moteurs que nous utiliserons le plus souvent sont : -Les moteurs \u00e0 courant continu, les plus basiques. Ils tournent si on leur envoie du courant; -Les moteurs pas \u00e0 pas tournent d'un angle pr\u00e9cis \u00e0 chaque impulsion, mais sont plus complexes \u00e0 utiliser et n\u00e9cessitent un\u2026","rel":"","context":"Dans &quot;bricolo&quot;","img":{"alt_text":"routage des c\u00e2bles des moteurs","src":"https:\/\/i0.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2013\/08\/7-img_2293-e1438905670103.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":500,"url":"http:\/\/nagashur.com\/blog\/2013\/01\/05\/utilisation-dun-circuit-l293d-pour-commander-des-moteurs\/","url_meta":{"origin":1496,"position":2},"title":"Utilisation d'un circuit L293D pour commander des moteurs","date":"5 janvier 2013","format":false,"excerpt":"Si l'on branche un moteur \u00e0 courant continu (DC Motor) \u00e0 une source de courant adapt\u00e9e, celui ci tournera. Si l'on veut inverser le sens de rotation, il suffit d'inverser le branchement. Cependant, inverser des branchements \"\u00e0 la main\" ne convient pas \u00e0 un robot. Nous verrons donc aujourd'hui comment\u00a0contr\u00f4ler\u00a0le\u2026","rel":"","context":"Dans &quot;\u00e9lectronique&quot;","img":{"alt_text":"L293D : contr\u00f4leur de moteurs","src":"https:\/\/i2.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2013\/01\/800px-L293D_Motor_Driver.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1706,"url":"http:\/\/nagashur.com\/blog\/2016\/05\/02\/r-hasika-presentation-un-robot-raspberry-pi-precis-et-extensible\/","url_meta":{"origin":1496,"position":3},"title":"R.Hasika - pr\u00e9sentation : un robot Raspberry pi pr\u00e9cis et extensible","date":"2 mai 2016","format":false,"excerpt":"R.Hasika - pr\u00e9sentation R.Hasika est le successeur de R.Cerda, un robot bas\u00e9 sur le Raspberry pi. Si \u00e0 l'\u00e9poque mon objectif \u00e9tait simplement de construire un robot bas\u00e9 sur le Raspberry pi, avec R.hasika, je suis plus ambitieux. En effet, il s'agit cette fois de concevoir enti\u00e8rement le robot, que\u2026","rel":"","context":"Dans &quot;Arduino&quot;","img":{"alt_text":"R.Hasika de profil, avec les c\u00e2bles rang\u00e9s","src":"https:\/\/i2.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2016\/04\/compacted_cables_5715b_800px.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1487,"url":"http:\/\/nagashur.com\/blog\/2015\/11\/12\/rea-mode-de-propulsion-du-robot\/","url_meta":{"origin":1496,"position":4},"title":"REA - mode de propulsion du robot","date":"12 novembre 2015","format":false,"excerpt":"Pour notre programme REA, nous d\u00e9veloppons un Rover d'Exploration Autonome. Si nous souhaitons avoir un robot autonome qui ne soit pas une sonde immobile, il lui faut \u00eatre capable de se d\u00e9placer. Nous nous int\u00e9ressons ici aux robots terrestres, et nous pencherons sur les modes de d\u00e9placement utilisables pour nos\u2026","rel":"","context":"Dans &quot;robotique&quot;","img":{"alt_text":"R.Hasika de c\u00f4t\u00e9 avec vue des chenilles","src":"https:\/\/i2.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2015\/11\/R_hasika_side_800px_211624.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1494,"url":"http:\/\/nagashur.com\/blog\/2016\/02\/20\/rea-energie-alimentation-electrique-batteries-rover\/","url_meta":{"origin":1496,"position":5},"title":"REA - energie, alimentation \u00e9lectrique : batteries pour rover","date":"20 f\u00e9vrier 2016","format":false,"excerpt":"Dans le cadre du programme REA, nous d\u00e9veloppons un rover. Nous avons tout d'abord d\u00e9cid\u00e9 du mode de d\u00e9placement du robot, avant de nous pencher sur le type de moteurs \u00e0 utiliser, puis au choix des roues ou chenilles pour la propulsion. Pour que notre rover soit autonome, il nous\u2026","rel":"","context":"Dans &quot;domotique&quot;","img":{"alt_text":"Ch\u00e2ssis de R.Hasika avec les batteries LiPo 18650 et les moteurs","src":"https:\/\/i0.wp.com\/nagashur.com\/blog\/wp-content\/uploads\/2016\/02\/chassis_lower_part_with_batteries_155204_800px.jpg?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/posts\/1496"}],"collection":[{"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/comments?post=1496"}],"version-history":[{"count":0,"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/posts\/1496\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/media\/1558"}],"wp:attachment":[{"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/media?parent=1496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/categories?post=1496"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/nagashur.com\/blog\/wp-json\/wp\/v2\/tags?post=1496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}