久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 715|回復: 5
收起左側

51單片機控VL53L0X激光測距傳感器

[復制鏈接]
ID:1148059 發表于 2025-4-22 21:43 | 顯示全部樓層 |閱讀模式
這里是我從論壇里看到的主函數代碼,有什么方法可以讓測量的距離從50mm——1200mm變成測量0mm——1200mm
我修改了if(DeviceRangeStatusInternal3==11&&dist3>20&&dist3<1200)里的dist3>20改為dist3>0,測量還是不能從0開始,我有點不明白,希望大佬指點一下

#include "REG51.h"
#include "oled.h"
#include "bmp.h"
#include "intrins.h"
#include "VL53L0X.h"
#include "i2c.h"

#define uchar unsigned char
#define uint unsigned int

uchar gbuf3[16];
uint acnt3;
uint scnt3;
uint dist3;
uchar DeviceRangeStatusInternal3;


sbit K=P1^0;
int zx=0;
int op;
void Delay1ms()                //@11.0592MHz
{
    unsigned char i, j;

    _nop_();
    i = 11;
    j = 190;
    do
    {
        while (--j);
    } while (--i);
}
void delay_ms(unsigned int time)
{
    unsigned char
    i;
    for(i=1; i<=time; i++)
        Delay1ms();
}






void date3()
{
        uchar val = 0;        
        uchar vall;
        int cnt = 0;
                        vl53l0x_send3(VL53L0X_REG_SYSRANGE_START, 0x01);
                while (cnt < 100)
                {
                        // 1 second waiting time max
      delay_ms(10);
      val = vl53l0x_read3(VL53L0X_REG_RESULT_RANGE_STATUS);
      if (val & 0x01) break;
      cnt++;
     }
                 gbuf3[0]=vl53l0x_read3(0x14);
                 gbuf3[7]=vl53l0x_read3(0x14+7);
                 gbuf3[6]=vl53l0x_read3(0x14+6);
                 gbuf3[9]=vl53l0x_read3(0x14+9);
                 gbuf3[8]=vl53l0x_read3(0x14+8);
                 gbuf3[11]=vl53l0x_read3(0x14+11);
                 gbuf3[10]=vl53l0x_read3(0x14+10);
     acnt3 = makeuint163(gbuf3[7], gbuf3[6]);
     scnt3 = makeuint163(gbuf3[9], gbuf3[8]);
     dist3 = makeuint163(gbuf3[11], gbuf3[10]);
                 DeviceRangeStatusInternal3 = ((gbuf3[0] & 0x78) >> 3);
                         if(DeviceRangeStatusInternal3==11&&dist3>0&&dist3<1200)
                        {
                        OLED_ShowNum(30, 6, dist3, 5, 16);
                        }
}




int main(void)
{        
         
                OLED_Init();                                 
                 OLED_Clear();
         
                 //                OLED_ShowCHinese(30,0,1);
                //        OLED_ShowCHinese(48,0,1);
         K=0;
         
         
                while(1)
                {               
                                       
                                        if(K == 1)
                {
                zx++;
                delay_ms(10);
                        while(K == 1){
                        delay_ms(10);                                
                                 date3();
                                op=dist3;
                OLED_ShowNum(90, 0, op, 4, 16);
                }
                }
               
                }         
        
}





回復

使用道具 舉報

ID:648281 發表于 2025-4-23 08:12 | 顯示全部樓層
VL53L0X測距存在盲區,不能從 0 開始
回復

使用道具 舉報

ID:1148059 發表于 2025-4-23 19:03 | 顯示全部樓層
51hei**1140 發表于 2025-4-23 08:12
VL53L0X測距存在盲區,不能從 0 開始

那盲區有什么方法可以在小1-2cm左右嗎嗎,因為這個測量只能從5cm開始
回復

使用道具 舉報

ID:1148275 發表于 2025-4-24 14:28 | 顯示全部樓層
源流 發表于 2025-4-23 19:03
那盲區有什么方法可以在小1-2cm左右嗎嗎,因為這個測量只能從5cm開始

應該是不能了,可以看看官方文檔,我也是最近在弄這個,不曉得咋把4個都在51上運行,詳細內容可以看看我主頁,那位大佬幫幫忙,謝謝你!
回復

使用道具 舉報

ID:844772 發表于 2025-4-25 08:31 | 顯示全部樓層
源流 發表于 2025-4-23 19:03
那盲區有什么方法可以在小1-2cm左右嗎嗎,因為這個測量只能從5cm開始

它是基于 Time of Flight 的方式,最小也有3CM啊,你不能安裝時把它往后放5cm嗎?你看哪個測距傳感器是貼邊安裝啊。
回復

使用道具 舉報

ID:1148407 發表于 2025-4-25 09:59 | 顯示全部樓層
源流 發表于 2025-4-23 19:03
那盲區有什么方法可以在小1-2cm左右嗎嗎,因為這個測量只能從5cm開始

用官方庫(比如 ST 的 VL53L0X 庫)里的函數,把傳感器設置成 “短距離測量” 模式。比如調用 VL53L0X_SetMeasurementTimingBudget 時,給近距離場景分配更短的 “時間預算”,讓它更快響應近處物體。同時記得改 Vcsel Period(激光發射周期),近距離用更小的數值(比如階段 1 設為 18,階段 2 設為 14),這一步在寄存器配置里調,能讓激光發射更密集,捕捉近處反射光。默認傳感器可能把近距離的弱信號當成 “沒檢測到”,可以手動降低信號強度的判定門檻。比如通過 VL53L0X_SetSignalRateLimit 把信號率限制調低(比如設為 10000),或者直接改寄存器里的 Minimum Signal Rate,讓它接受更弱的返回信號,這樣 1-2cm 也能識別。網上也有大佬改好的 “近距離補丁” 庫,可以直接搜關鍵詞 “VL53L0X close range patch”,里面直接封裝好了這些參數,可以找找
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www精品美女久久久tv | 国产成人99久久亚洲综合精品 | 成人三级网址 | 精品国产欧美一区二区三区成人 | 久久精品国产99国产精品 | 伊人久久综合 | 丝袜 亚洲 欧美 日韩 综合 | 久久人人爽人人爽人人片av免费 | 中文av字幕 | 国产精品明星裸体写真集 | 美女一级毛片 | 久久伊人影院 | 337p日本欧洲亚洲大胆 | 一级片视频免费观看 | 久久精品国产亚洲 | 久久国产日本 | 99热这里都是精品 | 青青青伊人 | 中日韩欧美一级片 | 国产日韩视频 | 欧美大片在线观看 | 天天干干 | 日韩视频在线一区二区 | 欧美日韩亚洲一区 | 天天色综 | 成人h动漫亚洲一区二区 | www.蜜桃av| 久久久综合网 | www国产成人免费观看视频,深夜成人网 | 视频一区欧美 | 亚洲麻豆 | 欧美一级免费黄色片 | 欧美日韩在线一区二区 | 国产精品久久久久久久久久久久冷 | 日韩一区二区三区在线观看 | 国产成人精品一区二区三区视频 | 欧美在线国产精品 | 精品国产91| 精品国产乱码久久久久久88av | 国产有码| 国产精品久久久久久久久免费樱桃 |