【开源】 NodeMcu V3-ESP8266_0.96英寸OLED_HC-SR04S实现检测显示

本系列,是记录自己入门嵌入式领域的学习笔记。

看看能坚持多久。

今天是2023年5月1日

项目需求:

NodeMcu V3-ESP8266_0.96英寸OLED_HC-SR04S实现检测距离显示

硬件电路连接:

  • HC-SR04 模块的 Trig 引脚连接到 NodeMCU 的 D5 引脚
  • HC-SR04 模块的 Echo 引脚连接到 NodeMCU 的 D6 引脚
  • OLED 屏幕的 SDA 引脚连接到 NodeMCU 的 D2 引脚
  • OLED 屏幕的 SCL 引脚连接到 NodeMCU 的 D1 引脚

注意:连接 HC-SR04 模块前请确认它的电压范围是否与 NodeMCU V3 的输入电压范围相匹配。

程序代码:

#include <Wire.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET);

#define TRIG_PIN D5
#define ECHO_PIN D6

void setup() {
  Serial.begin(9600);

  // 初始化 OLED 屏幕
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(0, 0);

  // 初始化 HC-SR04 模块
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop() {
  // 读取 HC-SR04 模块测量到的距离
  float distance = getDistance();

  // 在 OLED 屏幕上显示距离
  display.clearDisplay();
  display.setCursor(0, 0);
  display.print("Distance: ");
  display.print(distance);
  display.print("cm");
  display.display();
  delay(100);
}

float getDistance() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);

  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  float duration = pulseIn(ECHO_PIN, HIGH);
  float distance = duration * 0.034 / 2;

  return distance;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值