查看: 2323|回复: 11

LCD1602超声波测距实例

[复制链接]
  • TA的每日心情
    开心
    2018-8-24 11:41
  • 签到天数: 1 天

    [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的每日心情
    开心
    2018-8-24 11:41
  • 签到天数: 1 天

    [LV.1]初来乍到

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

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

    [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的每日心情
    开心
    2018-8-24 11:41
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    [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的每日心情
    开心
    2018-12-3 10:42
  • 签到天数: 15 天

    [LV.4]偶尔看看III

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

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

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    教你如何自制一款遥控器,让你的项目变成遥控的!!!
    教你如何自制一款遥控器,
    自从上次制作了一块集成了电机驱动的最小板之后,我就发现现在市场上一块便宜且功能又
    编译报错,困扰我几天了。。。。有没有大神
    编译报错,困扰我几天了。
    安装了这个以后 新建一个,选了一块板子什么也没有敲,编译也报错,如下图 版本是1.
    博哥零基础教你玩转ESP8266(六) STA连接 —— 我想连上你
    博哥零基础教你玩转ESP826
    帖子导航: 博哥零基础教你玩转ESP8266(一) 重识ESP8266 博哥零基础教你玩转ESP8266
    i3结构3D打印机制作资料
    i3结构3D打印机制作资料
    文件太大,无法上传,提供个下载链接 https://github.com/Lighter-z/3D-i3-Prusa
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表