/* display_nokia_5110_u8g2_counter.ino Mithat Konar Test screen update speed with large solid fonts on a Nokia 5110 screen that uses the PCD8544 controller. Notes: Consumes 42% of program storage space and 24% of dynamic memory on a Pro Mini. String storage may not be not optimized. Frame rate without additional LOOP_DELAY is about 10 fps with 8MHz processor. */ /* * Pin assignments: * RST: 8 * CE/CS/SCE: 10 * DC/"D/C": 9 * DIN/DN/MOSI/DATA: 11 * CLK/SCLK/SCK: 13 * VCC: 3.3V * LIGHT/LED: ground through 330 ohm resistor * GND: ground */ #include const unsigned int CLOCK_PIN = 13, DATA_PIN = 11, CS_PIN = 10, DC_PIN = 9, RESET_PIN = 8; U8G2_PCD8544_84X48_1_4W_HW_SPI disp(U8G2_R0, CS_PIN, DC_PIN, RESET_PIN); // HW SPI unsigned int counter = 80; char dispStr[4]; // null terminated char array used to pass to renderer. const unsigned int LOOP_DELAY = 500; // msec of additional loop delay void setup(void) { disp.begin(); disp.setContrast(145); disp.setColorIndex(1); } void loop(void) { counter = (counter + 1) % 1000; // picture loop disp.firstPage(); do { disp.setFont(u8g2_font_5x8_tr); disp.drawStr(0, 6, "PCD8544 u8g2"); disp.setFont(u8g2_font_logisoso38_tr); String(counter).toCharArray(dispStr, 4); disp.drawStr( 0, 47, dispStr); } while (disp.nextPage()); // delay(LOOP_DELAY); }