diy:grove:afficheurs
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
diy:grove:afficheurs [2020/04/03 17:27] – créée jbpuel | diy:grove:afficheurs [2020/04/03 17:40] (Version actuelle) – [Afficheur 4 chiffres] jbpuel | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Afficheurs Grove ====== | ====== Afficheurs Grove ====== | ||
+ | ===== Afficheur LCD RGB backlight ===== | ||
+ | <code C++> | ||
+ | #include < | ||
+ | #include " | ||
+ | rgb_lcd lcd; // Déclare un objet de type rgb_lcd | ||
+ | |||
+ | void setup() { | ||
+ | lcd.begin(16, | ||
+ | } | ||
+ | </ | ||
+ | Les fonctions suivantes sont disponibles pour l' | ||
+ | <code C++> | ||
+ | lcd.setCursor(0, | ||
+ | lcd.print(" | ||
+ | lcd.clear(); | ||
+ | lcd.blink(); | ||
+ | lcd.noblink(); | ||
+ | lcd.autoscroll(); | ||
+ | lcd.noAutoscroll(); | ||
+ | lcd.cursor(); | ||
+ | lcd.noCursor(); | ||
+ | lcd.display(); | ||
+ | lcd.noDisplay(); | ||
+ | lcd.setRGB(255, | ||
+ | lcd.setPWM(couleur, | ||
+ | // Couleurs prédéfinies, | ||
+ | lcd.blinkLED(); | ||
+ | lcd.noBlinkLED(); | ||
+ | lcd.scrollDisplayLeft(); | ||
+ | lcd.scrollDisplayRight(); | ||
+ | // Ne gère pas le saut de ligne, mais le texte revient dans l' | ||
+ | </ | ||
+ | Enfin, on peut créer des caractère personnalisés. | ||
+ | <code C++> | ||
+ | // Créer le dessin avant le setup dans une grille de 5x8 pixels | ||
+ | byte dessin[8] = { | ||
+ | 0b00000, | ||
+ | 0b01010, | ||
+ | 0b11111, | ||
+ | 0b11111, | ||
+ | 0b11111, | ||
+ | 0b01110, | ||
+ | 0b00100, | ||
+ | 0b00000 | ||
+ | }; | ||
+ | lcd.createChar(n, | ||
+ | lcd.write(n); | ||
+ | // Si besoin, forcer le type : (unsigned char)n | ||
+ | </ | ||
+ | |||
+ | ===== Afficheur Barre de LED ===== | ||
+ | |||
+ | Cet afficheur est composé de 10 barres (Leds), 8 vertes, 1 orange et 1 rouge.\\ | ||
+ | On peut les piloter individuellement ou bien considérer qu' | ||
+ | |||
+ | Pour définir individuellement l' | ||
+ | C'est sous cette forme qu'est attendu le paramètre de la fonction setBits et le résultat renvoyé par la fonction getBits. | ||
+ | |||
+ | Pour définir un niveau, c'est un entier entre 0 et 10.\\ | ||
+ | |||
+ | |||
+ | Le programme suivant utilise toutes les fonctions disponibles : | ||
+ | |||
+ | <code C++> | ||
+ | #include < | ||
+ | |||
+ | Grove_LED_Bar barre(7, 6, 1, LED_BAR_10); | ||
+ | // Orientation : 1 = Vert à Rouge, 0 = Rouge à Vert - Autre type : LED_CIRCULAR_24 | ||
+ | |||
+ | unsigned int etat; | ||
+ | |||
+ | void setup() { | ||
+ | barre.begin(); | ||
+ | barre.setGreenToRed(1); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // Adressage individuel des Leds : setBits, getBits, setLed, toggleLed | ||
+ | barre.setBits(0x0); | ||
+ | delay(1000); | ||
+ | barre.setBits(0x3ff); | ||
+ | delay(1000); | ||
+ | barre.setBits(0b000000000000001); | ||
+ | delay(1000); | ||
+ | barre.setBits(0b000000000010100); | ||
+ | delay(1000); | ||
+ | etat = barre.getBits(); | ||
+ | etat <<= 1; // Décalage à gauche (Led 4 et 6) | ||
+ | barre.setBits(etat); | ||
+ | delay(1000); | ||
+ | etat >>= 2; // Décalage de 2 positions à droite (Led 2 et 4) | ||
+ | barre.setBits(etat); | ||
+ | delay(1000); | ||
+ | barre.setLed(1, | ||
+ | barre.setLed(2, | ||
+ | barre.toggleLed(7); | ||
+ | delay(2000); | ||
+ | // Adressage des Leds par niveaux | ||
+ | for (int i = 0; i <= 10; i++) { | ||
+ | barre.setLevel(i); | ||
+ | delay(500); | ||
+ | } | ||
+ | delay(1000); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Afficheur 4 chiffres ===== | ||
+ | |||
+ | Dans la bibliothèque TM1637 fournie pour Grove, plusieurs fonctions d' | ||
+ | ==== Avec la bibliothèque Grove (modifiée) ==== | ||
+ | |||
+ | <code C++> | ||
+ | #include " | ||
+ | |||
+ | // Définition des pins pour TM1637 : connecter sur D6 du shield Grove | ||
+ | const int CLK = 6; | ||
+ | const int DIO = 7; | ||
+ | TM1637 afficheur(CLK, | ||
+ | |||
+ | void setup() { | ||
+ | afficheur.init(); | ||
+ | afficheur.set(BRIGHT_TYPICAL); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | int potar = analogRead(A0); | ||
+ | int val = map(potar, | ||
+ | delay(150); | ||
+ | afficheur.displayNum(val); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Avec la bibliothèque alternative TM1637Display ==== | ||
+ | |||
+ | Bibliothèque de [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | <code C++> | ||
+ | #include < | ||
+ | |||
+ | // Définition des pins pour TM1637 : connecter sur D6 du shield Grove | ||
+ | const int CLK = 6; | ||
+ | const int DIO = 7; | ||
+ | |||
+ | TM1637Display afficheur(CLK, | ||
+ | |||
+ | void setup() { | ||
+ | afficheur.clear(); | ||
+ | afficheur.setBrightness(2); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | int potar = analogRead(A0); | ||
+ | int val = map(potar, | ||
+ | delay(150); | ||
+ | afficheur.showNumberDec(val); | ||
+ | } | ||
+ | </ |
diy/grove/afficheurs.1585934861.txt.gz · Dernière modification : 2020/04/03 17:27 de jbpuel