i2c модуль для LCD, можно ли на него ещё что-то навесить?

neutron
Offline
Зарегистрирован: 26.04.2015

Приветствую.
У меня есть LCD-дисплей, подключаемый через i2c-модуль на чипе PCF8574. 

Назрел такой вопрос - можно ли на этот модуль повесить ещё какие-то устройства, обращаясь к ним по другому адресу? Если да, то каким образом? 

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

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

2 мин это максимум

neutron
Offline
Зарегистрирован: 26.04.2015

Гуглил, читал, смотрел даташиты.
Перечитал эту статью раз 5: http://mk90.blogspot.ru/2010/05/arduino-3.html. 
НО не понял, съедает ли дисплей все возможности чипа и можно ли как-то с ним ещё взаимодействовать, является ли мой модуль "чисто дисплейным" или можно как-то расширить.
Вопрос мой - нубский, знаю. Я далеко не электронщик, ардуино освоил на уровне "подключить дисплей по мануалу, выводит цифры, нажатые на клавиатуре". Потому у меня сложность даже с тем, что конкретно мне надо искать и что из найденого есть ответ на мой вопрос.
Тут не в лени дело, я довольно много времени потратил на самостоятельный поиск проблемы - но не вышло.

MaksMS
Offline
Зарегистрирован: 11.03.2013

У этого расширителя портов 8 выводов, ЛСД использует вроде 6 + 1 вывод для  управления подсведкой. Т.е. 1 вывод свободный получается, для его использования нужно править библиотеку экрана.

bwn
Offline
Зарегистрирован: 25.08.2014

Дисплей съедает все ноги чипа. Если дисплей выкинете и напишите программу дрыганья ногами PCF для другого устройства, то тоже будет работать.

neutron
Offline
Зарегистрирован: 26.04.2015

Дисплей выкинуть никак. Видимо чтобы хотя бы пару дополнительных выводов иметь - нужно ещё один i2c чип использовать. Правильно понял?

bwn
Offline
Зарегистрирован: 25.08.2014

neutron пишет:

Дисплей выкинуть никак. Видимо чтобы хотя бы пару дополнительных выводов иметь - нужно ещё один i2c чип использовать. Правильно понял?

Поняли правильно, а закодить сумеете?

neutron
Offline
Зарегистрирован: 26.04.2015

bwn пишет:

neutron пишет:

Дисплей выкинуть никак. Видимо чтобы хотя бы пару дополнительных выводов иметь - нужно ещё один i2c чип использовать. Правильно понял?

Поняли правильно, а закодить сумеете?

Пока не уверен, но как написал товарищ jeka_tm - гугл мне в помощь

bwn
Offline
Зарегистрирован: 25.08.2014

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

neutron
Offline
Зарегистрирован: 26.04.2015

bwn пишет:

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

Цель простая - расширение количества доступных пинов.
Само устройство представляет из себя контроллер доступа: cейчас УНО тянет дисплей по i2c, матричную клавиатуру 4х4 (сразу 8 пинов теряем), rfid-модуль, пьезоизлучатель и пару светодиодов. Собственно, когда дело дошло до подключения магнитного замка, оказалось, что пинов под реле нету больше, были выкинуты два светодиода. 

Хочется вернуть светодиоды и повесить ещё пару кнопок.
Задумываюсь насчет подключения клавиатуры по i2c, это сразу решит всю проблему разом. Но под рукой нет нужных микрух, в единственном на весь город магазине радиодеталей для ардуино вообще нет ничего, а голые сдвиговые регистры только под заказ. Потому и думал, можно ли как-то использовать ту единственную платку, которая есть.

bwn
Offline
Зарегистрирован: 25.08.2014

А если такой вариант?

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

да и просто выходы без шима можно сделать на 74HC595

neutron
Offline
Зарегистрирован: 26.04.2015

bwn пишет:

А если такой вариант?

Интересное решение, протестирую сегодня.
Спасибо за наводку

neutron
Offline
Зарегистрирован: 26.04.2015

bwn пишет:

А если такой вариант?

Результат вышел неудовлетворительный... 
Из за плавающих значений ошибки в 5-20% нажатий. Крайние значения зачастую пересекаются.
Например 14-ая кнопка дает 778-795, а 15-ая 786-806
 

Была мысль читать сразу N значений при нажатии, убрав задержку, потом считать среднеарифметическое, и только среднеарифметическое сравнивать с порогами. Но, имхо, маразм какой-то

neutron
Offline
Зарегистрирован: 26.04.2015

jeka_tm пишет:

да и просто выходы без шима можно сделать на 74HC595

Попробую купить такую, спасибо.
Простейший мануал нашел тут, по нему буду пробовать
http://arduino.su/Tutorial/registr_74HC595

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

для цифровых входов можно использовать 74HC165

http://homes-smart.ru/index.php/oborudovanie/prochee/rasshiryaem-porty

 

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

да все просто. зависит от напряжения питания. будет скакать будут ошибки

или резисторы у тебя не того еще номинала

neutron
Offline
Зарегистрирован: 26.04.2015

jeka_tm пишет:

да все просто. зависит от напряжения питания. будет скакать будут ошибки

или резисторы у тебя не того еще номинала

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

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Аналоговое подключение клавиатуры: http://www.pighixxx.com/test/portfolio-items/connect-a-keypad-using-1-analog-input/?portfolioID=610

Увеличение числы выходов: http://www.pighixxx.com/test/portfolio-items/shift-register-74hc595/?portfolioID=610

Два светодиода, если не нужно их одновременное свечение, можно включать с одного пина: http://www.pighixxx.com/test/portfolio-items/light-two-leds/?portfolioID=610 (по идее, пьезо и реле по такой же схеме можно на один пин повесить, если развязать их полярность диодами).

Если надо больше светодиодов, то число пинов тоже можно сократить, используя хитрые двунаправленные включения. Выглядит сложно, зато никакой обвязки. http://www.pighixxx.com/test/portfolio-items/charlieplexing/?portfolioID=610

neutron
Offline
Зарегистрирован: 26.04.2015

Tomasina пишет:

Аналоговое подключение клавиатуры: http://www.pighixxx.com/test/portfolio-items/connect-a-keypad-using-1-analog-input/?portfolioID=610

Такое пробовал, описал постами выше - высокий процент ошибок получается (за счет пересекающихся диапазонов колебания сопротивления), эксперименты с разными сопротивлениями дают очень похожий результат. 
Пробовал 1кОм + 4.7 кОм,  1кОм + 5.1кОм, 4.7кОм + 22кОм, 5.1кОм + 22кОм. 
Итого раз в 10-20 нажатий вылезает неправильная кнопка (± 1 от нормального значения).

 

Tomasina пишет:

Увеличение числы выходов: http://www.pighixxx.com/test/portfolio-items/shift-register-74hc595/?portfolioID=610

Буду пробовать, когда намучу компонентов

Tomasina пишет:

Два светодиода, если не нужно их одновременное свечение, можно включать с одного пина: http://www.pighixxx.com/test/portfolio-items/light-two-leds/?portfolioID=610 (по идее, пьезо и реле по такой же схеме можно на один пин повесить, если развязать их полярность диодами).

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

Tomasina пишет:

Если надо больше светодиодов, то число пинов тоже можно сократить, используя хитрые двунаправленные включения. Выглядит сложно, зато никакой обвязки. http://www.pighixxx.com/test/portfolio-items/charlieplexing/?portfolioID=610

Сохранил в закладки, но в данном случае, вроде, не пригодится

Спасибо.
 

bwn
Offline
Зарегистрирован: 25.08.2014

neutron пишет:

Tomasina пишет:

Аналоговое подключение клавиатуры: http://www.pighixxx.com/test/portfolio-items/connect-a-keypad-using-1-analog-input/?portfolioID=610

Такое пробовал, описал постами выше - высокий процент ошибок получается (за счет пересекающихся диапазонов колебания сопротивления), эксперименты с разными сопротивлениями дают очень похожий результат. 
Пробовал 1кОм + 4.7 кОм,  1кОм + 5.1кОм, 4.7кОм + 22кОм, 5.1кОм + 22кОм. 
Итого раз в 10-20 нажатий вылезает неправильная кнопка (± 1 от нормального значения).

Сам такой вариант не юзал, но попробую. Скорее всего, либо питание как Jeka-tm написал, либо в пленочнике контакты нестабильные((((.

fot
Offline
Зарегистрирован: 23.10.2011

Ссылка:

http://playground.arduino.cc/Main/I2CPortExpanderAndKeypads

В статье есть ссылка на библиотеку I2C-кейпада.

Модули I2C для LCD бывавют разных модификаций - с возможностью изменения

адреса устройства и без оной - с постоянным адресом 0х27.

Для кейпада 4х4 нужно добавить ещё порт управления подсветкой, 

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

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

Как сказано выше, разные платы модулей имеют разную разводку портов, при необходимости

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

для правильной работы с библиотекой.