极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 37253|回复: 17

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

[复制链接]
发表于 2013-12-2 16:59:06 | 显示全部楼层 |阅读模式

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2013-12-2 17:37:13 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2013-12-2 17:41:59 | 显示全部楼层
  1. #include <Ultrasonic.h>

  2. #define TRIGGER_PIN    3
  3. #define ECHO_PIN       2

  4. #define NUMBER_BUFFERS 3
  5. #define BUFFER_SIZE    3

  6. #define BUFFER_01      0
  7. #define BUFFER_02      1
  8. #define BUFFER_03      2

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

  11. size_t count = 0;


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


  17.   if(!ultrasonic.sampleCreate(NUMBER_BUFFERS, BUFFER_SIZE, BUFFER_SIZE,
  18.       BUFFER_SIZE))
  19.     {
  20.     disableSD = true;
  21.     Serial.println("Could not allocate memory.");
  22.     }
  23.   }

  24. void loop()
  25.   {
  26.   float cmMsec, inMsec;
  27.   float msStdDev, cmStdDev, inStdDev;
  28.   long microsec = ultrasonic.timing();

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


  31.     if(disableSD)
  32.       {
  33.       Serial.print("CM: ");
  34.       Serial.print(cmMsec);
  35.       Serial.print(", IN: ");
  36.       Serial.println(inMsec);
  37.       }
  38.     else
  39.       {
  40.       msStdDev = ultrasonic.unbiasedStdDev((float) microsec, BUFFER_01);
  41.       cmStdDev = ultrasonic.unbiasedStdDev(cmMsec, BUFFER_02);
  42.       inStdDev = ultrasonic.unbiasedStdDev(inMsec, BUFFER_03);
  43.       Serial.print(", CM: ");
  44.       Serial.print(cmMsec);
  45.       }

  46.   if(cmMsec<=200)
  47.   {
  48.     Serial.println("in if") ;
  49.     digitalWrite(13,HIGH);
  50.     delay(cmMsec*3);
  51.     digitalWrite(13,LOW);
  52.     delay(cmMsec*6);
  53.   }
  54.   delay(100);
  55.   }
复制代码
根据刚才那个帖子改写的,没测试,不保证好使
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-2 18:13:18 | 显示全部楼层
貌似不好使  。。。关键是我的没有喇叭  只是想让L灯的快慢显示出距离  离参照物远了就不亮到一定距离就开始亮离得越近亮的就越快
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-2 18:15:06 | 显示全部楼层
shenhaiyu 发表于 2013-12-2 17:41
根据刚才那个帖子改写的,没测试,不保证好使

貌似不好使  。。。关键是我的没有喇叭  只是想让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
= =都错误了。。。
回复 支持 反对

使用道具 举报

发表于 2013-12-2 21:52:54 | 显示全部楼层
L是led灯,13号脚上的 ,不能测距!!

回复 支持 反对

使用道具 举报

发表于 2013-12-2 21:54:51 | 显示全部楼层
上面的错误是没有库文件,还需要超声波测距模块!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-2 22:36:54 | 显示全部楼层
.Yan_Zi_Hao 发表于 2013-12-2 21:54
上面的错误是没有库文件,还需要超声波测距模块!!

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

使用道具 举报

 楼主| 发表于 2013-12-2 22:38:46 | 显示全部楼层
.Yan_Zi_Hao 发表于 2013-12-2 21:52
L是led灯,13号脚上的 ,不能测距!!

那我们老师说能让那个 Arduino Nano板上的灯亮  快慢能测试近远
回复 支持 反对

使用道具 举报

发表于 2013-12-3 08:43:19 | 显示全部楼层
可以从第一章开始看 ,  才明白怎么选择办卡串口,下载器什么的 下程序
回复 支持 反对

使用道具 举报

发表于 2013-12-3 09:43:41 | 显示全部楼层
  1. int echo=2;
  2. int trig=3;
  3. int led=4;

  4. void setup()
  5. {
  6.   pinMode(led,OUTPUT);
  7.   pinMode(echo,OUTPUT);
  8.   pinMode(trig,INPUT);
  9.   Serial.begin(9600);
  10. }
  11. void loop()
  12. {
  13.   digitalWrite(led,HIGH);
  14.   digitalWrite(echo,LOW);
  15.   delayMicroseconds(2);
  16.   digitalWrite(echo,HIGH);
  17.   delayMicroseconds(10);
  18.   digitalWrite(echo,LOW);
  19.   int dist=pulseIn(trig,HIGH);
  20.   dist/=58;
  21.   Serial.println(dist);
  22.   digitalWrite(led,LOW);
  23.   delay(dist);
  24. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-4 00:13:09 | 显示全部楼层
人生百态 发表于 2013-12-2 22:38
那我们老师说能让那个 Arduino Nano板上的灯亮  快慢能测试近远

恩恩  好的谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-4 00:28:51 | 显示全部楼层
残影飞雪 发表于 2013-12-3 09:43

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

使用道具 举报

 楼主| 发表于 2013-12-4 00:39:45 | 显示全部楼层
残影飞雪 发表于 2013-12-3 09:43

您这个貌似只能让灯光闪烁快慢 不能让SR04来测试近远的快慢
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-9 01:57 , Processed in 0.061201 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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