Arduino提高篇(八)OLED测距显示

1. 实验材料
Uno R3开发板
配套USB数据线
面包板及配套连接线
OLED显示屏
HC-SR04超声波传感器模块
2. 实验步骤
1. 根据原理图搭建电路图。
超声波传感器模块的VCC、GND分别连接到开发板的5V、GND。传感器的Trig引脚、Echo引脚分别连接到开发板的数字引脚2、3。OLED屏的VCC和GND分别连接开发板的3.3V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。

实验原理图如下图所示:


实物连接图如下图所示:

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET     4
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);

#define TrigPin 2
#define EchoPin 3

int Value_cm;

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextColor(WHITE);//开像素点发光
  display.clearDisplay();//清屏

  display.setTextSize(2); //设置字体大小
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);
}

void loop() {
  digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH); 
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  Value_cm = int( pulseIn(EchoPin, HIGH) * 17 ) / 1000;

  display.clearDisplay();//清屏
  display.setCursor(50,10);
  display.print(Value_cm);
  display.println("cm");
  display.drawRect(0, 33, 128, 12, WHITE);
  display.fillRect(2, 35, map(Value_cm, 2, 20, 2, 124), 8, WHITE);
  display.display();//开显示
}
3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

3. 实验现象

改变遮挡物与超声波传感器的距离,OLED上将显示测量的距离。同时使用map()函数映射了一段距离数据做OLED屏幕上进度条的显示。

Arduino学习交流群:672088578
更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值