Подключение нескольких LCD 16x2 к одной Adruino

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Trump » 20 фев 2012, 23:37

Стоит задача подключить несколько дисплеев 16x2 (например HD44780) к одной плате Arduino. Я знаю про возможность использовать сдвиговые регистры. Но с другой стороны Arduino Mega имеет 54 вывода и мне этого должно хватить чтобы не загоняться со сдвигами. Подскажите, пожалуйста, можно ли использовать какие-то выводы ардуины как общие для нескольких дисплеев? Для экономии. Ну, к примеру, могу я подключать к разным выводам ардуины только входы DB4-DB7 дисплеев?
Аватара пользователя
Trump
 
Сообщения: 9
Зарегистрирован: 28 авг 2011, 13:13
Откуда: Воронеж

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение dccharacter » 20 фев 2012, 23:45

Мне кажется наоборот шину данных можно общую, а EN, RST и что там еще - на отдельные
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Trump » 21 фев 2012, 00:00

Ну мне просто нужно выводить на дисплеи разные данные. Разве такое подключение позволит мне это сделать?
Аватара пользователя
Trump
 
Сообщения: 9
Зарегистрирован: 28 авг 2011, 13:13
Откуда: Воронеж

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение dccharacter » 21 фев 2012, 00:30

Trump писал(а):Ну мне просто нужно выводить на дисплеи разные данные. Разве такое подключение позволит мне это сделать?

Ну для того, чтобы вывести на дисплей что-то, надо постробить управляющими ногами. Какому дисплею ноги подергаете, тот и покажет то, что прилетело по шине данных.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Myp » 21 фев 2012, 09:20

если мне не изменяет память дисплей 16х2 это уже и так 2 дисплея запараллеленых =)
и ногой CS (Chip Select) выбирается левая или правая половина.
высокий уровень одна половина низкий другая.

так что собственно весь вопрос в разделении этого сигнала на 2 дисплея (или сколько хочется)
нужно добавить переключатель CS на нужное количество дисплеев.
но может быть достаточно будет EN вывести на отдельные ноги ардуины, временно отключая и включая шину данных на нужном дисплее.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Trump » 21 фев 2012, 09:53

Myp писал(а):если мне не изменяет память дисплей 16х2 это уже и так 2 дисплея запараллеленых =)
и ногой CS (Chip Select) выбирается левая или правая половина.
высокий уровень одна половина низкий другая.

так что собственно весь вопрос в разделении этого сигнала на 2 дисплея (или сколько хочется)
нужно добавить переключатель CS на нужное количество дисплеев.
но может быть достаточно будет EN вывести на отдельные ноги ардуины, временно отключая и включая шину данных на нужном дисплее.


Может вы про другой дисплей? Я вот про такой
Изображение

На нем вроде нет Chip Select. Есть линия адресного сигнала RS. Пишут, что
В зависимости от того, 0 она или 1, дисплей понимает имеем ли мы на линии данных команду вроде «передвинуть курсор» или код символа для отображения.


И есть E - линия разрешения доступа к данным.

Вроде бы то, что пишет dccharacter правильно. Хотя может просто сильно хочу в это поверить :) Уж очень хочется сделать все как можно проще.
Аватара пользователя
Trump
 
Сообщения: 9
Зарегистрирован: 28 авг 2011, 13:13
Откуда: Воронеж

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Myp » 21 фев 2012, 11:01

не помню какой именно был дисплей у меня, я его сломал ))) но он был большой, строчный и там был CS
щас у меня тока графический, и он как раз имеет 2 чипа.
я долго парился с ним, там оказалось что второй чип мало того что имеет свою персональную ногу CS
так ещё и распаян зеркально, тоесть левая половина изображения выводится как есть, а правая в зеркальном отображении.

я лишь говорю что большие дисплеи часто делают на 2х одинаковых чипах тупо запараллелив их на плате.
и управляются они просто коммутацией ног управления чипа на общий разъём.
на моём мэлте графическом сзади тупо припаяна микруха переключатель которая переключает сигналы управления для каждого чипа на общую шину.

и самостоятельно делать второй дисплей нужно по такому же опробованному принципу, коммутируя нужные ноги.
какие именно сам разберёшься =) может просто E
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение elmot » 21 фев 2012, 11:07

В википедии написано, что E - строб по спаду. Т.е. вполне себе заведется все. Все контакты кроме E - в параллель, катоды-аноды подсветки и контрасность - по желанию, смотря как подсветку регулировать. E - на каждый дисплей свой. Могут быть проблемы с чтением из дисплея, но, имхо, оттуда можно вообще ничего никогда не читать.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Myp » 21 фев 2012, 11:45

если это импортный дисплей на родной HD44780 то да
но скорей всего это нашемарка
в МЭЛТе википедию не читают поэтому делают как им вздумается =) и сходство с HD44780 иногда у них только в общих чертах.
бывает имеют несколько одинаковых дисплеев с разницей в одну букву в названии и с разной инициализацией и сигналами управления )
вобщим отнестись надо внимательно =) и распиновку брать только из даташита с полностью совпадающим названием, вплоть до последней буквы.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Trump » 21 фев 2012, 13:02

Myp
Ну я фотку просто кинул с амперки. Заказал дисплеи я естесссно в Китае :) Я думаю, они-то должны по даташитам делать.

elmot
Читать с дисплея мне не нужно. Так что если нужно будет отдельно подключать только E ноги это совсем хорошо.

Чтож остается попробовать. По крайней мере, IDE не имеет ничего против компилирования скетча в котором задаются одинаковые пины на несколько дисплеев.
Аватара пользователя
Trump
 
Сообщения: 9
Зарегистрирован: 28 авг 2011, 13:13
Откуда: Воронеж

Re: Подключение нескольких LCD 16x2 к одной Adruino

Сообщение Trump » 24 фев 2012, 20:55

Может быть кому-то будет полезна информация о результатах. Проведенный эксперимент показал, что, действительно, достаточно подключать отдельно только ногу ENABLE. Остальные провода будут общими для двух/нескольких дисплеев.
Аватара пользователя
Trump
 
Сообщения: 9
Зарегистрирован: 28 авг 2011, 13:13
Откуда: Воронеж


Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3