Путаница между SPI и I2C для SSD1306 OLED
Недавно я приобрел себе OLED-дисплей SSD1306:
Однако мне не удалось успешно подключить его к Arduino (Mega 2560). Я читал об I2C и SPI и проверил некоторые библиотеки от Adafruit и U8G2.
Однако я в замешательстве, поскольку большая часть Интернета говорит о аналогичный OLED-дисплей с контактами с маркировкой GND - VDD - SCL - SDA, где у меня SCK вместо SCL.
Количество контактов заставляет меня поверить, что мне нужен интерфейс I2C, но метка SCK указывает на SPI, верно?
Кажется, у одного человека та же проблема, что и у меня, но решение, которое он нашел (подтягивающие резисторы), боюсь, мне не помогло.
Итак, у меня остается вопрос: как подключить этот OLED-дисплей к Mega 2560?
Буду признателен, если кто-нибудь укажет мне правильное направление.
Спасибо!
@Bart Van Loon, 👍4
Обсуждение2 ответа
Лучший ответ:
SCK и SCL – это одно и то же.
- Последовательные часы
- Последовательные часы
Кажется, они взаимозаменяемы. Тот факт, что у вас есть SDA (Serial Data), а не отдельные контакты SDI/SDO или MOSI/MISO, означает, что это I2C.
Подключите его так же, как и любое другое устройство I2C.
Это i2c, но эти дисплеи известны тем, что нарушают работу шины i2c. Возможно, у них напряжение 3,3 В i2c или отсутствует подтверждение. Adafruit добавляет переключатель уровня i2c к аналогичным oled-дисплеям. U8g2 имеет опцию программного обеспечения i2c без подтверждения., @Jot
большое спасибо, это работает (также для справки: адрес I2C для этого дисплея — 0x3C), @Bart Van Loon
U8g2 в программном режиме I2C хорошо работает на GM009605 v4. Я могу использовать практически любую булавку. Выглядит тоже стабильно., @Jerther
У меня, похоже, один и тот же дисплей (GM009605 v4), и хотя SCL и SCK обозначают последовательную тактовую частоту, многие платы разработки имеют разные контакты SCK и SCL, которые вам необходимо соединить. Например, на Wemos d1 mini этот дисплей подключен к SDA => D2 & SCK => D5, где, как если бы это был SCL, он был бы направлен на D1.
Кстати, я использую библиотеки Wire.h и SSD1306.h (https://github.com/ThingPulse/esp8266- oled-ssd1306) для взаимодействия с дисплеем с помощью Wemos D1 mini.
- SH1106 - Передача длинного буфера через SPI
- Водонепроницаемый датчик температуры SPI.
- SPI Arduino slave не получает данные правильно
- Как использовать SPI на Arduino?
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
- OVF в последовательном мониторе вместо данных
- I2C и SPI одновременно?
- Неправильная документация для выводов Mega2560 SPI?
производители ужасно печатают правильные этикетки на этих интерфейсных контактах. я видел SPI MOSI с маркировкой:
MOSI/SPI/DO/SDI/SDA/AD/A0 и DC
; некоторые из них даже близко не похожи! проводов всего 2, так что это I2C. попробуйте перевернуть булавки, если не получится; Я тоже видел, чтобы они были помечены наоборот., @dandavis