基於K60/K66的HC-SR04超聲波測距

来源:https://www.cnblogs.com/Bran-don/archive/2019/03/03/10465820.html
-Advertisement-
Play Games

連接單片機引腳:VCC(5V)、IO口、IO口、GND 步驟: (1)給脈衝觸發IO口引腳(trig)輸入一個持續時間>10us的高電平; (2)輸入方波,模塊自動發送8個40Khz的聲波; (3)同時,回波引腳(Ecoh)引腳電平由0變為1(輸出高電平),此時應該啟動定時器; (4)當超聲波返回並... ...


  • 連接單片機引腳:VCC(5V)、IO口、IO口、GND
  • 步驟:

(1)給脈衝觸發IO口引腳(trig)輸入一個持續時間>10us的高電平;

(2)輸入方波,模塊自動發送8個40Khz的聲波;

(3)同時,回波引腳(Ecoh)引腳電平由0變為1(輸出高電平),此時應該啟動定時器;

(4)當超聲波返回並被接收模塊(ecoh)接收到時,接收端電平由1變為0(變為低電平),此時關閉定時器;

(5)定時器的持續時間即為超聲波往返的時間;

*測公式:距離=(高電平時間*聲速)/2;

  • 調試經驗

1.註意超聲波要接的是5V,不是3.3V,使用下載器時一般都是3.3V供電,這就導致線上調試沒有數據,應該給板子供上電,下載器不供電,超聲波接到5V電源口,並且檢測下是不是5V;

2.測距時不要距離太近,會導致數據不准確;

3.超聲波代碼要儘量精簡,不要繁瑣,假設你代碼過於繁瑣,因為超聲波測距時間非常短(us單位)可能這次電平已經發生變化,但是你的MCU在經行其他代碼運行,可能就檢測不到這次信號;

4.要考慮各種因素影響測距穩定,比如高電平檢測是否準確,溫度原因等,超聲波測距的性能與被測物錶面材料有很大關係,如毛料、布料對超聲波 的反射率很小,會嚴重影響測量結果;

5.io口任意兩個即可,主要是不要占用到之前本來使用的,否則會出問題,還有PIT1如果使用,就初始化PIT2進行計時,一個PIT做一種工作;

#代碼:

#include  "MK60_PIT.h"   
#define TRIG    D9    //超聲波發送端
#define ECHG    E12   //超聲波接收端

gpio_init(TRIG,GPO,0);    //初始化發送端
gpio_init(ECHG,GPI,0);    //初始化接收端
 /*
 * @file       distance
 * @brief      超聲波測距
 * @author      ZZX
 * @version    v1.0
 * @date       2019-1-17
*/
void distance(void)
{
     gpio_set(TRIG,1);               //產生觸發脈衝
     pit_delay_us(pit1,20);       
     gpio_set(TRIG,0);           //產生一個20us的高電平脈衝
        
        
     while(gpio_get (ECHG) == 0);             //等待電平變高,低電平一直等待
     pit_time_start  (pit1); //開始計時
     while(gpio_get(ECHG) == 1)              //等待電平變低,高電平一直等待
     {

     };             
        
     timevar = pit_time_get(pit1);    //停止計時,獲取計時時間
         //timevar = timevar * 340 /2/10;
     timevar = timevar*(331.4+0.607*10)/2000;  //加上溫度補償
   //  DELAY_MS(60); //延時60MS,測距更精確,可以不用,2.27號:有反映說加上之後測距不精確,註釋之後就好了,自行測試
}

#外部觸發中斷:見鏈接: https://pan.baidu.com/s/17pVMz7xWrQEoVVIUXb4rGQ 提取碼: 8pe8

 

 

 

 

摘自:https://blog.csdn.net/as480133937/article/details/87899873   byZ小旋


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 早在 20 世紀 70 年代,UNIX 系統是開源而且免費的。但是在 1979 年時,AT&T 公司宣 布了對 UNIX 系統的商業化計劃,隨之開源軟體業轉變成了版權式軟體產業,源代碼被當作 商業機密,成為專利產品,人們再也不能自由地享受科技成果。 於是在 1984 年,Richard Stallm ...
  • Linux內核地址映射模型 x86 CPU採用了段頁式地址映射模型。進程代碼中的地址為邏輯地址,經過段頁式地址映射後,才真正訪問物理記憶體。 段頁式機制如下圖。 Linux內核地址空間劃分 通常32位Linux內核地址空間劃分0~3G為用戶空間,3~4G為內核空間。註意這裡是32位內核地址空間劃分,6 ...
  • 問題: 在使用 WRK 對應用服務進行壓測的時候,提示 "too many open files" 信息,導致無法啟動測試。 原因: CentOS 7.x 預設的打開文件數目限製為 ,如果在使用其他軟體出現 "too many open files" 的錯誤。 解決: 只需要更改 文件裡面的內容,增 ...
  • 一、LCD控制原理 S5PV210處理器中自帶LCD控制器,控制LCD的顯示,把 LCD 圖像數據從一個位於系統記憶體的 video buffer 傳送到一個外部的 LCD 驅動器介面。 類型: 1. STN(超扭曲向列),它的特點是功耗低,但亮度不足,響應時間長;(1602那種類型的) 2. TFT ...
  • 1.基礎知識 Linux作為一種多用戶的操作系統(伺服器系統),允許多個用戶同時登陸到系統上,並響應每個用戶的請求。 任何需要使用操作系統的用戶,都需要一個系統賬號,賬號分為: 管理員賬號與普通用戶賬號。 在Linux中,操作系統 根據UID來判斷用!根據UID來判斷用戶! 而不是用戶名! 只要id ...
  • 分離式lnmp簡介 lnmp和lamp一樣,是一種常用的web環境, 在實際環境中,lnmp中的三個服務常常為了更好的性能而分在三台主機上安裝。 本篇內只介紹nginx和php fpm+mysql分離的情況 環境 nginx 192.168.83.128 lynk php fpm+mysql 192 ...
  • gitlab 文檔上給了很好的配置的例子:https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair 針對mac 下的使用方案,我的配置步驟如下: 生成公鑰和私鑰: -C 表示 加一條註釋,當你有很多keys 的使用,用來 ...
  • 裝系統,尤其是雙系統,總是無法繞過引導的坑。linux的grub是非常複雜的引導系統,學習它非常累。而windows又不能引導linux。你可能會想,怎麼就沒有一種簡單的引導方式,就好像引導光碟,引導u盤那樣,插上去就能用呢?因為傳統的mbr引導設計得很小氣,所以多個系統都拼命爭奪那個小小的引導區域... ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...