极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 37612|回复: 23

新手求助,最近学习arduino,研究到超声波测距,不知如何下手,求高手指导

[复制链接]
发表于 2013-6-3 10:50:59 | 显示全部楼层 |阅读模式
最近学习arduino的知识,买的mega2560板子和 LCD1062液晶,超声波模块被我弄烧了,实在进行不下去了,想求大神帮助指导,,写个程序,由此来进行超声波测距的入门学习。({:soso_e113:} 再拜个师傅)
。具体就是,超声波HC0-SR04测距显示在LCD1062上(包括时间,速度,距离),用蜂鸣器(无源)报警,接三色灯(红,黄,绿)提示安全距离。这就是我这个初学者想的完美测距啦,,哈哈,,求大神指导,小弟两块硬盘的资料和资源你随便挑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2013-6-3 11:08:25 | 显示全部楼层
一楼自己坐吧!速度有问题可以不添加,就是个人爱好想学
回复 支持 反对

使用道具 举报

发表于 2013-6-3 13:16:01 | 显示全部楼层
例子里面就有
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-3 13:52:34 | 显示全部楼层
qptimus 发表于 2013-6-3 13:16
例子里面就有

我看了,功能不太一样,
回复 支持 反对

使用道具 举报

发表于 2013-6-3 15:51:28 | 显示全部楼层
华子 发表于 2013-6-3 13:52
我看了,功能不太一样,

拿超声范例和lcd范例改
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-3 16:51:39 | 显示全部楼层
熊猫 发表于 2013-6-3 15:51
拿超声范例和lcd范例改

能帮忙么?
回复 支持 反对

使用道具 举报

发表于 2013-6-3 17:21:09 | 显示全部楼层
华子 发表于 2013-6-3 16:51
能帮忙么?

代码很好改,主要看你的连线是怎么连的,按照datasheet连好电路,再按你的引脚改改代码
回复 支持 反对

使用道具 举报

发表于 2013-6-3 17:37:36 | 显示全部楼层
您的問題是超音波無法驅動嗎??

您的超音波模組是那一種??
貼出來比較了解。
回复 支持 反对

使用道具 举报

发表于 2013-6-4 16:22:19 | 显示全部楼层
超声波模块烧了  给你程序你也用不了啊
回复 支持 反对

使用道具 举报

发表于 2013-6-5 10:30:00 | 显示全部楼层
努力学习,积极赚分i
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-5 22:18:57 | 显示全部楼层
ro0t 发表于 2013-6-4 16:22
超声波模块烧了  给你程序你也用不了啊

那你有程序么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-5 22:19:36 | 显示全部楼层
熊猫 发表于 2013-6-3 17:21
代码很好改,主要看你的连线是怎么连的,按照datasheet连好电路,再按你的引脚改改代码

你有现成的么?
回复 支持 反对

使用道具 举报

发表于 2013-6-6 00:14:47 | 显示全部楼层
告诫,不要想着别人都给你做好,自己动手才算是自己的,多看看程序是OK的!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-7 13:19:23 | 显示全部楼层
ro0t 发表于 2013-6-4 16:22
超声波模块烧了  给你程序你也用不了啊

我去实验室再换一个,哈哈我程序回复到上边,按照我主体的目标,求帮忙看看指导下问题,,\(^o^)/~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-7 13:20:31 | 显示全部楼层
ro0t 发表于 2013-6-4 16:22
超声波模块烧了  给你程序你也用不了啊

求帮忙指导下我写的程序

#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,10,5,4,3,2);//定义LCD的引脚连接情况

int TrigPin=14; // 将Arduino 的 Pin3 连接至 HC-SR04 的Trig/TX,或定义超声波信号发出接口

int EchoPin=13;  // 将Arduino 的 Pin2 连接至 HC-SR04 的Echo/RX,或定义超声波信号接收接口


int ledpin1=6;
int ledpin2=7;
int ledpin3=8; //分别定义变色灯(红 黄 绿)LED的三个输出接口
int beeppin =9;//蜂鸣器的pin


void setup()
{
  Serial.begin(9600);          //测量结果将通过此串口输出至 PC 上的串口监视器
  pinMode(EchoPin, INPUT);      //设置EchoPin 为输入模式
  pinMode(TrigPin, OUTPUT);   //设置超声波数字IO脚模式,OUTPUT为输出
  pinMode(ledpin1,OUTPUT);
  pinMode(ledpin2,OUTPUT);
  pinMode(ledpin3,OUTPUT);      //初始化变色灯的LED三个输出接口模式
  pinMode(beeppin,OUTPUT);      //设置蜂鸣器借口输出模式
   lcd.begin(16,2);             //定义lcd列数及行数
   lcd.clear();                 //清屏
   lcd.setCursor(0,0);          //光标位置置于0,0
}

void loop()
{
                                // unsigned char i,j;
  digitalWrite(TrigPin, LOW);   // 通过Trig/Pin 发送脉冲,触发 HC-SR04 测距,使发出发出超声波信号接口低电平2μs
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH);  // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);    // 保持发出超声波信号接口低电平
  int distance = pulseIn(EchoPin, HIGH);  // 读出脉冲时间
  distance= distance/58;           // 将脉冲时间转化为距离(单位:厘米)
  Serial.println(distance);       //输出距离值           
  Serial.println("mm");            //输出结果至串口监视器
  delay(5);  
  
     lcd.clear();                      //清屏
     lcd.setCursor(0,0);               //光标从这里开始
     lcd.print("Distance is");         //使屏幕显示文字
     lcd.setCursor(0,1);               //设置光标位置为第二行第一个位置
     lcd.print(distance);
     lcd.print("CM");                  //显示距离和单位

if (distance <=20)
  {
    digitalWrite(ledpin1,HIGH);        //红灯提示危险距离
    digitalWrite(ledpin2,LOW);
    digitalWrite(ledpin3,LOW);
   
    digitalWrite(beeppin,HIGH);        //蜂鸣器发出一个频段的声音
    delay(1);                          //延时1ms
    digitalWrite(beeppin,LOW);
    delay(1);                          //延时1ms
  }
   else

  {
    if(distance<=80)
    {
      digitalWrite(ledpin2,HIGH);       //黄灯提示注意距离
      digitalWrite(ledpin1,LOW);
      digitalWrite(ledpin2,LOW);
      digitalWrite(beeppin,HIGH);        //蜂鸣器发出另一个频段的声音
      delay(2);                          //延时2ms
      digitalWrite(beeppin,LOW);
      delay(2);                          //延时2ms
    }
    else
    {
      digitalWrite(ledpin3,HIGH);      //绿灯提示安全距离
      digitalWrite(ledpin1,LOW);
      digitalWrite(ledpin2,LOW);
      digitalWrite(beeppin,HIGH);        //蜂鸣器发出另一个频段的声音
      delay(3);                          //延时3ms
      digitalWrite(beeppin,LOW);
      delay(3);                          //延时3ms
    }
  }


}  






回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 12:59 , Processed in 0.039681 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表