.CẢM BIẾN SRF05

Một phần của tài liệu ĐỒ ÁN IĐỀ TÀI:THIẾT KẾ THIẾT BỊ ĐO KHOẢNG CÁCH SỬ DỤNG VI ĐIỀUKHIỂN PIC 16F877A (Trang 36)

1. Đặc tính kĩ thuật

SRF05 là một bước phát triển từ SRF04, được thiết kế làm tăng tính linh hoạt, tăng

phạm vi, ngồi ra cịn giảm bớt chi phí. SRF05 là hồn tồn tương thích với SRF04. Khoảng cách được tăng từ 3 – 4m.

SRF05 cho phép sử dụng một chân duy nhất cho cả kích hoạt và phản hồi, do đĩ tiết

kiệm giá trị trên chân điều khiển. Khi chân chế độ khơng kết nối, thì SRF05 hoạt động riêng biệt chân kích hoạt và chân hồi tiếp như SRF04. SRF05 bao gồm một thời gian trễ trước khi xung phản hồi để mang lại điều khiển chậm hơn hẳn như bộ điều khiển thời gian cơ bản Stamps và Picaxe để thực hiện các xung lệnh.

2. Các chế độ của SRF05

Chế độ 1: tương ứng với SRF04 – Tách biệt kích hoạt và phản hồi.

Chế độ này sử dụng riêng biệt chân kích hoạt và chân phản hồi, và là chế độ đơn giản

nhất để sử dụng. Tất cả các chương trình điển hình cho SRF04 sẽ làm việc cho SRF05 ở chế độ này. Để sử dụng chế độ này, chỉ cần chân chế độ khơng kết nối – SRF05 cĩ một nội dừng trên chân này.

Chế độ 2: Dùng 1 chân cho cả kích hoạt và phản hồi

Chế độ này sử dụng một chân duy nhất cho cả tín hiệu kích hoạt và hồi tiếp, và được thiết kế để lưu các giá trị trên chân lên bộ điều khiển nhúng. Để sử dụng chế độ này, chân chế độ kết nối vào mát. Tín hiệu hồi tiếp sẽ xuất hiện trên cùng một chân với tín hiệu kích hoạt. SRF05 sẽ khơng tăng dịng phản hồi cho đến 700uS sau khi kết thúc các tín hiệu kích hoạt. Bạn cĩ thời gian để kích hoạt pin xoay quanh và làm cho nĩ trở thành một đầu vào và để cĩ pulse đo mã của bạn sẵn sàng. Lệnh PULSIN được tìm ra và dùng phổ biến

Để sử dụng chế độ 2 với các Stamps BS2 cơ bản, bạn chỉ cần sử dụng PULSOUT và PULSIN trên cùng một chân, như thế này:

SRF05 PIN 15 'sử dụng pin cho cả hai và kích hoạt echo Range VAR Word 'xác định phạm vi biến 16 bit

SRF05 = 0 'bắt đầu bằng pin thấp

PULSOUT SRF05, 5 'đưa ra kích hoạt pulse 10uS (5 x 2uS) PULSIN SRF05, 1, Range 'echo đo thời gian

Range = Range/29 'để chuyển đổi sang cm(chia 74 cho inch)

Tính tốn khoảng cách:

Chỉ cần cung cấp một đoạn xung ngắn 10uS kích hoạt đầu vào để bắt đầu đo khoảng cách. Các SRF05 sẽ cho ra mơt chu kỳ 8 burst của siêu âm ở 40kHz và tăng cao dịng phản hồi của nĩ (hoặc kích hoạt chế độ dịng 2). Sau đĩ chờ phản hồi, và ngay sau khi phát hiện nĩ giảm các dịng phản hồi lại. Dịng phản hồi là một xung cĩ chiều rộng tỷ lệ với khoảng đến đối tượng. Bằng cách đo xung, ta hồn tồn cĩ thể để tính tốn khoảng cách theo inch/cm hoặc đơn vị đo khác. Nếu khơng phát hiện gì thì SRF05 giảm thấp hơn dịng phản hồi của nĩ sau khoảng 30mS.

SRF05 cĩ thể được kích hoạt nhanh chĩng với mỗi 50mS, hoặc 20 lần mỗi giây. Nên chờ 50ms trước khi kích hoạt kế tiếp, ngay cả khi SRF05 phát hiện một đối tượng gần và xung phản hồi ngắn hơn. Điều này là để đảm bảo các siêu âm “beep” đã phai mờ và sẽ khơng gây ra sai phản hồi ở lần đo kế tiếp.

Các thiết lập khác của chân 5

Chân 5 được đĩng nhãn là “programming pins” được sử dụng một lần duy nhất trong quá trình sản xuất để lập trình cho bộ nhớ Flash trên chip PIC16F630. Các chương trình của PIC16F630 pins cũng được sử dụng cho các chức năng khác trên SRF05, nên chắc chắn rằng khơng kết nối bất cứ cái gì với các chân này, nếu khơng sẽ làm gián đoạn hoạt động module.

Thay đổi chùm tia và độ rộng chùm

Chùm tia của SRF05 cĩ dạng hình nĩn với độ rộng của chùm là một hàm của diện tích mặt của các cảm biến và là cố định. Chùm tia của cảm biến được sử dụng trên SRF05 được biểu diễn bên dưới:

III. HOẠT ĐỘNG PHÁT VÀ NHẬN PHẢN HỒI SĨNG ÂM CƠ BẢN CỦA SRF05.

Nguyên tắc cơ bản của sonar: là tạo ra một xung âm thanh điện tử và sau đĩ lắng

nghe tiếng vọng tạo ra khi các làn sĩng âm thanh số truy cập một đối tượng và được phản xạ trở lại. Để tính thời gian cho phản hồi trở về, một ước tính chính xác cĩ thể được làm bằng khoảng cách tới đối tượng. Xung âm thanh tạo ra bởi SRF05 là siêu âm, nghĩa là nĩ ở trên phạm vi nhận xét của con người. Trong khi tần số thấp hơn cĩ thể được sử dụng trong các loại ứng dụng, tần số cao hơn thực hiện tốt hơn cho phạm vi ngắn, nhu cầu độ chính xác cao.

• Một số đặc điểm khác của cảm biến siêu âm SRF05

Mức độ của sĩng âm hồi tiếp phụ thuộc vào cấu tạo của đối tượng và gĩc phản xạ của nĩ

Một đối tượng mềm cĩ thể cho ra tín hiệu phản hồi yếu hoặc khơng cĩ phản hồi. Một đối tượng ở một gĩc cân đối thì mới cĩ thể chuyển thành tín hiệu phản chiếu một chiều cho cảm biến nhận

Vùng phát hiện của SRF05

 Nếu ngưỡng để phát hiện đối tượng được đặt quá gần với cảm biến, các đối tượng trên một đường cĩ thể bị va chạm tại một điểm mù. Nếu ngưỡng này được đặt ở một khoảng cách quá lớn từ các cảm biến thì đối tượng sẽ được phát hiện mà khơng phải là trên một đường va chạm.

 Một kỹ thuật phổ biến để làm giảm các điểm mù và đạt được phát hiện chiều rộng lớn hơn cự ly gần là thêm một cải tiến bằng cách thêm một đơn vị SRF05 bổ sung và gắn kết của hai đơn vị hướng về phía trước. Thiết lập như vậy thì cĩ một khu vực mà hai khu vực phát hiện chồng chéo lên nhau.

CHƯƠNG III. ỨNG DỤNG NGƠN NGỮ LẬP TRÌNH ASSEMBLER,C ĐIỀU KHIỂN

I. NGƠN NGỮ ASSEMBLER

Ngơn ngữ lập trình Assembler là một ngơn ngữ bậc thấp dùng trong việc viết các chương trình máy tính. Ngơn ngữ Assembler sử dụng các từ cĩ tính chất gợi nhớ, các từ viết tắt giúp chúng ta ghi nhớ các chỉ thị phức tạp và làm cho việc lập trình Assembler được dễ dàng hơn.Mục đích việc dùng các từ gợi nhớ này nhằm thay thế cho việc lập trình trực tiếp bằng ngơn ngữ máy được sử dụng trong các máy tính đầu tiên thường gặp nhiều lỗi và tốn thời gian. Việc sử dụng ngơn ngữ Assembler vào lập trình PIC rất đơn giản.

- Ưu điểm + Chạy nhanh +Tiết kiệm bộ nhớ.

+ Cĩ thể lập trình truy cập qua các giao diện vào ra nhưng hiện nay các ngơn ngữ bậc cao cũng cĩ thể làm được.

- Nhược điểm

+khĩ viết bởi yêu cầu người lập trình rất am hiểu về phần cứng +khĩ tìm sai bao gồm cả cú pháp và sai về thuật tốn

+khơng chuyển chương trình Assembler cho các máy tính cĩ cấu trúc khác nhau

II. NGƠN NGỮ LẬP TRÌNH C

Ngơn ngữ lập trình C là ngơn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng và nĩ giống ngơn ngữ Assembler. C cịn được đánh giá như là cĩ khả năng di động cho thấy sự khác nhau quan trọng giữa nĩ với ngơn ngữ bậc thấp là Assembler. C được tạo ra với mục tiêu làm cho nĩ thuận tiện để viết các chương trình lớn hơn với số lỗi ít hơn.

- Ưu điểm

+ Tiết kiệm bộ nhớ

+ Cho phép người lập trình dễ dàng kiểm sốt được những gì mà chương trình thực thi.

- Nhược điểm

+ Điều chỉnh bằng tay chậm hơn Assembler

CHƯƠNG IV: THIẾT KẾ PHẦN CỨNG

Đề tài: “Thiết kế thiết bị đo khoảng cách sử dụng vi điều khiển PIC 16F877A ” bao gồm những phần chính sau:

- Sử dụng cảm biến siêu âm SRF05 để đo khoảng cách

- Hiển thị kết quả đo được là khoảng cách (cm) lên LCD

- Dùng led màu để báo: Khi đo khoảng cách ở chế độ mode 2 thì đèn đỏ sáng, khi khoảng cách đến vật cần đo lớn hơn 4m thì đèn vàng sáng, khi cĩ vật cản ở khoảng cách nhỏ hơn 4m thì đèn xanh sáng.

- Nguồn cung cấp sử dụng nguồn một chiều 5VDC

I. CÁC LINH KIỆN TRONG ĐỀ TÀI 1. Điện trở

Điện trở là đại lượng vật lý đặc trưng cho tính chất cản trở dịng điện của một vật dẫn điện. Nĩ được định nghĩa là tỉ số của hiệu điện thế giữa hai đầu vật thể với cường độ dịng điện đi qua nĩ.

Nĩ được xác định bởi cơng thức R=U/I Tong đĩ:

U: là hiệu điện thế giữa hai đầu vật dẫn điện, đo bằng Vơn (V) I: là cường độ dịng diện đi qua vật dẫn điện, đo bằng Ampe (A) R:là điện trở của vật dẫn điện, đo bằng Ohm (Ω)

Kí hiệu:

Điện trở là linh kiện thụ động cĩ tác dụng cản trở điện áp và dịng điện Điện trở được sử dụng rất nhiều trong mạch điện tử.

2. Biến trở

Biến trở là điện trở thay đổi được, cĩ tác dụng là thay đổi điện áp theo yêu cầu người sử dụng.

Kí hiệu

Hình 4.2: ký hiệu và hình dạng của biến trở

3. Tụ điện

Tụ điện là linh kiện thụ động, cấu tạo của tụ điện là hai bản cực bằng kim loại ghép cách nhau một khoảng d ở giữa hai bản tụ là dung dịch hay chất điện mơi cách điện cĩ điện dung. Đặc điểm của tụ là cho dịng xoay chiều đi qua, ngăn cản dịng điện một chiều. Kí hiệu:

4. Thạch anh

Là một linh kiện làm bằng tinh thể đá thạch anh được mài phẳng chính xác. Linh kiện thạch anh làm việc dựa trên hiệu ứng áp điện. Hiệu ứng này cĩ tính thuận nghịch. Khi áp một điện áp vào 2 mặt của thạch anh, nĩ sẽ bị biến dạng. Ngược lại, khi tạo sức ép vào 2 bề mặt đĩ, nĩ se phát ra điện áp.

Hình4.4:kí hiệu và hình dạng của thạch anh

5. LCD 1602

Ngày nay, thiết bị hiển thị LCD được sử dụng trong rất nhiều các ứng dụng của vi điều khiển. LCD cĩ rất nhiều ưu điểm so với các dạng hiển thị khác. Nĩ cĩ khả năng hiển thị kí tự đa dạng, trực quan (chữ số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ.

Hình dạng:

Sơ đồ chân:

Chân Kí hiệu Ý nghĩa

1 VSS Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển

2 Vdd Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển

3

VEE Điều chỉnh độ tương phản của LCD

4 RS Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

trong LCD.

5 RW Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.

6 E Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0- DB7, các lệnh chỉ được chấp nhận khi cĩ 1 xung cho phép của chân E.

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nĩ khi phát hiện một xung (high-to-low

transition) của tín hiệu chân E.

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.

7-14 D0-D7 Tám đường của bus dữ liệu dùng để trao đổi thơng tin với MPU. Cĩ 2 chế độ sử dụng 8 đường bus này :

+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.

+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7

CHÚ Ý:

Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thơng tin từ LCD thơng qua các chân Dx.

Cịn khi ở chế độ “ghi”, nghĩa là MPU xuất thơng tin điều khiển cho LCD thơng qua các chân Dx.

Chân 15 và chân 16: ghi là A và K. Nĩ là anot và katot của một con led dùng để sang LCD trong bĩng tối, chúng ta cĩ thể khơng nối, nếu sử dụng nối chân 15 với trở 220 hoặc 330 Ω lên VCC, chân 16 nối đất.

 Tập lệnh của LCD

a. Một số chú ý:

Trước khi tìm hiểu tập lệnh của LCD, sau đây là một vài chú ý khi giao tiếp với LCD: Tuy trong sơ đồ khối của LCD cĩ nhiều khối khác nhau, nhưng khi lập trình điều khiển LCD ta chỉ cĩ thể tác động trực tiếp được vào 2 thanh ghi DR và IR thơng qua các chân DBx, và ta phải thiết lập chân RS, R/W phù hợp để chuyển qua lại giữ hai thanh ghi này Với mỗi lệnh, LCD cần một khoảng thời gian để hồn tất, thời gian này cĩ thể khá lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc đợi (delay) cho LCD thực thi xong lệnh hiện hành mới cĩ thể ra lệnh tiếp theo.

Địa chỉ RAM (AC) sẽ tự động tăng giảm 1 đơn vị, mỗi khi cĩ lệnh ghi vào RAM (điều này giúp chương trình gọn hơn)

Các lệnh của LCD cĩ thể chia thành các nhĩm như sau:

+ Các lệnh về kiểu hiển thị. VD: Kiểu hiển thị (1 hàng / 2 hàng), chiều dài dữ liệu (8 bit / 4 bit).

+Chỉ định địa chỉ RAM nội.

+Nhĩm lệnh truyền dữ liệu trong RAM nội

b. Tập lệnh

Tập lệnh của LCD tương đối đơn giản. Khi lập trình cho mạch cĩ LCD ta chỉ cần gọi các hàm cĩ sẵn trong trình biên dịch mà khơng cần LCD phải đánh các lệnh phức tạp.

CHƯƠNG V: THIẾT KẾ PHẦN MỀM

Phần mềm sử dụng là phần mềm C Nội dung chương trình:

/**********************************************************************/ /* DO AN I */ /* PROJECT: DO KHOAN CACH SU DUNG SRF05 */ /**********************************************************************/

#include <main.h> #include <var.h> #include "lcd.c"

#define SRF05_TRIGGER PIN_B1 #define SRF05_ECHO PIN_B0 #define NO_OBJECT 0

#INT_EXT

{

// Ngat ngoai theo suon xuong disable_interrupts(GLOBAL); num_pulse+=get_timer1(); range_ok=1; enable_interrupts(GLOBAL); } void SRF05_StartRange() { while(!range_ok) {

output_high(SRF05_TRIGGER); // Tao 1 xung len vao cha TRIGGER co do lon it nhat 10ms

delay_ms(15); // Tao xung vao chan TRIGGER rong 15ms (>10ms) output_low(SRF05_TRIGGER); // Bat dau phep do.

while(!(input(SRF05_ECHO)));// Doi cho den khi chan ECHO duoc keo len cao set_timer1(0); // Reset lai gia tri Timer1

enable_interrupts(GLOBAL); // Cho phep ngat toan cuc

delay_ms(50); // SRF05 chi co the kich hoat lai nhanh nhat sau moi 50ms }

}

float32 SRF05_GetDistance() {

float32 time_us=0,distance=0; SRF05_StartRange();

disable_interrupts(GLOBAL);

if(num_pulse>37500) // So sanh neu thoi gian do ve >30ms { num_pulse=0; range_ok=0; return NO_OBJECT; } else { time_us=num_pulse/1.25;

distance=time_us/58; // Datasheet SRF05: dis(cm)=timer(us)/58 num_pulse=0; range_ok=0; return distance; } } void main() { unsigned char str[20]; unsigned char mode=1; int count=0;

float32 range;

output_float(SRF05_ECHO); output_drive(SRF05_TRIGGER);

set_tris_b(0b11000001); // Cau hinh I/O cua PORTB: 11000001 LCD_Init(); sprintf(str," DO AN I "); delay_ms(10); LCD_Puts(str); delay_ms(1000); LCD_Clear(); sprintf(str,"DO K/C SRF05: M1"); LCD_Gotoxy(0,0); LCD_Puts(str); output_low(PIN_B4); delay_ms(100);

port_b_pullups(TRUE); // PORTB su dung dien tro keo len (pullups) ext_int_edge(H_TO_L); // Su dung ngat ngoai theo suon xuong

setup_timer_1(T1_INTERNAL|T1_DIV_BY_4);// F_TIMER1=F_OSC/4/4=20MHz/4/4=1.25MHz (T=0.8us tuc cu 0.8us thi Timer1 tang 1 do vi)

disable_interrupts(GLOBAL); // Khong cho phep ngat while(TRUE)

{

// PIN_B7: Change Mode

// PIN_B6: Get Distance in Mode 2 // Begin with Mode1

// To Change Mode2: Hold PIN_B7 > 3s

Một phần của tài liệu ĐỒ ÁN IĐỀ TÀI:THIẾT KẾ THIẾT BỊ ĐO KHOẢNG CÁCH SỬ DỤNG VI ĐIỀUKHIỂN PIC 16F877A (Trang 36)

Tải bản đầy đủ (DOC)

(64 trang)
w