Как использовать LCD I2C и RTC3231 на Arduino Pro Mini?

В небольшом проекте у меня есть модуль DS3231 RTC и ЖК-модуль I2C, которые я пытаюсь подключить к плате Arduino Pro Mini. Однако и для RTC, и для LCD требуется подключение SDA и SCL к контактам A4 и A5 соответственно.

Похоже, библиотеки не позволяют изменять подключенные контакты. Почему это? У меня есть другие контакты, такие как A6 и A7, можно ли их использовать?

, 👍-3

Обсуждение

Ух ты! Первый вопрос и уже минусы без комментариев и ответов. Это настоящее хорошее сообщество! Я чувствую себя желанным гостем!, @Yanick Rochon

Я думаю, отрицательные голоса, потому что вы не исследовали свою проблему. вы обнаружите, что I2C - это шина, @Juraj

SDA и SCL — это линии шины I2C. То, что это шина, означает, что к ней можно подключить несколько устройств. Каждое устройство на шине I2C имеет адрес. Вы не можете подключить оба устройства к этим контактам и общаться с каждым устройством по очереди., @chrisl

@Juraj хорошо, я спрашиваю, потому что я изучаю. Серьезно. Это как работодатель просит 5 лет опыта; кто-то должен дать парню шанс., @Yanick Rochon


1 ответ


Лучший ответ:

0

Добро пожаловать, я понимаю, откуда вы, без фона вы не знаете, что спросить. Были все, где вы находитесь в одно время. Надеюсь, это поможет. Вам нужно немного изучить шину I2C, онлайн-учебники облегчат вам задачу. Вы обнаружите, что можете подключить к нему более 100 устройств одновременно. Линии SCL и SDA идут от модуля к модулю. Обратите внимание, что каждый модуль имеет свой собственный адрес, иногда их можно выбрать. Некоторые модули имеют подтягивающие резисторы, другие — нет. Чтобы было интересно, подтягивающие резисторы в основном 10K, но это не постоянная величина.

Существуют правила загрузки и т. д., о которых следует помнить, если у вас длинные провода или, возможно, более трех устройств. Вам нужно добавить подтягивания к каждой из двух линий (пример: 4,7K от SCL до +5) или использовать что-то в диапазоне 3K для системы 3V3. Причина в том, что шина имеет как доминирующее, так и рецессивное состояния, где рецессивное состояние высокое, которое обеспечивает резистор. Выходы/входы SCL и SDA на компонентах имеют выходы с открытым коллектором/открытым стоком, поэтому они не могут быть источником чего-либо.

После того, как вы подключили его, вам нужно запустить программу под названием сканирование I2C или что-то в этом роде. Если вы подключили его правильно, он даст вам адрес модуля, вы, вероятно, получите два или три, так как есть RTC, устройство памяти и, возможно, датчик температуры.

Правило № 1 — это блок питания Arduino. Небольшой модуль или два, подключенные к выходу 5 В, в порядке, но никогда не подключайте двигатель напрямую к любому Arduino, вы, вероятно, сломаете Arduino.

Я использую Vin и подаю на него около 8 вольт с помощью преобразователя Buck или Sepic от источника питания 12 В, 2 А или выше. Я делаю это так, потому что получаю более стабильное напряжение на Arduino из-за дополнительной фильтрации и т. д., встроенной в секцию аналогового регулятора. Очень приятно при использовании A / D, сохраняет стабильность. Были здесь, чтобы помочь, задавайте вопросы в любое время и не беспокойтесь, если кто-то слишком нетерпеливый решит проголосовать за вас. Прочтите рекомендации и т. д., и у вас все получится.

Вы можете выполнить поиск в Интернете по запросу "Arduino RTC" и найти множество программ с софтом.

,

Спасибо за это очень полезное объяснение! Я заметил падение напряжения при подключении 4-канального многофункционального релейного модуля, я уже решил подключить его источник питания напрямую к источнику питания, а НЕ к Arduino! Я не знал о протоколе I2C. Я нахожу многое в руководстве запутанным, так как существует так много разных модулей и плат! Со временем прояснится. Спасибо!, @Yanick Rochon

Просто ради интереса ответь на свой вопрос через две недели, ты удивишься, как много ты узнал. Веселиться!, @Gil