#include #include #include // OLED U8G2_SH1107_SEEED_128X128_F_HW_I2C u8g2(U8G2_R0); // Touch Sensor - 根据你的接线,SIG接D2 const int touchPin = D2; // 改成D2,不是D0 void setup() { Serial.begin(115200); // 设置触摸引脚为输入,启用内部上拉电阻 pinMode(touchPin, INPUT_PULLUP); // 初始化I2C Wire.begin(); // 初始化OLED u8g2.begin(); // 清屏一次 u8g2.clearBuffer(); u8g2.sendBuffer(); } void loop() { // 读取触摸传感器状态 // 注意:很多触摸模块在触发时输出LOW,未触发时输出HIGH // 如果不行,改成 int touchState = digitalRead(touchPin) == LOW; int touchState = digitalRead(touchPin) == HIGH; if (touchState) { // 触摸被触发时显示文字 u8g2.clearBuffer(); // 设置字体大小 u8g2.setFont(u8g2_font_logisoso32_tf); // 用更大的字体 // 计算文字位置使其居中 u8g2.drawStr(20, 50, "Hello"); u8g2.drawStr(20, 95, "Alison"); u8g2.sendBuffer(); // 显示一段时间后清屏,避免一直显示 delay(2000); // 显示2秒 // 清屏 u8g2.clearBuffer(); u8g2.sendBuffer(); // 防止重复触发 delay(200); } else { // 没有触摸时保持屏幕清空(可选) // 如果不需要频繁清屏,可以注释掉下面的代码以减少闪烁 delay(50); } }