Как подключить часы реального времени к аналоговым пинам Arduino?
На Arduino UNO сверху надет LCD Shield 1602. Подключаюсь к нему через библиотеку LiquidCrystal, его контакты занимают почти все цифровые пины, а именно: d4 = 4, d5 = 5, d6 = 6, d7 = 7, rs = 8, en = 9. На пин 3 подаю напряжение на релюху. Получается, что свободен остаётся только пин 2.
Хочу повесить еще часы реального времени (есть DS1302 и DS1307), а у них еще 3 пина помимо питания и земли (и возможно еще в придачу повешу пищалку), но не соображу как, это сделать?
Правильно ли я понимаю, что нужно использовать аналоговые пины? Если да, то на вывод или на ввод их нужно ставить?
Правильно ли я понимаю, что нужно использовать аналоговые пины?
Не совсем, но почти. RTC работают по протоколу I2C, а в Arduino аппаратный I2C выведен на пины А4, А5. Т.е. формально они могут быть аналоговыми входами, но в вашем случае у них будет друга функция тыц
Если схема соединений с ЖКИ и его скетч "неизменны", то можно "расшарить" цифровые выводы между ЖКИ и RTC. Пока линия !EN в "1" все остальные линии, задействованные для обмена с ЖКИ, можно использовать для других целей.
Сигнал разрешения контроллера ЖКИ имеет "активный низкий" уровень (документации под руками нет - пишу по памяти). Когда этот сигнал не активен - контроллер не отслеживает состояние входов управления "команды/данные" и "чтение/запись" и переводит шину данных в Z-состояние.
P.S. Хотя, возможна маловероятная, но трудно отслеживаемая коллизия, когда данные для ЖКИ будут последовательно интерпретированы, как условие start, адрес и запись в DS13**.
1) Возьмите IIC переходник для дисплея
2) Программно разделите время работы часов и дисплея, как предложили выше
3) "Аналоговые" выходы - это дополнительный функционал, они так же могут работать и как цифровые.