查看: 3195|回复: 13

LCD1602超声波测距实例

[复制链接]
  • TA的每日心情
    郁闷
    2019-1-25 10:53
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2018-8-24 10:42 | 显示全部楼层 |阅读模式
    昨天用DHT11做了个LCD1602的实例!
    今天移植到超声波测距来了!刚开始学的小白!大神轻点喷,多提宝贵意见共同进步!
    LCD接法参考教科书,超声波的接法,我发送接数字8.反馈接数字9.
    把误判大于2000cm的输出,直接一闪而过,正常读数保留三秒读数时间。
    代码如下:

    #include<LiquidCrystal.h>

    LiquidCrystal lcd(12,11,5,4,3,2);
    int Tfa = 8;
    int Ehk = 9;
    float juli;


    byte armsDown[8] = {
      0b00100,
      0b01010,
      0b00100,
      0b00100,
      0b01110,
      0b10101,
      0b00100,
      0b01010
    };

    byte armsUp[8] = {
      0b00100,
      0b01010,
      0b00100,
      0b10101,
      0b01110,
      0b00100,
      0b00100,
      0b01010
    };
    void setup(){
    Serial.begin(9600);
    pinMode(Tfa,OUTPUT);
    pinMode(Ehk,INPUT);
      lcd.begin(16,2);
      lcd.print("lcd already ok");
      /* lcd.createChar(1, armsDown);  
      // create a new character
      lcd.createChar(2, armsUp);*/
      delay(2000);
      lcd.clear();
    }
    void loop()
    {
    digitalWrite(Tfa,LOW);
    delayMicroseconds(2);
    digitalWrite(Tfa,HIGH);
    delayMicroseconds(10);
    juli = pulseIn(Ehk,HIGH)/58.30;
    Serial.print(juli);
    Serial.print("cm");
    Serial.println();
    /*switch(chk){
    case DHTLIB_OK:
         Serial.println("ok");
         break;
         //case DHTLIB_ERROR_TIMEOUT:
         Serial.println("ERROR_TIMEOUT");
         break;
         //case DHTLIB_ERROR_CHECKSUM:
         Serial.println("CHECKSUM ERROR");
         break;
         default:
         Serial.println("ok ko");
         break;
    }*/

    lcd.setCursor(0,0);
    lcd.print(juli);
    lcd.print("cm");
    //delay(3000);//wating 3s,clear lcd.
    if(juli>=2000){
    delay(50);}
    else{
    delay(3000);//wating 3s,clear lcd.
    }
    //fang zhi wupan
    //delay(3000);//wating 3s,clear lcd.
    lcd.setCursor(0,0);
    lcd.clear();
    lcd.setCursor(4, 1);
      // draw the little man, arms down:
      lcd.write(2);
      delay(300);
      lcd.setCursor(4, 1);
      // draw him arms up:
      lcd.write(1);
      delay(300);

    }



    chaoshengbolcd.jpg

    该用户从未签到

    发表于 2018-8-25 15:06 | 显示全部楼层
    你好,厉害啊

    该用户从未签到

    发表于 2018-8-25 15:08 | 显示全部楼层
    有没有原理图啥的哈哈
  • TA的每日心情
    开心
    2018-9-27 13:00
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-9-27 12:59 | 显示全部楼层
    有接线图参考吗
  • TA的每日心情
    郁闷
    2019-1-25 10:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2018-9-27 16:31 | 显示全部楼层

    LCD接法参考教科书,超声波的接法,我发送接数字8.反馈接数字9.
    把误判大于2000cm的输出,直接一闪而过,正常读数保留三秒读数时间。
  • TA的每日心情
    郁闷
    2019-1-25 10:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2018-10-23 17:24 | 显示全部楼层
    更新一下I2C的1602事例:

    #include<LiquidCrystal_I2C.h>
    #include <Wire.h>
    //LiquidCrystal_I2C Lcd(0x27,16,02);

    LiquidCrystal_I2C lcd(0x27,20,4);
    //LiquidCrystal lcd(12,11,5,4,3,2);
    int Tfa = 8;
    int Ehk = 9;
    float juli;


    byte armsDown[8] = {
      0b00100,
      0b01010,
      0b00100,
      0b00100,
      0b01110,
      0b10101,
      0b00100,
      0b01010
    };

    byte armsUp[8] = {
      0b00100,
      0b01010,
      0b00100,
      0b10101,
      0b01110,
      0b00100,
      0b00100,
      0b01010
    };
    void setup(){
    Serial.begin(9600);
    pinMode(Tfa,OUTPUT);
    pinMode(Ehk,INPUT);
    // lcd.begin(16,2);
    lcd.init();
    lcd.backlight();
      lcd.print("lcd already ok");
      /* lcd.createChar(1, armsDown);  
      // create a new character
      lcd.createChar(2, armsUp);*/
      delay(2000);
      lcd.clear();
    }
    void loop()
    {
    digitalWrite(Tfa,LOW);
    delayMicroseconds(2);
    digitalWrite(Tfa,HIGH);
    delayMicroseconds(10);
    juli = pulseIn(Ehk,HIGH)/58.30;
    Serial.print(juli);
    Serial.print("cm");
    Serial.println();
    /*switch(chk){
    case DHTLIB_OK:
         Serial.println("ok");
         break;
         //case DHTLIB_ERROR_TIMEOUT:
         Serial.println("ERROR_TIMEOUT");
         break;
         //case DHTLIB_ERROR_CHECKSUM:
         Serial.println("CHECKSUM ERROR");
         break;
         default:
         Serial.println("ok ko");
         break;
    }*/

    lcd.setCursor(0,0);
    lcd.print(juli);
    lcd.print("cm");
    //delay(3000);//wating 3s,clear lcd.
    if(juli>=2000){
    delay(50);}
    else{
    delay(3000);//wating 3s,clear lcd.
    }
    //fang zhi wupan
    //delay(3000);//wating 3s,clear lcd.
    lcd.setCursor(0,0);
    lcd.clear();
    lcd.setCursor(4, 1);
      // draw the little man, arms down:
      lcd.write(2);
      delay(300);
      lcd.setCursor(4, 1);
      // draw him arms up:
      lcd.write(1);
      delay(300);

    }
  • TA的每日心情
    郁闷
    2019-1-25 10:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2018-10-23 17:25 | 显示全部楼层
    很奇怪的是,我用1.8.6可以正常烧录,用1.8.5验证一直报错!望高手解答一下
  • TA的每日心情
    开心
    2019-2-20 16:47
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    发表于 2018-11-29 16:09 | 显示全部楼层
    juli = pulseIn(Ehk,HIGH)/58.30;
    请问,计算距离的这个程序,为什么是58.3,有点不明白?

    点评

    声音速度340m/s 然后算出来的,小学数学  详情 回复 发表于 2018-12-3 09:07
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2018-12-3 09:07 | 显示全部楼层
    JasonChing 发表于 2018-11-29 16:09
    juli = pulseIn(Ehk,HIGH)/58.30;
    请问,计算距离的这个程序,为什么是58.3,有点不明白? ...

    声音速度340m/s
    然后算出来的,小学数学
    如果以上内容对你有帮助,你可以通过打赏支持作者
  • TA的每日心情
    开心
    2019-2-20 16:47
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    发表于 2018-12-3 10:41 | 显示全部楼层
    奈何col 发表于 2018-12-3 09:07
    声音速度340m/s
    然后算出来的,小学数学

    搞明白了,没注意单位是us
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    博哥零基础教你玩转ESP8266(十三) ESP8266WiFiGeneric库
    博哥零基础教你玩转ESP826
    帖子导航帖 博哥零基础教你玩转ESP8266(一) 重识ESP8266 博哥零基础教你玩转ESP8266
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ)
    求助!WeMos D1 WiFi怎么
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ) 想用WeMos D1 WiFi接收服务器的数据然
    串口发送16进制指令求助
    串口发送16进制指令求助
    我准备串口发出16进制指令到我的外置设备 代码如下图 我分别监控ARDUINO的tx口和USB口
    一文教你选择Arduino开发板,小白进
    一文教你选择Arduino开发
    笔者在2016年接触了Arduino,跳了万条坑,行了千里弯,到今天也算是Arduino的一
    大神们!1602显示屏上的MQ2浓度示数不是实时监测的何解
    大神们!1602显示屏上的MQ
    本人小白,刚刚接触arduino,长时间的查阅资料后,通过复制修改代码接线实现了DHT11实
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表