11.6

作者: 李响lx | 来源:发表于2017-11-06 19:33 被阅读0次

    今天学习了声音传感器编程,并显示距离的程序。学习内容全在最后自己编写的程序里:

    #include<LiquidCrystal.h>        //显示头文件

    LiquidCrystal lcd(12, 11, 5, 4, 6, 7);        //显示管脚初始化

    unsigned int EchoPin = 2;         //触发声音发出管脚

    unsigned int TrigPin = 3;               //声音返回信号接收管脚

    unsigned long Time_Echo_us = 0;

    unsigned long Len_mm  = 0;

    void setup() {

    lcd.begin(16, 2);

    Serial.begin(9600);                        //Serial: output result to Serial monitor

    pinMode(EchoPin, INPUT);

    pinMode(TrigPin, OUTPUT);                  // 发送高脉冲引脚用于触发测量 (>10us)

    Serial.print("setup ");

    }

    void loop() {

    digitalWrite(TrigPin, HIGH);              //开始发送 高电平,US-100开始测量距离

    delayMicroseconds(20);                    // 设置高脉冲宽度为20us (>10us)

    digitalWrite(TrigPin, LOW);              // 结束高脉冲

    Time_Echo_us = pulseIn(EchoPin, HIGH);    // 敲击是第一个上升沿,返回波是第二个上升沿,两沿宽度

    if((Time_Echo_us < 60000) && (Time_Echo_us > 1))    //有效的宽度范围 (1, 60000).

    {

    Len_mm = (Time_Echo_us*34/100)/2;                                            //计算距离

    lcd.clear();                                                                        //清屏

    tone(8, map(Len_mm, 1000, 10000,3951,131 ),250);            //发出警告声音

    lcd.setCursor(0,1);                                                                    //显示定位:第0列第1行

    lcd.print("Distance:");                                                                   //直接输出“Distance:”

    lcd.print(Len_mm/10);                                                                    //输出距离

    lcd.print("cm");

    }

    delay(Len_mm/2);                                                                            //调整发出信号周期,距离越近间                                                                                                          // 隔时间越短

    }

    相关文章

      网友评论

          本文标题:11.6

          本文链接:https://www.haomeiwen.com/subject/oyfrmxtx.html