米斯齐超声波传感器显示测量距离(oled)内附Arduino代码

用到的东西:

超声波传感器,uno,SSD1306 OLED显示屏

超声波:gnd-gnd

vcc-5v

trig-接脚这里是A0

echo-接脚这里是A1

显示器:vcc-3.5

gnd-gnd

scl-scl

sda-sda

名词解释:SCL(Serial Clock)是I2C总线的时钟信号线,由主设备(如微控制器)产生,并控制通信速度。

SDA(Serial Data)是I2C总线的数据信号线,用于在设备之间传输数据。

在I2C总线中,每个设备都有一个唯一的地址,主设备可以向任意设备发送命令,并从设备读取数据。SCL和SDA信号线上的信号是由主设备产生和控制的。SCL和SDA信号线的电平是由器件状态和主设备控制来确定的。

#include // 引入U8g2库,用于控制SSD1306 OLED显示屏

#include // 引入Wire库,用于I2C通信

volatile int item; // 定义变量item,用于存储距离值

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); // 定义SSD1306 OLED显示屏对象

// checkdistance_0_0函数,用于测量超声波传感器与障碍物之间的距离

float checkdistance_0_0() {

digitalWrite(0, LOW); // 将超声波传感器的触发引脚设为低电平

delayMicroseconds(2); // 延时2微秒

digitalWrite(0, HIGH); // 将超声波传感器的触发引脚设为高电平

delayMicroseconds(10); // 延时10微秒

digitalWrite(0, LOW); // 将超声波传感器的触发引脚设为低电平

float distance = pulseIn(0, HIGH) / 58.00; // 使用pulseIn函数测量超声波回波时间,计算距离值

delay(10); // 延时10毫秒

return distance; // 返回测量的距离值

}

// page1函数,用于在SSD1306 OLED显示屏上显示距离值

void page1() {

u8g2.setFont(u8g2_font_timR08_tf); // 设置字体

u8g2.setFontPosTop(); // 设置字体位置

u8g2.setCursor(0,20); // 设置光标位置

u8g2.print(item); // 在SSD1306 OLED显示屏上打印距离值

}

void setup(){

item = 0; // 初始化item变量为0

pinMode(0, INPUT); // 将超声波传感器的接收引脚设为输入模式

u8g2.setI2CAddress(0x3C*2); // 设置SSD1306 OLED显示屏的I2C地址

u8g2.begin(); // 初始化SSD1306 OLED显示屏

u8g2.enableUTF8Print(); // 启用UTF-8编码

}

void loop(){

item = checkdistance_0_0(); // 调用checkdistance_0_0函数,测量距离并将距离值存储到item变量中

u8g2.firstPage(); // 显示第一页

do

{

page1(); // 在第一页上显示距离值

}while(u8g2.nextPage()); // 显示下一页

}

这段代码是一个基于Arduino平台的程序,使用了U8g2库来控制一个SSD1306 OLED显示屏的显示。程序通过测量超声波传感器的距离来更新变量item的值,并将其显示在OLED屏幕上。

具体来说,程序的主要流程如下:

引入U8g2库和Wire库。

定义一个名为item的整型变量和一个名为u8g2的U8G2_SSD1306_128X64_NONAME_1_HW_I2C类型对象,用于控制OLED屏幕。

定义一个名为checkdistance_0_0的函数,用于测量超声波传感器的距离并返回距离值。

定义一个名为page1的函数,用于在OLED屏幕上显示item变量的值。

在setup函数中初始化程序,包括设置pin 0为输入模式、设置OLED屏幕的I2C地址、初始化OLED屏幕等。

在loop函数中,调用checkdistance_0_0函数测量距离,并将测量结果保存到item变量中,然后在OLED屏幕上显示item变量的值。

总体来说,这个程序的作用是通过超声波传感器测量距离,并将测量结果显示在OLED屏幕上。