I2C OLED不会打开或显示

问题描述 投票:0回答:2

我已经开始使用Arduino语言而不是pyFirmata版本。我正在使用Arduino UNO。我遇到了同样的问题,那就是OLED无法正常工作。我尝试了2种不同的OLED,其中一种来自UCTRONICS,另一种来自HiLetGo。它们都是I2C 128x64 OLED,UCTRONICS一种是黄色和蓝色,而HiLetGo一种是白色。我尝试了2种不同的代码,其中一种是我编写的,另一种是ssd1306库中的示例。没有错误,OLED只是不亮。该板与Alco连接到我用于同一项目的4个触摸传感器,但它们没有错(尚未)。我已经进行了一段时间的故障排除,并且能够查明错误的位置(可能是)。这是我的代码:(即使ssd1306 I2C 128x64示例也不起作用。)我也不希望建议使用那些我不需要的额外硬件,例如RTC(即使与之无关)是我能想到的唯一示例)这是我的代码:(即使ssd1306 I2C 128x64示例也不起作用。)

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
#define sw 128
#define sh 64
Adafruit_SSD1306 display(sw, sh, &Wire, OLED_RESET);

void setup() {
  Serial.begin(9600);
  Wire.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x78);
  display.cp437(true);
  pinMode(A4, OUTPUT);


}

void loop() {
  digitalWrite(A4, HIGH);
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.println("test");
  Serial.println("test");
  digitalWrite(A4, LOW);

}

像往常一样,我只有1周的时间来解决此问题,因此帮助将不胜感激。

arduino-uno i2c arduino-ide led
2个回答
0
投票

是的,这些显示可能非常烦人。我自己经历过。

首先,请访问供应商的网站,看看他们是否建议使用任何特定的库。我遇到的一些主要问题是:

  • 屏幕的电源电压不是您期望的标准5V,而是更高或更低。如果它更低,或者您为5V提供了3.3V电源,甚至可能损坏或损坏了显示屏。
  • 您已接通SDA / SDL电线,忘记连接某些电线或接地不良。背光灯可以工作吗?
  • 该库使用了错误的时钟速度
  • 显示器正在监听的I2C地址不同于库中使用的地址(对我来说这是最常见的地址)

0
投票

I2C地址显示错误。 Arduino的Wire库(doc)使用7位地址。因此,您想截取最低有效位并指定0x3C而不是0x78

© www.soinside.com 2019 - 2024. All rights reserved.