发 帖  
[问答]

arduino测速装置

2658 Arduino
2022-8-24 18:43:26   1 评论 分享淘帖 邀请回答 举报
1 条评论
  • 2022-8-25 10:49

    全部代码
    #include <LiquidCrystal_I2C.h>
    #include <LiquidCrystal.h>
    #include <Wire.h>

    #ifndef cbi
    #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
    #endif
    #ifndef sbi
    #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
    #endif

    LiquidCrystal_I2C lcd(0x27,16,2); //将LCD地址设置为0x27以显示16个字符和2行

    int photoPin = A0;  //定义传感管脚
    unsigned long start;   
    unsigned long whole;  //定义两个时间变量
    float a = 0;
    float b = 0;
    int value = 0;

    void setup()
    {
    // set prescale to 16
    sbi(ADCSRA,ADPS2) ;
    sbi(ADCSRA,ADPS1) ;
    sbi(ADCSRA,ADPS0) ;  
      
      lcd.init();
      lcd.backlight();

      pinMode(photoPin, INPUT);
      Serial.begin(9600);    //开串
      lcd.setCursor(0, 0); // 转到第一行开头
      lcd.print("The Speed is: ");
    }

    void loop()
    {
      while ( analogRead(photoPin) > 500){};
      start = micros() ;    //记录起始点时间
      while ( analogRead(photoPin)< 500){};    //等待物体离开
      whole = micros();  //记录结束时间
      
      a = (whole - start) / 1000;
      b = 38.8/a;  // 速度计算公式
      
      lcd.setCursor(0, 1); //转到第二行开头
      lcd.print(b);        //LCD 屏幕显示速度
      lcd.print(" m/s");   //LCD串口显示速度单位
      delay(500);
    }

1个回答
2022-8-24 21:51:58 1 评论

举报

1 条评论

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@hauqiu.com
关闭

站长推荐 上一条 /5 下一条

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