查看: 968|回复: 4

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的输出,直接一闪而过,正常读数保留三秒读数时间。
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Arduino MEGA 与UNO 通过nRF24L模块通讯
    Arduino MEGA 与UNO 通过n
    之前在深水宝很“实惠”的店铺买了一些原件,随手砍了esp8266以及nRF24L*3 因为缺
    原创 drawbot平面关节机械臂 教程直播贴
    原创 drawbot平面关节机械
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太懒,一直没来得及
    求助大神!
    求助大神!
    我想在函数中返回指针,但不知道为什么系统报错,请问大神们是什么原因呢
    ATMEGA2560板子下载不进去程序
    ATMEGA2560板子下载不进去
    有没有大佬知道,附图
    手机端发送数据通过蓝牙(HC06)给变量赋值的问题探讨
    手机端发送数据通过蓝牙(
    up这两天在弄个程序,具体实现功能为手机端发送一个数据,通过蓝牙串口读取,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表