Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino SSD1306显示屏-奇怪的行为_Arduino_Hardware_Atmega - Fatal编程技术网

Arduino SSD1306显示屏-奇怪的行为

Arduino SSD1306显示屏-奇怪的行为,arduino,hardware,atmega,Arduino,Hardware,Atmega,我有两个SSD1306(126x64)显示器,其运行方式非常奇怪: 下面是我运行的草图的简短视频: 草图本身是(adafruit SSD1306+GFX)。所有显示器均位于I2C端口0x3c上 左边的那个来自不同的制作人,效果很好。我不知道我的设备是否有缺陷,或者它们是否需要稍微不同的处理。当写入显示器时,整个图像似乎被绘制到顶部的6-8像素区域中 如果有人有这方面的经验,我将不胜感激。我也不确定这是否是发布此消息的正确位置,所以请告诉我是否有更合适的SE站点。为了让运行在同一总线上的I2C设

我有两个SSD1306(126x64)显示器,其运行方式非常奇怪:

下面是我运行的草图的简短视频:
草图本身是(adafruit SSD1306+GFX)。所有显示器均位于I2C端口0x3c上

左边的那个来自不同的制作人,效果很好。我不知道我的设备是否有缺陷,或者它们是否需要稍微不同的处理。当写入显示器时,整个图像似乎被绘制到顶部的6-8像素区域中


如果有人有这方面的经验,我将不胜感激。我也不确定这是否是发布此消息的正确位置,所以请告诉我是否有更合适的SE站点。

为了让运行在同一总线上的I2C设备工作,每个设备都需要有自己的I2C地址,不幸的是,SSD1306只有两个I2C地址可供选择,0x3c或0x3d

对于在同一I2C上运行的两个以上SSD1306,您需要一个Arduino板,该板可以提供多个I2C接口,或者添加一些硬件解决方案,如

同时,如果要同时运行两个显示,则需要修改代码以创建具有不同地址的两个显示实例

更改行:

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
  Serial.println(F("SSD1306 allocation failed"));
  for(;;); // Don't proceed, loop forever
}
致:

更改行:

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
  Serial.println(F("SSD1306 allocation failed"));
  for(;;); // Don't proceed, loop forever
}

对于所有后续调用
display
方法,您需要将其更改为
display1
,并为
display2
添加另一个类似的行,例如:

display.display();
将需要更改为:

dispaly1.display();
display2.display();

您用于3个显示器的3个I2C地址是什么?草图的链接仅适用于一个LCD显示器,那么3个显示器的实际草图是什么?它们都在上面的0x3C上并行(这是相同的草图)。他们各自的行为都一样。谢谢你的提示;但他们仍然以这种方式单独行动。正常的仍然工作,失败的仍然失败。你用I2C扫描仪扫描过这些屏幕以确保有地址吗?是的,它们都在0x3C上