阁楼 85 I2C SSD1306 屏幕不工作

ATtiny85 I2C SSD1306 screen not working

在我收到邮件中的 SSD1306 I2C 后,我已经在这个问题上思考了 3 天多了。我有一个来自 Sparkfun 的 Tiny Programmer,我将它与面包板一起使用。

这是我的管脚布局:pin2-->SDA,pin3-->SCL。 SSD1306 Arduino 库上的文档说明我必须使用这些引脚,即使我知道 SDA 是 pin5 而 SCL 是 pin7。电源和地从 Tiny Programmer 跳转到 OLED。

我遇到的主要问题是 OLED 不亮或不显示文本。

我为此使用的代码是:

/**
*   Attiny85 PINS
*             ____
*   RESET   -|_|  |- 3V
*   SCL (3) -|    |- (2)
*   SDA (4) -|    |- (1)
*   GND     -|____|- (0)
*
*   Atmega328 PINS: connect LCD to A4/A5
*/

#include "ssd1306.h"

void setup() {
   /* Replace the line below with ssd1306_128x32_i2c_init() if you need to use 128x32 display */
  ssd1306_128x64_i2c_init();
  ssd1306_fillScreen(0x00);
  ssd1306_charF6x8(0, 0, "Line 1. text");
  ssd1306_charF6x8(0, 1, "Line 2. Bold text", STYLE_BOLD);
  ssd1306_charF6x8(0, 2, "Line 3. Italic text", STYLE_ITALIC);
  ssd1306_charF12x16(0, 3, "Line 4. Double size", STYLE_BOLD);
}

void loop() {
}

编译时没有错误消息,老实说我不知道​​发生了什么。

我已经尝试交换 SDA 和 SCL,但仍然没有。我什至使用了实际的 SDA 和 SCL 引脚,但仍然一无所获。我觉得我没有选择 and/or OLED 坏了。我只是看看在我尝试更换它之前是否还有什么我可以做的?谢谢。

我认为您必须将引脚 57attiny85 一起使用。您还需要使用 tinywirem.h 进行 I2C 通信。

ATTiny85 I2C 引脚是 pin5(PB0) SDA 和 pin7(PB2) SCL,SSD1306 库似乎认为它们是 pin3(PB4) SDA 和 pin2(PB3) SCL,演示甚至有一个图表它们中的 ATTTiny 显示不正确的引脚。我没有运气就使用了官方图钉。使用他们建议的引脚实际上确实 运行 但速度太慢,大多数人会认为它不起作用。开始清屏需要几分钟,而真正清屏需要更长时间。

我改用了 U8g2 库,Digispark ATTiny85 的初始化条目对于 u8x8 helloworld 演示工作正常,尽管我无法为 ATTiny85 编译许多演示。我还在寻找更好的解决方案。