Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Deux fichiers nécessaire pour que la compilation marche bien
- // Suivant les composants, on aura éventuellement besoin d'autres fichiers.
- #include <Wire.h>
- #include "rgb_lcd.h"
- //On déclare un écran rgb_lcd qu'on appelle lcd
- rgb_lcd lcd;
- // On pourrait directement utiliser le A0 dans le code
- // Mais sur des montages arduino, on se retrouve à devoir souvent changer de pin des composants :
- // Pour tester, ou car on refait son montage d emanière un peu différente de semaine en semaine ...
- // C'est pour ça que je conseille de définir ici les pin utilisés (je le met en majuscule que ce soit clair)
- // Et si jamais vous changez de pin, il suffit de modifier juste ici
- // En plus, c'est plus lisible dans le programme de voir PIN_CAPTEUR_DISTANCE que A0 :)
- int PIN_CAPTEUR_DISTANCE = A0;
- // C'est notre caractère personnalisé
- // Un caractère sur l'écran LCD est en fait un rectangle de 5 pixels (largeur) * 8 pixels(hauteur)
- // Ici, on définit (avec une syntaxe un peu particulière à cause du C) notre rectangle
- // Le 0b est l àpour indiquer une ligne de pixels, ne pas y toucher.
- // Ensuite, il y a une ligne de 5 pixels, représentés par des 0 ou des 1.
- // Si un pixel vaut 0, il sera éteint (couleur de fond de l'écrna), alors que s'il vaut 1, il sera allumé (noir)
- byte heart[8] = {
- 0b00000,
- 0b01010,
- 0b11111,
- 0b11111,
- 0b11111,
- 0b01110,
- 0b00100,
- 0b00000
- };
- //Note : on peut définir plusieurs caractères personnalisés ainsi
- byte smiley[8] = {
- 0b00000,
- 0b00000,
- 0b01010,
- 0b00000,
- 0b00000,
- 0b10001,
- 0b01110,
- 0b00000
- };
- // C'est le code qui va etre appelé une fois, au démarrage de notre arduino
- // C'est ici qu'on va initialiser nos différents composants
- // Et aussi indiquer à l'arduino quels ports sont en entrée (INPUT, poiur lire des données) et en sortie (OUTPUT, pour écrire des données)
- // Note : pour tous composants utilisant I2C (donc l'écran LCD), il n'y a pas besoin de préciser quel port on utilise
- // Tous les ports I2C du grove étant les meme pour l'arduino derrière
- void setup(){
- pinMode(PIN_CAPTEUR_DISTANCE,INPUT);
- // Nombre de colonnes (caractère par ligne) et de ligne
- // Ne pas toucher sauf si vous savez ce que vous faites
- lcd.begin(16,2);
- // Le premier paramètre est la couleur rouge, le deuxième verte, le troisième bleue (code RGB)
- // Si vous voulez une liste des code couleur courants :
- // https://fr.wikipedia.org/wiki/Liste_de_noms_de_couleur#Liste
- // Note : on peut tout à fait modifier dans loop(), mais ici je veux changer ma couleur juste une fois
- // Mais on peut faire un écran LCD qui change de couleur en fonction d'un capteur, par exemple !
- lcd.setRGB(0, 255, 0);
- // Maintenant on va dire à notre arduino que notre caractère existe
- // Ici, on lui enregistre le caractère "heart" avec le nombre 1
- // On ne peut pas mettre n'importe quel nombre, seulement 1 -> 30 inclus (c'est largement suffisant)
- lcd.createChar(1, heart);
- // On peut en créer plusieurs
- lcd.createChar(2, smiley);
- }
- // C'est le code qui va tourner en boucle : c'est comme si vous aviez mis un répéter indéfiniment sur mBlock
- // C'est là que va se concentrer la majorité de notre code
- void loop(){
- // On veut écrire sur l'écran. Pour cela, deux méthodes :
- // Méthode 1 : on met le curseur d'écriture au tout début de l'écran (0, 0), puis on écrit
- // S'il n'y a rie nd'écrit, on aura bien notre message
- // S'il y a quelque chose d'écrit, alors cela le remplacera caractère par caractère
- // Cela marche bien, c'est rapide, mais ça peut etre un peu compliqué par moment
- // Si on doit beaucoup déplacer le curseur
- lcd.setCursor(0,0);
- // Pour afficher notre caractère personnalisé, il faut utiliser la fonction "write" avec le numéro qu'on lui a donné
- lcd.write(2);
- // Note : ici, analogRead() renvoie un nombre entier. Il faut donc le transformer en chaine de caractère avant !
- lcd.print("distance : "+ String(analogRead(PIN_CAPTEUR_DISTANCE)));
- // Petit exemple pour afficher sur la deuxième ligne : on met le curseur en (0, 1) :
- // colonne n°0, ligne n°1. n'oubliez pas que les indices commencnet à 0 et pas à 1 !
- // Et ensuite on écrit comme avant
- lcd.setCursor(0, 1);
- lcd.write(1);
- // Note : si vous affichez un simple texte, pas besoin de String()
- lcd.print("MagicMakers");
- lcd.write(1);
- // Méthode nméro 2 : on efface l'écran, puis on écrit le message
- // Avantage : c'est plus simple à comprendre / écrire, on s'embete moins
- // Inconvénient : Il faut rajouter un petit delay() - c'est à dire attendre un peu,
- //sinon l'écran s'efface en permanence et on a un résultat bizarre
- //Décommenter les 3 lignes suivantes pour l'utiliser (et commentez les précédentes)
- //lcd.clear();
- //lcd.print(String("distance:") + analogRead(A0));
- //delay(10); // Note : le délai est en millisecondes !
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement