Stap 4: I2C Display
De code is verwijzing van DigisparkOLED, maar aangezien de voorbeeldcode in acht genomen grootte is meer dan 6K, in het volledige voorbeeld niet kan zetten in hun ATtiny85 product, Digispark of Digithumb. (het vereisen uitcommentariëren van de code van de bitmap voor hardlopen) In het volledige voorbeeld kan alleen worden uitgevoerd op hun een ander product, Digispark Pro. (het moet ongeveer 14K flash beschikbaar)
Hier zijn iets wat ik heb herzien of herschreven:
- Trim uit vele ongebruikte gegevens, met inbegrip van het lettertype en de bitmap
- Init SSD1306 instelling volgens de SSD1306 gegevens blad pagina 64
- Proberen te steun alle bekende resolutie (64 x 32, 128 x 32, 128 x 64)
- Ondersteuning aangepast lettertype
- Functie voor het draaien van OLED in- en uitschakelen om energie te besparen van doel
Het gebruik van TinyWireM de bibliotheek, maar het een bug (gerapporteerd), u één coderegel in write() functie hiervoor nodig herzien:
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...
Inlichtingenblad aangaande de SSD1306: https://www.adafruit.com/datasheets/SSD1306.pdf
Een ander instructables met behulp van ATtiny85 en SSD1306: