Arduino ATtiny85 I2C SSD1306屏幕不工作

Arduino ATtiny85 I2C SSD1306屏幕不工作,arduino,avr,i2c,attiny,Arduino,Avr,I2c,Attiny,在收到我的SSD1306 I2C邮件后,我已经讨论这个问题3天多了。我有一个来自Sparkfun的小程序员,我用它做实验板 这是我的pin布局:pin2-->SDA,pin3-->SCL。SSD1306 Arduino库的文档说明,即使我知道SDA是pin5,SCL是pin7,我也必须使用这些引脚。电源和接地从微型编程器连接到OLED 我遇到的主要问题是OLED没有打开或显示文本 我使用的代码是: /** * Attiny85 PINS * ____ * RESE

在收到我的SSD1306 I2C邮件后,我已经讨论这个问题3天多了。我有一个来自Sparkfun的小程序员,我用它做实验板

这是我的pin布局:pin2-->SDA,pin3-->SCL。SSD1306 Arduino库的文档说明,即使我知道SDA是pin5,SCL是pin7,我也必须使用这些引脚。电源和接地从微型编程器连接到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坏了。我只是想看看在我试着找一个替代品之前我还能做些什么?谢谢。

我想您必须在
attiny85
上使用pins
5
7
。您还需要使用
tinywirem.h
进行I2C通信。

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

我使用的是U8g2库,Digispark ATTiny85的init条目对于u8x8 helloworld演示来说可以正常工作,尽管我无法为ATTiny85编译许多演示。我仍在寻找更好的解决方案。

如果您有一个(或有权使用一个),逻辑分析仪或示波器将让您通过电子方式确认发生了什么,而不是在黑暗中。您使用的是哪个SSD1306库?州政府说它在ATtiny85上不起作用(尽管看起来你没有使用它)。