用Arduino IDE与Adafruit GFX实现OLED屏幕显示模拟传感器数值曲线图
以下是使用Arduino IDE和Adafruit GFX库编写的示例代码,用于从模拟传感器读取值并在OLED屏幕上显示曲线图: ``` #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> // OLED屏幕的I2C地址 #define OLED_ADDR 0x3C // OLED屏幕的宽和高 #define OLED_WIDTH 128 #define OLED_HEIGHT 64 // 曲线图横坐标的范围和初始位置 #define GRAPH_WIDTH 100 #define GRAPH_X 14 #define GRAPH_Y 40 // 创建Adafruit_SSD1306对象 Adafruit_SSD1306 display(OLED_WIDTH, OLED_HEIGHT, &Wire, OLED_ADDR); // 模拟传感器引脚 const int sensorPin = A0; void setup() { // 启动串口通信 Serial.begin(9600); // 初始化OLED屏幕 display.begin(SSD1306_SWITCHCAPVCC); display.clearDisplay(); display.setTextColor(WHITE); // 显示横纵坐标轴 display.drawLine(GRAPH_X, GRAPH_Y, GRAPH_X + GRAPH_WIDTH, GRAPH_Y, WHITE); display.drawLine(GRAPH_X, GRAPH_Y, GRAPH_X, GRAPH_Y - OLED_HEIGHT, WHITE); // 显示OLED屏幕上面的标题和刻度 display.setTextSize(1); display.setCursor(0, 0); display.println("Sensor Reading"); display.setTextSize(2); display.setCursor(0, GRAPH_Y + 5); display.println("0.0"); display.setTextSize(2); display.setCursor(0, GRAPH_Y - OLED_HEIGHT); display.println("5.0"); display.display(); } void loop() { // 读取模拟传感器的值 float sensorValue = analogRead(sensorPin); // 将传感器值映射到OLED屏幕上的范围 float mappedValue = map(sensorValue, 0, 1023, GRAPH_X, GRAPH_X + GRAPH_WIDTH); // 在OLED屏幕上绘制曲线图 display.drawPixel(mappedValue, GRAPH_Y-1, WHITE); // 将传感器值打印到串口 Serial.println(sensorValue); // 更新OLED屏幕显示 display.display(); // 延迟一段时间 delay(100); } ``` 您需要将该代码上传到Arduino开发板,然后连接一个模拟传感器到A0引脚。该代码将读取模拟传感器的数值,并将其绘制为曲线图显示在OLED屏幕上。曲线图的横坐标范围为0到100,并通过映射函数将传感器值映射到这个范围上。 ######[AI写代码神器 | 1254点数解答 | 2024-11-28 00:00:24]
- STM32F10x代码解析:多模块引用与变量定义及功能探讨(字节豆包 | 25点数解答 | 2025-05-06 01:13:43)204
- Keil编译报错:找不到core_cm3.h文件的原因及解决办法(字节豆包 | 666点数解答 | 2025-11-12 18:26:21)271
- Keil MDK编译报错“无法打开 core_cm3.h”,解决办法及注意事项全揭秘!(字节豆包 | 560点数解答 | 2025-11-12 18:31:47)107
- Java 继承实现:重温经典剪刀石头布游戏(字节豆包 | 451点数解答 | 2024-10-20 19:57:58)485
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)382
- Python实现整数序列奇偶项输出(字节豆包 | 346点数解答 | 2026-03-15 02:01:10)41
- 基于逻辑回归的乳腺癌数据分类预测:分析威斯康星乳腺肿瘤数据集(阿里通义 | 889点数解答 | 2025-06-19 12:02:10)219
- 新员工7月业绩冲刺计划书:15天填补28000元缺口,附Word转换指南!(DeepSeek | 233点数解答 | 2025-07-16 18:48:05)124
- 新员工业绩达标计划书:完善方案待店长审批,多维度优化冲刺7月目标!(字节豆包 | 500点数解答 | 2025-07-16 18:50:16)114
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)352
- 用Arduino实现光敏电阻控制<500亮、按钮开启的流水灯,附硬件连接与代码示例 ( | 987点数解答 | 2024-06-20 20:05:00)202
- Arduino UNO+0.96寸OLED屏+摇杆模块:超详细贪吃蛇小游戏代码、注解与连线图(字节豆包 | 1745点数解答 | 2025-07-06 15:59:00)137