我有一张图片 18F4550 如何从超声波传感器读取距离

法伦

我有 PIC 18f4550,需要在 picBasic pro 中编写代码。
我正在连接直流电机、超声波传感器和红外传感器......等
我已经完成了所有工作,但仍然对如何连接超声波传感器感到困惑。

这是PIC中的超声波引脚

trisb.3=0    'trigger ultrasound
trisb.4=1    ' Echo from Ultrasound

我需要一个示例代码

米娜·卡拉姆

编程的基本步骤:

1-为超声波模块提供 TRIGGER
2-侦听回声
3-接收到 ECHO HIGH 时启动计时器
4-ECHO 变低时停止计时器
5-读取计时器值
6-将其转换为距离
7-显示它

距离计算

  • 距离 = 速度 * 时间
  • 让 d 是超声波传感器和目标之间的距离
  • 超声波脉冲传输的总距离:2d(向前和向后)
  • 空气中的声速:340 m/s = 34000 cm/s
  • 因此,d = (34000*Time)/2,其中时间 = (TMR1H:TMR1L)/(1000000)
  • 因此,d = (TMR1H:TMR1L)/58.82 cm
  • TMR1H:TMR1L = TMR1L | (TMR1H << 8)

MikroC代码

// LCD module connections
sbit LCD_RS at RD2_bit;
sbit LCD_EN at RD3_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;

sbit LCD_RS_Direction at TRISD2_bit;
sbit LCD_EN_Direction at TRISD3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;
// End LCD module connections

void main()
{
  int a;
  char txt[7];
  Lcd_Init();
  Lcd_Cmd(_LCD_CLEAR);          // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);     // Cursor off

  TRISB = 0b00010000;           //RB4 as Input PIN (ECHO)

  Lcd_Out(1,1,"Developed By");
  Lcd_Out(2,1,"Mina Karam");

  Delay_ms(3000);
  Lcd_Cmd(_LCD_CLEAR);

  T1CON = 0x10;                 //Initialize Timer Module

  while(1)
  {
    TMR1H = 0;                  //Sets the Initial Value of Timer
    TMR1L = 0;                  //Sets the Initial Value of Timer

    PORTB.F0 = 1;               //TRIGGER HIGH
    Delay_us(10);               //10uS Delay
    PORTB.F0 = 0;               //TRIGGER LOW

    while(!PORTB.F4);           //Waiting for Echo
    T1CON.F0 = 1;               //Timer Starts
    while(PORTB.F4);            //Waiting for Echo goes LOW
    T1CON.F0 = 0;               //Timer Stops

    a = (TMR1L | (TMR1H<<8));   //Reads Timer Value
    a = a/58.82;                //Converts Time to Distance
    a = a + 1;                  //Distance Calibration
    if(a>=2 && a<=400)          //Check whether the result is valid or not
    {
      IntToStr(a,txt);
      Ltrim(txt);
      Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1,1,"Distance = ");
      Lcd_Out(1,12,txt);
      Lcd_Out(1,15,"cm");
    }
    else
    {
      Lcd_Cmd(_LCD_CLEAR);
      Lcd_Out(1,1,"Out of Range");
    }
    Delay_ms(400);
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以在使用Arduino超声波传感器处理移动/播放时制作图像序列吗?

来自分类Dev

我可以在使用Arduino超声波传感器处理移动/播放时制作图像序列吗?

来自分类Dev

在树莓派中使用超声波传感器测量距离

来自分类Dev

使用 python 用 BBB 读取多个超声波传感器

来自分类Dev

如何与HM-19 BLE模块通讯并使用超声波传感器进行扫描

来自分类Dev

使用PIC 18F4550闪烁3个LED

来自分类Dev

超声波传感器HC-SR04 + Arduino计算?

来自分类Dev

Arduino UNO +以太网屏蔽+超声波传感器=失败

来自分类Dev

arduino uno和超声波传感器的结果不正确

来自分类Dev

在特定区域内分布许多超声波传感器

来自分类Dev

我有2个盒子和一张照片。用户可以在2个框之间拖动图片。我如何知道图片从哪个框拖动?

来自分类Dev

如何随机选择一张图片?

来自分类Dev

为什么我的其中一张GPU卡没有显示在传感器中?

来自分类Dev

如何将一张图片直接放在另一张图片上?

来自分类Dev

如何将一张图片放在另一张图片上?

来自分类Dev

在Jekyll中,我如何获取帖子的第一张图片?

来自分类Dev

如何才能一张一张地得到图片,而不是一起展示?

来自分类Dev

如何将图片数据从一张图片复制到另一张图片?

来自分类Dev

我如何检测最后一张图片并禁用jQuery中的下一个按钮

来自分类Dev

如何删除UIImageView的最后一张图片?

来自分类Dev

如何使用php中的一张图片绘制形状

来自分类Dev

如何使用Javascript仅更改一张图片

来自分类Dev

如何使用Javascript仅更改一张图片

来自分类Dev

如何只选择一张图片并给出标题?

来自分类Dev

如何隐藏图库以仅显示一张图片

来自分类Dev

如何使用drawImage()在canvas中绘制一张图片?

来自分类Dev

如何让一张图片覆盖整个屏幕

来自分类Dev

如何在一张图片旁边显示两张图片?

来自分类Dev

如何显示产品的第二张图片和最后一张图片?PrestaShop

Related 相关文章

  1. 1

    我可以在使用Arduino超声波传感器处理移动/播放时制作图像序列吗?

  2. 2

    我可以在使用Arduino超声波传感器处理移动/播放时制作图像序列吗?

  3. 3

    在树莓派中使用超声波传感器测量距离

  4. 4

    使用 python 用 BBB 读取多个超声波传感器

  5. 5

    如何与HM-19 BLE模块通讯并使用超声波传感器进行扫描

  6. 6

    使用PIC 18F4550闪烁3个LED

  7. 7

    超声波传感器HC-SR04 + Arduino计算?

  8. 8

    Arduino UNO +以太网屏蔽+超声波传感器=失败

  9. 9

    arduino uno和超声波传感器的结果不正确

  10. 10

    在特定区域内分布许多超声波传感器

  11. 11

    我有2个盒子和一张照片。用户可以在2个框之间拖动图片。我如何知道图片从哪个框拖动?

  12. 12

    如何随机选择一张图片?

  13. 13

    为什么我的其中一张GPU卡没有显示在传感器中?

  14. 14

    如何将一张图片直接放在另一张图片上?

  15. 15

    如何将一张图片放在另一张图片上?

  16. 16

    在Jekyll中,我如何获取帖子的第一张图片?

  17. 17

    如何才能一张一张地得到图片,而不是一起展示?

  18. 18

    如何将图片数据从一张图片复制到另一张图片?

  19. 19

    我如何检测最后一张图片并禁用jQuery中的下一个按钮

  20. 20

    如何删除UIImageView的最后一张图片?

  21. 21

    如何使用php中的一张图片绘制形状

  22. 22

    如何使用Javascript仅更改一张图片

  23. 23

    如何使用Javascript仅更改一张图片

  24. 24

    如何只选择一张图片并给出标题?

  25. 25

    如何隐藏图库以仅显示一张图片

  26. 26

    如何使用drawImage()在canvas中绘制一张图片?

  27. 27

    如何让一张图片覆盖整个屏幕

  28. 28

    如何在一张图片旁边显示两张图片?

  29. 29

    如何显示产品的第二张图片和最后一张图片?PrestaShop

热门标签

归档