Il existe de nombreux modules pour Arduino ou pour une utilisation dans des projets de bricolage par des fabricants. Dans le cas de L298N est un module pour contrôler les moteurs. Avec eux, vous pouvez utiliser des codes simples pour programmer notre carte Arduino et être capable de contrôler les moteurs à courant continu de manière simple et contrôlée. Généralement, ce type de module est davantage utilisé en robotique ou dans les actionneurs motorisés, bien qu'il puisse être utilisé pour une multitude d'applications.
Nous avons déjà saisi tout ce dont vous avez besoin le module ESP, avec puce ESP8266une module qui permet d'étendre les capacités Cartes Arduino et autres projets afin qu'ils aient une connectivité WiFi. Ces modules peuvent non seulement être utilisés de manière isolée, mais la bonne chose est qu'ils peuvent être combinés. Par exemple, un ESP8266 peut être utilisé pour notre prototype et le L298N, avec lequel nous obtiendrions un moteur contrôlable via Internet ou sans fil.
Présentation du L298N et des fiches techniques:
Bien qu'avec Arduino, vous puissiez également travailler avec des moteurs pas à pas, bien connus en robotique, dans ce cas, il est généralement plus courant d'utiliser le contrôleur ou pilote pour moteurs à courant continu. Vous pouvez obtenir des informations sur la puce L298 et les modules dans les fiches techniques des fabricants, telles que STMicroelectronics à partir de ce lien. Si vous souhaitez voir une fiche technique du module spécifique, et pas seulement la puce, vous pouvez télécharger cet autre PDF du Handsontec L298N.
Mais de manière générale, un L298N est un pilote de type pont en H qui permet de contrôler la vitesse et le sens de rotation des moteurs à courant continu. Il peut également être utilisé avec des moteurs pas à pas facilement grâce au 2 Pont en H qui met en œuvre. C'est-à-dire un pont en H, ce qui signifie qu'il est formé de 4 transistors qui vont permettre d'inverser le sens du courant pour que le rotor du moteur puisse tourner dans un sens ou dans un autre à volonté. C'est un avantage par rapport aux contrôleurs qui vous permettent uniquement de contrôler la vitesse de rotation (RPM) en contrôlant uniquement la valeur de la tension d'alimentation.
Le L298N peut fonctionner avec divers tensions, de 3v à 35v, et à une intensité de 2A. C'est ce qui déterminera vraiment les performances ou la vitesse de rotation du moteur. Il faut tenir compte du fait que l'électronique consommée par le module consomme généralement environ 3v, le moteur recevra donc toujours 3v de moins de la puissance à laquelle nous l'alimentons. C'est une consommation un peu élevée, en fait, il a un élément de haute puissance qui a besoin d'un dissipateur thermique comme vous pouvez le voir sur l'image.
Pour contrôler la vitesse, vous pouvez faire quelque chose d'inverse à ce que nous avons fait avec le LM35, dans ce cas, au lieu d'obtenir une certaine tension en sortie et de devoir la convertir en degrés, ici ce sera l'inverse. Nous alimentons le driver avec une tension inférieure ou supérieure pour obtenir un virage plus rapide ou plus lent. De plus, le module L298N permet également à la carte Arduino d'être alimentée à 5v tant que nous alimentons le pilote avec une tension d'au moins 12v.
Intégration avec Arduino
Là multitude de projets avec lesquels vous pouvez utiliser ce module L298N. En fait, vous pouvez imaginer tout ce que vous pourriez en faire et vous mettre au travail. Par exemple, un exemple simple serait la commande de deux moteurs à courant continu comme on peut le voir dans le schéma précédent réalisé avec Fritzing.
Avant de travailler avec le L298N, nous devons prendre en compte que l'entrée du module ou Vin prend en charge les tensions entre 3v et 35v et que nous devons également le connecter à la terre ou GND, comme le montre l'image avec le câble rouge et noir respectivement. Une fois connecté à l'alimentation, la prochaine chose à faire est de connecter le moteur ou les deux moteurs qu'il accepte de contrôler simultanément. C'est simple, il vous suffit de connecter les deux bornes du moteur à l'onglet de connexion qui a le module de chaque côté.
Et maintenant vient peut-être le plus compliqué, et consiste à connecter les connexions du module ou broches à Arduino correctement. N'oubliez pas que si le cavalier ou le pont régulateur du module est fermé, c'est-à-dire allumé, le régulateur de tension du module est activé et il existe une sortie 5v que vous pouvez utiliser pour alimenter la carte Arduino. D'autre part, si vous retirez le cavalier, vous désactivez le régulateur et vous devez alimenter l'Arduino indépendamment. œil! Parce que le cavalier ne peut être configuré que jusqu'à des tensions 12v, pour plus que cela il faut le retirer pour ne pas endommager le module ...
Vous pouvez apprécier cela il y a 3 connexions pour chaque moteur. Ceux marqués IN1 à IN4 sont ceux qui contrôlent les moteurs A et B. Si vous n'avez pas l'un des moteurs connectés parce que vous n'en avez besoin que d'un, vous n'aurez pas à tous les mettre. Les cavaliers de chaque côté de ces connexions pour chaque moteur sont ENA et ENB, c'est-à-dire pour activer les moteurs A et B, qui doivent être présents si nous voulons que les deux moteurs fonctionnent.
Pour moteur A (Ce serait la même chose pour B), nous devons avoir IN1 et IN2 connectés qui contrôleront le sens de rotation. Si IN1 est sur HIGH et IN2 sur LOW, le moteur tourne dans un sens, et s'ils sont sur LOW et HIGH, il tourne dans l'autre. Pour contrôler la vitesse de rotation, vous devez retirer les cavaliers INA ou INB et utiliser les broches qui semblent le connecter à l'Arduino PWM, de sorte que si nous lui donnons une valeur de 0 à 255, nous obtenons respectivement une vitesse faible ou supérieure.
En ce qui concerne la programmation est également facile dans l'IDE Arduino. Par exemple, un code serait:
<pre>// Motor A int ENA = 10; int IN1 = 9; int IN2 = 8; // Motor B int ENB = 5; int IN3 = 7; int IN4 = 6; void setup () { // Declaramos todos los pines como salidas pinMode (ENA, OUTPUT); pinMode (ENB, OUTPUT); pinMode (IN1, OUTPUT); pinMode (IN2, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); } //Mover los motores a pleno rendimiento (255), si quieres bajar la velocidad puedes reducir el valor hasta la mínima que son 0 (parados)</pre> <pre>//Para mover los motores en sentido de giro contrario, cambia IN1 a LOW e IN2 a HIGH void Adelante () { //Direccion motor A digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); analogWrite (ENA, 255); //Velocidad motor A //Direccion motor B digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); analogWrite (ENB, 255); //Velocidad motor B }</pre>