Dans ce projet, l'utilisateur pourra contrôler la vitesse de rotation du moteur en tournant le potentiomètre intégré à la carte MPLAB Xpress Evaluation Board. De plus, le sens de rotation du moteur s'inversera lorsque le bouton poussoir de la carte sera maintenu enfoncé.
Voici une courte vidéo montrant le dispositif en action:
Le circuit
Parce qu'il risque de consommer beaucoup de courant, le moteur ne doit pas être alimenté par la carte MPLAB Xpress Evaluation Board: une alimentation externe est nécessaire.
Le MPLAB Xpress Evaluation Board contrôle les broches 1, 2 et 7 du L293D. Le signal modulé en largeur d'impulsion (PWM) transmis à la broche 1 contrôlera la vitesse de rotation du moteur. Lorsque la broche 2 sera soumise à une tension de 3,3 V pendant que la broche 7 sera à une tension nulle, le moteur tournera dans un sens. Il tournera dans l'autre sens quand la tension de la broche 2 sera nulle, et que celle de la broche 7 sera de 3,3 V.
- La broche 1 du L293D ("enable 1") est branchée à la sortie RA0 du MPLAB Xpress Evaluation Board.
- La broche 2 du L293D ("input 1") est branchée à la sortie RA1 du MPLAB Xpress Evaluation Board.
- La broche 3 du L293D ("output 1") est branchée à un des deux contacts du moteur.
- La broche 4 du L293D (ou la broche 5, 12 ou 13) (GND) est branché à une broche GND du MPLAB Xpress Evaluation Board et à la borne négative de l'alimentation du moteur.
- La broche 6 du L293D ("output 2") est branchée à l'autre contact du moteur.
- La broche 7 du L293D ("input 2") est branché à la sortie RA2 du MPLAB Xpress Evaluation Board.
- La broche 8 du L293D ("Vs") est branchée à la borne positive de l'alimentation du moteur.
- La broche 16 du L293D ("Vss") est branchée à la sortie 5 V du MPLAB Xpress Evaluation Board.
Les broches 9, 10, 11, 14 et 15 du L293D sont destinées à contrôler un deuxième moteur: elle ne sont pas utilisées dans le présent projet.
Configuration avec MCC
Rendons-nous maintenant sur l'IDE en ligne MPLAB Xpress, et créons un nouveau projet. Si vous ne savez pas comment procéder, vous devriez jeter un oeil sur ce précédent billet.
Vous accédez ensuite à MCC (MPLAB Xpress Code Configurator) et vous ajoutez trois éléments à votre projet: ADCC, PWM6 et TMR4. Ces trois éléments apparaîtront dans la zone "Project Resources" de MCC si vous cliquez deux fois sur leur nom dans la liste "Devices Resources".
Commençons par le réglage du timer TMR4, qui est nécessaire pour l'utilisation du module PWM6. Cliquez sur TMR4 dans "Projects Resources", et réglez "Clock Source" à "FOSC/4". Assurez-vous que "Enable Timer" est coché.
Réglons maintenant le générateur de modulation par largeur d'impulsion (PWM6) qui contrôlera la vitesse de rotation de notre moteur. Après avoir cliqué sur PWM6 dans "Projects Resources", réglez "Select a Timer:" à "Timer4" et assurez-vous que "Enable PWM" est coché.
Cliquez maintenant sur "ADCC" dans la zone "Project Resources" afin de régler le convertisseur analogique-numérique qui sera associé au potentiomètre. Cochez "Enable ADC", et réglez "Acquisition Count" à 1.
Cinq clics sont requis dans la zone des cadenas, dans le bas de la fenêtre de MCC: la pin RA0 est assignée au PWM6, les pins RA1 et RA2 sont désignées comme sorties (output) GPIO, la pin RA4, qui est soudée au potentiomètre de la carte, est associée au convertisseur analogique-numérique (ANx) et la pin RA5, qui est soudée au bouton poussoir de la carte, est désignée comme une entrée (input) GPIO.
Finalement, un click sur "Pin Module" dans la zone "Project Resources" permet de modifier le nom de nos entrées/sorties. Pour faciliter la programmation, les broches RA1 et RA2 s'appellent respectivement "sortie_1" et "sortie_2", la broche RA4 s'appelle "potentiometre" et la broche RA5 s'appelle "bouton". J'ai décoché les cases "Analog" pour RA1 et RA2.
Il ne reste plus qu'à cliquer sur le bouton "Generate", et à retourner dans MPLAB Xpress.
Le script
Après tout ce qui a été configuré dans MCC, le programme à écrire dans le fichier "main.c" est plutôt simple: le rapport cyclique du signal PWM est réglé selon la position du potentiomètre. L'état logique des sorties 1 et 2 (broches RA1 et RA2) est réglé de façon différente selon que le bouton est enfoncé ou non.
Yves Pelletier (Twitter, Facebook)