Помогите разобраться lcd+PCF8574

serj666
Offline
Зарегистрирован: 27.03.2012

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

МК мега168 дисплец lcm1602k-fsw-gbw-r     адрес 0х20(только при нем мерцает)

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

 

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

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

void loop()
{
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
}

serj666
Offline
Зарегистрирован: 27.03.2012

http://jt5.ru/examples/oled-i2c/ делал по этому примеру но без коррекции библиотеки  

не понял как фотки вставить в сообщения

serj666
Offline
Зарегистрирован: 27.03.2012

serj666
Offline
Зарегистрирован: 27.03.2012

 поменял дисплей эфект такой-же

serj666
Offline
Зарегистрирован: 27.03.2012

попробовал с NANO такая-же хрень

помогите пож

chaytan
Offline
Зарегистрирован: 02.02.2012

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

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

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

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

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

я использую девайс вот отсюда- http://www.dfrobot.com/index.php?route=product/product&path=53&product_id=593 с его билой и девайс как по вашей ссылке- http://jt5.ru/examples/oled-i2c/ с его библой.

приведите полное название вашей микросхемы, с неё переписаное. если в конце буквы *АР* то для неё другие алдеса, не с 20 а с 30 начинаются.

serj666
Offline
Зарегистрирован: 27.03.2012

На микрухе написано PCF8574P

 На 3 стоит подстроечник,15,16 подсветка которая работает  распиновку проверял несколько раз на двух дисплеях она разная только место положения 15,16 контактов. Библиотеки переставлял разные

Есть ощющение что микруха битая попробовая пощюпать по пинам выходов микрухи светодиодом через 1ком на Р1,2,4,5,6 есть сигнал а на Р0,3 нету

serj666
Offline
Зарегистрирован: 27.03.2012

 микруху поменял без результатов

serj666
Offline
Зарегистрирован: 27.03.2012

 спасибо откликнувшимся !!! справился путем перебора кучи вариантов библиотек

chaytan
Offline
Зарегистрирован: 02.02.2012

 вот об этом и говорилось сразу...

serj666
Offline
Зарегистрирован: 27.03.2012

 Я не подумал что библиотеки с одним названием скаченные с разных мест могут иметь разное  содержание

Спасибо!

LEVV2006
LEVV2006 аватар
Offline
Зарегистрирован: 15.04.2011

Я пробую повторить схему по этой статье только ничего не выходит. Дисплей LCD индикатор 16х2 EL-1602A

Ошибки компиляции вылетают
 

Gagarin74
Offline
Зарегистрирован: 24.08.2013

LEVV2006 пишет:

Я пробую повторить схему по этой статье только ничего не выходит. Дисплей LCD индикатор 16х2 EL-1602A

Ошибки компиляции вылетают
 

какие?

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

serj666 пишет:

 спасибо откликнувшимся !!! справился путем перебора кучи вариантов библиотек

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

spa-sam
Offline
Зарегистрирован: 14.12.2012
 

Я делал по этой схеме, там же и рабочая библиотека, проверено!

https://bitbucket.org/fmalpartida/i2c-lcd-extra-io/wiki/Home

https://bitbucket.org/fmalpartida/i2c-lcd-extra-io/src/eb12e157f0cb97e64...

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

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

Даже свою библиотеку написал - всмысле добавил альтернативу инициализации класса для I2C в стандартную и функции вывода по I2C... Работает абсолютно также, пока инит не вызовешь 2 или 3 раза - или ресет несколько раз тыкаешь. Вобщем это дисплей не хочет сразу работать...

Gagarin74
Offline
Зарегистрирован: 24.08.2013

Ребят ,бьюсь третьи сутки.

Проблема та же что у афтора.

Платка -http://www.ebay.com/itm/330830896988?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Дисплей -http://www.ebay.com/itm/231000968353?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649

Перебрал кучу библиотек.Результат -только верхняя строка в квадратиках. Помогите, может у кого точно такой же набор?

kakadu
Offline
Зарегистрирован: 16.01.2015

походу битый дисплей или вся партия, делал вот на этом примере :


/*
 Два LCD на одной шине по разным адресам 
 */
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>      // E:\Arduino\My\Arduino\libraries\LiquidCrystal_I2C1602V1

LiquidCrystal_I2C lcd1(0x3F,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd2(0x3E,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd1.init();                      // initialize the lcd 
  lcd1.backlight();
  lcd1.blink();

  delay (100);
  lcd2.init();                      // initialize the lcd 
  lcd2.backlight();
  lcd2.blink();

  
  lcd2.print("la La la 2222");
  lcd1.print("la La la 1111");
  delay (100);
  
  Serial.begin(9600);
}

void loop()
{
  char c;
  // when characters arrive over the serial port...
  if (Serial.available()) {
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd1.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      delay(100);
      lcd1.write(c = Serial.read());
      delay(100);
      lcd2.write(c);
    }
  }
}

 

и вот вам 2 дисплеея совершенно одинаковых (один глючит другйо нет):

http://instagram.com/p/xod2VVq38C/?modal=true

а вот на его месте второй (нормальный) уже работает

kakadu
Offline
Зарегистрирован: 16.01.2015

да согласен! на адреса внимание надо обращать, чипы I2C контроллера через один идут в партии 5 штук была половина A половина AR, соответсвенно адреса 20... и 30...