Можете ли вы использовать 128-контактный ЖК-дисплей на atMega?
Я нашел пару старых калькуляторов, и их ЖК-дисплеи имеют около 130 контактов.
Мне было интересно, могу ли я создать драйвер ЖК-дисплея, чтобы уменьшить количество контактов ввода-вывода, потому что я не хочу использовать 14 расширителей ввода-вывода; или можно сделать 1 огромный расширитель?
@Gert Maree, 👍-2
Обсуждение1 ответ
В этом ответе предполагается, что каждый сегмент ЖК-дисплея управляется отдельным выводом (см. комментарий Юрая).
С 74HC595 (сдвиговый регистр) вы можете использовать SPI для управления 8 выходами. Вы можете последовательно соединить 4 из них, чтобы получить 32 выхода только с контактами SPI, чтобы получить 128 контактов. Я предполагаю, что два контакта предназначены для GND и VCC. Если вам нужно более 128 выходных контактов GPIO, используйте 5 или более наборов последовательных регистров сдвига.
Теперь, поскольку эти регистры сдвига используют SPI, вы можете использовать выбор подчиненного устройства для использования нескольких наборов последовательно соединенных регистров сдвига. Хотя сам я этого никогда не пробовал.
Вы используете следующие контакты (кроме GND/VCC):
- 3 контакта SPI (MISO, MOSI, CLK)
- 4 контакта SS (по одному на каждый набор из 4 последовательных регистров сдвига)
Идея такова:
- Установите вывод SS на первый набор из 4 сдвиговых регистров
- Записать 32 выхода для первых 32 выходных контактов сегмента (используя 4 сдвиговых регистра первого набора)
- Установите вывод SS на следующий набор из 4 сдвиговых регистров
- Записать 32 вывода для следующего набора
- Продолжите со следующими двумя наборами (вы можете использовать 32 * 4 = 128 булавок)
- В следующем цикле снова начните с шага 1.
это предполагает, что один контакт управляет одним сегментом на ЖК-дисплее с цифровыми сегментами., @Juraj
@Juraj Правда, я добавил это в ответ, спасибо. Я бы подумал, что все равно иначе, зачем создавать нетривиальный протокол и все еще использовать 130 контактов. И спасибо за улучшение моего ответа., @Michel Keijzers
это может быть матрица, но теперь, когда я думаю об этом, это не меняет ответа, @Juraj
@Juraj Это сделало бы возможным множество сегментов (с матрицей XY). Но ведь сложнее только алгоритм заполнения кеглей. Я ожидаю, например, 10 цифр * 8 сегментов = 80 булавок и немного дополнительных элементов/слов вокруг (так как это старый калькулятор)., @Michel Keijzers
Я вижу, я думал об использовании 8 микросхем mcp23017 с 2-мя контактами, чтобы получить 128, и использовать 15 для матричных кнопок, что оставляет мне 36 контактов., @Gert Maree
Это тоже возможно, я пока не использовал MCP23017. В принципе, 74HC595 обычно предназначены для добавления выходов, однако я обнаружил, что 74HC595 могут подавать только 70 мА, поэтому в случае 8 сегментов вы можете использовать, например, ULN2803. Однако, как написал Busybee, вы можете вообще не использовать их, а конкретную микросхему / драйвер ЖК-дисплея, поскольку ЖК-дисплей использует переменный ток., @Michel Keijzers
- Использование модуля JYETech 2.4 Inch LCD Display Screen Module с Arduino?
- Использование RFID-RC522 с другими контактами
- Кнопка двойного состояния Nextion
- mcufriend 2.4 tft мега 2560
- ЖК-дисплей 16x2, показывающий блоки под текстом
- Печать содержимого файла SD - карты на ЖК-дисплее
- Выход 3,3 В при установке вывода на высокий уровень
- Регистр ATmega 32A и 2560 R3 для сопоставления контактов
Сдвиговые регистры могут быть проще и дешевле, поскольку вам не нужны возможности ввода, как с расширителями ввода-вывода., @chrisl
Что это за ЖК? Подключен ли каждый контакт к одному сегменту/пикселю, и все ли они имеют одну и ту же объединительную плату? Или это матрица строк-столбцов? Пожалуйста, имейте в виду, что вам нужно подать переменное напряжение на ЖК-дисплей, потому что постоянное напряжение будет вредным для него., @the busybee
Это точечная матрица 32x96, все работает на 1 1,5 В LR44., @Gert Maree