i2c модуль для LCD, можно ли на него ещё что-то навесить?
- Войдите на сайт для отправки комментариев
Вс, 26/04/2015 - 14:13
Приветствую.
У меня есть LCD-дисплей, подключаемый через i2c-модуль на чипе PCF8574.
Назрел такой вопрос - можно ли на этот модуль повесить ещё какие-то устройства, обращаясь к ним по другому адресу? Если да, то каким образом?
какие темы скучные стали. люди ленятся почитать и спрашивают всякую мелочь, которую и сам может прочитать через 2 мин гугления
2 мин это максимум
Гуглил, читал, смотрел даташиты.
Перечитал эту статью раз 5: http://mk90.blogspot.ru/2010/05/arduino-3.html.
НО не понял, съедает ли дисплей все возможности чипа и можно ли как-то с ним ещё взаимодействовать, является ли мой модуль "чисто дисплейным" или можно как-то расширить.
Вопрос мой - нубский, знаю. Я далеко не электронщик, ардуино освоил на уровне "подключить дисплей по мануалу, выводит цифры, нажатые на клавиатуре". Потому у меня сложность даже с тем, что конкретно мне надо искать и что из найденого есть ответ на мой вопрос.
Тут не в лени дело, я довольно много времени потратил на самостоятельный поиск проблемы - но не вышло.
У этого расширителя портов 8 выводов, ЛСД использует вроде 6 + 1 вывод для управления подсведкой. Т.е. 1 вывод свободный получается, для его использования нужно править библиотеку экрана.
Дисплей съедает все ноги чипа. Если дисплей выкинете и напишите программу дрыганья ногами PCF для другого устройства, то тоже будет работать.
Дисплей выкинуть никак. Видимо чтобы хотя бы пару дополнительных выводов иметь - нужно ещё один i2c чип использовать. Правильно понял?
Дисплей выкинуть никак. Видимо чтобы хотя бы пару дополнительных выводов иметь - нужно ещё один i2c чип использовать. Правильно понял?
Поняли правильно, а закодить сумеете?
Дисплей выкинуть никак. Видимо чтобы хотя бы пару дополнительных выводов иметь - нужно ещё один i2c чип использовать. Правильно понял?
Поняли правильно, а закодить сумеете?
Пока не уверен, но как написал товарищ jeka_tm - гугл мне в помощь
Вы лучше опишите цели, для которых хотите его применить. Возможно подскажут более простые варианты. Написание двунаправленных протоколов, очень сильно отличается от блинка.
Вы лучше опишите цели, для которых хотите его применить. Возможно подскажут более простые варианты. Написание двунаправленных протоколов, очень сильно отличается от блинка.
Цель простая - расширение количества доступных пинов.
Само устройство представляет из себя контроллер доступа: cейчас УНО тянет дисплей по i2c, матричную клавиатуру 4х4 (сразу 8 пинов теряем), rfid-модуль, пьезоизлучатель и пару светодиодов. Собственно, когда дело дошло до подключения магнитного замка, оказалось, что пинов под реле нету больше, были выкинуты два светодиода.
Хочется вернуть светодиоды и повесить ещё пару кнопок.
Задумываюсь насчет подключения клавиатуры по i2c, это сразу решит всю проблему разом. Но под рукой нет нужных микрух, в единственном на весь город магазине радиодеталей для ардуино вообще нет ничего, а голые сдвиговые регистры только под заказ. Потому и думал, можно ли как-то использовать ту единственную платку, которая есть.
А если такой вариант?
да и просто выходы без шима можно сделать на 74HC595
А если такой вариант?
Интересное решение, протестирую сегодня.
Спасибо за наводку
А если такой вариант?
Результат вышел неудовлетворительный...
Из за плавающих значений ошибки в 5-20% нажатий. Крайние значения зачастую пересекаются.
Например 14-ая кнопка дает 778-795, а 15-ая 786-806
Была мысль читать сразу N значений при нажатии, убрав задержку, потом считать среднеарифметическое, и только среднеарифметическое сравнивать с порогами. Но, имхо, маразм какой-то
да и просто выходы без шима можно сделать на 74HC595
Попробую купить такую, спасибо.
Простейший мануал нашел тут, по нему буду пробовать
http://arduino.su/Tutorial/registr_74HC595
для цифровых входов можно использовать 74HC165
http://homes-smart.ru/index.php/oborudovanie/prochee/rasshiryaem-porty
да все просто. зависит от напряжения питания. будет скакать будут ошибки
или резисторы у тебя не того еще номинала
да все просто. зависит от напряжения питания. будет скакать будут ошибки
или резисторы у тебя не того еще номинала
Само по себе решение с резисторами уж очень стремное, в плане надёжности... Ошибок всё таки удалось добиться, потому на данный вариант решил забить
Аналоговое подключение клавиатуры: 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
Аналоговое подключение клавиатуры: 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 от нормального значения).
Увеличение числы выходов: 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
Сохранил в закладки, но в данном случае, вроде, не пригодится
Спасибо.
Аналоговое подключение клавиатуры: 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 написал, либо в пленочнике контакты нестабильные((((.
Ссылка:
http://playground.arduino.cc/Main/I2CPortExpanderAndKeypads
В статье есть ссылка на библиотеку I2C-кейпада.
Модули I2C для LCD бывавют разных модификаций - с возможностью изменения
адреса устройства и без оной - с постоянным адресом 0х27.
Для кейпада 4х4 нужно добавить ещё порт управления подсветкой,
выведенный напрямую, минуя ключ (см.конкретную схему), для
дополнительного столбца кнопок и немного подправить библиотеку.
Как сказано выше, разные платы модулей имеют разную разводку портов, при необходимости
нужно поменять соединения клавиатуры кейпада в соответствии со схемой из статьи,
для правильной работы с библиотекой.