Go Down

Topic: Display Oled.. funciona o no funciona? esa es la cuestion (Read 498 times) previous topic - next topic

maxid

Me compre 2 modulos oled por ebay y no se si estan rotos, le falta algo o no se como hacerlos funcionar.
Baje varias librerias incluso de darafruit y otros que muestran el mismisimo display.
Aparentemente digo asi porque ya me entró la duda usan I2C, pero no pinta ni un punto en la pantalla.
Alguien que me de una mano para saber si sirven o no?
El que pregunta aprende, el que responde aprende a responder.

American2020

#1
Apr 27, 2013, 04:46 am Last Edit: Apr 27, 2013, 05:15 am by American2020 Reason: 1
Comenta cómo lo has conectado y qué código has usado.

Mientras dejo esto acá, para no perder este link, hablan de lo mismo en el foro en inglés.

http://arduino.cc/forum/index.php?topic=128807.0
My 3x3x3 Led Cube

[url=http://arduino.cc/forum/index.php/topic,1642

maxid

Gracias por tu interes
en ese hilo hablan de otro con spi. Igual contacte a la persona que me lo vendió, y me dio para que pruebe este sketch, pero no hay mas información que esta. incluso en la pagina que menciona.
en el footprint dice 5v, espero sea esa, sino se quemaron. Quizas tenga que usar otra direccion de i2c




//==========================================================//
//-------------------------WWW.WIDE.HK----------------------//
//-----i2c OLED example-------------------------------------//
//-----Function : show 128x64 Graphic , Word and animation--//
//-----SCL = A5  ,  SDA = A4 , VCC = 3.3V-5V , GND----------//
//==========================================================//


#include <Wire.h>
//---------------FONT + GRAPHIC-----------------------------//
#include <M:\i2c OLED\data.c>
//==========================================================//


#define OLED_address  0x3c

unsigned char fill_OLED=0x55;
unsigned char fill_string1[]="WWW.WIDE.HK";
unsigned char fill_string2[]="OLED 128*64";
unsigned char fill_string3[]="0123456789ABCDEF";
unsigned char fill_string4[]="Arduino 328";
extern unsigned char myFont[][8];
extern unsigned char logo[];
extern unsigned char ip[];

//==========================================================//
void print_a_char(unsigned char ascii=0)
{
  unsigned char i=0;
  for(i=0;i<8;i++)
  {
    SendChar(myFont[ascii-0x20]);
  }
}

//==========================================================//
void setup()
{

  Wire.begin();
  init_OLED();
  delay(10);
  clear_display();
  delay(50);
}

//==========================================================//
void loop()
{
  clear_display();
  delay(50);

  sendcommand(0x20);            //Set Memory Addressing Mode
  sendcommand(0x02);            //Set Memory Addressing Mode ab Page addressing mode(RESET) 

  sendcommand(0xa6);            //Set Normal Display (default)
  //====================SHOW FONTS ARRAY[1-4]=======================//
  setXY(2,3);
  sendStr(fill_string1);
  setXY(3,3);
  sendStr(fill_string2);
  setXY(4,3);
  sendStr(fill_string3);
  setXY(5,3);
  sendStr(fill_string4);

  delay(2000);
  sendcommand(0xa7);  //Set Inverse Display 
  delay(2000);

  clear_display();
  delay(50); 

  sendcommand(0xa6);  //Set Normal Display

  sendcommand(0xae);      //display off
  sendcommand(0x20);            //Set Memory Addressing Mode
  sendcommand(0x00);            //Set Memory Addressing Mode ab Horizontal addressing mode


//==========================================================//
  for(int i=0;i<128*8;i++)     // show 128* 64 picture
  {
    SendChar(logo);
  }
//==========================================================//


  sendcommand(0xaf);
  delay(2000);
  sendcommand(0xa7);    //Set Inverse Display
  delay(2000); 

  while(1)
  {
    //sendcommand(0xa6);  Set Normal Display
    sendcommand(0x29);  //Vertical and Horizontal Scroll Setup
    sendcommand(0x00);  //dummy byte
    sendcommand(0x00);  //define page0 as startpage address
    sendcommand(0x00);  //set time interval between each scroll ste as 6 frames
    sendcommand(0x07);  //define page7 as endpage address
    sendcommand(0x01);  //set vertical scrolling offset as 1 row
    sendcommand(0x2f);  //active scrolling
    delay(3000);

  };

}

//==========================================================//
void sendcommand(unsigned char com)
{
  Wire.beginTransmission(OLED_address);     //begin transmitting
  Wire.send(0x80);                          //command mode
  Wire.send(com);
  Wire.endTransmission();                    // stop transmitting
}

//==========================================================//
void clear_display(void)
{
  unsigned char i,k;
  for(k=0;k<8;k++)
  {   
    setXY(k,0);   
    {
      for(i=0;i<128;i++)     //clear all COL
      {
        SendChar(0);         //clear all COL
        //delay(10);
      }
    }
  }
}

//==========================================================//
void SendChar(unsigned char data)
{
  Wire.beginTransmission(OLED_address); // begin transmitting
  Wire.send(0x40);//data mode
  Wire.send(data);
  Wire.endTransmission();    // stop transmitting
}

//==========================================================//
void setXY(unsigned char row,unsigned char col)
{
  sendcommand(0xb0+row);                //set page address
  sendcommand(0x00+(8*col&0x0f));       //set low col address
  sendcommand(0x10+((8*col>>4)&0x0f));  //set high col address
}


//==========================================================//
void sendStr(unsigned char *string)
{
  unsigned char i=0;
  //setXY(0,0);   
  while(*string)
  {
    for(i=0;i<8;i++)
    {
      SendChar(myFont[*string-0x20]);

      // SendChar(*string);
      delay(10);
    }
    *string++;
  }
}

//==========================================================//
void init_OLED(void)
{

  sendcommand(0xae);      //display off
  delay(50);
  //----------------------------REVERSE comments----------------------------//
  //  sendcommand(0xa0);      //seg re-map 0->127(default)
  //  sendcommand(0xa1);      //seg re-map 127->0
  //  sendcommand(0xc8);
  //  delay(1000);
  //----------------------------REVERSE comments----------------------------//
 
  sendcommand(0xaf);      //display on
  delay(50);

}
El que pregunta aprende, el que responde aprende a responder.

Go Up