OLED显示超声波距离

来自Microduino Wikipedia
跳转至: 导航搜索

Sensor-Ultrasonic+点阵显示超声波距离


本示例给出了将超声波传感器测得的距离值在OLED上显示出来的方法,显示距离的单位为毫米



所需硬件


电路搭建

将Ultrasonic+传感器接到Hub的IIC引脚。
将mCenter+(或者用Battery、Core、Hub堆叠在一起代替mCenter+,代替后核心选择core)通过MicroUSB数据线接入电脑,核心选择core+ 5V。初次使用请参考:Getting Started

代码

#include <Microduino_Ultrasonic.h>         //引用超声波库文件
#include <U8glib.h>

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);     //设置OLED型号
//-------字体设置,大、中、小
#define setFont_L u8g.setFont(u8g_font_timB18)
#define setFont_M u8g.setFont(u8g_font_fixed_v0r)
#define setFont_S u8g.setFont(u8g_font_chikitar)

uint16_t Distance, lastDis;  //定义变量
uint32_t oledTime = millis();
Ultrasonic Ultrasonic1(ULTRASONIC_ADDR_1);//将Ultrasonic实例化

void setup() {
  Serial.begin(115200);  // 串口初始化
  Ultrasonic1.begin();  //超声波初始化
  delay(2000);
}

void loop() {
  Distance = Ultrasonic1.getDistance(); //获取超声波测得的距离
  Serial.println(Distance);               //串口打印距离值
  oled(Distance) ;
}

void oled(uint16_t Dis) {
  u8g.firstPage();
  do {
    u8g.setDefaultForegroundColor();

    setFont_L;                       //设置字体
    u8g.setPrintPos(10, 45);          //设置文字开始坐标
    u8g.print(Dis);       //
    u8g.setPrintPos(112, 45);          //设置文字开始坐标
    setFont_M;                       //设置字体
    u8g.print("mm");
  }
  while ( u8g.nextPage() );
}





返回Sensor-Ultrasonic+ 界面