Reply to topic  [ 1 post ] 
TinyScreen 96 x 64 OLED Colour Display (HCTICI0031) 
Author Message
Site Admin

Joined: Sun Aug 05, 2012 4:15 pm
Posts: 643
Post TinyScreen 96 x 64 OLED Colour Display (HCTICI0031)
Image

See our Tiny Circuits Range Here.


Image

TinyScreen is a beautiful colour OLED display for your TinyDuino system. Create video games, a video player, or your own smart watch using this Tiny OLED screen! The screen is 0.96" diagonal with a resolution of 96x64 RGB pixels, each with 16-bit colour. Since this is an OLED, there is no backlight needed and the screen is very bright with excellent colours. Four buttons are located along the side of the screen to allow for user input - like for playing games or creating menus for your projects (like is done on the TinyScreen Smartwatch project). The screen has a built in IO expander over I2C for control signals and button control, which eliminates using extra pins on the TinyDuino for this.

The screen uses an SSD1331 driver for the OLED display, and we have a highly optimized and easy to use library for this which supports both the OLED screen and the buttons on the board, even allowing for 20FPS+ video playback from a microSD with the TinyDuino. It's also very easy to create your own projects to display text and graphics, or create your own tiny games.

The TinyScreen is also available with an alternative device address, which allows two TinyScreens to be used on the same TinyDuino stack when used with a Ribbon Cable Extender.



Image

96x64 OLED display, 16-bit colour depth
0.96" (24.4mm) viewable area
Total Size: 1.02" x 0.98" (25.8mm x 25.0mm)
Software controllable backlight (OLED brightness)
Power down mode
Four push buttons along the sides (connected to IO pins)
SPI interface for display
3.0V to 5.5V operation (higher voltages supported with TinyShield power regulator)
20 - 45mA max supply current (depending on brightness)
Dimensions: 25.8mm x 25mm (1.01 inches x .984 inches)
Max Height (from lower bottom TinyShield Connector to upper to of screen): 4.40mm (0.173inches)
Weight: 3.2 grams (.113 ounces)
I2C and SPI Mode used
Arduino pins A4 & A5 used, MOSI and SCK Used. Chip select and control signals generate by on board I2C GPIO Expander

Image


Image

Code:
#define   BLACK           0x00
#define   BLUE            0xE0
#define   RED             0x03
#define   GREEN           0x1C
#define   DGREEN           0x0C
#define YELLOW          0x1F
#define WHITE           0xFF
#define ALPHA           0xFE
#define   BROWN           0x32

uint8_t amtcolors=7;
uint8_t colors[]={BLACK,BLUE,RED,GREEN,WHITE,DGREEN,YELLOW};

uint8_t i=0;
 
uint8_t nextColor(){
  if(i>=amtcolors)i=0;
  return colors[i++];
}
 
#include <TinyScreen.h>
#include <SPI.h>
#include <Wire.h>

TinyScreen display = TinyScreen(0);


void setup(void) {
  Wire.begin();
  display.begin();
}

void loop() {
  display.setFont(liberationSans_10ptFontInfo);
  display.fontColor(WHITE,BLACK);
 
  for(int i=5;i<20;i++){
    display.setCursor((3000-(i*5))%70,(i*14)%50);
    display.print("text");
    display.setCursor((i*7)%70,(6000-(i*6))%50);
    display.print("text");
    delay(150);
  }
  for(int i=0;i<5;i++){
    display.setCursor(0,i*12);
    display.print("FASTFASTFASTFAST");
  }
  delay(200);
 
  for(int i=5;i<70;i++){
    display.setCursor((3000-(i*5))%70,(i*14)%50);
    display.fontColor(i|(i<<4),nextColor());
    display.print("color");
    display.setCursor((i*7)%70,(6000-(i*6))%50);
    display.print("COLOR");
  }
  display.fontColor(WHITE,BLACK);
  display.clearWindow(0,0,96,64);
  display.setFont(liberationSans_8ptFontInfo);
  display.setCursor(0,0);
  display.print("SIZE");
  delay(200);
  display.setFont(liberationSans_12ptFontInfo);
  display.setCursor(10,10);
  display.print("SIZE");
  delay(200);
  display.setFont(liberationSans_14ptFontInfo);
  display.setCursor(24,24);
  display.print("SIZE");
  delay(200);
  display.setFont(liberationSans_16ptFontInfo);
  display.setCursor(40,40);
  display.print("SIZE");
  delay(200);
 
 
  display.setCursor(15,20);
  display.fontColor(BLACK,WHITE);
  display.clearWindow(0,0,96,64);
  display.setBrightness(15);
  display.drawRect(0,0,96,64,1,WHITE);
  display.print("BRIGHT!");
  delay(500);
  display.fontColor(WHITE,BLACK);
  display.setCursor(30,20);
  display.clearWindow(0,0,96,64);
  display.setBrightness(0);
  display.print("DIM!");
  delay(500);
  display.setBrightness(5);
 
 
  display.fontColor(YELLOW,BLACK);
  display.setCursor(15,15);
  display.clearWindow(0,0,96,64);
  display.print("Boxes!");
  delay(200);
  for(int i=5;i<800;i++){
    int x=(3000-(i*5))%90;
    int y=(i*14)%60;
    int width=((i*7)%(90-x));
    int height=((6000-(i*6))%(60-y));
    display.drawRect(x,y,constrain(width,5,20),constrain(height,5,15),i&1,nextColor());
    if(i<10)
      delay(40);
    if(i<50)
      delay(40);
  }
  delay(500);
  display.clearWindow(0,0,96,64);
}



Image

Attachment:
HCTICI0031_Schematic.pdf


The library for this screen can be downloaded from the TinyCircuits GitHub page here:
https://github.com/TinyCircuits/TinyCir ... Screen_Lib


You do not have the required permissions to view the files attached to this post.

_________________
Comments made by this poster do not necessarily reflect the views of Hobby Components Ltd.


Wed Oct 07, 2015 1:03 pm
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 1 post ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Thank you to phpBB.com & phpBB.ro.
Design created by Florea Cosmin Ionut.
© 2011 All contents of this site are © Hobby Components LTD