jeudi 9 novembre 2017

MPLAB Xpress Evaluation Board: utilisation d'une entrée analogique

Dans ce troisième tuto concernant l'utilisation du MPLAB Xpress Evaluation Board, nous allons utiliser le potentiomètre de la carte pour faire varier un signal analogique qui sera mesuré par le microcontrôleur.

(Dans les billets précédents, nous avons appris comment gérer les entrées et sorties, et comment acheminer des données de la carte vers l'ordinateur.)

Commençons donc par créer un nouveau projet dans l'IDE en ligne MPLAB Xpress (voir le premier billet de la série pour plus de détails sur la façon de procéder).

Ensuite, nous utilisons MCC (MPLAB Xpress Code Configurator) pour générer quelques fichiers qui faciliteront l'utilisation du convertisseur analogique-numérique.

Cliquons deux fois sur "ADCC" dans la zone "Device Resources" de MCC.


Le module ADCC est maintenant visible dans la zone "Project Resources".


La zone centrale de MCC montre les réglage du convertisseur analogique-numérique (ADC).   Il est important que "Enable ADC" soit coché.  Il est prudent de laisser une période d'horloge au convertisseur pour faire sa mesure (régler "Acquisition Count" à la valeur "1").  "Result Alignment" (right ou left) permet de déterminer dans quel sens (horaire ou antihoraire) il faut tourner le potentiomètre pour que la valeur analogique (située entre 0 et 1023) augmente ou diminue.


Sur la carte MPLAB Xpress Evaluation Board, le potentiomètre est relié à la broche RA4.  Pour cette raison, nous allons lier le convertisseur analogique-numérique à cette broche, en cliquant sur le cadenas de la colonne  "Port A, 4"  dans la ligne "ANx".



Si vous cliquez "Pin Module" dans la zone "Project Resources", vous pouvez voir les caractéristiques de cette pin (qui est, pour l'instant, la seule utilisée sur notre carte).  Par défaut, elle porte le nom "channel_ANA4", ce qui est très laid.  Appelons-la plutôt "potentiometre".



Notre ADC est maintenant configuré:  on peut cliquer sur le bouton "Generate" pour que les fichiers appropriés s'ajoutent à notre projet.

Pour lire l'état du potentiomètre à l'intérieur d'un programme, il s'agira d'utiliser "ADCC_GetSingleConversion(potentiometre)".

Que faire avec cette valeur?  Je vous propose deux options:  la faire apparaître à l'écran de votre ordinateur, ou l'utiliser pour contrôler la luminosité d'une LED.

Exemple 1:  Affichage d'un signal analogique à l'écran de l'ordinateur

Pour que votre programme puisse transmettre des données à l'ordinateur par l'entremise du câble USB de la carte, vous devez configurer l'EUSART dans MCC.  Pour ce faire, suivez les instruction énumérées dans mon billet précédent:  Communication série avec un ordinateur.



En plus du module ADCC, votre projet comporte maintenant un module EUSART.  Vous n'avez pas oublié de cocher les cases "Enable Transmit" et  "Redirect STDIO to USART", en plus d'assigner TX et RX aux pins RC0 et RC1.

On clique sur le bouton "Generate" pour mettre à jour les fichier de notre projet.

De retour dans l'IDE MPLAB Xpress, on écrit notre programme (minimaliste!) dans le fichier "main.c":




On peut ensuite ouvrir notre programme de communication série préféré (ici, le moniteur série de l'IDE Arduino) pour observer le résultat à l'écran:


Le traceur série de l'IDE Arduino donne aussi des résultats intéressants:


Exemple 2: luminosité d'une LED contrôlée par le potentiomètre

Une autre option consiste à utiliser l'état du potentiomètre pour contrôler la luminosité d'une des 4 LEDs de la carte.

Dans MCC, en plus du module ADCC (convertisseur analogique-numérique), nous aurons besoin d'un module PWM (modulation par largeur d'impulsion) ainsi que d'un module timer, nécessaire au fonctionnement du module PWM.

En supposant que votre module ADCC a déjà été ajouté et configuré (si ce n'est pas le cas, retournez au début de ce billet pour effectuer les réglages nécessaires), vous ajouter les modules "PWM6" et "TMR4".


Dans la zone des cadenas, nous assignons le signal PWM à l'une des LEDs de la carte (pin RA0):


Cliquez sur "PWM6" dans la zone "Project Resources" afin de modifier les paramètres du module PWM.  Dans "Select a Timer", sélectionnez "Timer4".


Cliquez sur "TMR4" dans la zone "Project Resources"  pour modifier les paramètres du timer.  Dans "Clock Source", choisissez "FOSC/4".


Vous cliquez sur le bouton "Generate" afin que ces réglages soient transmis à l'IDE en ligne MPLAB Xpress.

Le programme à écrire dans le fichier "main.c" ne comporte qu'une modeste ligne de code:  il s'agit d'assigner au PWM6 (associé à notre LED) le résultat de notre convertisseur ADC (associé au potentiomètre).



Après avoir téléchargé ce programme dans la carte, vous pouvez constater que, tel que prévu, la luminosité de la LED "D2" sur la carte varie lorsque vous tournez le bouton du potentiomètre.

Sources:

Pour la rédaction de ce billet, j'ai consulté cette vidéo et ce tuto mis en ligne par Microchip.


Yves Pelletier   (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire