#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
时间: 2024-04-23 19:19:46 浏览: 183
#define是C/C++中的预处理指令,用于定义常量或宏。在这个例子中,定义了两个常量SCREEN_WIDTH和SCREEN_HEIGHT,分别表示屏幕的宽度和高度。
SCREEN_WIDTH被定义为128,表示屏幕的宽度为128个单位。
SCREEN_HEIGHT被定义为64,表示屏幕的高度为64个单位。
这样定义常量可以方便地在代码中使用,避免了多次写入具体数值的麻烦,并且提高了代码的可读性和可维护性。
相关问题
#define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 32 // OLED display height, in pixels
这是一段代码,定义了一个 OLED 显示屏的宽度和高度。SCREEN_WIDTH 被定义为 128 像素,表示该显示屏的宽度为 128 像素;SCREEN_HEIGHT 被定义为 32 像素,表示该显示屏的高度为 32 像素。这样定义常量可以方便程序中直接使用这些数值,避免硬编码,提高代码的可读性和可维护性。
基于arduino ide帮我把下面这段代码 改成两套水位传感器以及oled显示器分别运行的代码#include <Wire.h> #include <Adafruit_SSD1306.h> #include <Adafruit_GFX.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); const int sensorPin = A0; // 水位传感器输入引脚 int sensorValue = 0; // 水位传感器读数 int waterLevel = 0; // 水位高度,0-100% void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); delay(1000); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); } void loop() { sensorValue = analogRead(sensorPin); waterLevel = sensorValue * 100 / 1023; // 将读数转换为百分比 display.setCursor(0, 0); display.print("Water level: "); display.print(waterLevel); display.println("%"); display.display(); delay(1000); display.clearDisplay(); }
好的,以下是我为您修改的代码,支持两个水位传感器以及两个OLED显示器:
```C++
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED显示器的宽度,以像素为单位
#define SCREEN_HEIGHT 64 // OLED显示器的高度,以像素为单位
// OLED显示器对象的声明
Adafruit_SSD1306 display1(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
Adafruit_SSD1306 display2(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// 水位传感器引脚定义
const int sensorPin1 = A0; // 第一个水位传感器引脚
const int sensorPin2 = A1; // 第二个水位传感器引脚
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 初始化OLED显示器
if(!display1.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306初始化失败"));
while(true);
}
if(!display2.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
Serial.println(F("SSD1306初始化失败"));
while(true);
}
// 设置文本大小
display1.setTextSize(1);
display2.setTextSize(1);
// 设置文本颜色
display1.setTextColor(SSD1306_WHITE);
display2.setTextColor(SSD1306_WHITE);
// 显示欢迎信息
display1.clearDisplay();
display1.setCursor(0, 0);
display1.println("欢迎使用水位传感器1");
display1.display();
display2.clearDisplay();
display2.setCursor(0, 0);
display2.println("欢迎使用水位传感器2");
display2.display();
}
void loop() {
// 读取第一个水位传感器值
int sensorValue1 = analogRead(sensorPin1);
// 计算水位高度百分比
float waterLevelPercent1 = (float)sensorValue1 / 1024.0 * 100.0;
// 读取第二个水位传感器值
int sensorValue2 = analogRead(sensorPin2);
// 计算水位高度百分比
float waterLevelPercent2 = (float)sensorValue2 / 1024.0 * 100.0;
// 显示水位高度百分比
display1.clearDisplay();
display1.setCursor(0, 0);
display1.print("水位传感器1: ");
display1.print(waterLevelPercent1);
display1.println("%");
display1.display();
display2.clearDisplay();
display2.setCursor(0, 0);
display2.print("水位传感器2: ");
display2.print(waterLevelPercent2);
display2.println("%");
display2.display();
// 打印水位高度百分比到串口监视器
Serial.print("水位传感器1: ");
Serial.print(waterLevelPercent1);
Serial.print("%\t");
Serial.print("水位传感器2: ");
Serial.print(waterLevelPercent2);
Serial.println("%");
// 延迟1秒钟
delay(1000);
}
```
以上代码可以同时读取两个水位传感器并将其百分比水位高度显示在不同的OLED显示器上。如果您只有一个OLED显示器,可以将其中一个水位传感器的数据显示在屏幕上,另一个传感器的数据通过串口输出。
阅读全文