my program is like this:
static const unsigned char PROGMEM LOGO[] =
{
/* 0X00,0X01,0X80,0X00,0X1F,0X00, */
0X00,0X38,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0XFE,0X00,0X00,0X00,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X01,0XFF,0X0F,0XBF,0XF7,0X7F,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X01,0XFF,0X8F,0X1F,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X03,0XFF,0X8F,0XDF,0XFF,0XFF,0XC0,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X07,0XFF,0XCF,0XDF,0XFF,0XFF,0XE0,0X3F,0X07,0XE6,0X0F,0XC3,0X9F,0XEF,0X81,0XE0,
0X07,0XFF,0XCF,0X9F,0XFF,0XFF,0XE0,0X3F,0X8F,0XEE,0X0F,0XCF,0XDF,0XEF,0XE3,0XF0,
0X07,0XFF,0XCF,0X7F,0XFF,0XFF,0XE0,0X3F,0X0F,0X0E,0X0E,0X0E,0X67,0X8E,0XE7,0X38,
0X0F,0XFE,0X6F,0X70,0X00,0XFF,0XF0,0X7F,0X0F,0X0E,0X0E,0X1C,0X67,0X8E,0XE7,0X38,
0X08,0X30,0X6F,0XE0,0X00,0XFF,0XF0,0X7F,0X0F,0XCE,0X0F,0X9C,0X07,0X8E,0XE7,0X3C,
0X08,0X00,0X6F,0XE0,0X00,0XFF,0XF8,0X7F,0X0F,0XCE,0X0F,0X9C,0X07,0X8F,0XCF,0X3C,
0X08,0X00,0X2F,0XFF,0XFC,0XFF,0XF8,0X7F,0X0F,0X0E,0X0E,0X1C,0X27,0X8E,0XE7,0X3C,
0X08,0X00,0X2F,0XFF,0XFC,0XFF,0XF8,0X7F,0X0F,0X0E,0X0E,0X1C,0X27,0X8E,0XE7,0X38,
0X00,0X00,0X1F,0XFF,0XFC,0XFD,0XFC,0X7F,0X0F,0X0E,0X0E,0X1E,0X67,0X8E,0XE7,0X38,
0X03,0X8E,0X1F,0XFF,0XFC,0XFC,0XFC,0X7F,0X0F,0XEF,0XEF,0XCF,0XC7,0X8E,0XE3,0XF0,
0X00,0X00,0X1F,0XFF,0XFC,0XFC,0XFE,0XFF,0X00,0X18,0X43,0XC1,0XE1,0XF0,0X78,0X00,
0X00,0X00,0X2C,0XFF,0XFC,0XF8,0X72,0XFE,0X00,0X1C,0X4E,0XE3,0X31,0XDC,0XCC,0X00,
0X00,0X00,0X6D,0XE0,0X01,0XF4,0X32,0XFE,0X00,0X1E,0X4E,0X67,0X39,0XDD,0X8C,0X00,
0X00,0X00,0X0B,0XE0,0X01,0XEC,0X03,0XFE,0X00,0X1E,0X4E,0X77,0X39,0XDD,0XE0,0X00,
0X00,0X00,0X03,0XE0,0X01,0XFC,0X21,0XFE,0X00,0X1F,0X5E,0X77,0X39,0XF8,0XF8,0X00,
0X00,0X00,0X0B,0XF0,0X03,0XDC,0X3F,0XFE,0X00,0X1F,0XDE,0X77,0X39,0XFC,0XFC,0X00,
0X00,0X70,0X89,0XFF,0XFF,0XFC,0X1F,0XFE,0X00,0X13,0XCE,0X77,0X39,0XDC,0X3C,0X00,
0X02,0X00,0X08,0XFF,0XFF,0XF8,0X1F,0XFE,0X00,0X13,0XCE,0X77,0X39,0XDD,0X8C,0X00,
0X01,0X00,0X0C,0XFF,0XFF,0XF8,0X1F,0XFE,0X00,0X11,0XCE,0X67,0X39,0XDD,0X8C,0X00,
0X01,0X06,0X8D,0XFF,0XFF,0XF8,0X1F,0XFE,0X00,0X11,0XC7,0XE3,0XF1,0XFC,0XFC,0X00,
0X00,0X1B,0X89,0XFF,0XFF,0XF8,0X0F,0XFC,0X00,0X00,0X01,0X80,0XC0,0X00,0X70,0X00,
0X00,0X09,0X8B,0XFF,0XFC,0XF8,0X0F,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X0D,0XC0,0X00,0X00,0X00,0X0F,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X07,0XC0,0X00,0X00,0X00,0X07,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X07,0X80,0X00,0X00,0X00,0X00,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X01,0X00,0X00,0X00,0X00,0X00,0X08,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h> //download here: https://www.electronoobs.com/eng_arduino_Adafruit_GFX.php
#include <Adafruit_SSD1306.h> //downlaod here: https://www.electronoobs.com/eng_arduino_Adafruit_SSD1306.php
#define OLED_RESET 5
Adafruit_SSD1306 display(OLED_RESET);
int counter=125;
int buttonPin=7;
void setup() {
pinMode(7,INPUT_PULLUP);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32 or 64 from eBay)
delay(100);
display.clearDisplay();
display.display();
delay(100);
display.setTextSize(1);
display.setCursor(0,0);
display.setTextColor(WHITE);
display.println(F("SHOTS LEFT"));
}
void loop() {
if (digitalRead(buttonPin)==LOW)
{counter=counter-1;}
display.setTextSize(2);
display.setCursor(33,8);
display.setTextColor(WHITE,BLACK);
display.println(String (counter));
display.display();
//Finally display the created image
if (counter<0){counter=124;}
}
it is a counter, which minuses one every time u press the button. It works perfectly fine for numbers above 100, but when it get to 2 digits, it becomes 990, 980, 970...and when it gets to one digit, it becomes 900, 800, 700...Some help?
a video of my oled if that helps