Attiny44/84: display ssd1306

Ciao!

questo post è nato dall'esigenza di pilotare un piccolo display con un ATTiny44.

il display ssd1306 era perfetto perché molto diffuso, e pilotabile utilizzando pochi pin grazie all'I2C.

Il problema è la memoria flash a disposizione del piccolo ATTiny44, solo 4Kbytes, e le più popolari librerie per il display ssd1306 hanno bisogno di molto spazio.

Si potrebbe passare alla taglia superiore, infatti l'ATTiny84 ha a disposizione il doppio della memoria, ma c'è un'altra possibilità.


la libreria ssd1306ascii utilizza circa 3Kbytes di memoria, non permette di realizzare elementi grafici ma solo caratteri, però ci sta!

Potete installarla direttamente dal menu di Arduino (strumenti, gestione librerie) oppure manualmente da github

Dopo averla installata non vi resta che caricare l'esempio che trovate qui sotto nel vostro Attiny (se non sapete come fare qui trovate come programmare un attiny x4 con Arduino)

  1. #include <Wire.h>
  2. #include "SSD1306Ascii.h"
  3. #include "SSD1306AsciiWire.h"
  4.  
  5. // 0X3C+SA0 - 0x3C or 0x3D
  6. #define I2C_ADDRESS 0x3C
  7.  
  8. // Define proper RST_PIN if required.
  9. #define RST_PIN -1
  10.  
  11. SSD1306AsciiWire oled;
  12.  
  13. void setup() {
  14.   delay(1000);
  15.   Wire.begin();
  16.   Wire.setClock(33000L);
  17.   delay(1000);
  18.  
  19. #if RST_PIN >= 0
  20.   oled.begin(&Adafruit128x32, I2C_ADDRESS, RST_PIN);
  21. #else // RST_PIN >= 0
  22.   oled.begin(&Adafruit128x32, I2C_ADDRESS);
  23. #endif // RST_PIN >= 0
  24.  
  25.   oled.setFont(System5x7);
  26.   oled.clear();
  27.   oled.print("Hello world!");
  28.   delay (2000);
  29.   oled.clear();
  30. }
  31. void loop()
  32. {
  33.   delay (5);
  34.   oled.setCursor(0,0);
  35.   oled.print(millis());
  36. }



Ecco lo schema di collegamento (è comune agli attiny44 e 84):

link utili:
datasheet attinyx4


Questo è tutto,
per qualsiasi domanda lascia pure un commento.


Seguimi sulle mie pagine per rimanere sempre aggiornato sui nuovi post!

Nessun commento:

Posta un commento

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post