自制Arduino便携式超声波测距仪

自制Arduino便携式超声波测距仪

一、 电路连接
二、 代码实现

此制作受油管大神Paul教学视频启发
一、电路连接:
在这里插入图片描述
二、代码实现

#include <Wire.h>
#include <LiquidCrystal_I2C.h> //I2C液晶显示库

LiquidCrystal_I2C Lcd(0x27, 16, 2);
int trig = 2; //接Trig引脚
int echo = 3; //接Echo引脚
int buttonP = 9; //接按键引脚,按键另一引脚接地
int buttonOld; //原来的按键引脚值
int buttonNew; //新的按键引脚值
int flag = 0;
int j = 0;
float distance; //距离,采用浮点数

void setup() {
// put your setup code here, to run once:
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(buttonP, INPUT);
digitalWrite(buttonP, HIGH); //直接为按键引脚赋予高电平
Lcd.init();
Lcd.backlight();
Lcd.clear();
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW); //发射超声波
distance = pulseIn(echo, HIGH)/58.00; //按声速340m/s计算距离;
if(flag == 0){
Lcd.clear(); //清屏
Lcd.setCursor(0, 0);
Lcd.print(“Distance Is: “);
Lcd.setCursor(0, 1);
Lcd.print(distance);
Lcd.print(” cm”);

}

buttonOld = digitalRead(buttonP); //读取按键引脚电平,高为1,低为0;按键按下即导通,此时为低电平。

//在按键下降沿判断
if(buttonOld1 && buttonNew0){
Lcd.clear();
Lcd.setCursor(0, 0);
Lcd.print(“Distance Is: “);
Lcd.setCursor(0, 1);
Lcd.print(distance);
Lcd.print(” cm”);
j += 1;
flag = j%2; //每按下一次flag的值在0,1之间变换;
}
buttonNew = buttonOld;

delay(150);

}

实现效果如下:
在这里插入图片描述
PS:本人Arduino才入门, 做的不好的地方欢迎大家批评指正。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值