Montage
L'écran Nokia est branché à l'Arduino de la même façon que dans mon article précédent (je vous invite à vous y référer pour plus de détails). Un circuit intégré 4050 est utilisé pour abaisser à 3,3 V les signaux logiques produits par les sorties de l'Arduino, afin de respecter la fiche technique du contrôleur PCD8544.
En résumé:
- La broche SCE de l'afficheur reçoit le signal provenant de la broche 4 de l'Arduino
- La broche RST de l'afficheur reçoit le signal provenant de la broche 3 de l'Arduino
- La broche D/C de l'afficheur reçoit le signal de la broche 5 de l'Arduino
- La broche DN/MOSI de l'afficheur reçoit le signal de la broche 11 de l'Arduino
- La broche SCLK de l'afficheur reçoit le signal de la broche 13 de l'Arduino
Sketch
Le sketch est plutôt simple. À intervalles réguliers, la valeur de l'entrée analogique A0 est mesurée grâce à la fonction analogRead().
Cette valeur, qui peut varier entre 0 et 1023, est ensuite convertie en volts au moyen de la fonction map(). Vous pourrez facilement modifier le sketch si vous désirez afficher la valeur brute entre 0 et 1023, ou si vous voulez la transformer afin d'afficher autre chose qu'une tension en volts.
De plus, une jauge linéaire montre le résultat de façon graphique (il s'agit d'un mince rectangle dont la longueur horizontale est proportionnelle à la valeur mesurée).
Pour que le sketch fonctionne, il faut avoir préalablement installé les bibliothèques Adafruit-PCD8544-Nokia-5110-LCD-library et Adafruit-GFX-Library dans votre IDE Arduino.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/***************************************************** | |
Affichage d'une mesure analogique sur un écran Nokia | |
(Arduino) | |
Instructions complètes: | |
http://electroniqueamateur.blogspot.com/2018/12/presentation-dune-mesure-analogique-sur.html | |
*****************************************************/ | |
#include <SPI.h> | |
#include <Adafruit_GFX.h> | |
#include <Adafruit_PCD8544.h> | |
Adafruit_PCD8544 display = Adafruit_PCD8544(5, 4, 3); | |
void setup() { | |
display.begin(); | |
display.setContrast(60); // la valeur optimale dépend de votre écran (pourrait être 40) | |
display.clearDisplay(); | |
} | |
void loop() { | |
int valeur; | |
// mesure de la tension à l'entrée A0 | |
valeur = map(analogRead(A0), 0, 1023, 0, 500); | |
// on écrit "tension", en petits caractères, centré en haut de l'écran: | |
display.setCursor(15, 5); | |
display.setTextSize(1); | |
display.println("Tension:"); | |
// on écrit la valeur numérique de la tension un peu plus bas, en plus gros | |
display.setCursor(5, 15); | |
display.setTextSize(2); | |
display.print(valeur/100); // partie entière | |
display.print(","); // virgule | |
if ((valeur % 100) < 10){ | |
display.print("0"); | |
} | |
display.print(valeur % 100); // partie décimale, après la virgules | |
display.println(" V"); // unités de mesure | |
// enveloppe de la jauge rectangulaire | |
display.fillRect( 4, 35, 80, 10, WHITE); | |
display.drawRect( 4, 35, 80, 10, BLACK); | |
// partie mobile de la jauge rectangulaire | |
display.fillRect( 6, 37, map(valeur, 0, 500, 0, 76), 6, BLACK); | |
display.display(); | |
delay(500); | |
display.clearDisplay(); | |
} |
Vidéo
Pour terminer, voici une vidéo du montage en action.
Aucun commentaire:
Enregistrer un commentaire