极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11065|回复: 2

有关于anduino系统的倒车雷达报警系统

[复制链接]
发表于 2015-1-6 22:28:48 | 显示全部楼层 |阅读模式
刚入手anduino几天,跟着论坛里的大神们学做倒车雷达报警系统,基本上是做出来,但是呢,我还想更加完美点,就是在执行倒车程序时LCD1602显示的是倒车距离,但是在没有执行倒车系统的时候就是显示温度就好,这个想法能实现吗,下面是我的代码。好像有点复杂。
  1. #include<LiquidCrystal.h>

  2. LiquidCrystal lcd(11,10,9,8,7,6,5);
  3. const int TrigPin = 2;
  4. const int EchoPin = 3;
  5. int potPin = 4;
  6. float cm;
  7. float temperature = 0;
  8. long val=0;
  9. void setup()
  10. {
  11. Serial.begin(9600);
  12. pinMode(TrigPin, OUTPUT);
  13. pinMode(EchoPin, INPUT);
  14. pinMode(13,OUTPUT); //buzzer
  15. pinMode(12,OUTPUT); //led
  16. lcd.begin(16,2);
  17. lcd.setCursor(3,0) ;
  18. lcd.print("Welcome to");  
  19. lcd.setCursor(4,1) ;
  20. lcd.print("ROB11070");
  21. delay(1000);
  22. }
  23. void loop()
  24. {
  25. digitalWrite(12, LOW);
  26. digitalWrite(13, LOW);
  27. digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
  28. delayMicroseconds(2);
  29. digitalWrite(TrigPin, HIGH);
  30. delayMicroseconds(10);
  31. digitalWrite(TrigPin, LOW);

  32. cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
  33. cm= (int(cm * 100.0)) / 100.0; //保留两位小数
  34. Serial.print(cm);
  35. Serial.print("cm");
  36. Serial.println();
  37. delay(500);
  38. val = analogRead(potPin);             //val变量为从DHT11信号口读取到的数值
  39. temperature = (val*0.0048828125*100);         //把读取到的val转换为温度数值

  40. lcd.clear();
  41. lcd.setCursor(0,0) ;//设置光标位置为第二行第十个位置
  42. lcd.print("Temp:");
  43. lcd.setCursor(5,0);
  44. lcd.print((long)temperature / 10);   //显示温度整数位
  45. lcd.print(".");    //显示小数点
  46. lcd.print( (long)temperature % 10); //显示温度小数点后一位
  47. lcd.print((char)223); //显示o符号
  48. lcd.setCursor(0,1);
  49. lcd.print("D:");
  50. lcd.setCursor(3, 1) ;
  51. lcd.print(cm);
  52. lcd.print("cm");

  53. if (cm<=5)
  54. {
  55.   unsigned char i;
  56.   {for(i=0;i<10;i++)

  57. {digitalWrite(13, HIGH);
  58. delay(1);
  59. digitalWrite(13, LOW);
  60. delay(1);

  61. digitalWrite(12, HIGH);
  62. delay(1);
  63. digitalWrite(12,LOW);
  64. delay(1);
  65.     }
  66.   }
  67. }
  68. else if (cm<=10)
  69. {
  70.   unsigned char i;
  71.   {for(i=0;i<70;i++)

  72. {digitalWrite(13, HIGH);
  73. delay(3);
  74. digitalWrite(13, LOW);
  75. delay(3);

  76. digitalWrite(12, HIGH);
  77. delay(3);
  78. digitalWrite(12,LOW);
  79. delay(3);
  80.     }
  81.   }
  82. }
  83. }
复制代码
回复

使用道具 举报

发表于 2015-1-7 21:09:21 | 显示全部楼层
可以 ,你可以试试 dht11 模块,测量温度湿度用起来蛮简单的

http://www.lab-z.com/dht11/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-8 12:27:30 | 显示全部楼层
zoologist 发表于 2015-1-7 21:09
可以 ,你可以试试 dht11 模块,测量温度湿度用起来蛮简单的

http://www.lab-z.com/dht11/

不是,测量温湿度我知道怎么做,就是不知道怎么来用按钮来实现这两段程序的实现
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 05:20 , Processed in 0.037647 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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