IIC / I2C 1602 OLED Module Display - For Arduino / PIC / AVR / ARM

viva_viva2004
Offline
Зарегистрирован: 07.10.2013

Здравствуйте. Купил такой модуль на eBay. Код примера, приведенный на странице заказа компилируется с ошибками. Я мало, что соображаю пока во всем этом. Хочу для начала проверить, что мне прислал дядюшка Лео. Напишите пожалуйста скетч, чтобы это заработало.

kolganoff
Offline
Зарегистрирован: 26.09.2013

Дык ты наверное библиотеку не скачал.

Наверное есть похожая строка в начале скетча:

#include <liquidcrystal_i2c.h>

 

maksim
Offline
Зарегистрирован: 12.02.2012

Здравствуйте. Купил такой телефон на eBay. Инструкция на странице заказа, при попытке позвонить выдает ошибку. Я мало, что соображаю пока во всем этом. Хочу для начала проверить, что мне прислал дядюшка Лео. Напишите пожалуйста инструкцию, чтобы это заработало.

vdk
Offline
Зарегистрирован: 14.04.2013

viva_viva2004 пишет:

Я мало, что соображаю пока во всем этом.

А зачем тогда покупаете незнакомые вам предметы?

Araris
Offline
Зарегистрирован: 09.11.2012

Дядюшку обидели, Ляо его зовут.

Клапауций
Offline
Зарегистрирован: 10.02.2013

Araris пишет:

Дядюшку обидели, Ляо его зовут.

Не факт - может быть и француз китайского происхождения.

mixail844
Offline
Зарегистрирован: 30.04.2012

дык,Максим,у вас симка не активирована ))

 

viva_viva2004,перефразируя вышеперечисленные ответы :вы предоставили очень сильный минимум информации,о вашем  устройстве,как вы уже его падключили,к какому контроллеру,без чего вам просто невозможно помочь.

ну скажем я и узнал дисплей ,в принципе найти модель даже по фото не трудно,с какой мне стати вам помогать идеями,написанием кода если вы сами полинились предоставить минимум информации "предполая" что бы я искал/изучал ее за вас? предоставление "максимум" информации в ваших же интересах.

viva_viva2004
Offline
Зарегистрирован: 07.10.2013

Возвращаясь к теме про проверку индикатора. Спасибо всем, кто проявил интерес к созданной мною теме.

Запросил я у продавца какую-нибудь информацию про приобретенное мною устройство и он мне выслал ссылку на техническое описание: /www.wide.hk/download/I2C1602OLED.rar

В качестве примера был следующий текст:

//***************************************//
// --- WIDE.HK---//
// --- Revised Date : 06/30/2013
// --- I2C Arduino - Arduino UNO Demo ---//
// --- SSD131x PMOLED Controller      ---//
// --- SCL, SDA, GND, VCC(3.3v -5v)   ---//
//***************************************//

#include <Wire.h>          // *** I2C Mode
#define OLED_Address 0x3c
#define OLED_Command_Mode 0x80
#define OLED_Data_Mode 0x40

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

void loop()
{

 // *** I2C initial *** //
 delay(100);
 sendCommand(0x2A);    // **** Set "RE"=1    00101010B
 sendCommand(0x71);
 sendCommand(0x5C);
 sendCommand(0x28);

 sendCommand(0x08);    // **** Set Sleep Mode On
 sendCommand(0x2A);    // **** Set "RE"=1    00101010B
 sendCommand(0x79);    // **** Set "SD"=1    01111001B

 sendCommand(0xD5);
 sendCommand(0x70);
 sendCommand(0x78);    // **** Set "SD"=0

 sendCommand(0x08);    // **** Set 5-dot, 3 or 4 line(0x09), 1 or 2 line(0x08)

 sendCommand(0x06);    // **** Set Com31-->Com0  Seg0-->Seg99

 // **** Set OLED Characterization *** //
 sendCommand(0x2A);      // **** Set "RE"=1
 sendCommand(0x79);      // **** Set "SD"=1

 // **** CGROM/CGRAM Management *** //
 sendCommand(0x72);      // **** Set ROM
 sendCommand(0x00);      // **** Set ROM A and 8 CGRAM

 sendCommand(0xDA);     // **** Set Seg Pins HW Config
 sendCommand(0x10);   

 sendCommand(0x81);      // **** Set Contrast
 sendCommand(0xFF);

 sendCommand(0xDB);      // **** Set VCOM deselect level
 sendCommand(0x30);      // **** VCC x 0.83

 sendCommand(0xDC);      // **** Set gpio - turn EN for 15V generator on.
 sendCommand(0x03);

 sendCommand(0x78);      // **** Exiting Set OLED Characterization
 sendCommand(0x28);
 sendCommand(0x2A);
 //sendCommand(0x05);     // **** Set Entry Mode
 sendCommand(0x06);     // **** Set Entry Mode
 sendCommand(0x08);  
 sendCommand(0x28);     // **** Set "IS"=0 , "RE" =0 //28
 sendCommand(0x01);
 sendCommand(0x80);     // **** Set DDRAM Address to 0x80 (line 1 start)

 delay(100);
 sendCommand(0x0C);      // **** Turn on Display

 // ********************************************************************//
 // **** Show Data Value *** //
 
 send_string("0123456789ABCDEF");
 sendCommand(0xC0);      // **** New Line
 send_string("---WIDE.HK---");
 //sendCommand(0x01);    // **** Clear display
 while(1);

 // **** Show Data Value *** //
 // ********************************************************************//

}

void sendData(unsigned char data)
{
    Wire.beginTransmission(OLED_Address);      // **** Start I2C
    Wire.write(OLED_Data_Mode);             // **** Set OLED Data mode
    Wire.write(data);
    Wire.endTransmission();                     // **** End I2C
}

void sendCommand(unsigned char command)
{
    Wire.beginTransmission(OLED_Address);      // **** Start I2C
    Wire.write(OLED_Command_Mode);              // **** Set OLED Command mode
    Wire.write(command);
    Wire.endTransmission();                      // **** End I2C
      delay(10);
}

void send_string(const char *String)
{
    unsigned char i=0;
    while(String[i])
    {
        sendData(String[i]);      // *** Show String to OLED
        i++;
    }
}

Текст  без ошибок откомпилировался в версии arduino-1.0.4. В версии arduino-023 компиляция шла с различными ошибками.

К контроллеру я еще не подключал, так как наша доблестная почта уже почти два месяца не может мне доставить заказанную мною: MEGA2560 R3 Control Board ATMEGA16U2.

maksim
Offline
Зарегистрирован: 12.02.2012
step962
Offline
Зарегистрирован: 23.05.2011

viva_viva2004 пишет:

Запросил я у продавца какую-нибудь информацию про приобретенное мною устройство и он мне выслал ссылку на техническое описание: /www.wide.hk/download/I2C1602OLED.rar

maksim пишет:

Ссылка битая [...]

нужно отбросить левый слеш

 

viva_viva2004
Offline
Зарегистрирован: 07.10.2013
viva_viva2004
Offline
Зарегистрирован: 07.10.2013
//***************************************//
// --- WIDE.HK---//
// --- Revised Date : 06/30/2013
// --- I2C Arduino - Arduino UNO Demo ---//
// --- SSD131x PMOLED Controller      ---//
// --- SCL, SDA, GND, VCC(3.3v -5v)   ---//
//***************************************//

#include <Wire.h>          // *** I2C Mode 
#define OLED_Address 0x3c
#define OLED_Command_Mode 0x80
#define OLED_Data_Mode 0x40

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

void loop()
{

 // *** I2C initial *** //
 delay(100);
 sendCommand(0x2A);	// **** Set "RE"=1	00101010B
 sendCommand(0x71);
 sendCommand(0x5C);
 sendCommand(0x28);

 sendCommand(0x08);	// **** Set Sleep Mode On
 sendCommand(0x2A);	// **** Set "RE"=1	00101010B
 sendCommand(0x79);	// **** Set "SD"=1	01111001B

 sendCommand(0xD5);
 sendCommand(0x70);
 sendCommand(0x78);	// **** Set "SD"=0

 sendCommand(0x08);	// **** Set 5-dot, 3 or 4 line(0x09), 1 or 2 line(0x08)

 sendCommand(0x06);	// **** Set Com31-->Com0  Seg0-->Seg99

 // **** Set OLED Characterization *** //
 sendCommand(0x2A);  	// **** Set "RE"=1 
 sendCommand(0x79);  	// **** Set "SD"=1

 // **** CGROM/CGRAM Management *** //
 sendCommand(0x72);  	// **** Set ROM
 sendCommand(0x00);  	// **** Set ROM A and 8 CGRAM


 sendCommand(0xDA); 	// **** Set Seg Pins HW Config
 sendCommand(0x10);   

 sendCommand(0x81);  	// **** Set Contrast
 sendCommand(0xFF); 

 sendCommand(0xDB);  	// **** Set VCOM deselect level
 sendCommand(0x30);  	// **** VCC x 0.83

 sendCommand(0xDC);  	// **** Set gpio - turn EN for 15V generator on.
 sendCommand(0x03);

 sendCommand(0x78);  	// **** Exiting Set OLED Characterization
 sendCommand(0x28); 
 sendCommand(0x2A); 
 //sendCommand(0x05); 	// **** Set Entry Mode
 sendCommand(0x06); 	// **** Set Entry Mode
 sendCommand(0x08);  
 sendCommand(0x28); 	// **** Set "IS"=0 , "RE" =0 //28
 sendCommand(0x01); 
 sendCommand(0x80); 	// **** Set DDRAM Address to 0x80 (line 1 start)

 delay(100);
 sendCommand(0x0C);  	// **** Turn on Display

 // ********************************************************************//
 // **** Show Data Value *** //
 
 send_string("0123456789ABCDEF");
 sendCommand(0xC0);  	// **** New Line
 send_string("---WIDE.HK---");
 //sendCommand(0x01);	// **** Clear display
 while(1);

 // **** Show Data Value *** //
 // ********************************************************************//

}


void sendData(unsigned char data)
{
    Wire.beginTransmission(OLED_Address);  	// **** Start I2C 
    Wire.write(OLED_Data_Mode);     		// **** Set OLED Data mode
    Wire.write(data);
    Wire.endTransmission();                     // **** End I2C 
}

void sendCommand(unsigned char command)
{
    Wire.beginTransmission(OLED_Address); 	 // **** Start I2C 
    Wire.write(OLED_Command_Mode);     		 // **** Set OLED Command mode
    Wire.write(command);
    Wire.endTransmission();                 	 // **** End I2C 
      delay(10);
}

void send_string(const char *String)
{
    unsigned char i=0;
    while(String[i])
    {
        sendData(String[i]);      // *** Show String to OLED
        i++;
    }
}

 

mixail844
Offline
Зарегистрирован: 30.04.2012

какие ошибки выдает?

какой версии у вас среда разработки Arduino IDE? 

viva_viva2004
Offline
Зарегистрирован: 07.10.2013

Использовал версию Arduino 0023, в ней такие ошибки при компиляции:

В строках 92 и 93:

sketch_oct15a.cpp: In function 'void sendData(unsigned char)':
sketch_oct15a:90: error: 'class TwoWire' has no member named 'write'
sketch_oct15a:91: error: 'class TwoWire' has no member named 'write

В строках 100 и 101:

sketch_oct15a.cpp: In function 'void sendCommand(unsigned char)':
sketch_oct15a:98: error: 'class TwoWire' has no member named 'write'
sketch_oct15a:99: error: 'class TwoWire' has no member named 'write'

Использовал версию Arduino 1.0.4, в не при компиляции ошибки не выдает.

maksim
Offline
Зарегистрирован: 12.02.2012

  

viva_viva2004
Offline
Зарегистрирован: 07.10.2013

Спасибо за помощь.