OLED 2864 Display module (SKU:TOY0007)

From DFRobot Electronic Product Wiki and Tutorial: Arduino and Robot Wiki-DFRobot.com

Introduction

An OLED display works without a backlight. Thus, it can display deep black levels and can be thinner and lighter than a liquid crystal display (LCD). In low ambient light conditions such as a dark room an OLED screen can achieve a higher contrast ratio than an LCD. OLED technology is used in commercial applications such as displays for mobile phones and portable digital media players, car radios and digital cameras among others.

Specification

  • Working Voltage: 3.3v
  • Max power consumption: 20mA@3v
  • Connection & interface:
    • .NET gadgeteer connector (IDC10) - Socket: I type
    • I2C for Arduino - 2.54mm pins x6
  • compact and 128x64 high resolution
  • 0.96" oled display module
  • Support Dreamer Mega controller and .NET Gadgeteer-compatible mainboard
  • Directly support Arduino controllers
  • Switch used to enable/disable the pull-up resistors for I2C interface
  • I2C address:
    • 0x3C - DC pin connected to GND
    • 0x3D - DC pin connected to 3.3v
  • Size: 42x32x8mm


Connection Diagram

Fig: Arduino Uno and Oled 2864


Example Code

// # 
// # Editor     : Lauren from DFRobot
// # Date       : 14.11.2012
// # E-Mail		: Lauren.pan@dfrobot.com

// # Product name: OLED 2864 Display module
// # Product SKU : TOY0007
// # Version     : 1.0

// # Update the Adafruit SSD1306 library to make it work
// # Description:
// # 		show a simple animation

// # Connection:
// #        SCL  -> A5(Uno)/D3(Leonardo)
// #        SDA  -> A4(Uno)/D2(Leonardo)
// #        RST  -> D4
// #        DC  -> GND
// #        3.3  -> 3.3v
// #        g  -> GND
// #
// # Product page: 
// # 		http://www.dfrobot.com/index.php?route=product/product&product_id=802#.UKyOjE09ha0

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

static unsigned char PROGMEM Image[] =
{
  0x00, 0x78, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x03, 0x06, 0x01, 0xFB, 0xFC, 0x07, 0xFC, 0x00,
  0x07, 0xFD, 0x0F, 0xF9, 0xFF, 0xCF, 0xFE, 0x00, 0x07, 0xFE, 0x7F, 0xFB, 0xFF, 0xF3, 0xFE, 0x00,
  0x0F, 0xFC, 0xFF, 0xFF, 0xFF, 0xF9, 0xFC, 0x00, 0x0F, 0xF3, 0xFF, 0x57, 0xC7, 0xFE, 0xFA, 0x00,
  0x0E, 0x67, 0xFE, 0x94, 0xA1, 0xFF, 0x72, 0x00, 0x07, 0xEF, 0xF8, 0xA4, 0x90, 0x7F, 0x3C, 0x00,
  0x01, 0xDF, 0xF1, 0x24, 0x48, 0x37, 0x80, 0x00, 0x00, 0x1F, 0xC0, 0x24, 0x40, 0x1B, 0x80, 0x00,
  0x00, 0x1F, 0x80, 0x00, 0x00, 0x0B, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x05, 0xC0, 0x00,
  0x00, 0x37, 0x12, 0x00, 0x04, 0x81, 0xC0, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x02, 0xC0, 0x00,
  0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00,
  0x00, 0x16, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00,
  0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
  0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x92, 0x27, 0x00, 0x07, 0xE0, 0xC8, 0x00,
  0x00, 0x8E, 0x10, 0x40, 0x08, 0x00, 0x88, 0x00, 0x00, 0x42, 0x40, 0x00, 0x00, 0x04, 0x90, 0x00,
  0x00, 0x33, 0x40, 0x03, 0x80, 0x07, 0xC0, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08,
  0x78, 0x02, 0x00, 0x00, 0x08, 0x01, 0x00, 0x06, 0x68, 0x01, 0x00, 0x10, 0x10, 0x01, 0x00, 0x11,
  0x68, 0x00, 0x80, 0x0C, 0xC0, 0x04, 0x00, 0x11, 0xA8, 0x00, 0x60, 0x00, 0x00, 0x08, 0x01, 0xD3,
  0x8F, 0xFF, 0xFF, 0xF0, 0x1F, 0xFF, 0xFF, 0xF5, 0x9F, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xF1,
  0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2,
  0x5F, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x3F, 0x80, 0x13, 0x60, 0x00, 0x00, 0xFF, 0xF8,
  0x3F, 0x80, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xF8, 0x3F, 0x80, 0xBF, 0x00, 0x00, 0x00, 0x8F, 0xF8,
  0x3F, 0x00, 0x9F, 0x80, 0x00, 0x00, 0x87, 0xF8, 0x3F, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x83, 0xF8,
  0x3F, 0x01, 0xFF, 0xFE, 0x00, 0x00, 0x83, 0xF8, 0x3F, 0x03, 0xFF, 0xFF, 0x00, 0x00, 0x83, 0xF0,
  0x1F, 0x05, 0xE0, 0x3C, 0xC0, 0x00, 0xFB, 0xF0, 0x1F, 0x0F, 0x00, 0x07, 0xE0, 0x00, 0x80, 0x00,
  0x1F, 0xF8, 0x00, 0x1F, 0xF0, 0x7C, 0x40, 0x00, 0x00, 0x08, 0x00, 0x7F, 0xFB, 0xC0, 0x60, 0x00,
  0x00, 0x08, 0x01, 0xFF, 0xF8, 0x00, 0x20, 0x00, 0x00, 0x08, 0x03, 0xFF, 0xE0, 0x00, 0x30, 0x00,
  0x00, 0x04, 0x07, 0xFF, 0x40, 0x01, 0xF0, 0x00, 0x00, 0x06, 0x0F, 0xF8, 0x5F, 0xFF, 0xC0, 0x00,
  0x00, 0x02, 0x1F, 0xF1, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x01, 0x3F, 0xE2, 0x00, 0x3E, 0x00, 0x00,
  0x00, 0x00, 0xFF, 0xCC, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x1C, 0x00, 0x00,
  0x00, 0x00, 0x1F, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x04, 0x00, 0x00,
  0x00, 0x00, 0x0F, 0x80, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF8, 0x00, 0x00,
  0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xF8, 0x00, 0x00,
  0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x7D, 0xF7, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x00
};

#define OLED_RESET 4
#define DELAY 200
SSD1306 display(OLED_RESET);
int i=0;

void setup()   {                
  Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3c);     // initialize with the I2C addr 0x3C (for the 128x64)
  display.clearDisplay();   // clears the screen and buffer

  /*****Display Part1*****/
  display.drawCircle(15,10, 10, WHITE);
  display.drawLine(15,20,12,40, WHITE); 
  display.drawLine(14,27,6,22,WHITE); 
  display.drawLine(6,22,2,16,WHITE);
  display.drawLine(12,40,29,30, WHITE);
  display.drawLine(29,30,34,40, WHITE);
  display.drawLine(12,40,17,55, WHITE);
  display.drawLine(17,55,9,65, WHITE);
  display.drawLine(12,40,29,30, WHITE);
  display.drawLine(29,30,34,40, WHITE);
  display.display();

  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(40,15);
  display.println("Chinese "); 
  display.setCursor(52,30); 
  display.println("Kongfu"); 
  display.setCursor(64,45); 
  display.println(" Show "); 
  display.display();
  delay(4000);
  display.clearDisplay();   


  /*****Display Part2*****/
  /*****POSITION1-2*****/
  for(i=0;i<6;i++)
  {       
    display.drawCircle(64, 20+2*i, 10, WHITE);
    display.drawLine(64,30+2*i,64,54+0.6*i, WHITE);
    //Left Hand
    display.drawLine(64,35+1.8*i,54-0.4*i,45+0.6*i, WHITE);
    display.drawLine(54-0.4*i,45+0.6*i,59-2.6*5,45+i, WHITE);
    //Right Hand
    display.drawLine(64,35+1.8*i,74+1.2*i,45-0.2*i, WHITE);
    display.drawLine(74+1.2*i,45-0.2*i,69+1.2*i,45+i, WHITE);
    //Left Leg
    display.drawLine(64,54+0.6*i,59-2*i,59-0.4*i, WHITE);
    display.drawLine(59-2*i,59-0.4*i,54-i,64, WHITE);
    //Right Leg  
    display.drawLine(64,54+0.6*i,69+2*i,59-0.4*i, WHITE);
    display.drawLine(69+2*i,59-0.4*i,74+i,64, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();
  }
  /*****POSITION2-3*****/
  for(i=0;i<6;i++)
  {  
    display.drawCircle(64+2*i,30,10, WHITE);
    display.drawLine(64+2*i,40,64,57, WHITE);
    //Left Hand
    display.drawLine(64+1.2*i,44+0.2*i,52+1.6*i,48-0.2*i, WHITE);
    display.drawLine(52+1.6*i,48-0.2*i,46+3.6*i,50, WHITE);
    //Right Hand
    display.drawLine(64+1.2*i,44+0.2*i,80,44+0.2*i, WHITE);
    display.drawLine(80,44+0.2*i,75+2.2*i,50-i, WHITE);
    //Left Leg
    display.drawLine(64,57,49,57, WHITE);
    display.drawLine(49,57,49,64, WHITE); 
    //Right Leg  
    display.drawLine(64,57,79,57, WHITE);
    display.drawLine(79,57,79,64, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();  
  } 

  /*****POSITION3-4*****/
  for(i=0;i<6;i++)
  {  
    display.drawCircle(74-2.8*i,30-2*i,10, WHITE);
    display.drawLine(74-2.8*i,40-2*i,64-0.8*i,57-0.8*i, WHITE);
    //Left Hand
    display.drawLine(70-2*i,45-2*i,60-2.6*i,47-2.4*i, WHITE);
    display.drawLine(60-2.6*i,47-2.4*i,64-4.4*i,50-4*i, WHITE);
    //Right Hand
    display.drawLine(70-2*i,45-2*i,80-1.6*i,45+0.4*i, WHITE);
    display.drawLine(80-1.6*i,45+0.4*i,86-3.8*i,45+0.8*i, WHITE);
    //Left Leg
    display.drawLine(64-0.8*i,57-0.8*i,49+0.2*i,57-0.4*i, WHITE);
    display.drawLine(49+0.2*i,57-0.4*i,49-i,64-0.2*i, WHITE); 
    //Right Leg  
    display.drawLine(64-0.8*i,57-0.8*i,79-1.8*i,57+0.6*i, WHITE);
    display.drawLine(79-1.8*i,57+0.6*i,79-2.8*i,64, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();  
  } 

  /*****POSITION4-5*****/
  for(i=0;i<6;i++)
  {  
    display.drawCircle(60-1.2*i,20,10,  WHITE);
    display.drawLine(60-1.2*i,30,60-1.2*i,53-0.2*i, WHITE);
    //Left Hand
    display.drawLine(60-1.2*i,35,47-1.6*i,35, WHITE);
    display.drawLine(47-1.6*i,35,42-1.6*i,30, WHITE);
    //Right Hand
    display.drawLine(60-1.2*i,35,72-5.8*i,47-0.2*i, WHITE);
    display.drawLine(72-5.8*i,47-0.2*i,67-5.4*i,49-i, WHITE);
    //Left Leg
    display.drawLine(60-1.2*i,53-0.2*i,50-0.2*i,55-0.6*i, WHITE);
    display.drawLine(50-0.2*i,55-0.6*i,44,63, WHITE); 
    //Right Leg  
    display.drawLine(60-1.2*i,53-0.2*i,70-1.2*i,60-0.4*i, WHITE);
    display.drawLine(70-1.2*i,60-0.4*i,65+1.8*i,64, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();  
  } 

  /*****POSITION5-6*****/
  for(i=0;i<6;i++)
  {  
    display.drawCircle(54,20+i,10,  WHITE);
    display.drawLine(54,30+i,54,52+i, WHITE);
    //Left Hand
    display.drawLine(54,35+i,39,35+i, WHITE);
    display.drawLine(39,35+i,34,30+i, WHITE);
    //Right Hand
    display.drawLine(54,35+i,43+5.2*i,46-1.2*i, WHITE);
    display.drawLine(43+5.2*i,46-1.2*i,40+6.8*i,44-1.8*i, WHITE);
    //Left Leg
    display.drawLine(54,52+i,49-0.4*i,52+i, WHITE);
    display.drawLine(49-0.4*i,52+i,44-1.6*i,63, WHITE); 
    //Right Leg  
    display.drawLine(54,52+i,64-0.6*i,58-0.2*i, WHITE);
    display.drawLine(64-0.6*i,58-0.2*i,74-0.4*i,64-0.2*i, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();  
  } 
  /*****POSITION6-7*****/
  for(i=0;i<6;i++)
  {  
    display.drawCircle(54+3.6*i,25-0.6*i,10,  WHITE);
    display.drawLine(54+3.6*i,35-0.6*i,54+3.6*i,57-1.8*i, WHITE);
    //Left Hand
    display.drawLine(54+3.6*i,40-0.2*i,39+9.6*i,40-0.2*i, WHITE);
    display.drawLine(39+9.6*i,40-0.2*i,34+11.6*i,35+0.8*i, WHITE);
    //Right Hand
    display.drawLine(54+3.6*i,40,69-1.4*i,40, WHITE);
    display.drawLine(69-1.4*i,40,74-4*i,35+2.6*i, WHITE);
    //Left Leg
    display.drawLine(54+3.6*i,57-1.8*i,47+4*i,57-0.2*i, WHITE);
    display.drawLine(47+4*i,57-0.2*i,36+5.2*i,63+0.2*i, WHITE); 
    //Right Leg  
    display.drawLine(54+3.6*i,57-2.2*i,61+3*i,57-2.2*i, WHITE);
    display.drawLine(61+3*i,57-2.2*i,72+2.4*i,63+0.2*i, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();  
  } 

  /*****POSITION7-8*****/
  for(i=0;i<6;i++)
  {  
    display.drawCircle(72+0.8*i,22-0.4*i,10,  WHITE);
    display.drawLine(72+0.8*i,32-0.4*i,72+0.8*i,48+1.2*i, WHITE);
    //Right Hand
    display.drawLine(72+0.8*i,40-0.8*i,62+4.4*i,40-0.8*i, WHITE);
    display.drawLine(62+4.4*i,40-0.8*i,54+4.4*i,48+0.4*i, WHITE);
    //Left Hand
    display.drawLine(72+0.8*i,39-0.8*i,87-4.2*i,39-0.8*i, WHITE);
    display.drawLine(87-4.2*i,39-0.8*i,92-6.4*i,39-0.8*i, WHITE); 
    //Left Leg
    display.drawLine(72+0.8*i,48+0.8*i,67-2.2*i,56-2.2*i, WHITE);
    display.drawLine(67-2.2*i,56-2.2*i,62-1.6*i,64-2.8*i, WHITE);
    //Right Leg  
    display.drawLine(72+0.8*i,46+1.6*i,76,46+2.8*i, WHITE);
    display.drawLine(76,46+2.8*i,84-1.6*i,64, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();  
  } 
  delay(400);
  /*****POSITION8-1*****/
  for(i=0;i<6;i++)
  {  
    display.drawCircle(76-2.4*i,20,10,  WHITE);
    display.drawLine(76-2.4*i,30,76-2.4*i,54, WHITE);
    //Left Hand
    display.drawLine(76-2.4*i,35,66-2.4*i,35+2*i, WHITE);
    display.drawLine(66-2.4*i,35+2*i,60-0.2*i,35+2*i, WHITE);
    //Right Hand
    display.drawLine(76-2.4*i,36-0.2*i,84-2*i,44+0.2*i, WHITE);
    display.drawLine(84-2*i,44+0.2*i,76-1.4*i,50-i, WHITE);
    //Left Leg
    display.drawLine(76-2.4*i,52+0.4*i,56+0.6*i,45+2.8*i, WHITE);
    display.drawLine(56+0.6*i,45+2.8*i,54,50+2.8*i, WHITE); 
    //Right Leg  
    display.drawLine(76-2.4*i,54,76-1.4*i,60-0.2*i, WHITE);
    display.drawLine(76-1.4*i,60-0.2*i,76-0.4*i,64, WHITE);

    display.display();
    delay(DELAY);

    display.clearDisplay();  
  } 
  delay(2000);

  display.drawBitmap(0,0,Image,64,64, WHITE);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(66,20);
  display.println("Welcome to"); 
  display.setCursor(80,32); 
  display.println("Visit"); 
  display.setCursor(62,44); 
  display.println("www.DFRobot"); 
  display.setCursor(80,56);
  display.println(".com! "); 
  display.display();  
  display.startscrollleft(0x00, 0x0F); 
  delay(21450);
  display.stopscroll();
}
void loop() {

}

Documents




Nextredirectltr.pngGo Shopping Oled 2864 display module