华子 发表于 2013-6-3 10:50:59

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

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

华子 发表于 2013-6-3 11:08:25

一楼自己坐吧!速度有问题可以不添加,就是个人爱好想学

qptimus 发表于 2013-6-3 13:16:01

例子里面就有

华子 发表于 2013-6-3 13:52:34

qptimus 发表于 2013-6-3 13:16 static/image/common/back.gif
例子里面就有

我看了,功能不太一样,

熊猫 发表于 2013-6-3 15:51:28

华子 发表于 2013-6-3 13:52 static/image/common/back.gif
我看了,功能不太一样,

拿超声范例和lcd范例改

华子 发表于 2013-6-3 16:51:39

熊猫 发表于 2013-6-3 15:51 static/image/common/back.gif
拿超声范例和lcd范例改

能帮忙么?

熊猫 发表于 2013-6-3 17:21:09

华子 发表于 2013-6-3 16:51 static/image/common/back.gif
能帮忙么?

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

隨風大俠 发表于 2013-6-3 17:37:36

您的問題是超音波無法驅動嗎??

您的超音波模組是那一種??
貼出來比較了解。:victory:

ro0t 发表于 2013-6-4 16:22:19

超声波模块烧了给你程序你也用不了啊

hymeeg 发表于 2013-6-5 10:30:00

努力学习,积极赚分i

华子 发表于 2013-6-5 22:18:57

ro0t 发表于 2013-6-4 16:22 static/image/common/back.gif
超声波模块烧了给你程序你也用不了啊

那你有程序么?

华子 发表于 2013-6-5 22:19:36

熊猫 发表于 2013-6-3 17:21 static/image/common/back.gif
代码很好改,主要看你的连线是怎么连的,按照datasheet连好电路,再按你的引脚改改代码

你有现成的么?

Randy 发表于 2013-6-6 00:14:47

告诫,不要想着别人都给你做好,自己动手才算是自己的,多看看程序是OK的!

华子 发表于 2013-6-7 13:19:23

ro0t 发表于 2013-6-4 16:22 static/image/common/back.gif
超声波模块烧了给你程序你也用不了啊

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

华子 发表于 2013-6-7 13:20:31

ro0t 发表于 2013-6-4 16:22 static/image/common/back.gif
超声波模块烧了给你程序你也用不了啊

求帮忙指导下我写的程序

#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
    }
}


}






页: [1] 2
查看完整版本: 新手求助,最近学习arduino,研究到超声波测距,不知如何下手,求高手指导