人生百态 发表于 2013-12-2 16:59:06

新手求解 Arduino Nano V3.0+SR04 不会编写程序 求大神


sr04
D2接ECHO
D3接TRIG
VCC接5V
GND 搭铁
怎么才能让L灯测试距离慢=远 快=近

shenhaiyu 发表于 2013-12-2 17:37:13

http://www.geek-workshop.com/thread-2234-1-1.html

shenhaiyu 发表于 2013-12-2 17:41:59

#include <Ultrasonic.h>

#define TRIGGER_PIN    3
#define ECHO_PIN       2

#define NUMBER_BUFFERS 3
#define BUFFER_SIZE    3

#define BUFFER_01      0
#define BUFFER_02      1
#define BUFFER_03      2

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
bool disableSD = false;

size_t count = 0;


void setup()
{
Serial.begin(9600);
Serial.println("Starting Ultasonic Test using standard deviation ...");
pinMode(13,OUTPUT);


if(!ultrasonic.sampleCreate(NUMBER_BUFFERS, BUFFER_SIZE, BUFFER_SIZE,
      BUFFER_SIZE))
    {
    disableSD = true;
    Serial.println("Could not allocate memory.");
    }
}

void loop()
{
float cmMsec, inMsec;
float msStdDev, cmStdDev, inStdDev;
long microsec = ultrasonic.timing();

cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);


    if(disableSD)
      {
      Serial.print("CM: ");
      Serial.print(cmMsec);
      Serial.print(", IN: ");
      Serial.println(inMsec);
      }
    else
      {
      msStdDev = ultrasonic.unbiasedStdDev((float) microsec, BUFFER_01);
      cmStdDev = ultrasonic.unbiasedStdDev(cmMsec, BUFFER_02);
      inStdDev = ultrasonic.unbiasedStdDev(inMsec, BUFFER_03);
      Serial.print(", CM: ");
      Serial.print(cmMsec);
      }

if(cmMsec<=200)
{
    Serial.println("in if") ;
    digitalWrite(13,HIGH);
    delay(cmMsec*3);
    digitalWrite(13,LOW);
    delay(cmMsec*6);
}
delay(100);
}
根据刚才那个帖子改写的,没测试,不保证好使

人生百态 发表于 2013-12-2 18:13:18

貌似不好使。。。关键是我的没有喇叭只是想让L灯的快慢显示出距离离参照物远了就不亮到一定距离就开始亮离得越近亮的就越快

人生百态 发表于 2013-12-2 18:15:06

shenhaiyu 发表于 2013-12-2 17:41 static/image/common/back.gif
根据刚才那个帖子改写的,没测试,不保证好使

貌似不好使。。。关键是我的没有喇叭只是想让L灯的快慢显示出距离离参照物远了就不亮到一定距离就开始亮离得越近亮的就越快

人生百态 发表于 2013-12-2 18:20:52

sketch_dec02a:13: error: 'Ultrasonic' does not name a type
sketch_dec02a.ino: In function 'void setup()':
sketch_dec02a:26: error: 'ultrasonic' was not declared in this scope
sketch_dec02a.ino: In function 'void loop()':
sketch_dec02a:38: error: 'ultrasonic' was not declared in this scope
sketch_dec02a:40: error: 'Ultrasonic' has not been declared
sketch_dec02a:41: error: 'Ultrasonic' has not been declared
= =都错误了。。。

.Yan_Zi_Hao 发表于 2013-12-2 21:52:54

L是led灯,13号脚上的 ,不能测距!!:lol

.Yan_Zi_Hao 发表于 2013-12-2 21:54:51

上面的错误是没有库文件,还需要超声波测距模块!!:L

人生百态 发表于 2013-12-2 22:36:54

.Yan_Zi_Hao 发表于 2013-12-2 21:54 static/image/common/back.gif
上面的错误是没有库文件,还需要超声波测距模块!!

额那要怎么弄呢。。。 我现在就一个Arduino Nano板子 和一个SR04装的位置应该没错 就是导入程序不会弄啊。。。

人生百态 发表于 2013-12-2 22:38:46

.Yan_Zi_Hao 发表于 2013-12-2 21:52 static/image/common/back.gif
L是led灯,13号脚上的 ,不能测距!!

那我们老师说能让那个 Arduino Nano板上的灯亮快慢能测试近远

.Yan_Zi_Hao 发表于 2013-12-3 08:43:19

可以从第一章开始看 ,才明白怎么选择办卡串口,下载器什么的 下程序:lol

残影飞雪 发表于 2013-12-3 09:43:41

int echo=2;
int trig=3;
int led=4;

void setup()
{
pinMode(led,OUTPUT);
pinMode(echo,OUTPUT);
pinMode(trig,INPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(led,HIGH);
digitalWrite(echo,LOW);
delayMicroseconds(2);
digitalWrite(echo,HIGH);
delayMicroseconds(10);
digitalWrite(echo,LOW);
int dist=pulseIn(trig,HIGH);
dist/=58;
Serial.println(dist);
digitalWrite(led,LOW);
delay(dist);
}

人生百态 发表于 2013-12-4 00:13:09

人生百态 发表于 2013-12-2 22:38 static/image/common/back.gif
那我们老师说能让那个 Arduino Nano板上的灯亮快慢能测试近远

恩恩好的谢谢

人生百态 发表于 2013-12-4 00:28:51

残影飞雪 发表于 2013-12-3 09:43 static/image/common/back.gif


非常感谢~~但是貌似只能短时间 几秒过后就要从新来点。。。

人生百态 发表于 2013-12-4 00:39:45

残影飞雪 发表于 2013-12-3 09:43 static/image/common/back.gif


您这个貌似只能让灯光闪烁快慢 不能让SR04来测试近远的快慢
页: [1] 2
查看完整版本: 新手求解 Arduino Nano V3.0+SR04 不会编写程序 求大神