国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux驅動開發-編寫超聲波測距模塊的驅動

DS小龍哥-嵌入式技術 ? 2022-09-17 15:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【摘要】 當前采用的這種超聲波測距模塊在各大高校實驗室、畢設、課設里用的很多,原理很簡單,通過聲波測距,發出的聲音碰到障礙物會反彈,聲音在空氣里傳播的速度是已知的,根據時間就能計算出測量的距離。這款超聲波模塊內部自帶了時間計算電路,型號是HC-SR04 ,它可提供 2cm-400cm 的非接觸式距離感測功能,距精度可達高到 3mm; 整個模塊包括了超聲波發射器、 接收器控制電路

1. 介紹

當前采用的這種超聲波測距模塊在各大高校實驗室、畢設、課設里用的很多,原理很簡單,通過聲波測距,發出的聲音碰到障礙物會反彈,聲音在空氣里傳播的速度是已知的,根據時間就能計算出測量的距離。這款超聲波模塊內部自帶了時間計算電路,型號是HC-SR04 ,它可提供 2cm-400cm 的非接觸式距離感測功能,距精度可達高到 3mm; 整個模塊包括了超聲波發射器、 接收器與控制電路。

基本工作原理
(1) 采用 IO 口 TRIG 觸發測距, 給至少 10us 的高電平信號;
(2) 模塊自動發送 8 個 40khz 的方波, 自動檢測是否有信號返回;
(3) 有信號返回, 通過 IO 口 ECHO 輸出一個高電平, 高電平持續的時間就是超聲波從發射到返回的時間。

測量距離的公式:

uS/58=厘米或者 uS/148=英寸; 
或是: 距離=高電平時間*聲速(340M/S)/2;
建議測量周期為 60ms 以上, 以防止發射信號對回響信號的影響。

下面是超聲波模塊與開發板的連線方式:

2. 示例代碼

下面是超聲波測距模塊的驅動代碼,將超聲波模塊的輸出腳接在開發板支持中斷的IO口上,配置為上升沿觸發,當超聲波輸出腳檢測到高電平就進去中斷服務函數,在中斷服務函數里調度工作隊列,最終在工作函數里完成高電平的時間長度獲取,計算測量的距離,直接在驅動代碼里打印出來。

下面是測量的結果:

image-20211229094915304

2.1 驅動代碼

#include 
#include 
#include 
#include 
#include 
#include 
#include 

static struct timer_list timer;
static struct work_struct work;
static int irq;
#define TRIG EXYNOS4_GPB(7)      //輸出觸發信號   第8個IO口
#define ECHO EXYNOS4_GPX1(0)    //ECHO 回響信號輸出--中斷   第9個IO口
/*獲取高電平持續時間--us單位*/
static u32 GetTimeH(void)
{
	ktime_t my_time,my_time2;
	unsigned int i,j;
	my_time=ktime_get(); //獲取當前時間
	i=ktime_to_us(my_time); //轉 us
	while(gpio_get_value(ECHO)){}
	my_time2=ktime_get(); //獲取當前時間
	j=ktime_to_us(my_time2); //轉 us
	return j-i;
}

/*
工作函數
*/
static void csb_work_func(struct work_struct *work)
{
	u32 time=GetTimeH();
	printk("厘米:%d cm\n",time/58);
}

/*外部中斷服務函數*/
irqreturn_t csb_irq_handler_func(int irq, void *dev)
{
	/*添加工作到工作隊列*/
	schedule_work(&work);
	return IRQ_HANDLED;
}

/*內核定時器中斷服務函數*/
static void timer_function(unsigned long data)
{
	static u8 i=0;
	mod_timer(&timer,msecs_to_jiffies(1000)+jiffies);
	i=!i;
	if(i)
	{
		gpio_set_value(TRIG,1);
	}
	else
	{
		gpio_set_value(TRIG,0);
	}
}

static int __init tiny4412_linux_csb_init(void)
{
	/*請求GPIO口使用權*/
	gpio_request(TRIG,"CSB");
    /*配置GPIO引腳*/
	s3c_gpio_cfgpin(TRIG,S3C_GPIO_OUTPUT);
	/*GPIO默認輸出值*/
	gpio_set_value(TRIG,0);

	/*初始化工作函數*/
	INIT_WORK(&work,csb_work_func);
	/*1. 獲取中斷號*/
	irq=gpio_to_irq(ECHO);
	/*2. 注冊中斷*/
	request_irq(irq,csb_irq_handler_func,IRQF_TRIGGER_RISING,"tiny4412_csb",NULL);
	
	timer.expires=HZ+jiffies; /*單位是節拍*/
	timer.function=timer_function;
	timer.data=666;
	/*1. 初始化定時器*/
	init_timer(&timer);
	/*2. 添加定時器到內核*/
	add_timer(&timer);
    printk("驅動測試: 驅動安裝成功\n");
    return 0;
}

static void __exit tiny4412_linux_csb_cleanup(void)
{
	/*3. 刪除定時器*/
	del_timer_sync(&timer);
	free_irq(irq,NULL);
    printk("驅動測試: 驅動卸載成功\n");
}

module_init(tiny4412_linux_csb_init);    /*驅動入口--安裝驅動的時候執行*/
module_exit(tiny4412_linux_csb_cleanup); /*驅動出口--卸載驅動的時候執行*/

MODULE_LICENSE("GPL");  /*設置模塊的許可證--GPL*/

2.2 Makefile

KER_DRI=/home/wbyq/work/linux-3.5/linux-3.5
all:
	make -C $(KER_DRI) M=`pwd` modules
	cp *.ko /home/wbyq/work/rootfs/code -f
	make -C $(KER_DRI) M=`pwd` modules clean
obj-m += linux_csb.o
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 驅動
    +關注

    關注

    12

    文章

    1954

    瀏覽量

    88522
  • 超聲波測距模塊

    關注

    1

    文章

    8

    瀏覽量

    5207
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PGA460超聲波信號處理器與換能器驅動器的深度解析

    PGA460超聲波信號處理器與換能器驅動器的深度解析 在電子工程領域,超聲波傳感技術憑借其高精度、非接觸式檢測等優勢,在眾多應用場景中得到了廣泛應用。而TI公司的PGA460超聲波信號
    的頭像 發表于 02-12 13:40 ?209次閱讀

    超聲波功率放大器驅動可以做什么實驗

    超聲波功率放大器是一種用于放大超聲波信號的設備,常用于醫學、工業、科研等領域。它的驅動可以進行各種實驗,從材料科學到醫學成像,都有廣泛的應用。下面將詳細介紹超聲波功率放大器
    的頭像 發表于 01-26 11:45 ?161次閱讀
    <b class='flag-5'>超聲波</b>功率放大器<b class='flag-5'>驅動</b>可以做什么實驗

    CW32L012/F030靈眸X1智能小車——超聲波模塊配置

    SR04超聲波模塊是一款廣泛應用的測距傳感器,主要用于使用超聲波測量物體與傳感器之間的距離。它是一個成本低廉、精度較高且易于使用的傳感器,常用于機器人、智能家居、無人機、汽車防撞系統等項目。
    的頭像 發表于 01-05 16:54 ?2884次閱讀
    CW32L012/F030靈眸X1智能小車——<b class='flag-5'>超聲波模塊</b>配置

    什么是超聲波原理的液位傳感器?

    超聲波液位傳感器是一種基于超聲波反射測距原理的非接觸式液位測量設備,核心功能是通過發射與接收超聲波信號,計算聲波傳播時間差來反推容器內液位高
    的頭像 發表于 11-25 11:32 ?909次閱讀
    什么是<b class='flag-5'>超聲波</b>原理的液位傳感器?

    無線超聲波測距傳感器:精準感知,開啟智能測距新時代

    在科技飛速發展的今天,距離測量不再局限于傳統的卷尺、激光等工具,無線超聲波測距傳感器憑借其獨特的優勢,正逐漸成為工業自動化、智能家居、汽車安全等領域的“智慧之眼”,為我們的生活和工作帶來前所未有
    的頭像 發表于 09-09 08:35 ?866次閱讀

    【Milk-V Duo S 開發板免費體驗】DuoS 超聲波測距 OLED 顯示

      上篇搭建開發環境并點亮了 OLED 顯示屏,詳見: https://bbs.elecfans.com/jishu_2498771_1_1.html   本篇使用 DuoS 驅動超聲波測距
    發表于 08-22 03:55

    超聲波測距換能器:工業與生活中的測量利器

    在科技飛速發展的今天,各類傳感器在各個領域發揮著至關重要的作用。其中,超聲波測距換能器憑借其獨特的優勢,成為了距離測量領域的明星產品。無論是工業生產中的精密檢測,還是日常生活中的智能應用,超聲波
    的頭像 發表于 07-02 16:22 ?831次閱讀
    <b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>換能器:工業與生活中的測量利器

    超聲波測距換能器:工業與生活中的測量利器

    在科技飛速發展的今天,各類傳感器在各個領域發揮著至關重要的作用。其中,超聲波測距換能器憑借其獨特的優勢,成為了距離測量領域的明星產品。無論是工業生產中的精密檢測,還是日常生活中的智能應用,超聲波
    發表于 07-02 16:20

    超聲波清洗機是什么,它如何通過超聲波振動來清洗物品?

    超聲波清洗機的工作原理超聲波清洗機是一種廣泛用于清洗物品的設備,它利用超聲波振動來去除污垢和雜質。本文將深入探討超聲波清洗機的工作原理以及它如何通過
    的頭像 發表于 06-30 16:59 ?1231次閱讀
    <b class='flag-5'>超聲波</b>清洗機是什么,它如何通過<b class='flag-5'>超聲波</b>振動來清洗物品?

    超聲波換能器:原理與多領域應用解析

    ,受到了廣大消費者的青睞 。 (四)其他領域 水下探測與通信:在海洋開發和水下工程領域,超聲波換能器是實現水下探測和通信的關鍵設備。由于超聲波在水中具有良好的傳播性能,傳播距離遠且衰減小 。聲吶系統
    發表于 06-28 15:09

    超聲波水下測距換能器:探索水下世界的“千里眼”

    工程的質量和安全。 (二)海洋資源勘探 在海洋資源勘探領域,超聲波水下測距換能器可以用于測量海底地形、探測沉船和水下礦產資源等。通過精確的測距,科學家們可以繪制出詳細的海底地圖,為海洋資源的
    發表于 06-26 10:43

    一文讀懂超聲波換能器:原理、應用與未來趨勢

    ,引領著科技不斷向前發展。 四、未來趨勢:創新驅動,無限可能 隨著科技的不斷進步和人們對超聲波技術研究的深入,超聲波換能器也在不斷發展和創新,展現出了廣闊的未來發展趨勢。 (一)更高的性能:追求卓越
    發表于 06-23 16:51

    超聲波換能器--聲波世界的 “神奇魔法師”

    在科技的奇妙世界里,有這樣一位 “魔法師” —— 超聲波換能器,它在眾多領域施展著神奇的聲波魔法,今天就讓我們一起揭開它神秘的面紗,一探其中的奧秘。 超聲波換能器的原理:神奇的壓電效應 超聲
    發表于 06-11 17:30

    超聲波清洗的原理是什么?超聲波清洗是如何起作用的?

    超聲波清洗是一種利用高頻超聲波振動來清洗物體表面和難以達到的細微部分的清潔技術。其工作原理基于聲波的物理特性和聲波對液體中微小氣泡的影響。以下是超聲
    的頭像 發表于 05-26 17:21 ?3502次閱讀
    <b class='flag-5'>超聲波</b>清洗的原理是什么?<b class='flag-5'>超聲波</b>清洗是如何起作用的?

    超聲波頻率和功率對在線式超聲波清洗的影響如何?

    在線式超聲波清洗是一種高效、環保的清洗方式,在多個行業得到了廣泛應用。然而,超聲波頻率和功率是影響清洗效果和清洗速度的關鍵因素。在本文中,我們將從理論和實踐兩個方面分析超聲波頻率和功率對在線式
    的頭像 發表于 05-09 16:39 ?1107次閱讀
    <b class='flag-5'>超聲波</b>頻率和功率對在線式<b class='flag-5'>超聲波</b>清洗的影響如何?