这是我在arduino上用hc-sr04超声波测距的代码,但是结果一直都是0.00,不知道哪里错了,求大神解答

这是我在arduino上用hc-sr04超声波测距的代码,但是结果一直都是0.00,不知道哪里错了,求大神解答,第1张

#include <Wireh>

#include "MPU6050h"

#include <Ultrasonich>

#include "I2Cdevh"

#define LED_PIN 13 //指示灯

//MPU6050陀螺仪

//MPU6050 my_gyro(3);

//使用ax, rx来获取二轮车姿态

//x轴加速度 & 偏转角

short ax,rx;

//short = int16_t

//HC-SRO4超声波传感器

//TRIG_PIN & ECHO_PIN

Ultrasonic my_hcsr(5,6);

float distance;

int startTime;

void setup() {

pinMode(LED_PIN,LOW);

//加入I2C总线

Wirebegin();

//初始化串口通信频道

Serialbegin(9600);

//初始化模块

//my_gyroinitialize();

my_hcsrmeasure();

startTime = millis();

//初始化完成后指示灯常亮

pinMode(LED_PIN,HIGH);

}

void loop() {

//获取车身姿态

//ax=my_gyrogetAccelerationX();

//rx=my_gyrogetRotationX();

//获取前方障碍物距离

my_hcsrmeasure();

distance=millis()-startTime;

distance/=1000;

distance=my_hcsrget_cm();

Serialprint(distance,3);

Serialprintln("cm");

delay(50);

}

我的程序,这是超声波测距的程序,检测到物体,你直接让小车左拐,或者右拐就行了:

#include<reg52h>//超声波测距

#include<intrinsh>

#define uint unsigned int

#define uchar unsigned char

uint a,s,time;

sbit tr=P2^1; //发送

sbit re=P2^2; //接收

void delay_us() //延时50us

{

uint i;

for(i=0;i<50;i++)

_nop_();

}

void delay_ms(uint x) //毫秒级延时

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

void getdistance1()

{

//uint i=2353;//40厘米来回需要的时间(us) (042/340)1000000

TR1=0;

TH1=0;

TL1=0;

re=0;//接收信号端置0

tr=1;//开始触发

delay_us();//延时50微秒

tr=0; //停止触发

while(re==0); //没有信号返回并且在40厘米障碍物信号返回需要的时间前则等待 (无信号即时返回,防止死循环,阻碍其它程序的执行)

TR1=1;

while(re==1);

TR1=0;

time=TH1256+TL1; //读取脉宽长度

TH1=0;

TL1=0;

s=(time17)/100; //算出来是厘米

if(s<30)

P1=0xfe;

else

P1=0xff;

}

void main()

{

TMOD=0x10;//定时器1模式1

TR1=0;

tr=0;

re=0;

while(1)

{

getdistance1();

}

}

智能家居是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。

智能家居就是方便,怎么方便?之前建配龙商场就有个活动,是个智能门锁,通过指纹识别开锁,通过钥匙开锁,通过手机APP开锁,你忘记带钥匙,不会忘记带手机,忘记带手机不会忘了带指纹。所以这就是智能家居的方便点。

问题太大。这个有成熟产品面世了。温度传感器、麦克风模块、雨滴传感器、红外传感器、通过类似的传感器进行判断,通过arinowifi模块继电器模块做个wifi控制。

不过现在成本很大价格很贵。再等2年左右绝对商业化。下面说个应用

这是一个很简单的单片机应用,但与一般单片机不同的是,本作品使用ArinoUNO单片机和Arblock软件编程来实现,所以很适合非专业的爱好者、中小学生来制作,其原理主要是利用超声波传感器检测头部与书本的距离,通过Led发光管和报警声音,提醒使用者,及时纠正不良读写姿势,保护眼睛,预防近视。

一、硬件介绍:

(一)ArinoUNO单片机:这是由一个开放源码的硬件平台和一套专门的软件开发环境组成。它可以用来开发交互产品,它可以读取开关和传感器信号,可以控制电灯、电机和其他物理设备。ArinoUNO(R3版本)采用的微处理器是ATmega328。该版本包括14个数字输入输出IO,6个模拟输入IO,16MHZ的晶体,USB接口,电源接口,烧录头,复位按钮等。

电路结构图

(二)传感器:

1、超声波传感器的引脚有5根,分别是:①VCC电源端②TRIG控制端③ECHO接收端④、⑤GND地线(也即电源的负极)

2、引脚连接:1脚VCC和arino板的VCC脚连接,5脚GND也和相应的GND连接,2脚TRIG可以连接到A板的任意一个数字端口,如3号口,3脚ECHO也一样,如连连至2号口。

3、使用方式——“电平触发”

(三)LED和蜂鸣器:

LED可以选用普通发光二极管,蜂鸣器用普通的就可以,没有特别要求。

二、编程语言的选择:

ArBlock是一款基于Arino爱好者的图形化编程软件,所有程序都可以通过搭积木的方式,把高级的计算机语言和专业的语法,简化为一个个模块,堆砌在一起。

主程序

超声波检测程序

三、功能说明与外观制作:

(一)实物面板图如上所示:

(二)功能说明:

1、开电源,系统自检,8个小灯一闪一闪,LED1亮,表示正常工作。

2、系统读取人头部与书本的距离作为参考数据。

3、系统进入检测状态

LED1——灯亮,电源工作中

LED2:闪烁,表示在检测状态中。

LED3——LED4:姿势正确

LED5——LED6:姿势不对,闪烁,轻轻发出“滴”声提醒。

LED7——LED8:要纠正姿势,闪烁,同时播放音乐,提醒调整距离。

(三)电路焊接与外观制作:

1、电路焊接:

本作品电路结构简单,通过制作这一作品,可以培养初学者焊接技术。焊接顺序是这样:首先用烙铁头给要焊接的地方加热,然后把焊锡丝送到焊接点,等锡熔化到所需要的量时,先移开焊锡丝,再拿开烙铁头,此时焊接点不能移动,否则会出现虚焊。

有一个说明,初学者可能会使用助焊剂来帮助焊接,实际上常用的焊锡丝内部就有松香,就是起到肋焊剂的作用,所以不需要再使用肋焊剂,有些肋焊剂还具有腐蚀性,所以建议不要使用。

2、外观结构制作:

本作品外观采用PVC线槽来设计,这一方法主要还是受PVCBOT-Jason的启发,主要是考虑PVC线槽具有方便切割的特点,因此本作品也算是PVCBOT的一个ArinoUNO单片机实现案例,同时也向Jason和他的团队表示感谢,感谢他们为大家提供那么多的PVCOBOT作品。

以上就是关于这是我在arduino上用hc-sr04超声波测距的代码,但是结果一直都是0.00,不知道哪里错了,求大神解答全部的内容,包括:这是我在arduino上用hc-sr04超声波测距的代码,但是结果一直都是0.00,不知道哪里错了,求大神解答、谁有超声波避障功能的51芯片程序,我的单片机型号是89C52RC、怎么用arduino实现智能家居_arduino智能家居控制系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9451581.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存