Étape 4: I2C afficheur
Le code est la référence de le DigisparkOLED, mais puisque son code exemple respecté taille est plus de 6K, un exemple complet ne peut pas mettre sur leur produit de ATtiny85, Digispark ou Digithumb. (il exige de présenter des observations sur le code de l’image bitmap pour la course) L’exemple complet ne peut exécuter que sur un autre produit, Digispark Pro. (il a environ 14K flash disponible)
Voici quelque chose que j’ai révisé ou réécrite :
- Tailler les nombreuses données inutilisées, y compris les polices et bitmap
- Init SSD1306 réglage selon la page de feuille de données 64 SSD1306
- Essayez d’appuyer toutes les résolution connue (128 x 32, 64 x 32, 128 x 64)
- Police personnalisée de prise en charge
- Fonction pour le tournage OLED sur et en dehors pour fins d’économie d’énergie
Il utilise la bibliothèque de TinyWireM, mais il a un bug (signalé), vous devez réviser une seule ligne de code de fonction write() pour couvrir ce :
if (USI_BufIdx >= USI_BUF_SIZE - 1) return 0; // dont blow out the buffer
Ref. :
TinyWireM : https://github.com/adafruit/TinyWireM
DigisparkOLED : https://github.com/digistump/DigistumpArduino/tre...
Fiche de données de SSD1306 : https://www.adafruit.com/datasheets/SSD1306.pdf
Instructables un autre à l’aide de ATtiny85 et SSD1306 :