新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 比較簡單的AVR單片機(jī)超聲波測距的實例

比較簡單的AVR單片機(jī)超聲波測距的實例

作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
于調(diào)試檢查及使用在不同場合。測量范圍10cm-250cm,測距小于100cm時,誤差是1~2cm.,大于 100cm時,誤差是3~5cm。SL-SRF-25超聲波傳感器,還可以指定從單片機(jī)I/O端口上輸出分段距離檢測信號,可以直接裝在雙龍SL系列機(jī)器人上,作為尋物、避障探測等應(yīng)用。LED發(fā)光二極管顯示所測分段距離范圍信號,可以用于機(jī)器人控制。
短路插針JD1-2/-3腳功能接地;JD1-1接PC5;短路塊插于2,3間,使用LED數(shù)碼管顯示;短路塊插于1,2間,使用LED發(fā)光二極管顯示,或超聲波傳感器輸出分段控制信號。超聲波傳感器輸出分段控制信號對應(yīng)J1引腳:
1、J1-1—PD0避障距離范圍5~9cm
2:J1-2—PD1避障距離范圍10~19cm
3:J1-3—PD2避障距離范圍20~29cm
4:J1-4—PD3避障距離范圍30~39cm
5:J1-5—PD4避障距離范圍40~49cm
6:J1-6—PD5避障距離范圍50~99cm
7:J1-7—PD6避障距離范圍100~179cm
8:J1-8—PD7避障距離范圍180~250cm

SLSRF-25電原理圖


SL-SRF-25超聲波測距源程序:
/*********************************************************************
Project:超聲波測距
Chiptype:ATMEGA8
Clockfrequency:8.000000MHz
*********************************************************************/
#include
#include
#pragmainterrupt_handlerintt0:10//T0溢出中斷
#pragmainterrupt_handlericp_timer1:6//T1捕捉中斷
#pragmadata:code//設(shè)定數(shù)據(jù)區(qū)為程序存儲器
constunsignedchartab1[]={0X28,0XEE,0X32,0XA2,0XE4,
0XA1,0X21,0XEA,0X20,0XA0};//七段譯碼字型表(lm,cm)
constunsignedchartab2[]={0X08,0XCE,0X12,0X82,0XC4,
0X81,0X01,0XCA,0X00,0X80};//七段譯碼字型表(m)
#pragmadata:data//設(shè)定數(shù)據(jù)區(qū)回到數(shù)據(jù)存儲器
unsignedcharledbuff[]={0X08,0X28,0X28};//顯示緩沖區(qū)
unsignedcharcount;
unsignedcharnewcount;
unsignedcharoldcount;
voidintt0(void)//T0中斷定時程序,定時58US,即測距1CM.
{
TCNT0=0XC6;
count++;
}
voidicp_timer1(void)//ICP1捕捉中斷,捕捉頻率38.5~41.6
{
if(96<=ICR1<=104)
{
SREG&=0X7f;
newcount=count-13;
ICR1=0;
TCNT1=0;
TCCR1B=0X81;
}
}
voiddelay_1us(void)//1us
{
asm("nop");
}
voiddelay_us(unsignedintt)//tus
{
unsignedinti=0;
for(i=0;idelay_1us();
}
voiddelay_1ms(void)//1ms
{
unsignedinti;
for(i=1;i<1142;i++);
}
voiddelay_ms(unsignedchart)
{
unsignedchari=0;
for(i=0;i{
delay_1ms();
}
}

上一頁 1 2 下一頁

關(guān)鍵詞: AVR單片機(jī)超聲波測

評論


技術(shù)專區(qū)

關(guān)閉