Arduino控制超声波检测与0.96OLED及串口显示
Arduino控制超声波检测与0.96OLED及串口显示代码使用库共享(包括超声波检测与U8glib):
使用元件:
- 0.96寸 12864 I2C OLED 128x64规格
- 超声波检测模块 湿度模块
- ARDUINO UNO
- 面包板
- 跳线
- u8glib是目前arduino上使用的最多的点阵液晶显示器驱动库,它支持型号众多的液晶显示器,详情查阅:
u8glib
u8glib是目前arduino上使用的最多的点阵液晶显示器驱动库,它支持型号众多的液晶显示器。
由于Google被墙,原u8glib项目页(https://code.google.com/p/u8glib/)访问不了,为方便国内用户,于是搬运了一个过来。仅作搬运,不对正确性做保证,且更新不定。
如有疑问,请到 Arduino中文社区(http://www.arduino.cn/) 提出
u8glib支持设备:http://clz.me/u8glib/device/
u8glib函数参考:http://clz.me/u8glib/reference/
Left: NHD-2.7-12864 OLED (SSD1325), right: EA DOGS102 LCD (UC1701)
库文件下载链接:
U8glib for Arduino: https://bintray.com/olikraus/u8glib/Arduino
U8glib for AVR: https://bintray.com/olikraus/u8glib/AVR
U8glib for ARM: https://bintray.com/olikraus/u8glib/ARM
Converter for BDF fonts: bdf2u8g_101.exe on google drive.
(将文件解压后导入到Arduino IDE安装路径中的library文件中即可)
OLED接线方式:
VCC<————>3.3V
GND<————>GND
SCL<————>SCL
SDA<————>SDA
超声波接线方式:
Trig 2 //引脚Tring 连接 IO D2
Echo 3 //引脚Echo 连接 IO D3
//OLED接线方式:
//VCC<————>3.3V
//GND<————>GND
//SCL<————>SCL
//SDA<————>SDA
//接线方式:
//Trig 2 //引脚Tring 连接 IO D2
//Echo 3 //引脚Echo 连接 IO D3
//LingShun LAB
#include "U8glib.h"
// OLED库
#define Trig 2 //引脚Tring 连接 IO D2
#define Echo 3 //引脚Echo 连接 IO D3
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C
float cm; //距离变量
float temp; //
void draw(void) {
u8g.setFont(u8g_font_8x13); //使用8x13大小的字符
u8g.setPrintPos(0, 20); // 对应 x,y 轴值
u8g.print("Echo =");
u8g.setPrintPos(50, 20);
u8g.print(temp);
u8g.setPrintPos(0, 40);
u8g.print("Dist =");
u8g.setPrintPos(50, 40);
u8g.print(cm);
u8g.setPrintPos(100, 40);
u8g.print("");
}
void setup() {
Serial.begin(9600);
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
}
void loop() {
//给Trig发送一个低高低的短时间脉冲,触发测距
digitalWrite(Trig, LOW); //给Trig发送一个低电平
delayMicroseconds(2); //等待 2微妙
digitalWrite(Trig,HIGH); //给Trig发送一个高电平
delayMicroseconds(10); //等待 10微妙
digitalWrite(Trig, LOW); //给Trig发送一个低电平
temp = float(pulseIn(Echo, HIGH)); //存储回波等待时间,
//pulseIn函数会等待引脚变为HIGH,开始计算时间,再等待变为LOW并停止计时
//返回脉冲的长度
//声速是:340m/1s 换算成 34000cm / 1000000μs => 34 / 1000
//因为发送到接收,实际是相同距离走了2回,所以要除以2
//距离(厘米) = (回波时间 * (34 / 1000)) / 2
//简化后的计算公式为 (回波时间 * 17)/ 1000
cm = (temp * 17 )/1000; //把回波时间换算成cm
Serial.print("Echo =");
Serial.print(temp);//串口输出等待时间的原始数据
Serial.print(" | | Distance = ");
Serial.print(cm);//串口输出距离换算成cm的结果
Serial.println("cm");
delay(100);
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
delay(200);
}
Arduino控制超声波检测与0.96OLED及串口显示的更多相关文章
- Arduino UNO开发板、Arduino CNC Shield V3.0扩展板、A4988驱动板、grbl固件使用教程
前言 CNC Shield V3.0可用作雕刻机,3D打印机等的驱动扩展板,板上一共有4路步进电机驱动模块的插槽,可驱动4路不进电机,而每一路步进电机都只需要2个IO口,也就是说,6个IO口就可以很好 ...
- Arduino控制DTH11模块
一.接线原理图 二.实物图 三.事例代码 下载 git clone https://github.com/adafruit/DHT-sensor-library.git 放到 arduino-1.6. ...
- Arduino_DH11+0.96OLED_u8glib库 温湿度显示
u8glib_arduino_OLED0.96一.电路连接 DHT11接线方式:GND<————>GNDDATA<————>2(数字输入/输出)VCC<————>5 ...
- OpenStack配置串口显示虚机界面
OpenStack配置串口显示虚机界面 OpenStack的horizon能够显示虚拟机的界面.horizon是web界面,在我们的电脑上,姑且称之为本地,虚拟机运行在远端服务器上,称之为远端.本地显 ...
- 用STM32玩SR04(测距、串口显示、OLED显示)
目录 用STM32玩SR04(测距.串口显示.OLED显示) 超声波模块使用 SR04初始化 SR04使用串口打印数据 SR04使用OLED来传输数据,并显示在OLED上 用STM32玩SR04(测距 ...
- cxGRID中的字段怎么能以0.00的格式显示
CXGRID中的字段如何能以0.00的格式显示在CXGRID中如何让字段能以0.00的格式显示,我的字段是FLOAT类型,满意的马上给分! ------解决方案-------------------- ...
- CSS控制图片和文字在同一行显示且对齐的3种方法
CSS控制图片和文字在同一行显示且对齐的3种方法 在 HTML 代码中,有时会需要在文字旁边加上一个图标. 默认情况,是图片置顶对齐,文字置底对齐,所以通常图片高,文字低,不能水平居中对齐. 常见方法 ...
- java 在控制台上输入密码时,密码不显示在控制台上
用下面的方法可以实现在控制台上输入密码时,密码不显示在控制台上:Console cons=System.console(); System.out.print(" 密码:"); c ...
- Android N(7.0) 在ListView里显示EditText时软键盘弹出时会自动切换到全键盘的问题?
Android N(7.0) 在ListView里显示EditText时软键盘弹出时会自动切换到全键盘的问题? 问题症状描述 Activity 在AndroidManifest.xml里设置andro ...
随机推荐
- C语言基础知识(一)——关键字
存储类别说明符变量:auto.register.static.extern._Thread_local.typedef 存储类型限定符:const.volatile.restrict._Atomic ...
- 你还不懂 Tomcat 的优化吗?
前言 Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet.JSP 程序的首选.相信大家对于 Tomcat 已经是非常熟悉了,本 ...
- layui加tp5图片上传实例
<div class="layui-fluid"> <div class="layui-row"> <form class=&qu ...
- StringUtils、CollectionUtils工具类的常用方法
唯能极于情,故能极于剑 欢迎来到 “程序牛CodeCow” 的博客,有问题请及时关注小编公众号 “CodeCow”,大家一起学习交流 下面将为大家演示StringUtils.CollectionUti ...
- MongoDB -MSC集群的部署
一.Shard节点配置过程 1. 目录创建:mkdir -p /mongodb/38021/conf /mongodb/38021/log /mongodb/38021/datamkdir -p ...
- ThreadLocal原理分析
本文结构 ThreadLocal简介 (简要说明ThreadLocal的作用) ThreadLocal实现原理(说明ThreadLocal的常用方法和原理) ThreadLocalMap的实现 (说明 ...
- 【JavaScript数据结构系列】05-链表LinkedList
[JavaScript数据结构系列]05-链表LinkedList 码路工人 CoderMonkey 转载请注明作者与出处 ## 1. 认识链表结构(单向链表) 链表也是线性结构, 节点相连构成链表 ...
- 【Ubuntu】Ubuntu中下载特定版本内核和设置某版本内核为默认启动内核
0. 基本命令 uname -a # 查看当前所使用内核 dpkg -l | grep linux # dpkg后是lmn的l.查看当前操作系统的内核 dekg -l | grep linux-ima ...
- [PHP学习教程 - 网络]001.下载/采集远程文件到本地(Download File)
引言:如何把http://mzitu.com里的图片全部下载下来呢? 一身浩然正气的AC陷入的深思.... 当然这里涉及到的功能有线程,网页请求,页面提取,下载图片等等.今天,我们先讲一下如何下载文件 ...
- meavn项目由打包方式jar改为war报Cannot install Dynamic Web Module 2.5 facet. It is incompatibile with already installed facets: Utility Module. Please modify project configuration.处理方式
找到 \项目名\.setting\文件夹下的 org.eclipse.wst.common.project.facet.core.xml xml文件. 添加或修改 <installed ...