arduino uno 7线OLED显示实时超声波距离(SPI)

超声波模块 HC-SR04

 该图来源于

acktomas

利用u8g2库在OLED上显示

u8g2库可以在arduino ide中搜索添加。

u8g2的库使用可参考这篇博客u8g2库语法

如想在OLED上显示数字,可直接引用u8g2.print(i)

代码如下:

#include <Arduino.h>
#include<SPI.h>
#include <U8g2lib.h>

U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);


const int EchoPin = A0; //超声波信号输入
const int TrigPin = A1; //超声波控制信号输出

float currDist = 0; // 距离
void setup() {
       pinMode(EchoPin, INPUT); //声明各引脚模式
       pinMode(TrigPin, OUTPUT);
       u8g2.begin();
       Serial.begin(9600);
}


void loop() {
      currDist = MeasuringDistance(); //读取前端距离
      Serial.println("distance:cm");
      Serial.println(currDist);
      u8g2.clearBuffer();
      u8g2.setFont(u8g2_font_ncenB08_tr);
      u8g2.drawStr(0,15,"currentDistance");
      u8g2.setCursor(10,45);
      u8g2.print(currDist);
      u8g2.sendBuffer();
      delay(1000);
}



float MeasuringDistance(){
       float duration;
       
      digitalWrite(TrigPin, LOW); 
      delayMicroseconds(2); 
      digitalWrite(TrigPin, HIGH); //输出高电平,延时10ms
      delayMicroseconds(10);
      digitalWrite(TrigPin, LOW);
      
      duration = pulseIn(EchoPin, HIGH); //接受返回信号
      return duration /58.3; //计算距离
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值