完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我正在使用 NodeMCU ESP8266,并尝试连接 SD1306 0.96 OLED 显示器。我已经进行了一周的故障排除,但似乎找不到答案。它以前在工作,然后在某个地方,不知何故就停止了。
我的设置源自 Rui Santos 和 Random Nerd Tutorials。 我还运行了 Rui Santos 提供的 i2c 扫描仪来进行故障排除。 输出是 代码:全选Scanning... No I2C Devices found 我已经确认所有电线都已到位,包括 SCL/SDA。 -D1 -- SCL -D2-- SDA 然后我尝试连接第二个 OLED,我必须看看这是否是硬件问题。 但是,没有输出! 当运行我显示信息的原始代码时,第二个 OLED 仍然无法工作。所以此时问题一定是电路板(Esp8266)本身。 为了查看这是否是库问题,我尝试为 Node MCU ESP8266 安装特定的库,但没有用。 为了查看它是否是我的编码,我尝试运行 OLED 演示的示例代码。没用。 在这一点上,我觉得这可能是 ESP8266/NodeMCU 固件问题,并且不确定从这里去哪里。我研究了固件重新加载,但在 Mac 上似乎真的很复杂。除非有人可能知道我遇到的问题是什么?如果您想查看我用来运行该程序的代码,请参见下文(您将在无效循环中看到,我已经在其中添加了 I2C 扫描器以进行故障排除:其他人有任何建议吗? 代码:全选 /**********Include Libraries**********/ /*************************************/ #include #include #include #include #include #include /********** **********/ //------------------------------------------------------------------ // Definitions #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) #define DHTPIN 0 // Digital pin connected to the DHT sensor (D3) #define DHTTYPE DHT11 // DHT 11 //------------------------------------------------------------------ // Create the DHT22 temperature and humidity sensor object DHT dht(DHTPIN, DHTTYPE); //-----/**********--VOID SETUP--**********/-----// //**********************************************// void setup() { Serial.begin(115200); dht.begin(); if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for(;;); // Don't proceed, loop forever } delay(5000); display.setTextColor(WHITE); } //-----/**********--VOID LOOP--**********/-----// //**********************************************// void loop() { delay(1000); //------------------------------------------------------------------- // Read Temperature and Humidity float t = dht.readTemperature(); float h = dht.readHumidity(); float f = dht.readTemperature(true); //------------------------------------------------------------------ // Check if any reads failed and exit early (to try again). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } //-------------------------------------------------------------------- // Compute Heat Index // Must send in temp in Fahrenheit! float hi = dht.computeHeatIndex(f, h); //-------------------------------------------------------------------- //print data to serial Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hi); Serial.println(" *F"); //------------------------------------------------------------------ // Display display.clearDisplay(); //Temperature------------------------------------ display.setTextSize(1); display.setCursor(0,0); display.print("Temperature: "); display.setTextSize(2); display.setCursor(0,10); display.print(f); display.print(" "); display.setTextSize(1); display.cp437(true); display.write(167); display.setTextSize(2); display.print("F"); //Humidity------------------------------------ display.setTextSize(1); display.setCursor(0, 35); display.print("Humidity: "); display.setTextSize(2); display.setCursor(0, 45); display.print(h); display.print(" %"); display.display(); } 这是一个糟糕的假设。虽然这是可能的,但您可能已经做了一些以前可能有效的电气边际操作。并且可能损坏了第一个 oled。一段时间后,第二个 oled 可能会出现故障。 有多种可能性,您只有在解决问题后才会知道原因是什么。 |
|
相关推荐
1个回答
|
|
作显示器还是没有响应。这种情况可能是由于以下几个原因导致的:
1. 电线连接有问题:请再次检查所有连接线,确保它们安全地插入到正确的插口中。如果电线连接不正确或松动,将会导致显示屏无法正常工作。 2. OLED 显示器损坏:可能出现损坏或故障的情况。如果您已经检查了所有电线连接问题并确认您的代码没有错误,那么您可以尝试连接新的 OLED 显示器。有时候,维修费比购买新的更高。 3. ESP8266 问题: ESP8266 可能出现问题,因为您正在使用 NodeMCU 板。尝试将您的程序上传到其他 ESP8266 板上,并检查 OLED 显示器是否可以正常工作。 4. 缺少 i2c 驱动程序:请确保正确安装并使用 i2c 驱动程序。i2c 驱动程序需要进行正确的设置才能与 OLED 显示器一起使用。 5. 软件问题: 请确保您的代码没有错误,确保其与 OLED 显示器兼容并正确加载库。您可能还需要检查代码中关于 OLED 显示器的配置选项是否正确。 如果在尝试上述步骤后,您的 OLED 显示器仍然无法正常工作,请咨询专家寻求帮助或替换 OLED 显示器。 |
|
|
|
只有小组成员才能发言,加入小组>>
920 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
445浏览 5评论
446浏览 4评论
417浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 08:01 , Processed in 0.899974 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号