Drv8833 arduino dc motor

Moteur à courant continu Esp8266

Ce driver de moteur DRV8833 à double pont en H est le substitut du driver de moteur à double canal TB6612FNG. Il peut être utilisé pour le contrôle bidirectionnel de deux moteurs CC à balais sous 2,7 V à 10,8 V. Il peut fournir jusqu’à environ 1,2 A par canal en continu et peut tolérer des pointes de courant jusqu’à 2 A par canal pendant quelques secondes, ce qui en fait un pilote idéal pour les petits moteurs qui fonctionnent sous des tensions relativement basses. La carte est livrée avec des composants SMD, dont le DRV8833, et ajoute un FET pour la protection contre les inversions de polarité.

Cette carte est très similaire à notre DRV8835 dual motor driver carrier en ce qui concerne la plage de tension de fonctionnement et le courant nominal continu, mais le DRV8835 a une tension de fonctionnement minimale inférieure, offre un mode d’interface de contrôle supplémentaire, et est 0,1″ plus petit dans chaque dimension ; nous proposons également un blindage DRV8835 dual motor driver qui est facile à utiliser avec un Arduino. Le DRV8833 a un courant de crête plus élevé (2 A par canal contre 1,5 A), un limiteur de courant intégré en option, et ne nécessite pas de tension logique externe.

Bibliothèque Arduino drv8833

Pour mon projet, j’essaie de piloter un moteur vibrant DC avec le breakout DRV8833 (d’Adafruit, illustré ci-dessous) mais mes moteurs ne fonctionnent pas. Mon voltmètre ne lit aucune tension sur ses broches AOUT. J’ai essayé de le connecter à des moteurs CC de différentes tailles, sans succès, bien que je sache que les moteurs fonctionnent bien, car ils fonctionnent lorsqu’ils sont simplement connectés à des batteries.

  Arduino servo motor button

J’ai essayé plusieurs schémas de câblage semblables aux photos ci-jointes, et deux codes différents. Je peux me tromper, mais d’après ce que j’ai compris, pour faire fonctionner les moteurs via le DRV8833, il faut écrire numériquement haut sur une broche et bas sur l’autre :

Malheureusement, je ne suis qu’un lycéen qui n’a qu’une connaissance superficielle des circuits de physique C. Je ne comprends donc pas entièrement ce qui se passe dans votre circuit “simple”. Je suis loin d’avoir atteint le niveau de ce que vous considérez comme simple ou de bon sens, alors si vous pouviez m’expliquer, ce serait très apprécié.

Pololu drv8833

Le driver DRV8833 peut contrôler jusqu’à deux moteurs DC ou un moteur pas à pas avec un courant constant de 1.5 A (pic 4A ). Les moteurs sont contrôlés indépendamment au moyen de signaux PWM ; le sens de rotation des moteurs peut être contrôlé, neutre ou arrêté avec une fréquence allant jusqu’à 100 kHz. Deux signaux d’entrée (IN1 et IN2) peuvent être utilisés pour commander un moteur (connecté à OUT1 et OUT2) et les deux autres signaux d’entrée (IN3 et IN4) pour commander le second moteur (connecté à OUT3 et OUT4). REMARQUE : Ce contrôleur de moteur DRV8833 à double pont est le remplacement du contrôleur de moteur à double canal TB6612FNG. Les broches ne sont pas soudées. Si le moteur tire des courants supérieurs à 0,6A, l’utilisation d’un dissipateur thermique peut être nécessaire. Caractéristiques du contrôleur DRV8833 DC Motor PAP :

Le pilote DRV8833 peut contrôler jusqu’à deux moteurs CC ou un moteur pas à pas avec un courant constant de 1,5 A (pic 4A ). Les moteurs sont contrôlés, indépendamment, par des signaux PWM ; le sens de rotation des moteurs peut être contrôlé, neutre ou arrêt avec une fréquence allant jusqu’à 100 kHz. Deux signaux d’entrée (IN1 et IN2) peuvent être utilisés pour commander un moteur (connecté à OUT1 et OUT2) et les deux autres signaux d’entrée (IN3 et IN4) pour commander le second moteur (connecté à OUT3 et OUT4). REMARQUE : Ce contrôleur de moteur DRV8833 à double pont est le remplacement du contrôleur de moteur à double canal TB6612FNG. Les broches ne sont pas soudées. Si le moteur tire des courants supérieurs à 0,6A, l’utilisation d’un dissipateur thermique peut être nécessaire. Caractéristiques du contrôleur DRV8833 DC Motor PAP :

  Arduino brushless motor code

Tb6612fng vs drv8833

Aujourd’hui je vais décrire comment utiliser le driver de moteur DRV8833. Vous avez peut-être lu mon post sur le L293D où j’explique pourquoi je dois utiliser un autre driver de moteur. Le problème était simplement le courant maximum que le L293D est capable de supporter et en plus il y a une forte chute de tension au L293D qui n’est pas très utile. J’ai donc choisi un autre driver de moteur qui peut gérer plus de courant – le DRV8833 en tant que shield de driver de moteur construit par Pololu.

Comme vous pouvez le voir, le DRV8833 peut supporter un courant total de 2.4A peak. Vous voyez que c’est moins que 2×1.6A=3.2A que j’ai mentionné dans mon post précédent sur le L293D. Mais comme je l’ai déjà dit, je n’ai pas besoin du courant total des moteurs à courant continu car mon projet n’est pas de conduire rapidement mais simplement de conduire, donc le DRV8833 devrait être suffisant.

Comme d’habitude, je voulais faire un schéma de Fritzing, mais il n’y a pas de pièce pour le DRV8833 disponible, mais j’ai trouvé un schéma sur le site de Pololu qui montre le câblage. Vous pouvez également le consulter dans la fiche technique.

Le problème était de trouver la bonne valeur pwm. D’après mes calculs, la valeur aurait dû être quelque chose comme 2/3 * 256. Je me suis dit : mes batteries fournissent 9V, mes moteurs peuvent supporter 6V, donc il suffit d’utiliser 2/3 * 9V = 6V. Cela n’a tout simplement pas fonctionné car il y a une chute de tension dans mon câblage. Je pense que c’est un peu lié à la résistance habituelle des câbles et des contacts, mais en plus c’est dû à mes compétences modérées en soudure ;). Donc la valeur avec un câblage 100% correct et une résistance quasi nulle aurait dû être 2/3*256 ~ 171 en Arduino pwm. Dans mon cas, j’ai dû utiliser 240.

  Arduino motor with encoder