在我收到邮件中的SSD1306 I2C之后,我已经讨论了这个问题超过3天了。我有一个来自Sparkfun的微型程序员,我在面包板上使用它。
这是我的引脚布局: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引脚,但仍然没有。我觉得我没有选择和/或OLED坏了。在我试图替换它之前,我只是看到我还能做些什么吗?谢谢。
答案 0 :(得分:0)
我认为您必须将5
和7
与attiny85
一起使用。您还需要使用tinywirem.h
进行I2C通信。
答案 1 :(得分:0)
ATTiny85 I2C引脚是pin5(PB0)SDA和pin7(PB2)SCL,SSD1306库似乎认为它们是pin3(PB4)SDA和pin2(PB3)SCL,演示中甚至还包含一个ATTtiny图他们显示不正确的引脚。我没有运气就使用了官方的大头针。他们建议使用针脚确实可以运行,但是大多数人这么慢就认为它不起作用。开始清除屏幕花了几分钟,而实际上清除它花费了更长的时间。
我改用了U8g2库,尽管我无法为ATTiny85编译很多演示,但Digispark ATTiny85的init条目对于u8x8 helloworld演示仍然可以正常工作。我仍在寻找更好的解决方案。