roboforum.ru

Технический форум по робототехнике.

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

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

Trump » 20 фев 2012, 23:37

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

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

dccharacter » 20 фев 2012, 23:45

Мне кажется наоборот шину данных можно общую, а EN, RST и что там еще - на отдельные

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

Trump » 21 фев 2012, 00:00

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

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

dccharacter » 21 фев 2012, 00:30

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

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

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

Myp » 21 фев 2012, 09:20

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

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

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 правильно. Хотя может просто сильно хочу в это поверить :) Уж очень хочется сделать все как можно проще.

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

Myp » 21 фев 2012, 11:01

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

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

и самостоятельно делать второй дисплей нужно по такому же опробованному принципу, коммутируя нужные ноги.
какие именно сам разберёшься =) может просто E

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

elmot » 21 фев 2012, 11:07

В википедии написано, что E - строб по спаду. Т.е. вполне себе заведется все. Все контакты кроме E - в параллель, катоды-аноды подсветки и контрасность - по желанию, смотря как подсветку регулировать. E - на каждый дисплей свой. Могут быть проблемы с чтением из дисплея, но, имхо, оттуда можно вообще ничего никогда не читать.

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

Myp » 21 фев 2012, 11:45

если это импортный дисплей на родной HD44780 то да
но скорей всего это нашемарка
в МЭЛТе википедию не читают поэтому делают как им вздумается =) и сходство с HD44780 иногда у них только в общих чертах.
бывает имеют несколько одинаковых дисплеев с разницей в одну букву в названии и с разной инициализацией и сигналами управления )
вобщим отнестись надо внимательно =) и распиновку брать только из даташита с полностью совпадающим названием, вплоть до последней буквы.

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

Trump » 21 фев 2012, 13:02

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

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

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

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

Trump » 24 фев 2012, 20:55

Может быть кому-то будет полезна информация о результатах. Проведенный эксперимент показал, что, действительно, достаточно подключать отдельно только ногу ENABLE. Остальные провода будут общими для двух/нескольких дисплеев.


Rambler\'s Top100 Mail.ru counter