Cours:DmInfoMLI

De troyesGEII
Aller à : navigation, rechercher


Principe

Rappel TIMER 0

Nous allons utiliser un circuit spécialisé le L293D pour commander deux moteurs simultanément. Nous avons choisi ce circuit particulier parce qu'il est présent dans tinkercad.

La MLI (PWM) avec le Timer 0 (8 bits)

Il nous faudra ainsi réaliser deux MLI, une par moteur. Cela tombe bien, le TIMER0 déjà utilisé, est capable de cette prouesse à lui tout seul. En effet sur la documentation ci-dessus vous pouvez noter la présence de bit avec B comme suffixe :

  • COM0B0 et COM0B1 qui fonctionnent exactement comme leurs cousins COM0A0 et COM0A1
  • OC0B comme sortie bit b5 du PORTD tandis que OC0A était en b6
  • registre OCR0B pour le réglage de la MLI

De toute façon cela a déjà été fait pour les deux leds du TD6.

Le circuit L293D

Vous trouverez une description d'une utilisation du composant l293d avec un Arduino ICI. La documentation (datasheet) originale y est aussi présente et vous seriez avisé d'y jeter un coup d'oeil.

Si vous êtes passé à côté de cette phrase dans la documentation, nous la remettons ici (à vous de traduire) :

On the L293, external high speed output clamp diodes should be used for inductive transient suppression. On the L293D,these diodes are integrated to reduce system complexity and overall systemsize.

Cette phrase a son importance pour les schémas que nous vous demandons de réaliser.

A faire

Question.jpg Vous allez réaliser le travail demandé ci-dessous et faire un rapport dans lequel il y aura :

  • une copie d'écran de votre réalisation tinkercad avec vos propres annotations Nom et Prénom entre autre
  • le programme de fonctionnement

Ce rapport est à rendre pour la fin des vacances de Printemps, le dimanche 26 Avril 2020.

Les enseignants prendront soin de vérifier que les schémas ainsi que les programmes sont tous différents

Utilisation du circuit l293d pour commander un moteur

Vous allez brancher correctement le circuit l293d avec un Arduino et un seul moteur. La façon de faire évoluer la vitesse sera réalisée, comme dans le TD 6, avec deux "boutons poussoirs" : un pour incrémenter et l'autre pour décrémenter la vitesse. Il faudra naturellement utiliser un "bouton à glissière" pour changer le sens de rotation.

En pratique, il est très dangereux de changer le sens de rotation quand le moteur est en pleine vitesse. Vous pouvez éventuellement gérer cette situation par programme en faisant freiner le moteur un certain temps avant de changer sa direction (seulement si cela est nécessaire ou mieux encore avec un temps qui dépend du rapport cyclique). Le site en français Arduino : contrôler des moteurs dc avec le composant l293d explique la façon de freiner.

Question.jpg Réaliser le schéma correspondant sur Tinkercad.

Question.jpg Réaliser le programme correspondant en C et le simuler sur Tinkercad.

Utilisation du circuit l293d pour commander deux moteurs

Vous gardez l'ensemble du circuit précédent.

Le deuxième moteur sera commandé par un potentiomètre comme en TD7 et sera monodirectionnel. Il n'a donc pas besoin de bouton pour changer de sens. Regardez le datasheet pour voir comment on connecte un moteur qui fonctionne que dans un sens.

Question.jpg Réaliser le schéma correspondant sur Tinkercad.

Question.jpg Réaliser le programme correspondant en C et le simuler sur Tinkercad.

Utilisation du circuit l293d pour commander deux moteurs bidirectionnels

Vous gardez l'ensemble du circuit précédent.

Le deuxième moteur sera commandé par un potentiomètre comme précédemment mais sera bidirectionnel. Il a donc besoin d'un "bouton à glissière" pour changer de sens.

Question.jpg Réaliser le schéma correspondant sur Tinkercad.

Question.jpg Réaliser le programme correspondant en C et le simuler sur Tinkercad.