Paso 4: Pantalla de I2C
El código es referencia de DigisparkOLED, pero puesto que su código de ejemplo cumplido tamaño es más de 6K, el ejemplo completo no se puede poner en su producto ATtiny85, Digispark o Digithumb. (requiere al comentar el código de mapa de bits para correr) El ejemplo completo sólo puede funcionar en su otro producto, Digispark Pro. (tiene alrededor de 14K flash disponible)
Aquí hay algo he revisado o reescrito:
- Recortar muchos datos no utilizados, incluyendo fuentes y mapa de bits
- Ajuste de init SSD1306 según la página de la hoja de datos de SSD1306 64
- Tratar de apoyar toda la conocida resolución (64 x 32, 32 x 128, 128 x 64)
- Fuente personalizado de apoyo
- Función para convertir OLED dentro y fuera de propósito de ahorro de energía
Utilizar biblioteca de TinyWireM, pero tiene un error (reportado), necesita revisar una línea de código en la función write() para cubrir esto:
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...
Hoja de datos de SSD1306: https://www.adafruit.com/datasheets/SSD1306.pdf
Otro instructables con ATtiny85 y SSD1306: