The first thing we need is to install the library to allow us to write to the display. If you have never installed a library, you can watch this video that shows you how. For this project the two libraries we're looking for are both by Adafruit and called "Adafruit GFX" and "Adafruit SSD1306" which looks like this in the Library Manager:
OLED VCC pin --> 5V or Red pin on Arduino
OLED GND pin --> GND or Black pin
OLED SCL pin --> D3 (Yellow pin)
OLED SDA pin --> D2 (Yellow pin)
These displays are monochromatic (only displays in one color). Any image you want to display needs to be converted before use. You can use image2cpp to convert BMPs to code and ensure it's set to horizontal encoding.
/**************************************************************************
This is an attempt to make an animation of a bike rider going across the
screen of a small OLED display powered by an Arduino. Also requires
another file, bikes.ino
**************************************************************************/
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "bikes.h"
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
int XPOS = 91;
int bikeCounter = 0;
int dcXPOS = 0;
int dir = 1;
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
// The pins for I2C are defined by the Wire-library.
// On an arduino LEONARDO: 2(SDA), 3(SCL)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
// Show initial display buffer contents on the screen --
// the library initializes this with an Adafruit splash screen.
display.display();
delay(250); // Pause
// Clear the buffer
display.clearDisplay();
}
void loop() {
testdrawbitmap(); // Draw a small bitmap image
}
// '3', 54x48px
const unsigned char bike3 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff,
0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x03, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00,
0x07, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff,
0xdf, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x83, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x01, 0xe0,
0x00, 0x00, 0x00, 0x0f, 0xff, 0xc0, 0xf8, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x78, 0x00, 0x00,
0x00, 0x07, 0xff, 0xf0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf8, 0x7e, 0x80, 0x00, 0x00, 0x00,
0x7f, 0xfc, 0x0f, 0x30, 0x00, 0x00, 0x00, 0x3f, 0xfe, 0x07, 0xd8, 0x00, 0x00, 0x00, 0x3f, 0xfe,
0xfd, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x07, 0xf0,
0x00, 0x00, 0x00, 0x19, 0xfc, 0x02, 0x00, 0x00, 0x00, 0x00, 0x49, 0xfc, 0x06, 0x00, 0x00, 0x00,
0xfc, 0x8b, 0xf8, 0x0a, 0xfc, 0x00, 0x03, 0x87, 0x8f, 0xf8, 0x17, 0x87, 0x00, 0x0c, 0x01, 0xcf,
0xf8, 0x2d, 0x00, 0xc0, 0x18, 0x01, 0x2f, 0xf0, 0x59, 0x00, 0x60, 0x30, 0x02, 0x1e, 0x70, 0xf0,
0x80, 0x30, 0x20, 0x02, 0x1e, 0x71, 0xe0, 0x80, 0x10, 0x40, 0x04, 0x3e, 0xf3, 0x40, 0x80, 0x08,
0x40, 0x04, 0x7d, 0xf6, 0xc0, 0xc0, 0x08, 0xc0, 0x08, 0xfd, 0xfc, 0x80, 0x40, 0x04, 0x80, 0x09,
0xf5, 0xf8, 0x80, 0x40, 0x04, 0x80, 0x11, 0xf7, 0xff, 0x80, 0x20, 0x04, 0x80, 0x3d, 0xf4, 0xff,
0x80, 0x30, 0x04, 0x80, 0x10, 0x7c, 0xb7, 0x80, 0x00, 0x04, 0x80, 0x04, 0x3d, 0xf0, 0x80, 0x00,
0x04, 0xc0, 0x00, 0xbc, 0x10, 0x80, 0x00, 0x08, 0x40, 0x00, 0x0e, 0x20, 0xc0, 0x00, 0x08, 0x60,
0x00, 0x0b, 0xc0, 0x40, 0x00, 0x18, 0x20, 0x00, 0x10, 0x00, 0x20, 0x00, 0x10, 0x10, 0x00, 0x30,
0x00, 0x30, 0x00, 0x20, 0x0c, 0x00, 0x60, 0x00, 0x18, 0x00, 0x40, 0x06, 0x01, 0x80, 0x00, 0x0e,
0x01, 0x80, 0x01, 0xff, 0x00, 0x00, 0x03, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
};
// '4', 54x48px
const unsigned char bike4 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xfe, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x23, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00,
0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff,
0xdf, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x83, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x01, 0xe0,
0x00, 0x00, 0x00, 0x0f, 0xff, 0x80, 0xf8, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe0, 0x78, 0x00, 0x00,
0x00, 0x07, 0xff, 0xf0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc, 0x7e, 0x80, 0x00, 0x00, 0x00,
0xff, 0xfc, 0x0f, 0x30, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x07, 0xd8, 0x00, 0x00, 0x00, 0x3f, 0xfc,
0xfd, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xf8, 0x07, 0xf0,
0x00, 0x00, 0x00, 0x1f, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xe0, 0x06, 0x00, 0x00, 0x00,
0xfc, 0x8f, 0xc0, 0x0a, 0xfc, 0x00, 0x03, 0x87, 0x9f, 0xc0, 0x17, 0x87, 0x00, 0x0c, 0x01, 0xff,
0xc0, 0x2d, 0x00, 0xc0, 0x18, 0x01, 0x7f, 0xc0, 0x59, 0x00, 0x60, 0x30, 0x02, 0xff, 0xc0, 0xf0,
0x80, 0x30, 0x20, 0x02, 0x7f, 0xc1, 0xe0, 0x80, 0x10, 0x40, 0x04, 0x1f, 0xc3, 0x40, 0x80, 0x08,
0x40, 0x04, 0x0f, 0xc6, 0xc0, 0xc0, 0x08, 0xc0, 0x08, 0x0f, 0x8c, 0x80, 0x40, 0x04, 0x80, 0x08,
0x07, 0x98, 0x80, 0x40, 0x04, 0x80, 0x10, 0x07, 0xb0, 0x80, 0x20, 0x04, 0x80, 0x3c, 0x07, 0xf0,
0x80, 0x30, 0x04, 0x80, 0x10, 0x7f, 0xd0, 0x80, 0x00, 0x04, 0x80, 0x04, 0x0f, 0xd0, 0x80, 0x00,
0x04, 0xc0, 0x00, 0x87, 0xd0, 0x80, 0x00, 0x08, 0x40, 0x00, 0x0f, 0xfc, 0xc0, 0x00, 0x08, 0x60,
0x00, 0x0b, 0xfc, 0x40, 0x00, 0x18, 0x20, 0x00, 0x11, 0x9c, 0x20, 0x00, 0x10, 0x10, 0x00, 0x30,
0x00, 0x30, 0x00, 0x20, 0x0c, 0x00, 0x60, 0x00, 0x18, 0x00, 0x40, 0x06, 0x01, 0x80, 0x00, 0x0e,
0x01, 0x80, 0x01, 0xff, 0x00, 0x00, 0x03, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
};
// '1', 54x48px
const unsigned char bike1 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
0x1e, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff,
0xfe, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x61, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00,
0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff,
0xdf, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xc3, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf1, 0xe0,
0x00, 0x00, 0x00, 0x0f, 0xff, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfe, 0x78, 0x00, 0x00,
0x00, 0x07, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0x7e, 0x80, 0x00, 0x00, 0x01,
0xfe, 0x3e, 0x0f, 0x30, 0x00, 0x00, 0x00, 0xfe, 0x7e, 0x07, 0xd8, 0x00, 0x00, 0x00, 0x7f, 0xfc,
0xfd, 0xf8, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xf0, 0x07, 0xf0,
0x00, 0x00, 0x00, 0x1f, 0xe0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xc0, 0x06, 0x00, 0x00, 0x00,
0xfc, 0x8f, 0xc0, 0x0a, 0xfc, 0x00, 0x03, 0x87, 0x8f, 0x80, 0x17, 0x87, 0x00, 0x0c, 0x01, 0xcf,
0x80, 0x2d, 0x00, 0xc0, 0x18, 0x01, 0x2f, 0x00, 0x59, 0x00, 0x60, 0x30, 0x02, 0x1f, 0x80, 0xf0,
0x80, 0x30, 0x20, 0x02, 0x1f, 0xc1, 0xe0, 0x80, 0x10, 0x40, 0x04, 0x0f, 0xf3, 0x40, 0x80, 0x08,
0x40, 0x04, 0x0f, 0xe6, 0xc0, 0xc0, 0x08, 0xc0, 0x08, 0x0f, 0x6c, 0x80, 0x40, 0x04, 0x80, 0x08,
0x0f, 0x98, 0x80, 0x40, 0x04, 0x80, 0x10, 0x1f, 0xb0, 0x80, 0x20, 0x04, 0x80, 0x3c, 0x1c, 0xb0,
0x80, 0x30, 0x04, 0x80, 0x10, 0x7c, 0x90, 0x80, 0x00, 0x04, 0x80, 0x04, 0x3d, 0x90, 0x80, 0x00,
0x04, 0xc0, 0x00, 0xbc, 0x90, 0x80, 0x00, 0x08, 0x40, 0x00, 0x3e, 0x20, 0xc0, 0x00, 0x08, 0x60,
0x00, 0x3f, 0xe0, 0x40, 0x00, 0x18, 0x20, 0x00, 0x11, 0x80, 0x20, 0x00, 0x10, 0x10, 0x00, 0x31,
0x80, 0x30, 0x00, 0x20, 0x0c, 0x00, 0x60, 0x00, 0x18, 0x00, 0x40, 0x06, 0x01, 0x80, 0x00, 0x0e,
0x01, 0x80, 0x01, 0xff, 0x00, 0x00, 0x03, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
};
// '2', 54x48px
const unsigned char bike2 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xfe, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00,
0x00, 0x00, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x23, 0xff, 0xff, 0xb0, 0x00, 0x00, 0x00,
0x03, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x0f, 0xff,
0xdf, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x83, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xe1, 0xe0,
0x00, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0xf8, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xfc, 0x78, 0x00, 0x00,
0x00, 0x07, 0xff, 0xfe, 0x7c, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x7e, 0x80, 0x00, 0x00, 0x00,
0xff, 0xfe, 0x0f, 0x30, 0x00, 0x00, 0x00, 0x7f, 0x1e, 0x07, 0xd8, 0x00, 0x00, 0x00, 0x3f, 0xbe,
0xfd, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x07, 0xf0,
0x00, 0x00, 0x00, 0x1f, 0xf8, 0x02, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xf0, 0x06, 0x00, 0x00, 0x00,
0xfc, 0x8f, 0xf0, 0x0a, 0xfc, 0x00, 0x03, 0x87, 0x8f, 0xe0, 0x17, 0x87, 0x00, 0x0c, 0x01, 0xcf,
0xe0, 0x2d, 0x00, 0xc0, 0x18, 0x01, 0x2f, 0xe0, 0x59, 0x00, 0x60, 0x30, 0x02, 0x1f, 0xc0, 0xf0,
0x80, 0x30, 0x20, 0x02, 0x1f, 0xe1, 0xe0, 0x80, 0x10, 0x40, 0x04, 0x1f, 0xfb, 0x40, 0x80, 0x08,
0x40, 0x04, 0x1f, 0xfe, 0xc0, 0xc0, 0x08, 0xc0, 0x08, 0x3d, 0x1c, 0x80, 0x40, 0x04, 0x80, 0x08,
0x7d, 0x98, 0x80, 0x40, 0x04, 0x80, 0x10, 0x7f, 0xb0, 0x80, 0x20, 0x04, 0x80, 0x3c, 0xfc, 0x30,
0x80, 0x30, 0x04, 0x80, 0x10, 0xfc, 0xd0, 0x80, 0x00, 0x04, 0x80, 0x05, 0xfd, 0x90, 0x80, 0x00,
0x04, 0xc0, 0x00, 0xfc, 0x10, 0x80, 0x00, 0x08, 0x40, 0x00, 0x1e, 0x20, 0xc0, 0x00, 0x08, 0x60,
0x00, 0x1f, 0xc0, 0x40, 0x00, 0x18, 0x20, 0x00, 0x14, 0x00, 0x20, 0x00, 0x10, 0x10, 0x00, 0x30,
0x00, 0x30, 0x00, 0x20, 0x0c, 0x00, 0x60, 0x00, 0x18, 0x00, 0x40, 0x06, 0x01, 0x80, 0x00, 0x0e,
0x01, 0x80, 0x01, 0xff, 0x00, 0x00, 0x03, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
};
// 'DC', 192x16px
const unsigned char bikeDC [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x83, 0xf8, 0x07, 0xc1, 0xc7, 0x0e, 0x70,
0xe7, 0xf8, 0xfe, 0x00, 0x07, 0xc3, 0x87, 0x38, 0xfe, 0x1e, 0x0f, 0x1c, 0x39, 0xe1, 0xce, 0x1c,
0x7f, 0xc3, 0xfc, 0x1f, 0xe1, 0xc7, 0x0c, 0x78, 0xe7, 0xf8, 0xff, 0x00, 0x1f, 0xe3, 0x87, 0x38,
0xff, 0x1f, 0x0f, 0x1c, 0x39, 0xf1, 0xce, 0x38, 0x7f, 0xe3, 0xfe, 0x1f, 0xf1, 0xc7, 0x9c, 0x78,
0xe7, 0xf8, 0xff, 0x80, 0x1f, 0xe3, 0x87, 0x38, 0xff, 0x9f, 0x1f, 0x1c, 0x39, 0xf1, 0xce, 0x78,
0x70, 0xe3, 0x8e, 0x3c, 0x79, 0xc7, 0x9c, 0x78, 0xe7, 0x00, 0xe3, 0xc0, 0x3c, 0x23, 0x87, 0x38,
0xe3, 0x9f, 0x1f, 0x1c, 0x39, 0xf1, 0xce, 0xf0, 0x70, 0xf3, 0x8e, 0x38, 0x39, 0xcf, 0x9c, 0x7c,
0xe7, 0x00, 0xe1, 0xc0, 0x38, 0x03, 0x87, 0x38, 0xe3, 0x9f, 0x9f, 0x1c, 0x39, 0xf9, 0xce, 0xe0,
0x70, 0x73, 0x8e, 0x38, 0x38, 0xcd, 0x9c, 0x7c, 0xe7, 0x00, 0xe1, 0xc0, 0x78, 0x03, 0x8f, 0x38,
0xe3, 0x9f, 0xbf, 0x1c, 0x39, 0xf9, 0xcf, 0xc0, 0x70, 0x73, 0xfc, 0x38, 0x38, 0xed, 0x9c, 0x6e,
0xe7, 0xf8, 0xe1, 0xc0, 0x70, 0x03, 0xff, 0x38, 0xff, 0x9d, 0xb7, 0x1c, 0x39, 0xd9, 0xcf, 0xc0,
0x70, 0x73, 0xf8, 0x38, 0x38, 0xed, 0xb8, 0x66, 0xe7, 0xf8, 0xe1, 0xc0, 0x70, 0x03, 0xff, 0x38,
0xff, 0x1d, 0xf7, 0x1c, 0x39, 0xdd, 0xcf, 0xc0, 0x70, 0x73, 0xfc, 0x38, 0x38, 0xed, 0xf8, 0x67,
0xe7, 0xf8, 0xe1, 0xc0, 0x78, 0x03, 0xff, 0x38, 0xff, 0x1c, 0xf7, 0x1c, 0x39, 0xcd, 0xcf, 0xe0,
0x70, 0x73, 0xbc, 0x38, 0x38, 0xfc, 0xf8, 0x67, 0xe7, 0x00, 0xe1, 0xc0, 0x38, 0x03, 0x87, 0x38,
0xe0, 0x1c, 0xe7, 0x1c, 0x79, 0xcf, 0xce, 0xe0, 0x70, 0xf3, 0x9e, 0x38, 0x78, 0xf8, 0xf8, 0x63,
0xe7, 0x00, 0xe3, 0xc0, 0x38, 0x03, 0x87, 0x38, 0xe0, 0x1c, 0xe7, 0x1c, 0x71, 0xc7, 0xce, 0xf0,
0x7b, 0xe3, 0x8e, 0x3e, 0xf0, 0x78, 0xf8, 0x63, 0xe7, 0x80, 0xef, 0x80, 0x3e, 0xe3, 0x87, 0x38,
0xe0, 0x1c, 0x47, 0x1e, 0xf1, 0xc7, 0xce, 0x78, 0x7f, 0xc3, 0x8f, 0x1f, 0xf0, 0x78, 0xf0, 0x61,
0xe7, 0xf8, 0xff, 0x80, 0x1f, 0xe3, 0x87, 0x38, 0xe0, 0x1c, 0x07, 0x0f, 0xf1, 0xc3, 0xce, 0x3c,
0x7f, 0x83, 0x87, 0x0f, 0xe0, 0x78, 0xf0, 0x61, 0xe7, 0xf8, 0xff, 0x00, 0x0f, 0xe3, 0x87, 0x38,
0xe0, 0x1c, 0x07, 0x0f, 0xe1, 0xc3, 0xce, 0x1e, 0x3c, 0x01, 0x87, 0x03, 0x00, 0x30, 0x70, 0x60,
0xc3, 0xf8, 0xf8, 0x00, 0x03, 0x03, 0x06, 0x18, 0xc0, 0x0c, 0x03, 0x01, 0x80, 0xc1, 0x86, 0x0c
};
// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 1312)
const int bikeallArray_LEN = 4;
const unsigned char* bikeallArray[4] = {
bike1,
bike2,
bike3,
bike4
};
void testdrawbitmap() {
display.clearDisplay();
display.drawBitmap((dcXPOS-55),0,bikeDC, 192, 16, 1);
display.drawBitmap((XPOS-55),16,bikeallArray[bikeCounter], 55, 48, 1);
display.display();
dcXPOS = (dcXPOS-(dir));
if((dcXPOS > 60) || (dcXPOS < -60)) dir=-dir;
XPOS = (XPOS+3)%(128+55);
bikeCounter = (++bikeCounter)%4;
delay(50);
}