PDA

View Full Version : Xin hỏi về cảm biến siêu âm


thieunguyen
10-10-2008, 01:00 AM
Chào các bác,em mới nhận đề tài đồ án làm cảm biến siêu âm đo khoảng cách. Yêu cầu là thiết kế mạch đo khoảng cách >10m dùng cảm biến siêu âm.
Hiện em chưa biết gì về cảm biến cả,mong các bác hướng dẫn cho em nên dùng con nào và đặc tính ra sao ạ. Em xin hậu tạ bằng vài chầu cafe :)
Ý tưởng của em là dùng 1 cảm biến vừa phát vừa thu,tín hiệu nhận được cho qua mạch khuếch đại rùi cho qua mạch đếm(hoặc cái gì đó tương tự để đo thời gian truyền) rùi qua mạch hiển thị.
Mong các bác góp ý,bác nào ở tp HCM xin vui lòng cho e xin email or số tel ạ,em xin mời các bác ra quán để hỏi ạ. thanks các bác nhiều...

falleaf
10-10-2008, 01:28 AM
Bạn anh_gioi đang làm về đề tài này.

Mua cảm biến có thể mua loại SRFxx của Devantech, R&P có bán.

Đề tài rất đơn giản, cho nên hiện tại F đang để cho bạn ấy tự làm và tự nghiền ngẫm chi tiết.

http://www.circuitcellar.com/library/print/0103/piana150/2301013.pdf

http://www.robot-electronics.co.uk/htm/srf04tech.htm

http://www.best-microcontroller-projects.com/pic-sonar.html (source code có ở file đính kèm)

Đây là thí dụ tốt để tìm hiểu về cảm biến siêu âm. Nguyên lý rất đơn giản. Xuất một xung 10us trên chân Trigger, dùng Capture để đọc thời gian từ khi có xung lên cho tới khi có xung xuống trên chân Echo.

>> Các tính toán đã có hướng dẫn trên link được gửi.

LCD nếu muốn bạn liên hệ bạn anh_gioi để thực hiện, vì bạn ấy đã làm xong phần LCD nhưng vẫn đang loay hoay với phần siêu âm. Cần tự làm phần này, F không muốn trả lời chi tiết đơn giản vì đây là một đề tài rất cơ bản, đơn giản, mà nếu các bạn có thể tự viết code sẽ rất có lợi để hiểu về PIC.

Chúc vui

thieunguyen
14-10-2008, 12:08 PM
Hic,em kiếm mấy buổi chưa ra con cảm biến nào có thể đo được khoảng cách trên 10 m (mà yêu cầu của ông thầy em là tối thiểu 10 m),mong các bác giới thiệu cho em vài con để em tìm hiểu nó ạ. Xin cảm ơn các bác..

anh_gioi
15-10-2008, 11:28 AM
Bạn anh_gioi đang làm về đề tài này.
http://www.circuitcellar.com/library/print/0103/piana150/2301013.pdf

http://www.robot-electronics.co.uk/htm/srf04tech.htm

http://www.best-microcontroller-projects.com/pic-sonar.html (source code có ở file đính kèm)
>> Các tính toán đã có hướng dẫn trên link được gửi.
LCD nếu muốn bạn liên hệ bạn anh_gioi để thực hiện, vì bạn ấy đã làm xong phần LCD nhưng vẫn đang loay hoay với phần siêu âm. Cần tự làm phần này, F không muốn trả lời chi tiết đơn giản vì đây là một đề tài rất cơ bản, đơn giản, mà nếu các bạn có thể tự viết code sẽ rất có lợi để hiểu về PIC.
Chúc vui

những đoạn code trên được viết bằng chương trình Mriko, ko hiểu lắm về 1 số lệnh.
còn đây là 1 đọan code em viết được sau vài ngày. mong các anh xem qua giúp em để em có thể hoàn thành kịp thời gian ạ..


#include <16F877A.h>
#include <F:\NCKH 2009\PIC 16\count_timer2\def_877a.h>
#use delay(clock=2000000)
#fuses HS,NOWDT, NOPROTECT
#include <F:\NCKH 2009\PIC 16\count_timer2\LCD_lib_4bit.c>
int16 CCP1Value;
int16 CCP1OldValue;
BOOLEAN CCP1Captured;
float S,count;
int8 char1,char2,char3;
#int_CCP1 // Ngat do CCCP1 xay ra, thuc hien lenh...
CCP1_isr()
{
CCP1Value = CCP_1 - CCP1OldValue;
CCP1OldValue = CCP_1;
CCP1Captured = TRUE;
}
//--------------------------------------------------------------------------
void Init_ccp(void) //Khoi tao chuc nang CCCP
{
setup_ccp1(CCP_CAPTURE_RE);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
CCP1Value = 0;
CCP1OldValue = 0;
CCP1Captured = TRUE;
enable_interrupts(INT_CCP1);
enable_interrupts(GLOBAL);
}
//--------------------------------------------------------------------------
void Convert_CCP1()
{

long temp;
int8 temp2;
//----- thoi gian SRF doc duoc
count = CCP1Value*1.6e-6;
// Timer1 prescaler DIV_BY_8
//Freq = 1.0/((float)CCP1Value*8e-6);
//-------- khoang cach can do--
S = count/58;
//--------chuyen sang BCD----
temp = (long)S;
char1 = ((temp / 100) + 0x30);
temp2 = (temp % 100);
char2 = ((temp2 / 10) + 0x30);
char3 = ((temp2 % 10) + 0x30);
//-----hien thi LCD----
LCD_putcmd(0x80);
LCD_putchar("S = ");
LCD_putcmd(0x8B);
LCD_putchar(" Cm");
LCD_putcmd(0x84);
LCD_putchar(char1);
LCD_putcmd(0x85);
LCD_putchar(char2);
LCD_putcmd(0x86);
LCD_putchar(char3);
LCD_putcmd(0xC5);
LCD_putchar("Anh_Gioi");

}
void main()
{
Init_ccp();
LCD_init();


while (TRUE) {
//---- 10uS cho trgger ----
output_high(pin_d1);
delay_us(10);
output_low(pin_d1);
if (CCP1Captured)

Convert_CCP1();
}
}

đoạn code này của em vẫn chưa ổn, nhưng không biết chỗ nào chưa ổn nữa. kết quả hiển thị LCD chi có số 0 thôi.

hức..cuối tuần em phải nộp cho thầy rồi hi vọng các anh giúp em ạ..?

thieunguyen
16-10-2008, 07:57 AM
Hic,bác anh_gioi có ở tp HCM kô vậy? Bác cho em số đt or nick yahoo được khộng ạ? Em kiếm cảm biến có tầm trên 10m không ra..

anh_gioi
16-10-2008, 05:47 PM
Hic,bác anh_gioi có ở tp HCM kô vậy? Bác cho em số đt or nick yahoo được khộng ạ? Em kiếm cảm biến có tầm trên 10m không ra..

cái này cậu phải hỏi anh đoàn hiệp hoặc ai khác,vì tớ chỉ làm siêu âm với khoảng cách tối đa 5m là cũng, đề tài của tớ ko cần phải đo xa như vậy..
//////////////

xin các anh cho em chút gơi ý đi ạ ?? để em có thể hhoàn thành..em ko bít còn chỗ nào vướng mắc nữa....??

thieunguyen
31-10-2008, 11:40 AM
Hic,em vẫn chưa tìm ra con nào đo khoảng cách được trên 10 m cả,1 tháng nữa là nộp đồ án rùi... Mong các bác giúp em với. E xin chân thành cảm ơn và hậu tạ...

falleaf
01-11-2008, 03:50 PM
http://www.robot-electronics.co.uk/htm/srf08tech.html

SRF08, đọc ở chế độ 2 có thể cho phép đọc tới khoảng cách xa khoảng 11m. Chế độ mặc định đọc khoảng cách ở 6m.

Chúc vui

thieunguyen
08-11-2008, 12:00 PM
http://www.robot-electronics.co.uk/htm/srf08tech.html

SRF08, đọc ở chế độ 2 có thể cho phép đọc tới khoảng cách xa khoảng 11m. Chế độ mặc định đọc khoảng cách ở 6m.

Chúc vui

Em cám ơn bác đã giúp đỡ em rất nhiều,nhưng khổ nỗi ông thầy em bảo thiết kế đo phải tối thiểu là 10 m bác ạ,chắc khoảng 18 m đổ lại là được. Em tìm không ra.
Ông đã cho em cái trang www.sensorelement.com trên đó có vài con có thể đo được khoảng cách,nhưng không biết xa bao nhiêu. Bác xem dùm em có được không ạ. Em cảm ơn bác nhiều nhiều lắm

falleaf
08-11-2008, 08:57 PM
Vậy thử hỏi thầy của em dùng loại nào, vì đó là những loại chuyên dụng rồi, chi phí rất cao.

Loại mà bạn tìm chỉ là tranducer, tức là cái đầu dò, chứ không phải là cảm biến. Người ta mua đầu dò đó về để làm mạch cảm biến. SRFxx là cảm biến (sensor).

Chúc vui.

ACADEMY_83
17-11-2008, 04:49 PM
Các bạn cho mình hỏi một số câu lệnh với, vì mình vừa mới tập viết C nên chưa hiểu rõ mấy.Mà mình đang tìm hiểu cảm biến siêu âm để đo khoảng cách.
Có thể bạn cho mình hỏi vớ vẫn nhưng thật sự mình không hiểu nên rất cần sự giúp đỡ của mọi người, thanks.

//--------------------------------------------------------------------------
void Convert_CCP1()
{
long temp;
int8 temp2;
//----- thoi gian SRF doc duoc
count = CCP1Value*1.6e-6; Tại sao nhân cho *1.6e-6, theo mình nghĩ là *8e-6 vì DIV_BY_8

// Timer1 prescaler DIV_BY_8
//Freq = 1.0/((float)CCP1Value*8e-6);

//-------- khoang cach can do--
S = count/58; Tại sao mình chia cho 58, số 58 này ở đâu ra?

thieunguyen
19-11-2008, 05:24 PM
Hic,em hỏi ông,ông kêu trên mạng đầy (mà tìm có thấy đâu). Ông bảo có thể tăng khoảng cách đo được bằng cách dùng mạch khuếch đại,hoặc là chọn cảm biến. Ông nói cảm biến có suy hao khi phát sóng gì đó,mình có thể dùng mạch khuếch đại để bù lại. Em xin hỏi là các thông số trên đầu dò đó có ý nghĩa gì ạ?
---------
Em tìm thì thấy 1 mạch như sau: http://www.interq.or.jp/japan/se-inoue/e_pic6_6.htm
mạch này có thể đo được khoảng cách tối đa 10m,từ mạch này mình có thể mở rộng được tầm đo không ạ? Và bằng cách nào ạ? Cám ơn các bác rất nhiều..

ACADEMY_83
20-11-2008, 09:46 AM
Hic,em kiếm mấy buổi chưa ra con cảm biến nào có thể đo được khoảng cách trên 10 m (mà yêu cầu của ông thầy em là tối thiểu 10 m),mong các bác giới thiệu cho em vài con để em tìm hiểu nó ạ. Xin cảm ơn các bác..

Bạn thử xem thông số con SRF10 nha, R&P có bán đó.

lamboss
16-12-2008, 01:55 PM
Chào các bác,em mới nhận đề tài đồ án làm cảm biến siêu âm đo khoảng cách. Yêu cầu là thiết kế mạch đo khoảng cách >10m dùng cảm biến siêu âm.
Hiện em chưa biết gì về cảm biến cả,mong các bác hướng dẫn cho em nên dùng con nào và đặc tính ra sao ạ. Em xin hậu tạ bằng vài chầu cafe :)
Ý tưởng của em là dùng 1 cảm biến vừa phát vừa thu,tín hiệu nhận được cho qua mạch khuếch đại rùi cho qua mạch đếm(hoặc cái gì đó tương tự để đo thời gian truyền) rùi qua mạch hiển thị.
Mong các bác góp ý,bác nào ở tp HCM xin vui lòng cho e xin email or số tel ạ,em xin mời các bác ra quán để hỏi ạ. thanks các bác nhiều...

ban thieunguyen gì đó ơi! bạn đã tìm ra con cảm biến siêu âm nào như vậy chưa? chỉ mình với, mình ở tp hcm và cũng đang làm đề tài về cái này.