完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想从 PCF8591 ADC 获取输入并将它们显示在 OLED 显示器上。
我正在为 SSD1306 显示器使用 thingpulse/ESP8266 和 ESP32 OLED 驱动程序,但这只是因为它是我发现的第一个有效的驱动程序。 这是我用来读取 ADC 的代码,它似乎工作正常。 代码:全选 Wire.beginTransmission(0x48); // wake up PCF8591 Wire.write(0x04); // control byte - read ADC0 then auto-increment Wire.endTransmission(); // end tranmission Wire.requestFrom(PCF8591, 5); value0 = Wire.read(); value0 = Wire.read(); value1 = Wire.read(); value2 = Wire.read(); value3 = Wire.read(); 除了如果我初始化显示它会停止工作: 代码:全选SSD1306Wire display(0x3c, 5, 4); display.init(); 在那之后,我所有的输入都变成了 128。 我需要做什么不同的事情? |
|
相关推荐
1个回答
|
|
要在OLED显示器上显示PCF8591 ADC的输入,您需要通过I2C通信协议将PCF8591与ESP8266或ESP32连接起来。您需要连接一个I2C总线,然后使用Wire库读取PCF8591的数据,将其转换为数字,并将其传递给OLED显示器。
这里是一个简单的代码示例,演示如何从PCF8591读取数据并将其显示在OLED上: ``` #include #include #define OLED_RESET -1 // Set RESET pin to -1 if display doesn't have reset pin #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // Initialize OLED display with wire library const int PCF8591_ADDRESS = 0x48; // Address of PCF8591 const int PCF8591_CONTROL_BYTE = 0x04; // Read ADC0 then auto-increment void setup() { Wire.begin(); // Initialize I2C communication display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // Initialize OLED display with I2C address 0x3C display.display(); } void loop() { Wire.beginTransmission(PCF8591_ADDRESS); // Start communication with PCF8591 Wire.write(PCF8591_CONTROL_BYTE); // Write control byte to read ADC0 Wire.endTransmission(); Wire.requestFrom(PCF8591_ADDRESS, 1); // Request a byte of data from PCF8591 int value0 = Wire.read(); // Read the byte of data display.clearDisplay(); // Clear the OLED display display.setCursor(0, 0); display.print("ADC0: "); display.print(value0, DEC); // Display the ADC0 input display.display(); // Update the OLED display } ``` 该代码使用Adafruit_SSD1306库来控制OLED显示器,并使用Wire库来控制I2C通信。在setup()函数中,它初始化I2C通信和OLED显示器。在loop()函数中,它读取PCF8591 ADC的值并将其显示在OLED显示器上。这是一个基本示例,您可以根据需要进行修改和扩展。 |
|
|
|
只有小组成员才能发言,加入小组>>
733 浏览 1 评论
552浏览 6评论
461浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
445浏览 5评论
446浏览 4评论
417浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 03:13 , Processed in 0.630150 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号