The small 0.97" and 1.3" OLED displays are great and easy to work with, here is an example:
On the older ATtiny's, like the ATtiny84a, I was only able to use the U8glib with U8x8 (text output only). Memory limitations did not allow other fonts available with U8g2. Fortunately the new ATtiny 0- and 1-series, not only have hardware SPI to control the OLED., but also more memory to use U8g2.
Example from the animation above uses the RESET, DC and CS on pins 9, 10 and 11. By placing the OLED directly underneath these pins on the breadboard it only requires 4 additional wires. 2 wires for power (VCC and GROUND), and 2 wires for the SPI (CLK on pin 16 and MOSI on pin 14).
I created the typewriter animation as follows:
#include <U8g2lib.h>
#include <SPI.h>
U8G2_SH1106_128X64_NONAME_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 11, /* dc=*/ 10, /* reset=*/ 9);
void setup(void) {
u8g2.begin();
}
char message[] = {"Hackaday!ATtiny1616"};
int posX[19] = {0,20,35,48,61,76,90,102,115, /* second row */ 0,18,33,44,54,70,84,95,106,115};
int posY[19] = {30,29,31,30,28,29,30,33,35, /* second row */ 58,61,61,60,58,59,60,63,61,60};
void loop(void) {
u8g2.clearBuffer(); // clear the internal memory
u8g2.sendBuffer(); // transfer internal memory to the display
delay(500);
u8g2.setFont(u8g2_font_ncenR18_tr); // choose a suitable font
for (byte i = 0; i < sizeof(message) - 1; i++) {
char writeText[] = {message[i],'\0'}; // Add a NULL after character
u8g2.drawStr(posX[i],posY[i],writeText); // write something to the internal memory
u8g2.sendBuffer(); // transfer internal memory to the display
delay(50);
}
delay(1000);
}
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.