锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

单片机+超声波实时测距

时间:2024-05-21 22:07:11

本文讲的是通过超声波测试距离,并把所测到的数据实时显示在LCD1602上的,当所测到的距离小于10CM时,LED灯将会点亮,这个程序的应用性比较强,可用于测距,测速,清洗,焊接,碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。在逃避障碍物时可以感应到,日常比较觉的应用有:计算人流量。人到水龙头前自动出水,智能小车避障,机器人系统,灯的感应等。最近刚想做一部智能小车,我想到时候应用它就更好不过了,^-^ 当然,有时候也可以用红外线等其它感应器代替。下面介绍的是超声波关于灯的感应实验。

我写的代码: 下面是代码: #include < 4Bit_mod.h> LCD4Bit_mod lcd = LCD4Bit_mod(2); int inputPin=15; int outputPin=16; int ledPin = 17; void setup() { pinMode(inputPin, INPUT); pinMode(outputPin, OUTPUT); pinMode(ledPin,OUTPUT); lcd.init(); lcd.clear(); lcd.cursorTo(1, 0); lcd.printIn("www.geeetech.com"); } void display(int number,unsigned char address) { unsigned char a,b,c,d; if(number <100) digitalWrite(ledPin,LOW); if(number >=100 ) digitalWrite(ledPin,HIGH); a=(number/1000); b=(number/100)%10; c=(number/10)%10; d=number%10; lcd.commandWrite(0x80+address); lcd.print(a+48); lcd.print(b+48); lcd.print(c+48); lcd.print(46); lcd.print(d+48); lcd.print(99); lcd.print(109); } void loop() { digitalWrite(outputPin, LOW); delayMicroseconds(2); digitalWrite(outputPin, HIGH); delayMicroseconds(10); digitalWrite(outputPin, LOW); float distance = pulseIn(inputPin, HIGH); distance= distance/5.8; lcd.cursorTo(2, 0); lcd.printIn("Distance:"); display(distance,0x49); } 下面是实际的效果,因为之前做视频的时候在赶着时间,所以做出来效果不是很好,不过具体的还是可以看出来的。
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章