Проблема с настройкой i2c OLED wemos D1 mini shiled (64*24)

Привет

Я использовал этот щит раньше. Но это не сработало, когда я хотел поработать с ним прошлой ночью!

это моя проводка :

Теперь я хочу знать, как проверить, что он здоров? i2c-адрес отсутствует?

Я пробовал использовать этот код, чтобы найти адрес i2c, но на последовательном мониторе Arduino не появился ответ!! ничего..

и я загрузил еще один пример кода на Uno, но OLED не работал.

// ~~~~~~~~~~~ Сканер адресов i2c ~~~~~~~~~~~

#include <Wire.h>

void setup() {
Serial.begin (115200);

while (!Serial) {}

Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;

Wire.begin();
for (byte i = 8; i < 120; i++){
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0){
  Serial.print ("Found address: ");
  Serial.print (i, DEC);
  Serial.print (" (0x");
  Serial.print (i, HEX);
  Serial.println (")");
  count++;
  delay (1);  
   } 
  } 
  Serial.println ("Done.");
  Serial.print ("Found ");
  Serial.print (count, DEC);
  Serial.println (" device(s).");
  }  
  void loop() {}

. .

В чем проблема?

, 👍1

Обсуждение

Поскольку Wenos D1 — это устройство на 3,3 В, а Uno — на 5 В, у вас могут возникнуть проблемы при использовании I2C между ними без преобразования уровня., @chrisl

Когда вы пишете «ничего», вы имеете в виду, что вы действительно ничего не видите на последовательном мониторе, даже сообщение «Сканер I2C. Сканирование ...»?, @chrisl

Я имею в виду, что он не находит адрес и поэтому ничего не показывает как адрес. @chrisl, @navid

Означает ли это, что если я использую 3,3 В, проблема будет решена? Можете ли вы сказать, какое соединение i2c имеет с напряжением питания? @chrisl, @navid

что это означает, что заземление 3,3 В должно быть одинаковым для обоих, пока не будут выполнены соединения i2c! если 5v, что происходит, не работают соединения i2c? @Крисл, @navid

I2C имеет отношение к напряжению питания, что линии подтянуты к напряжению питания. Uno тянет до 5В, экран OLED до 3,3В. В зависимости от того, как именно подробно реализован протокол I2C с обеих сторон (что иногда нарушает правила определения интерфейса), по линиям может протекать большой ток из-за разных напряжений. Также может случиться так, что плата OLED не выдерживает 5 В. Это может сломаться. Вам может понадобиться двунаправленный преобразователь уровня (или создайте его самостоятельно с 2 МОП-транзисторами), @chrisl


1 ответ


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

0

Основная проблема в том, что на модуль не подается напряжение питания. Вы подключили Unos 5V к плате OLED 5V. Но этот контакт, похоже, не подключен к экрану OLED. Там помечено 5V, потому что эта плата представляет собой щит для установки на Wemos D1. Когда вы это сделаете, у вас будет 5 В на этом контакте от Wemos, и вы сможете получить к нему доступ на экране OLED для добавления дополнительных компонентов. (Это принцип щитов. Сделать доступными даже неиспользуемые контакты на щите, чтобы они не закрывались экраном)

На экран необходимо подавать питание через контакт 3,3 В, так как это устройство на 3,3 В и не имеет собственного стабилизатора напряжения (см. схема щита).

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


Тем не менее, у вас также могут возникнуть проблемы из-за напряжения связи. Uno работает с 5 В на линиях I2C, а экран OLED работает с 3,3 В. Экран может быть поврежден более высоким напряжением. На схемах щита не указаны названия деталей, поэтому я не могу знать, устойчивы ли они к 5 В (на схеме 2 микросхемы).

Если экран не поддерживает 5 В на линиях I2C, вам необходимо использовать двунаправленный преобразователь уровня для обеих линий (или вы можете создать свой собственный с двумя МОП-транзисторами для каждой линии).

,

Да, ты прав. Я подключил 3,3 В к OLED, загрузил скетч на Uno, и OLED заработал. @chrisl, @navid