PIC Vietnam

Go Back   PIC Vietnam > Robotics > Cảm biến

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cảm biến Camera, siêu âm, hồng ngoại, gyro, la bàn...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-03-2008, 02:50 PM   #31
picthanh
Đệ tử 2 túi
 
Tham gia ngày: Jun 2007
Bài gửi: 44
:
SRF05 + PIC16F877A do khoảng cách

em đang dùng SRF05 + PIC16F877A do khoảng cách nhưng công lực còn yếu quá mong các bác có công lực thâm hậu chỉ em với .
về phần cứng cụ thể như sau : con srf05 có hai chế độ hoạt động đó là :
-MOde1 : kết nối 2 chân trigger và echo vào 2 chân i/o của VDK
-Mode2 : sử dụng chân của VDK để gửi tín hiệu trigger và nhận tín hiệu echo từ con srf05
em sư dụng chế độ Mode 2.kết nối chân RB0 với chân trigger/echo của con srf05. trên con srf05 chân mode nối với GND (0v).

em dùng timer 1 để đếm độ rộng xung echo do con srf05 gởi phản hồi.
sau đó lấy độ rộng xung/ 72 để đổi khoang cách tính toán ra đơn vị cm.
đây là code của em , các bác xem qua chỉ em giúp em chỗ nào ko ổn.
Code:
#include "D:\PIC PROGRAM\16F877A\SRF05\main.h"
#include <LCD.C>

#define TrgEch         RB0
#define TrgDir         TRISB0


unsigned int value=0;

int get_srf05(void);
void outlcd(unsigned int kcach);
void setup(void);

/*
#int_EXT
void  EXT_isr(void) 
{

}

*/

void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   lcd_init();
   setup();
//   enable_interrupts(INT_EXT);
//   enable_interrupts(GLOBAL);
      
   while (1)
   {

     value=get_srf05();
//     printf("\n\rvalue= %u",value);
     
     outlcd(value);
      TMR1H = 0;                 // 52mS delay - this is so that the srf05 ranging is not too rapid
      TMR1L = 0;        // and the previous pulse has faded away before we start the next one
      T1CON = 0x21;                     // 1:4 prescale and running
      TMR1IF = 0;
      while(!TMR1IF);                  // wait for delay time
      TMR1ON = 0;                      // stop timer   
   }

}

unsigned int get_srf05(void)
{
   TMR1H = 0xff;                        // prepare timer for 10uS pulse
   TMR1L = -14;
   T1CON = 0x21;                        // 1:4 prescale and running
   TMR1IF = 0;
   TrgDir = 0;         //TRISB=0                  // make trigger/echo pin an output   
   TrgEch = 1;         //RB0=1                  // start trigger pulse
   while(!TMR1IF);                     // wait 10uS
   TrgEch = 0;         //RB0=0;                  // end trigger pulse
   TMR1ON = 0;                           // stop timer
   TrgDir = 1;         //TRISB=0;                  // make trigger/echo pin an input
      
   TMR1H = 0;                           // prepare timer to measure echo pulse
   TMR1L = 0;   
   T1CON = 0x20;                        // 1:4 prescale but not running yet
   TMR1IF = 0;
   while(!TrgEch && !TMR1IF);            // wait for echo pulse to start (go high)
   TMR1ON = 1;                           // start timer to measure pulse
   while(TrgEch && !TMR1IF);   //Wait RB0=0         // wait for echo pulse to stop (go low)
   TMR1ON = 0;                           // stop timer
   TrgDir = 0;                 //TRISB=0          // make trigger/echo pin an output again   
   return (TMR1H<<8)+TMR1L;            // TMR1H:TMR1L contains flight time of the pulse in 0.8uS units 
}

void outlcd(unsigned int kcach)
{
   unsigned char tram=0,chuc=0,donvi=0;
   unsigned int ra=0;
   ra=kcach/72;
   lcd_gotoxy(1,1);
   tram=ra/100+48;lcd_putc(tram);
   chuc=(ra%100/10)+48;lcd_putc(chuc);
   donvi=(ra%100%10)+48;lcd_putc(donvi);
}

void setup(void)
{
unsigned long x;

   PORTB = 0xfe;                  // RB0 (trig) is output
   TRISB = 0xfe;                  // and starts low

   TRISC = 0xff;
   PORTC = 0xff;

   SSPSTAT = 0x80;
   SSPCON = 0x38;
   SSPCON2 = 0x00;
   SSPADD = 50;                  // SCL = 91khz with 20Mhz Osc

///   for(x=0; x<300000L; x++);      // wait for LCD03 to initialise      
}

đây là file main.h
Code:
#include <16F877A.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected

#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

// register definitions

#define W 0
#define F 1

// register files
#byte INDF          =0x00
#byte TMR0          =0x01
#byte PCL           =0x02
#byte STATUS        =0x03
#byte FSR           =0x04
#byte PORTA         =0x05
#byte PORTB         =0x06
#byte PORTC         =0x07
#byte PORTD         =0x08
#byte PORTE         =0x09

#byte EEDATA        =0x10C
#byte EEADR         =0x10D
#byte EEDATH        =0x10E
#byte EEADRH         =0x10F
#byte ADCON0     =0x1F
#byte ADCON1     =0x9F
#byte ADRESH     =0x9F
#byte ADSESL     =0x9F

#byte PCLATH        =0x0a
#byte INTCON        =0x0b
#byte PIR1    =0x0c
#byte PIR2    =0x0d
#byte PIE1    =0x8c
#byte PIE2    =0x8d

#byte OPTION_REG    =0x81
#byte TRISA         =0x85
#byte TRISB         =0x86
#byte TRISC         =0x87
#byte TRISD         =0x88
#byte TRISE         =0x89

#byte EECON1        =0x18C
#byte EECON2        =0x18D

//dinh nghia timer

#byte TMR1H    =0x0F
#byte TMR1L    =0x0E
#byte T1CON    =0x10
#byte SSPSTAT  =0x94
#byte SSPCON   =0x14
#byte SSPCON2  =0x91
#byte SSPADD   =0x93
//dinh nghia bit

#bit TMR1IF       = 0x0c.0
#bit TRISB0       = 0x86.0
#bit RB0          = 0x06.0
#bit TMR1ON       = 0x10.0
em gặp fai vấn đề sau :
lcd của em em chỉ hiện giá trị 000-003, và nó dao động liên tục trong khoảng này. em cũng chưa thật hiểu cách làm việc của cảm biến siêu âm lắm,mong các bác tư vấn thêm.
bác nào giúp em với .........
__________________
VÔ DANH !!!

thay đổi nội dung bởi: picthanh, 31-03-2008 lúc 09:07 PM.
picthanh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-03-2008, 03:43 PM   #32
jean
Đệ tử 1 túi
 
jean's Avatar
 
Tham gia ngày: Jan 2007
Bài gửi: 21
:
hiện tượng crosstalk

Trong giải thuật hạn chế nhiễu do hiện tượng đọc chéo của Borenstein, khi sai lệch giữa hai giá trị đọc liện tiếp trên cảm biến y (cảm biến thu tín hiệu echo do một cảm biến khác phát ra) lớn hơn T_delta thì chắc chắn đã xảy ra hiện tượng crosstalk. Tuy nhiên có một vấn đề mong các bạn trao đổi để làm sáng tỏ.

Khi sai lệch giữa hai giá trị đọc liên tiếp lớn hơn T_delta thì có crosstalk, vậy thì ta loại giá trị nào? giá trị trước hay sau? Nếu như loại giá trị sau, thì chuyện gì sẽ xảy ra khi ngay từ lần đọc đầu tiên cảm biến y đã thu được tín hiệu echo sai (do crosstalk), trong quá trình thí nghệm, vị trí các cảm biến không đổi (tức là đường đọc chéo không thay đổi). Do đó, cảm biến y sẽ liên tục nhận được tìn hiệu echo sai.(Các bạn xem hình đính kèm) Theo giải thuật này thì các giá trị đọc sau sẽ bị loại. Cảm biến y sẽ không nhận được tín hiệu echo do chính y phát ra.
Hình Kèm Theo
File Type: bmp crosstalk.bmp (942.0 KB, 27 lần tải)
jean vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-03-2008, 08:43 PM   #33
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Trích:
Nguyên văn bởi jean View Post
Trong giải thuật hạn chế nhiễu do hiện tượng đọc chéo của Borenstein, khi sai lệch giữa hai giá trị đọc liện tiếp trên cảm biến y (cảm biến thu tín hiệu echo do một cảm biến khác phát ra) lớn hơn T_delta thì chắc chắn đã xảy ra hiện tượng crosstalk. Tuy nhiên có một vấn đề mong các bạn trao đổi để làm sáng tỏ.

Khi sai lệch giữa hai giá trị đọc liên tiếp lớn hơn T_delta thì có crosstalk, vậy thì ta loại giá trị nào? giá trị trước hay sau? Nếu như loại giá trị sau, thì chuyện gì sẽ xảy ra khi ngay từ lần đọc đầu tiên cảm biến y đã thu được tín hiệu echo sai (do crosstalk), trong quá trình thí nghệm, vị trí các cảm biến không đổi (tức là đường đọc chéo không thay đổi). Do đó, cảm biến y sẽ liên tục nhận được tìn hiệu echo sai.(Các bạn xem hình đính kèm) Theo giải thuật này thì các giá trị đọc sau sẽ bị loại. Cảm biến y sẽ không nhận được tín hiệu echo do chính y phát ra.
Tại lần đọc thứ n+1 sẽ lấy kết quả tại lần đọc thứ n để tính. Như vậy nếu xảy ra hiện tượng đọc chéo, thì loại ngay kết quả đọc thứ n. Kết quả đọc của lần đọc thứ n+1 sẽ được lấy để tính tiếp cho lần đọc thứ n+2.

Như vậy rõ ràng, không nhận kết quả nào cả. Chỉ khi nào kết quả n và n+1 khẳng định là đúng thì lúc đó ta mới khẳng định rằng n là đúng, rồi lại lấy n+1 tính tiếp cho n+2...

Cái này hiểu nó rất là vui đấy. Nếu các bạn làm xong kết quả thực nghiệm, các bạn có thể cung cấp lên cho mọi người cùng xem. Cần phải có nhiều kết quả tham khảo hơn, chứ mấy năm nay rồi F nghe nói các đồng chí làm lại vẫn chưa làm thành công.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-08-2008, 02:16 PM   #34
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
mọi người ơi.
cho tớ hỏi cái mạch cảm biến này với???
cho tớ hỏi mạch này nguyên lý hoạt động của nó ?
to thay 2 con tran trên bằng A1015 và C1815 thì thấy 2 con tran này nóng lắm.
thứ hai là: khi lắp xong ,tín hiệu đầu ra luôn ở mức cao(7v) mặc dù tớ đã cách li phần thu và phát và tinh chỉnh triết áp.????
thanks very much !!!
Hình Kèm Theo
File Type: jpg UltraBSL.JPG (73.1 KB, 30 lần tải)
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-08-2008, 09:48 AM   #35
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
2 con tran T1 & T2 mắc theo kiểu đẩy kéo dùng nguồn ko đối xứng . Sơ đồ trên dùng loa thanh áp nên ko cần tụ xuất loa, nếu dùng loa điện động thì khi mắc vơi loa thì phải có thêm tụ ngăn dòng 1 chiều qua loa
Hình Kèm Theo
File Type: bmp 111.bmp (789.3 KB, 50 lần tải)
File Type: jpg untitled.JPG (43.0 KB, 501 lần tải)

thay đổi nội dung bởi: lion, 26-09-2008 lúc 11:42 AM.
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-08-2008, 09:55 AM   #36
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
do tần số siêu âm cao nên dùng tụ 103 PF
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-08-2008, 09:03 PM   #37
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Trích:
Nguyên văn bởi lion View Post
do tần số siêu âm cao nên dùng tụ 103 PF
cám ơn cậu.
nhưng đấy là phần bên phát, nhưng khi chưa có phần phát thì phần thu ở đầu ra luôn luôn có 1 điện áp cố định??
ko hiểu tại sao???
bạn làm về siêu âm bạn có thể cho tơ ít tài liệu được ko? to đang làm cái này....
thanks!!
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 31-08-2008, 11:31 PM   #38
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
Tầng cuối cùng of mạch thu siêu âm (N3) là mạch so sánh đảo pha .ở chế độ tĩnh (chưa có tín hiệu siêu âm ) thì đầu vào âm được nối Dương nguồn qua trở R11 (4.7M) . vì vậy đầu ra có điện áp Dương , muốn triệt điện áp này bạn chi cần hạ con trở R12 (390K) xuống còn 39K , hoặc nhỏ hơn , điều chỉnh thêm cả chiết áp VR2 nữa

chúc thành công.
Hình Kèm Theo
File Type: jpg sieu am.JPG (49.8 KB, 494 lần tải)

thay đổi nội dung bởi: lion, 02-09-2008 lúc 12:44 AM.
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-09-2008, 04:42 PM   #39
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
tớ hỏi câu hơi gà chút(nhưng không hỏi thì chẳng biết khi nào hiểu được)..
1.mọi người có thể chỉ bảo tớ giải thuật cách xử lý sóng siêu âm với phần điều khiển được không??? khi có sóng siêu âm vào chân điều khiển thì phần điều khiển nó sẽ xử lý thế nào để nhận biết được khoảng cách?
2. tín hiệu ra của bộ siêu âm chỉ có 2 mức 0 và 1 à?
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-09-2008, 05:17 PM   #40
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
tài liệu siêu âm :
File Kèm Theo
File Type: pdf TTThuy-Sieuam.pdf (279.4 KB, 848 lần tải)
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-09-2008, 06:50 PM   #41
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Các bác cho em hỏi :
Trích:
#define SRF05_IN PIN_C2
#define SRF05_OUT PIN_C3

// Clockrate/(4 clocks per instruction * T1_DIV_BY_4) * 1000000 us per second
#define CONVERT_TO_MICROSECONDS (20000000/((4*4)*1000000))

//
// The way the srf05 works is that we send it a 10 us high pulse it then sends
// out does it's mojo. Then it reports back a high pulse telling you how long
// the ultrasonic echo took. Divide that by a magic 148 and you convert that
// time into inches.
//

int16 ultrasonic_checkDepth()
{
int16 time;

output_high(SRF05_IN);
delay_us(10);
output_low(SRF05_IN);

setup_timer_1(T1_INTERNAL | T1_DIV_BY_4);

while(!input(SRF05_OUT)) {} // Wait for senser output to go high;

set_timer1(0);
while(input(SRF05_OUT)) {}

time = get_timer1();

time = time/CONVERT_TO_MICROSECONDS;

if(time >= 240000)
{
// No object found
return 0;
}
else
{
return time/148; // convert time into inches
}
}
nghĩa là khi ban đầu tắt time để dò tìm vật cản, sau khi xác định được vật cản thì bật timer . có phải không ạ??

thứ 2 em hỏi LCD03 là LCD1602 à? hay nó là loại nào???
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-09-2008, 04:47 PM   #42
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
Trích:
Nguyên văn bởi picthanh View Post
em đang dùng SRF05 + PIC16F877A do khoảng cách nhưng công lực còn yếu quá mong các bác có công lực thâm hậu chỉ em với .
về phần cứng cụ thể như sau : con srf05 có hai chế độ hoạt động đó là :
-MOde1 : kết nối 2 chân trigger và echo vào 2 chân i/o của VDK
-Mode2 : sử dụng chân của VDK để gửi tín hiệu trigger và nhận tín hiệu echo từ con srf05
em sư dụng chế độ Mode 2.kết nối chân RB0 với chân trigger/echo của con srf05. trên con srf05 chân mode nối với GND (0v).

em dùng timer 1 để đếm độ rộng xung echo do con srf05 gởi phản hồi.
sau đó lấy độ rộng xung/ 72 để đổi khoang cách tính toán ra đơn vị cm.
đây là code của em , các bác xem qua chỉ em giúp em chỗ nào ko ổn.
Code:
#include "D:\PIC PROGRAM\16F877A\SRF05\main.h"
#include <LCD.C>

#define TrgEch         RB0
#define TrgDir         TRISB0


unsigned int value=0;

int get_srf05(void);
void outlcd(unsigned int kcach);
void setup(void);

/*
#int_EXT
void  EXT_isr(void) 
{

}

*/

void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   lcd_init();
   setup();
//   enable_interrupts(INT_EXT);
//   enable_interrupts(GLOBAL);
      
   while (1)
   {

     value=get_srf05();
//     printf("\n\rvalue= %u",value);
     
     outlcd(value);
      TMR1H = 0;                 // 52mS delay - this is so that the srf05 ranging is not too rapid
      TMR1L = 0;        // and the previous pulse has faded away before we start the next one
      T1CON = 0x21;                     // 1:4 prescale and running
      TMR1IF = 0;
      while(!TMR1IF);                  // wait for delay time
      TMR1ON = 0;                      // stop timer   
   }

}

unsigned int get_srf05(void)
{
   TMR1H = 0xff;                        // prepare timer for 10uS pulse
   TMR1L = -14;
   T1CON = 0x21;                        // 1:4 prescale and running
   TMR1IF = 0;
   TrgDir = 0;         //TRISB=0                  // make trigger/echo pin an output   
   TrgEch = 1;         //RB0=1                  // start trigger pulse
   while(!TMR1IF);                     // wait 10uS
   TrgEch = 0;         //RB0=0;                  // end trigger pulse
   TMR1ON = 0;                           // stop timer
   TrgDir = 1;         //TRISB=0;                  // make trigger/echo pin an input
      
   TMR1H = 0;                           // prepare timer to measure echo pulse
   TMR1L = 0;   
   T1CON = 0x20;                        // 1:4 prescale but not running yet
   TMR1IF = 0;
   while(!TrgEch && !TMR1IF);            // wait for echo pulse to start (go high)
   TMR1ON = 1;                           // start timer to measure pulse
   while(TrgEch && !TMR1IF);   //Wait RB0=0         // wait for echo pulse to stop (go low)
   TMR1ON = 0;                           // stop timer
   TrgDir = 0;                 //TRISB=0          // make trigger/echo pin an output again   
   return (TMR1H<<8)+TMR1L;            // TMR1H:TMR1L contains flight time of the pulse in 0.8uS units 
}

void outlcd(unsigned int kcach)
{
   unsigned char tram=0,chuc=0,donvi=0;
   unsigned int ra=0;
   ra=kcach/72;
   lcd_gotoxy(1,1);
   tram=ra/100+48;lcd_putc(tram);
   chuc=(ra%100/10)+48;lcd_putc(chuc);
   donvi=(ra%100%10)+48;lcd_putc(donvi);
}

void setup(void)
{
unsigned long x;

   PORTB = 0xfe;                  // RB0 (trig) is output
   TRISB = 0xfe;                  // and starts low

   TRISC = 0xff;
   PORTC = 0xff;

   SSPSTAT = 0x80;
   SSPCON = 0x38;
   SSPCON2 = 0x00;
   SSPADD = 50;                  // SCL = 91khz with 20Mhz Osc

///   for(x=0; x<300000L; x++);      // wait for LCD03 to initialise      
}

đây là file main.h
Code:
#include <16F877A.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES HS                       //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES NOWRT                    //Program memory not write protected

#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

// register definitions

#define W 0
#define F 1

// register files
#byte INDF          =0x00
#byte TMR0          =0x01
#byte PCL           =0x02
#byte STATUS        =0x03
#byte FSR           =0x04
#byte PORTA         =0x05
#byte PORTB         =0x06
#byte PORTC         =0x07
#byte PORTD         =0x08
#byte PORTE         =0x09

#byte EEDATA        =0x10C
#byte EEADR         =0x10D
#byte EEDATH        =0x10E
#byte EEADRH         =0x10F
#byte ADCON0     =0x1F
#byte ADCON1     =0x9F
#byte ADRESH     =0x9F
#byte ADSESL     =0x9F

#byte PCLATH        =0x0a
#byte INTCON        =0x0b
#byte PIR1    =0x0c
#byte PIR2    =0x0d
#byte PIE1    =0x8c
#byte PIE2    =0x8d

#byte OPTION_REG    =0x81
#byte TRISA         =0x85
#byte TRISB         =0x86
#byte TRISC         =0x87
#byte TRISD         =0x88
#byte TRISE         =0x89

#byte EECON1        =0x18C
#byte EECON2        =0x18D

//dinh nghia timer

#byte TMR1H    =0x0F
#byte TMR1L    =0x0E
#byte T1CON    =0x10
#byte SSPSTAT  =0x94
#byte SSPCON   =0x14
#byte SSPCON2  =0x91
#byte SSPADD   =0x93
//dinh nghia bit

#bit TMR1IF       = 0x0c.0
#bit TRISB0       = 0x86.0
#bit RB0          = 0x06.0
#bit TMR1ON       = 0x10.0
em gặp fai vấn đề sau :
lcd của em em chỉ hiện giá trị 000-003, và nó dao động liên tục trong khoảng này. em cũng chưa thật hiểu cách làm việc của cảm biến siêu âm lắm,mong các bác tư vấn thêm.
bác nào giúp em với .........
bạn này ơi, bạn làm siêu âm này đến đâu rồi, cậu dùng ccs lập trình cho nó à? nếu được rồi chỉ tớ vơi, thank!

thay đổi nội dung bởi: anh_gioi, 26-09-2008 lúc 05:11 PM.
anh_gioi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-11-2008, 06:18 PM   #43
ngoductho
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 1
:
e cần một số tài liệu về các loại cảm biến nhưng e kiếm ko được! mong mọi người cho e link dowload.e cảm ơn!
ngoductho vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-11-2008, 06:47 PM   #44
manhha2799
Đệ tử 5 túi
 
Tham gia ngày: Apr 2007
Bài gửi: 121
:
Send a message via Yahoo to manhha2799
Thumbs up

Đây là code cảm biến siêu âm, lâu quá mình ko nhớ tải ở đâu bạn xem thử nhé, được thì bấm phát cảm ơn nhé
File Kèm Theo
File Type: doc codecambiensieuam-srf08ccs.doc (21.0 KB, 246 lần tải)
__________________
Bảng ledsigns chất lượng cao...
http://www.ledviet.info - manhha2700@yahoo.com
Đt:0949299699
manhha2799 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-11-2008, 07:19 AM   #45
Nguyenbinhdk3
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 1
:
các bạn có thể giúp mình cái này được ko?"mạch cảm biến vị trí sử dụng sóng siêu âm". Thầy cho cái đề mà mình chưa biết làm thế nào? Có bạn nào biết chỉ giáo giùm nha. Thanks nhiều!
Nguyenbinhdk3 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 01:21 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam