色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux驅(qū)動開發(fā)-編寫超聲波測距模塊的驅(qū)動

DS小龍哥-嵌入式技術(shù) ? 2022-09-17 15:07 ? 次閱讀

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

1. 介紹

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

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

測量距離的公式:

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

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

2. 示例代碼

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

下面是測量的結(jié)果:

image-20211229094915304

2.1 驅(qū)動代碼

#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)      //輸出觸發(fā)信號   第8個IO口
#define ECHO EXYNOS4_GPX1(0)    //ECHO 回響信號輸出--中斷   第9個IO口
/*獲取高電平持續(xù)時間--us單位*/
static u32 GetTimeH(void)
{
	ktime_t my_time,my_time2;
	unsigned int i,j;
	my_time=ktime_get(); //獲取當(dāng)前時間
	i=ktime_to_us(my_time); //轉(zhuǎn) us
	while(gpio_get_value(ECHO)){}
	my_time2=ktime_get(); //獲取當(dāng)前時間
	j=ktime_to_us(my_time2); //轉(zhuǎn) us
	return j-i;
}

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

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

/*內(nèi)核定時器中斷服務(wù)函數(shù)*/
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口使用權(quán)*/
	gpio_request(TRIG,"CSB");
    /*配置GPIO引腳*/
	s3c_gpio_cfgpin(TRIG,S3C_GPIO_OUTPUT);
	/*GPIO默認(rèn)輸出值*/
	gpio_set_value(TRIG,0);

	/*初始化工作函數(shù)*/
	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; /*單位是節(jié)拍*/
	timer.function=timer_function;
	timer.data=666;
	/*1. 初始化定時器*/
	init_timer(&timer);
	/*2. 添加定時器到內(nèi)核*/
	add_timer(&timer);
    printk("驅(qū)動測試: 驅(qū)動安裝成功\n");
    return 0;
}

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

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

MODULE_LICENSE("GPL");  /*設(shè)置模塊的許可證--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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 驅(qū)動
    +關(guān)注

    關(guān)注

    12

    文章

    1840

    瀏覽量

    85324
  • 超聲波測距模塊
    +關(guān)注

    關(guān)注

    1

    文章

    8

    瀏覽量

    5010
收藏 人收藏

    評論

    相關(guān)推薦

    【CW32模塊使用】US-016超聲波測距傳感器

    US-016是市場上唯有的一款模擬量輸出的超聲波測距模塊,輸出的模擬電壓和距離值成正比,可以方便的和其他系統(tǒng)相連,US-016工作穩(wěn)定可靠。 US-016超聲波
    的頭像 發(fā)表于 11-28 12:02 ?894次閱讀
    【CW32<b class='flag-5'>模塊</b>使用】US-016<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>傳感器

    光學(xué)超聲波清洗機(jī)發(fā)生器

    索尼克超聲(ucsonic) 多功能高頻超聲清洗機(jī)驅(qū)動板是超聲清洗系統(tǒng)中的核心部件,它負(fù)責(zé)產(chǎn)生高頻超聲波信號,以
    的頭像 發(fā)表于 10-09 10:05 ?240次閱讀
    光學(xué)<b class='flag-5'>超聲波</b>清洗機(jī)發(fā)生器

    RK3568教學(xué)實驗箱_操作案例:5-19 超聲波測距實驗

    、熟悉Qt程序的開發(fā)流程; 2、掌握Qt Creator的基礎(chǔ)開發(fā)使用; 3、通過編寫Qt程序?qū)崿F(xiàn)超聲波測距的顯示界面。 三、實驗原理 Qt
    發(fā)表于 09-23 15:40

    超聲波和次聲波的頻率范圍和應(yīng)用

    超聲波和次聲波是兩種不同頻率的聲波,它們在許多領(lǐng)域都有廣泛的應(yīng)用。以下是關(guān)于超聲波和次聲波的頻率范圍和應(yīng)用的介紹:
    的頭像 發(fā)表于 09-19 16:42 ?2654次閱讀

    第七章-V1.5 STM32超聲波測距STM32F103C8t6超聲波避障小車 超聲波避障模塊 STM32超聲波測距

    5STM32超聲波測距STM32F103C8t6超聲波避障小車
    的頭像 發(fā)表于 08-15 16:25 ?688次閱讀
    第七章-V1.5 STM32<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>STM32F103C8t6<b class='flag-5'>超聲波</b>避障小車 <b class='flag-5'>超聲波</b>避障<b class='flag-5'>模塊</b> STM32<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>

    超聲波發(fā)生器-40khz脈沖功能的應(yīng)用場景有哪些?-驅(qū)動

    索尼克超聲(ucsonic) 超聲波驅(qū)動板40kHz的脈沖功能在多個應(yīng)用場景中發(fā)揮著重要作用,尤其是在需要高效、精確的清洗和清潔的領(lǐng)域。以下是幾個主要的應(yīng)用場景: 1.超聲波清洗:在
    的頭像 發(fā)表于 07-26 16:20 ?445次閱讀
    <b class='flag-5'>超聲波</b>發(fā)生器-40khz脈沖功能的應(yīng)用場景有哪些?-<b class='flag-5'>驅(qū)動</b>板

    超聲波驅(qū)動板-超聲波它激式驅(qū)動

    ? ? ? ? 超聲波它激式驅(qū)動板是一種將電能轉(zhuǎn)換為超聲波能量的設(shè)備,主要用于驅(qū)動超聲波換能器產(chǎn)生高頻振動,進(jìn)而實現(xiàn)各種
    的頭像 發(fā)表于 06-14 11:54 ?874次閱讀
    <b class='flag-5'>超聲波</b><b class='flag-5'>驅(qū)動</b>板-<b class='flag-5'>超聲波</b>它激式<b class='flag-5'>驅(qū)動</b>板

    超聲波無損檢測原理及應(yīng)用

    超聲波無損檢測(Ultrasonic Non-Destructive Testing,簡稱UT)是一種利用超聲波在材料內(nèi)部傳播的特性,檢測材料內(nèi)部缺陷和結(jié)構(gòu)的無損檢測技術(shù)。本文將詳細(xì)介紹超聲波無損
    的頭像 發(fā)表于 05-24 16:48 ?5676次閱讀

    在全志H616核桃派開發(fā)板上實現(xiàn)超聲波傳感器測距

    實現(xiàn)超聲波傳感器測距。 實驗講解? 下圖是一款市面上常用的HCSR04超聲波模塊模塊參數(shù) 供電電壓 3.3V~5V (核桃派需要使用支持3.3V的) 測量距離 2cm~450c
    發(fā)表于 05-08 16:21

    基于51單片機(jī)的車輛倒車?yán)走_(dá)報警系統(tǒng),HC-SR04超聲波測距,全套資料

    設(shè)計要求 1.設(shè)計一個以51單片機(jī)為核心的超聲波倒車?yán)走_(dá)系統(tǒng); 2.超聲波測量范圍在2cm~4m,測量精度3mm; 3.擴(kuò)展DS18B20溫度測量模塊,讀取環(huán)境溫度和補(bǔ)償超聲波
    發(fā)表于 03-19 14:17

    超聲波傳感器的工作原理 超聲波傳感器的聲波頻率是多少

    超聲波傳感器是一種常用的非接觸式測距傳感器,以其精確測量距離、高可靠性和廣泛應(yīng)用而受到廣泛青睞。超聲波傳感器工作原理基于聲波的傳播和反射原理,利用
    的頭像 發(fā)表于 02-21 15:30 ?2411次閱讀

    超聲波傳感器和超聲波測距原理分析

    聲音是由振動產(chǎn)生的,能夠產(chǎn)生超聲波的裝置就是超聲波傳感器,習(xí)慣上稱為超聲換能器,或者超聲探頭。
    發(fā)表于 01-29 09:20 ?918次閱讀
    <b class='flag-5'>超聲波</b>傳感器和<b class='flag-5'>超聲波</b><b class='flag-5'>測距</b>原理分析

    超聲波測距原理 超聲波測距離傳感器接線方法

    超聲波測距是一種常用的測距方法,通過發(fā)射超聲波脈沖,利用其在空氣中傳播速度較快的特點,測量出從傳感器到目標(biāo)物體的時間差,并進(jìn)而計算出距離。超聲波
    的頭像 發(fā)表于 01-22 15:22 ?2470次閱讀

    超聲波傳感器的工作原理 超聲波傳感器的應(yīng)用

    超聲波傳感器是一種基于超聲波的無接觸式測距傳感器,可以廣泛應(yīng)用于工業(yè)、醫(yī)療、軍事等領(lǐng)域。本文將詳細(xì)介紹超聲波傳感器的工作原理以及其在各個領(lǐng)域的應(yīng)用。
    的頭像 發(fā)表于 01-18 14:04 ?1755次閱讀

    超聲波傳感器測距離的原理

    超聲波傳感器測距離的原理是利用聲波在空氣中的傳播速度測量物體與傳感器之間的距離。具體而言,傳感器發(fā)送出一個超聲波信號,然后測量信號從發(fā)送到接收所需的時間,并根據(jù)
    的頭像 發(fā)表于 01-15 09:41 ?2958次閱讀
    主站蜘蛛池模板: 无码专区无码专区视频网网址| 99精品无码AV在线播放| 久久久久久人精品免费费看| 99免费在线观看视频| 一级淫片bbbxxx| 秋霞在线观看视频一区二区三区| 国产喷水1区2区3区咪咪爱AV | 国产香蕉视频在线观看| 国产av免费观看日本| 粉色视频午夜网站入口| 成人毛片一区二区三区| 第一次破女初国产美女| 草比比过程图| 中文字幕人成人乱码亚洲AV| 一个人在线观看免费高清视频在线观看 | 亚州视频一区| 亚洲qvod图片区电影| 午夜爽喷水无码成人18禁三级| 甜性涩爱在线播放| 校花娇喘呻吟校长陈若雪视频| 性一交一乱一色一视频| 亚洲精品日韩在线观看视频| 亚洲高清视频一区| 亚洲欧美日韩精品自拍| 婷婷精品国产亚洲AV在线观看| 日韩欧美视频一区二区| 色戒2小时38分在线观看| 色翁荡息又大又硬又粗又爽电影| 网红刘婷hd国产高清| 乡村教师电影版| 亚洲综合日韩在线2019| 最近中文字幕MV高清在线| 91欧美秘密入口| YELLOW日本免费观看播放| 在线播放成人无码日| 最新国产三级在线不卡视频| 9999精品视频| 中文无码不卡的岛国片国产片| 97精品国偷拍自产在线| a久久99精品久久久久久蜜芽| 囯产少妇BBBBBB高潮喷水一|