LCD I2C партизанит

vlkam
Offline
Зарегистрирован: 17.02.2013

Есть обычный LCD i2c модуль 16х2. Из опознавательных знаков на нем  YwRobot Arduino LCM1602 IIC V1
При начальном подключении включает подсветку и выводит в верхней строке квадраты. Сзади на плате горит красный диод.

Подключил его к i2c, при посылке данных отзывается на идентификаторы 0x27 и 0xA7. То есть вроде подключен правильно и даже виден.

А дальше начнинается полный привет. Скачал библиотеку LiquidCrystal_I2C , запускаю пример ХеллоВорд и кроме однократного мигания дисплеем добиться ничего не могу

В чем может быть заморочка, куда копать ?

vlkam
Offline
Зарегистрирован: 17.02.2013

Заработало

Подключил вместо родных выходов SCL SDA 4 и 5й аналоговые выходы

и заработала вот эта либа

http://arduino-info.wikispaces.com/file/view/LiquidCrystal_I2C1602V1.zip...

hugoboss317
hugoboss317 аватар
Offline
Зарегистрирован: 21.03.2013

У меня тоже немного партизан. Я с вопросами. Вкрации вступление.

Заморочился с вывотом значения температуры на ЖКИ 8х2 и 20х4. В общем там проблем не было.

При увеличении температуры стрелочки вверх и наоборот, а при неизменном значении ничего, но так и должно быть, тут проблем нет. Решил добавить символов в момент неменяющейся температура но какой символ под каким номером не знаю, не переберать же все методом втыка. 

Вобщем поколдовал и написал скетч для последовательного выведения символов с номерем из библиотеке на том же 8х2 и 20х4.

Написал наверное приметивно, но работает.

Хотя мне интересно что я вобще такое написал. 

Вот в чём проблема, при индикации слов "Номер" и "Символ" на 20х4 какаято непонятка получается. Вот фото и код. Вывод слов в строках 16, 18.   30, 32.




#include <LiquidCrystal.h>     //подключение библиотеки
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);   //подключение ЖКИ 
int lib = 0;     //вводим переменную
float lib_saved;     // сохранёное значение
boolean f_saved = false;  // признак того, что значение было сохранено
const char num[] =   //сообщение при отображении номера в библиотеке
  {'H', 'o', 188, 'e', 112};
const char symb[] =   //сообщение при отображении символа
  {'C', 184, 188, 179, 'o', 187};
void setup() {
  lcd.begin(20, 4);  // установить число строк и столбцов
}
void loop() { 
 if(lib == 0){   //начинаем с нулевого символа
 lcd.setCursor(0, 0);
  lcd.print(num); // печатаем слово "Номер"
  lcd.setCursor(0, 1);
  lcd.print(symb); //печатаем слово "Символ"
   lcd.setCursor(7, 1);  //устанавливаем курсор
   lcd.write(lib);     //выводим нулевой символ
   lcd.setCursor(7, 0); //устанавливаем курсор
   lcd.print(lib);   //выводим номер символа
      delay(2000);   //любюемся нулевым символом две секунды
   lcd.clear();   //отчищаем дисплей
   lib = lib_saved +1;   //переходим к следующему символу
 }
 else
    lib = lib_saved +1;
    lcd.setCursor(0, 0);
  lcd.print(num); // печатаем слово "Номер"
    lcd.setCursor(0, 1);
  lcd.print(symb); //печатаем слово "Символ"
  if(lib >= 1)       //при однозначном значении устанавливаем курсор в последний столбец
   lcd.setCursor(7, 0);
  if (lib >=10)   //при двузначном на предпоследний
   lcd.setCursor(6, 0);
  if (lib >= 100)  //при трёхзначном в третий с конца столбез
   lcd.setCursor(5, 0);
   lcd.print(lib); //выводим номер символа
   lcd.setCursor(7, 1);
   lcd.write(lib); //выводим символ
     delay(1000);   //время отображения символа
   lcd.clear();
  if(lib == 256)   //после 265 - го номера начинаем сначала
   lib = 0;          //обнуляя переменную
    f_saved = true; // После первой итерации значение будет сохранено
   lib_saved = lib;  // Сохраняем значение
}
    

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

vlkam пишет:

и заработала вот эта либа

LiquidCrystal_I2C1602V1.zip

Модуль i2c с адресом 0x20 на котором сзади надпись "I2C lcd1602 www. mjkdz. com" - версия 1 наоборот, не работает (тоже рисует первый ряд квадратиками...), а работает версия 2.0. Маркировка чипа на конверторе i2c затерта.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Цитата:
при индикации слов "Номер" и "Символ" на 20х4 какаято непонятка получается.

У Вас где-то if (ветвление) а экран не чистится, поэтому лишние символы и остаются...

hugoboss317
hugoboss317 аватар
Offline
Зарегистрирован: 21.03.2013

"Andrey_Y_Ostan" пишет:
У Вас где-то if (ветвление) а экран не чистится, поэтому лишние символы и остаются...

пробовал чистить и прописывать слова перед каждым "принтованием", меняются местами по разному, но всё равно "разгул".

Ещё не понятно почему игнарируется 





lcd.begin(8, 2);

и вроде чётко указываю место установления курсора, почему слово из второй строки (0 , 1); попадает в первую. Когда работает термометр, такого нет.

Вот ещё по If - у, посмотрю. Спасибо.

Snubist
Offline
Зарегистрирован: 18.02.2013

hugoboss317 пишет:

Ещё не понятно почему игнарируется 

lcd.begin(8, 2);

и вроде чётко указываю место установления курсора, почему слово из второй строки (0 , 1); попадает в первую. 

Почитай

http://greathard.ucoz.com/44780_rus.pdf

На одиннадцатой  стронице со слов "Чтобы произвести переустановку курсора на нужную позицию..."

 

izh_dima
Offline
Зарегистрирован: 13.09.2013

Тоже сегодня получил примерный LCD, и симптомы такие же, одна строка в квадратах.

Правда, у меня не ардуинка, а iboard pro на меге2560, и никак не могу понять, на какие ноги подключать. смотрел даташит на ардуинке, в одном пишут что это pd0 и pd1, на другом даташите пишут что это не так.

Помогите разобраться. iboard взял у знакомого для отладки. вообще, этот ЖК планирую на тиньку2313 подключить. Но сейчас нужно выяснить, работает ли вообще ЖК. Запустил сканнер i2c, он мне выдал 0x68 адрес. смотрю даташит на свою плату, там нашел пины SDA и SCL, подключаю, но вообще никакой реакции нету.

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

jack
Offline
Зарегистрирован: 15.09.2013

Вчера подключил LCD1602 через модуль I2C у меня MEGA2560, на выводы МЕГА SDA - 20 и SCL - 21.

больше было заморочек с библиотекой LiquidCrystal_I2C перепробывл все 4 что нашел, пошла  LiquidCrystal_I2C V2.0.

/*************************************************************
project: <type project name here>
author: <type your name here>
description: <type what this file does>
*************************************************************/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

uint8_t bell[8]  = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4};
uint8_t note[8]  = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0};
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0};
uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};
uint8_t duck[8]  = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0};
uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0};
uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0};
uint8_t retarrow[8] = {	0x1,0x1,0x5,0x9,0x1f,0x8,0x4};

LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  
  lcd.createChar(0, bell);
  lcd.createChar(1, note);
  lcd.createChar(2, clock);
  lcd.createChar(3, heart);
  lcd.createChar(4, duck);
  lcd.createChar(5, check);
  lcd.createChar(6, cross);
  lcd.createChar(7, retarrow);
  lcd.home();
  
  lcd.print("Hello world...");
  lcd.setCursor(0, 1);
  lcd.print(" i ");
  lcd.write(3);
  lcd.print(" arduinos!");
  delay(5000);
  displayKeyCodes();
  
}

// display all keycodes
void displayKeyCodes(void) {
  uint8_t i = 0;
  while (1) {
    lcd.clear();
    lcd.print("Codes 0x"); lcd.print(i, HEX);
    lcd.print("-0x"); lcd.print(i+16, HEX);
    lcd.setCursor(0, 1);
    for (int j=0; j<16; j++) {
      lcd.write(i+j);
    }
    i+=16;
    
    delay(4000);
  }
}

void loop()
{

}

 

jack
Offline
Зарегистрирован: 15.09.2013

у меня адаптер как второй на фотке сверху - "i2c с адресом 0x20 на котором сзади надпись "I2C lcd1602 www. mjkdz. com""

может кто знает как поменять у него адрес?

видил такие модули с выбором адреса - через резистор 10кОм -> там каието ноги микрухи замыкабтся.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

1,2,3 ноги похоже. Если у вас такая же микросхемка.

jack
Offline
Зарегистрирован: 15.09.2013

да точно 1,2 и 3. только пока не знаю как изменить схему, чтобы микруха подхватила новый адрес. 

vvadim
Offline
Зарегистрирован: 23.05.2012

Адрес определяется куда подключены А0, А1 , А2 -к земле (для PCF8574 0X20, PCF8574AP 0X38) или +5. В зависимости от комбинаций подключения будут разные адреса.

vvadim
Offline
Зарегистрирован: 23.05.2012

 

ВОТ ТАБЛИЦА АДРЕСОВ


For PCF8574A the addressing is:		
A2	A1	A0	Dec	Hex	
L	L	L	56	0x38
L	L	H	57	0x39
L	H	L	64	0x40
L	H	H	74	0x4A
H	L	L	75	0x4B
H	L	H	76	0x4C
H	H	L	77	0x4D
H	H	H	78	0x4E


For PCF8574 the addressing is:		
A2	A1	A0	Dec	Hex	
L	L	L	32	0x20
L	L	H	33	0x21
L	H	L	34	0x22
L	H	H	35	0x23
H	L	L	36	0x24
H	L	H	37	0x25
H	H	L	38	0x26
H	H	H	39	0x27
 
jack
Offline
Зарегистрирован: 15.09.2013

спасибо!

izh_dima
Offline
Зарегистрирован: 13.09.2013

Нет ли у кого либы для Codevision?

Хочу к тиньке 2313 подключить такой ЖК через I2C.

Сам пока только начинаю осваивать, и нет навыка портировать исходники.

ascon
ascon аватар
Offline
Зарегистрирован: 14.08.2013
//ADXL335  Читает аналоговые ADXL3xx акселерометра устройства 
//и сообщает  ускорение к компьютеру.
// берем землю ,  3,3 вольта объединяем с aref?   st-с аселерометра 
// подключаем к аналоговому входу 0

#include <Wire.h> //подключаем библиотеку на лсд
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);// задаем параметры дисплея т.е
// адрес 0х27  16 символов в каждой строке и 2 строки
#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)  write(args);
#else
#define printByte(args)  print(args,BYTE);
#endif

uint8_t bell[8]  = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4};
uint8_t note[8]  = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0};
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0};
uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};
uint8_t duck[8]  = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0};
uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0};
uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0};
uint8_t retarrow[8] = {	0x1,0x1,0x5,0x9,0x1f,0x8,0x4};


const int xpin = A3; // х-оси акселерометра
const int ypin = A2; // y-оси акселерометра
const int zpin = A0; // z-оси акселерометра
void setup() 
{
  lcd.init(); //инцилизируем дисплей
  lcd.backlight();
  lcd.begin(0x27,16,2);
  
  lcd.createChar(0, bell);
  lcd.createChar(1, note);
  lcd.createChar(2, clock);
  lcd.createChar(3, heart);
  lcd.createChar(4, duck);
  lcd.createChar(5, check);
  lcd.createChar(6, cross);
  lcd.createChar(7, retarrow);
  lcd.home();
  
  //lcd.print(); //выводим на дисплей
  // задаем скорость последовательного интерфейса:
  Serial.begin(9600);
Serial.println();
 Serial.println(); 
  analogReference(EXTERNAL);

  pinMode(xpin, INPUT);
  pinMode(ypin, INPUT);
  pinMode(zpin, INPUT);
}

void loop() 
  {
       int x= analogRead(xpin);
 // Serial.print( analogRead(xpin));
 // Serial.print("\t");
  //добовляем не большую задержку между чтениями
    delay(300);
        int y=analogRead(ypin);
 // Serial.print( analogRead(ypin));
  //Serial.print("\t");
  //добовляем не большую задержку между чтениями
    delay(300); 
        int z=analogRead (zpin);

  //Serial.print( analogRead(zpin));
 // Serial.print("\t");  // Здадержка перед следующим чтением
 // используем float для хранения чисел (данных)
  float zero_Gx=analogRead(xpin);
  float zero_Gy=analogRead(ypin);
  float zero_Gz=analogRead(zpin);
  float scale = 1;
  Serial.print((float) x-zero_Gx/scale);
       lcd.print((float) x-zero_Gx/scale);
       lcd.setCursor(0,1);
       //lcd.setCursor(3,0);
        //lcd.printByte(6);
       lcd.print("\t"); 
      
  Serial.print ("\t");
  //Serial.println("x");
                 
  Serial.print((float) y-zero_Gy/scale);
       lcd.print((float) y-zero_Gy/scale);
       lcd.print("\t");
       lcd.setCursor(1,0);
       //lcd.printByte(7);
  Serial.print ("\t");
 // Serial.println("y");
    
  Serial.print((float) z-zero_Gz/scale);
         //lcd.print((float) z-zero_Gz/scale);
         //lcd.print("\n");
         //lcd.setCursor(2,1);
         //lcd.printByte(7);
  //Serial.println("    z");
                
  Serial.print ("\n");
  delay(300);
}

Добрый день)  Я не так хорошо понимаю в програмирование( кто нить объяснити от куда взялись лишнии символы на дисплее типа 3 уточки и цифра "1". Програмном коде я их не в бивал и не просил вылазить их на lcd а они постоянно появляються(

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

Кажется дело в этом:

lcd.print("\t");

попробуйте так:

lcd.print("t");

 

ascon
ascon аватар
Offline
Зарегистрирован: 14.08.2013

Спасибо за подсказку))) немного подругому сделал )) и лишние символы пропали))

Когда выводишь на монитор порта эти данные то без этого не как Serial.print ("\t"); 

а видно на дисплей прокатывает))

 Serial.print((float) x-zero_Gx/scale);
       lcd.print((float) x-zero_Gx/scale);
       lcd.setCursor(1,1); //устанавливаем курсор на 1 сторку символ 2
       //lcd.setCursor(4,0);
        //lcd.printByte(6);
       lcd.print(""); 
      
  Serial.print ("\t");
  //Serial.println("x");
                 
  Serial.print((float) y-zero_Gy/scale);
       lcd.print((float) y-zero_Gy/scale);
       lcd.print("");
       lcd.setCursor(7,1);// 1 строка 7 символ
       //lcd.printByte(7);
  Serial.print ("\t");
 // Serial.println("y");
  

 

hugoboss317
hugoboss317 аватар
Offline
Зарегистрирован: 21.03.2013

ascon пишет:





lcd.setCursor(1,1); //устанавливаем курсор на 1 сторку символ 2

Ну тогда и коментарии пишете правельней чтоб не путаться





lcd.setCursor(1,1); //устанавливаем курсор на 2 символ,  2 строку

 

D.A.
Offline
Зарегистрирован: 10.11.2013

Спасибо тебе, добрый человек. Такую же платку пытаюсь заставить работать. Три библиотеки перепробовал - только эта подошла.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

В статье http://we.easyelectronics.ru/lcd_gfx/shema-perehodnika-i2c-dlya-lcd-hd44... - говорится о базовых адресах в зависимости от маркировки чипа PCF8574 :

Цитата:
Базовый адрес зависит от последней буковки в маркировке чипа, например для PCF8574T это 0х20, а для PCF8574P это 0х40.

 

 

vvadim
Offline
Зарегистрирован: 23.05.2012

 

ВОТ ТАБЛИЦА АДРЕСОВ


For PCF8574A the addressing is:		
A2	A1	A0	Dec	Hex	
L	L	L	56	0x38
L	L	H	57	0x39
L	H	L	64	0x40
L	H	H	74	0x4A
H	L	L	75	0x4B
H	L	H	76	0x4C
H	H	L	77	0x4D
H	H	H	78	0x4E


For PCF8574 the addressing is:		
A2	A1	A0	Dec	Hex	
L	L	L	32	0x20
L	L	H	33	0x21
L	H	L	34	0x22
L	H	H	35	0x23
H	L	L	36	0x24
H	L	H	37	0x25
H	H	L	38	0x26
H	H	H	39	0x27
Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

vvadim пишет:

ВОТ ТАБЛИЦА АДРЕСОВ

Вы всерьез думаете, что я читать не умею? Речь шла про базовые адреса в зависимости от буковок чипов, а не как переключать перемычки...

rm553
Offline
Зарегистрирован: 14.11.2013

LCD 16x2 куплен на BICe

пример скетча :













/*-----( Import needed libraries )-----*/
 #include <Wire.h> // Comes with Arduino IDE
 #include <LiquidCrystal_I2C.h>

 /*-----( Declare Constants )-----*/
 /*-----( Declare objects )-----*/
 // Analog PINS: SDA - A4, SCL - A5
 // set the LCD address to 0x27 for a 20 chars 4 line display
 // Set the pins on the I2C chip used for LCD connections:
 // addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
 LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address

 /*-----( Declare Variables )-----*/

 char* myStrings[] = {"Hello, world!", "LCD16x2 Arduino", "Use Serial Mon", "Type to display"};

 void setup() /*----( SETUP: RUNS ONCE )----*/
 {
 Serial.begin(9600); // Used to type in characters

 lcd.begin(16,2); // initialize the lcd for 16 chars 2 lines, turn on backlight

 // ------- Quick 3 blinks of backlight -------------
 for(int i = 0; i< 3; i++)
 {
 lcd.backlight();
 delay(250);
 lcd.noBacklight();
 delay(250);
 }
 lcd.backlight(); // finish with backlight on

 //-------- Write characters on the display ------------------
 // NOTE: Cursor Position: (CHAR, LINE) start at 0
 lcd.setCursor(0,0); //Start at character 4 on line 0
 lcd.print(myStrings[0]); //lcd.print("Hello, world!");
 delay(1000);
 lcd.setCursor(0,1);
 lcd.print(myStrings[1]); //lcd.print("LCD16x2 Arduino");
 delay(8000);

 // Wait and then tell user they can start the Serial Monitor and type in characters to
 // Display. (Set Serial Monitor option to "No Line Ending")
 lcd.clear();
 lcd.setCursor(0,0); //Start at character 0 on line 0
 lcd.print(myStrings[2]); //lcd.print("Use Serial Mon");
 lcd.setCursor(0,1);
 lcd.print(myStrings[3]); //lcd.print("Type to display");

 }/*--(end setup )---*/

 void loop() /*----( LOOP: RUNS CONSTANTLY )----*/
 {
 {
 // when characters arrive over the serial port...
 if (Serial.available()) {
 // wait a bit for the entire message to arrive
 delay(100);
 // clear the screen
 lcd.clear();
 // read all the available characters
 while (Serial.available() > 0) {
 // display each character to the LCD
 lcd.write(Serial.read());
 }
 }
 }

 }

PCF8574T, адрес 0x27, все работает, но русификации не хватает.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

rm553 пишет:

PCF8574T, адрес 0x27, все работает, но русификации не хватает.

Ну так ее там и не обещают. :) Хотя, если пошарить по таблице символов 0-255 - какие-то зачатки там есть...

Остальное - либо подбирать из латиницы, либо рисовать "своими" символами.

volond816
Offline
Зарегистрирован: 28.01.2014

Девайс, купленные на Aliexpress

Электрическая схемка (нарисовал сам)

dangear
Offline
Зарегистрирован: 09.04.2014

Andrey_Y_Ostanovsky пишет:

rm553 пишет:

PCF8574T, адрес 0x27, все работает, но русификации не хватает.

Ну так ее там и не обещают. :) Хотя, если пошарить по таблице символов 0-255 - какие-то зачатки там есть...

Остальное - либо подбирать из латиницы, либо рисовать "своими" символами.

Вопросов несколько:

1) Как рисовать свои символы?
2) как можно обновить библиотеку имеющихся символов?

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

dangear пишет:

1) Как рисовать свои символы?

2) как можно обновить библиотеку имеющихся символов?

Взять документацию на дисплей - там есть примеры создания своих символов.

Обновить библиотеку - залить в память дисплея другую прошивку знакогенератора, в 80-е годы прошлого века было модно русифицировать матричные принтеры примерно такими же методами. Только есть подозрение, что это не так просто сделать.

guram
Offline
Зарегистрирован: 12.12.2013

прошу помочь как подключить МЭЛТ 20х4 и I2C на базе PCF8574T

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а какая помощь нужна?

vvadim
Offline
Зарегистрирован: 23.05.2012

guram, а самому почитать и по форуму и в сети слабо?

ты покажи, что сделал и тогда вопрос задай, или шару ждёмс?

Radjah
Offline
Зарегистрирован: 06.08.2014

guram пишет:

прошу помочь как подключить МЭЛТ 20х4 и I2C на базе PCF8574T

Попиарюсь тогда http://blog.radjah.ru/2014/08/arduino.html

guram
Offline
Зарегистрирован: 12.12.2013

Раджа спасибо разобрался

mokrinsky
Offline
Зарегистрирован: 19.12.2014

Добрый день.

Пришел из Китая дисплей 1602A (16х2) с впаяной в него PCF8574T (как на последней фотографии в этой теме). Пробовал разные версии LiquidCrystal, разные инициализации (как и lcd(0x27,16,2), так и с указанием пинов). Вроде как и заводится, но не до конца. Подсветку могу включать-выключать, тут все в порядке. Но в то же время вывести ничего не выходит.

Последний код, который пробовал:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  lcd.print("Hello, world!");
}

void loop()
{
}
 

Я полный чайник в этом всем, пару-тройку разных статей нашел в гугле, но не выходит. Подскажите, может кто сталкивался...

Просил китайца-продавца прислать доку - с тамошними библиотеками даже не компилируется.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а черные квадратики в первой строке светятся?

на плате переходнике есть переменник. его покрути

hugoboss317
hugoboss317 аватар
Offline
Зарегистрирован: 21.03.2013

Ты знаешь что такое "0х27"? Посмотри пост 23. правельно у тебя?

mokrinsky
Offline
Зарегистрирован: 19.12.2014

jeka_tm пишет:

а черные квадратики в первой строке светятся?

на плате переходнике есть переменник. его покрути

Крутил - меняется яркость первой строки, но символы не проявляются. Прочитал на хабре, что у подобных дисплеев нефиксированный вольтаж, и при перестановке с 5В на 3.3В может стать более читаемо. Попробовал, покрутил - все равно ничего нет.

 

Цитата:
Ты знаешь что такое "0х27"? Посмотри пост 23. правельно у тебя?

Знаю, правильно. Сканнером определял.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

mokrinsky пишет:

Подсветку могу включать-выключать, тут все в порядке. Но в то же время вывести ничего не выходит.

Подсветка включается smd транзистором на плате i2c переходника, т.е. до нее сигналы и управление - доходит. Дальше надо разбираться с дисплеем: прежде всего, следует регулировкой контраста добиться "строки темных прямоугольников" или появления символов. Ну, или готовиться к тому, что сам дисплей у Вас - мертвый, и придется перепаивать переходник i2c на другой дисплей.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

как ни смешно а ситуация похожая))

обычная либа, а скачал уже 2 не работает. вообще ничего

зато LiquidCrystalCyr_I2C сразу. хз почему предыдущие не работают. правда вывод русских символов не заработал, только тех кто совпадает по форме с английскими

ну это буду позже разбираться

либы не переделывал, даже не смотрел толком что внутри

ссылка на всякий http://blockduino.org/Libs/LiquidCrystalCyr_I2C.zip

 

mokrinsky
Offline
Зарегистрирован: 19.12.2014

Andrey_Y_Ostanovsky пишет:

Подсветка включается smd транзистором на плате i2c переходника, т.е. до нее сигналы и управление - доходит. Дальше надо разбираться с дисплеем: прежде всего, следует регулировкой контраста добиться "строки темных прямоугольников" или появления символов. Ну, или готовиться к тому, что сам дисплей у Вас - мертвый, и придется перепаивать переходник i2c на другой дисплей.

Да, строка темных прямоугольников есть. Одна очень яркая, вторая слегка проявляется, когда при подаче 5В контраст выкрутить на максимум.

mokrinsky
Offline
Зарегистрирован: 19.12.2014

Увы, то же самое. Подсветкой управляю, символы не выводятся.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

проверяй пайку. значит плохие контакты

прозванивай дорожки. первая строка не должна светится на полной яркости. убавить до середины. хотя как заработает сам поймешь как регулировать

hugoboss317
hugoboss317 аватар
Offline
Зарегистрирован: 21.03.2013

Я бы попробовал на время выкинуть эту гуёвую приблуду PCF8574T, и подключить на прямую... вероятность что заработает увеличивается вдвое

Radjah
Offline
Зарегистрирован: 06.08.2014

Я уже раза три давал ссылку на статью по подключению дисплея. =\

http://devdotnet.org/post/2013/04/24/Podkluchenie-displeya-LCD-2004-po-s...

http://blog.radjah.ru/2014/08/arduino.html

Нормально завелся китайский дисплей 20x4 и такой же отечественный от МЭЛТ.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Radjah пишет:

Я уже раза три давал ссылку на статью по подключению дисплея. =\

И что Вы хотели этим сказать? Что Вы Д'Артаньян? :) Здесь не перепись тех, у кого "все работает".

Ваша первая ссылка не работает, на второй - нет деталей подключения дисплея, не видно даже версию i2c переходника.

 

Radjah
Offline
Зарегистрирован: 06.08.2014

А какие тебе детали нужны? Боишься в 4-х проводах запутаться или что? PCF8574T он и в Африке PCF8574T.
И персонально для твоей ленивой жопы кэш гугла http://webcache.googleusercontent.com/search?q=cache:chW__BZYpcoJ:devdot...

hugoboss317
hugoboss317 аватар
Offline
Зарегистрирован: 21.03.2013

Radjah пишет:
PCF8574T он и в Африке PCF8574T

подтверждаю. Я как раз сейчас в Африке и свойства PCF8574T тут не изменились :)))

Karen
Offline
Зарегистрирован: 09.02.2015

Всем привет

Недавно из Ebay а купил дисплей 20х4 с I2C  адаптором.

http://www.ebay.com/itm/Blue-Serial-IIC-I2C-TWI-2004-204-20X4-Character-...

Пробовал подключит к Arduino Mega2560, но у меня нечего не получалос на экране только две строки с кубиками. Пробовал все библотеки которые нашел в в интернете, до тех пор пока продовец не прислал свой библотеку. После этого библотеки устройство работет очен хорошо

Вот и библотека https://cloud.mail.ru/public/9d4b8b559d5e/I2C 

demon969
Offline
Зарегистрирован: 24.04.2012

Купил клон Arduino Mega2560 на ebay.com у китайцев. Подключил LCD монитор с i2c переходничком к Iduino Mega 2560(так называется клон), LCD не работает. Программа i2c сканер не видит адреса. Взял другую Arduino Mega2560, подключил. все работает. Каким образом можно еще потестить i2c в Iduino?