Pilote MicroPython pour 8x7 Segments DFRobot (DFR0646-G ou DFR0646-R)
Bonjour à tous,
Après la documentation du pilote MicroPython pour le "Gravity: 4-Digital LED Segment Display Module" dans l'article précédent.
Cette fois c'est le "Gravity: 8-Digital LED Segment Display Module" de DFRobot qui est à l'honneur.
DFR0646 - displaying "Amigos" text |
Le DFR0646 propose les caractéristiques suivantes:
- 8 chiffres
- 16 niveaux de luminosités
- Clignotement (0.5, 1, 2 hertz)
- Chipset VK16K33
- Couleur multiple (red, green)
- Expose un connecteur Gravity (pour raccordement rapide)
- DFR0646
DFR0646 : sous le capot
Ce module 8 digits utilise le chipset VK16K33 qui n'est pas très documenté... et la bibliothèque Arduino proposé par DFRobot (pour les 4 & 8 digits) est juste horreur! Je ne connais aucun programmeur qui pourrait être fier d'une telle production.
Bref, après avoir déniché la fiche technique du VK16K33 chez SparkFun et après un peu de retro-engineering, j'ai reconstitué les informations nécessaires pour comprendre comment les Digits sont contrôlés.
DFR0646 - identification des signaux Cliquer pour agrandir |
Par changes les lignes (rows) du VK16K33 sont toutes raccordées de sorte à activer les mêmes segments (A..G) de chaque digits. Les colonnes (les COMmon) sont elles raccordées séparément sur chaque digits (et dans l'ordre croissant des de gauche à droite).
Et enfin, il ne reste plus qu'à identifier la façon de coder les digits dans la mémoire du VK16K33... ce qui est maintenant relativement simple.
Encodage des segments dans un octets de la RAM du VK16K33 |
Le raccordement
Il est strictement identique à l'afficheur 4 digits.
Raccorder le module sur le Pico (ou tout autre plateforme MicroPython) est relativement simple.
Source: esp8266-upy/grav-digital-led |
Les exemples
Les exemples et raccordements sont identique à la version 4 digits (voir le dépôt)... avec une méthode en plus pour le contrôle de clignotement.
A noter que pour l'afficheur 8 digits, la bibliothèque propose le fichier ledseg8.py et la classe LedSegment8 .
Les contrôleurs étant différent pour la version 4 digits (TM1650) et la version 8 digits (VK16K33), il est préférable d'avoir des implémentations distinctes.
from machine import I2C from ledseg8 import LedSegment8, VK16K33_BLINK_1HZ, VK16K33_BLINK_2HZ, VK16K33_BLINK_0HZ5 from time import sleep # Raspberry-Pi Pico i2c = I2C(1) # sda=GP6, scl=GP7 dis = LedSegment8( i2c ) # DFR0646 8 digit LED display # Display integers dis.int( 4289213 ) sleep(2) dis.int(-4366444) sleep(2) # Display float dis.float(0.101) sleep(2) dis.float(7890.101) sleep(2) dis.float(-3.14159265) # pi # other test dis.float(-13.14159265) sleep(2) dis.float(6.283185307179586) # taux # Brightness control (0..7) for i in range( 16 ): # 0..15 dis.brightness( i ) dis.print( 'br %s' % i ) sleep(1) d = {VK16K33_BLINK_1HZ:"1 Hz", VK16K33_BLINK_2HZ:"2 Hz", VK16K33_BLINK_0HZ5 : "0.5Hz"} for freq in (VK16K33_BLINK_1HZ, VK16K33_BLINK_2HZ, VK16K33_BLINK_0HZ5): dis.print( "Bl %s" % d[freq] ) dis.blink( freq ) sleep( 5 ) dis.blink_off() dis.print( "end" ) sleep(2) # Switch display off dis.off()
Ressources
Je vous invite à jeter un oeil dans le dépôt esp8266-upy/grav-digital-led .
Le dépôt esp8266-upy reprend également de très nombreux autres pilotes MicroPython.
Liste d'achat
- Raspberry-Pi Pico @ MCHobby
- Green I2C display 4 digit 7 segments - 22 mm (SEN0645) @ MCHobby
- Green I2C display 4 digit 7 segments - 22 mm (SEN0645) @ DFRobot
- Green I2C display 8 digit 7 segments - 22 mm (SEN0646) @ MCHobby
- Green I2C display 8 digit 7 segments - 22 mm (SEN0646) @ DFRobot
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.
Écrire un commentaire