0

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

这是我的引脚布局:pin2-->SDA,pin3-->SCL。SSD1306 Arduino library 上的文档指出,即使我知道 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 引脚,但仍然没有。我觉得我没有选择和/或 OLED 坏了。我只是看看在我尝试更换之前是否还有其他事情可以做?谢谢你。

4

2 回答 2

1

我认为您必须使用大头针5和. 您还需要用于 I2C 通信。7attiny85tinywirem.h

于 2018-01-31T14:04:02.200 回答
0

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

我使用的是 U8g2 库,Digispark ATTiny85 的 init 条目适用于 u8x8 helloworld 演示,尽管我无法为 ATTiny85 编译许多演示。我仍在寻找更好的解决方案。

于 2020-01-15T01:39:39.970 回答