Led thu phát hồng ngoại

Một phần của tài liệu Tính toán thiết kế robot tự động (Trang 69 - 92)

Trong cặp thu phát hồng ngoại (IR): một linh kiện phát hồng ngoại (IR emitter (IRE)) và một linh kiện nhận (IR receiver (IRS)) tạo thành 1 cặp cảm biến sensor. Led thu là loại phản quang, nghĩa là chỉ nhận được ánh sáng hồng ngoại của Led phát khi ánh sáng đó được phản xạ bởi một vật chắn sáng. Linh kiện phát sẽ tạo tia hồng ngoại và sau khi phản xạ sẽ truyền tới linh kiện nhận. Thông số của Led thu phát như sau: +Điện áp làm việc: 5V.

+Dòng điện đầu vào: 25mA.

Trong mạch Led thu pháp hồng ngoại được cung cấp điện áp 5V, dòng cung cấp lúc này là 25mA. Vậy công suất tiêu thụ của 8 cặp Led thu phát trong mạch là:

P = 2.8U.I = 2.8.5.25 = 2000( mW)=2W.

Như vậy, để đảm bảo việc cung cấp đủ công suất cho khối cảm biến chúng em đã sử dụng 2 nguồn riêng biệt: Một nguồn 12V cung cấp cho cảm biến dò đường Led thu phát hồng ngoại, và một nguồn 5V cung cấp cho các khối sử lý tín hiệu khác.

3.2.5.Công tắc hành trình.

Công tắc hành trình được sử dụng rộng rãi trong robot và trong tự động hóa. Công tắc hành trình được sử dụng để phát hiện các giới hạn chuyển động của các cơ cấu trong robot như giới hạn lên, xuống,…

Công tắc hành trình thường có cấu tạo gồm 3 cực tạo thành hai cặp tiếp điểm 1 thường đóng và 1 thường mở. Công tắc hành trình rất đa dạng và phong phú về cấu tạo và chủng loại. Dưới đây là một số công tắc hành trình phổ biến và hay được sử dụng.

Hình 2.35: Một số loại công tắc hành trình thông dụng.

Để robot làm việc chính xác và linh hoạt thì cảm biến hành trình rất quan trọng nó giúp cho các hoạt động của robot được đúng quỹ đạo đã được lập trình trước.

Nguyên lý của mạch cảm biến hành trình rất đơn giản dễ thực hiện:

Tất cả các cảm biến khi tác động đều ở mức tích cực thấp và được đưa và vi điều khiển.

Hình 3.36: Sơ đồ nối công tắc hành trình.

3.2.6.Cảm biến quang.

Cảm biến quang là một trong những cảm biến công nghiệp hay được sử dụng rất nhiều trong robot cũng như trong tự động hóa.

Ưu điểm khi sử dụng loại cảm biến này đó là độ chính xác, độ ổn định cao, khoảng cách phát hiện lớn, sử dụng đơn giản, nhưng giá thành đắt.

Cảm biến quang trên thị trường có rất nhiều loại phong phú về hình dáng và chủng loại, thích hợp cho nhiều yêu cầu sử dụng khác nhau.

Thông số kĩ thuật của một số loại cảm biến quang thông dụng.

Hình 3.37: các loại cảm biến quang thong dụng.

3.3: KHỐI VI XỬ LÝ.

3.3.1.Chức năng.

Đây chính là khối trung tâm, có chức năng điều hành toàn bộ sự hoạt động của robot, nhờ có vi điều khiển thông minh thì robot mới hoạt động hiệu quả. Các dòng vi điều khiển thường được sử dụng như: Vi điều khiển AVR, vi điều khiển PIC, vi điều khiển 8051...

Trong quá trình tìm hiểu chúng em thấy có một loại vi điều khiển thuộc họ 8051 khá mạnh do hãng Philip sản xuất đó là loại 89V51RD2. Qua phân tích các loại dòng vi điều khiển, chúng em đã lựa chọn vi điều khiển loại 89V51RD2 với các ưu điểm nổi bật so với các loại vi điều khiển khác như:

• Dung lượng bộ nhớ lớn hơn: 89V51RD2 có 8Kbyte Flash nội trú bên trong, trong khi đó họ 80C51 chỉ có 4Kbyte. Trong bộ nhớ dữ liệu RAM, 89V51 có vùng RAM mở rộng gồm 768 Byte (00h – 2FFh).

• 89V51 có 3 bộ Timer/Counter. (adsbygoogle = window.adsbygoogle || []).push({});

• Đặc biệt 89V51RD2 được lựa chọn bởi nó có 5 kênh điều xung từ (P1.3 đến P1.7) sử dụng rất đơn giản và linh hoạt cho việc điều xung (rất thuận tiện cho mạch điều khiển động cơ sử dụng phương pháp PWM để điều chỉnh tốc độ động cơ.

3.3.2.Giới thiệu VĐK 89V51RD2.

3.3.2.1.Các tính năng chính của 89V51RD2.

- Sử dụng CPU 80C51.

- Hoạt động ở 5VDC trong tầm tần số dao động đến 40MHZ. - 64kB ISP.

- SPI (Serial Peripheral Interface) và UART.

- 5 PCA với chức năng PWM/ capture/ compare 16 bits. - 4 cổng xuất nhập.

- 3 Timers/Couters 16 bits.

- Watchdog Timer có thể lập trình được. - nguồn ngắt.

- 2 thanh ghi DPTR.

- Tương thích mức logic TTL và CMOS. - Phát hiện nguồn yếu (Brownout Detect).

- Chế độ Low – Power, Power down, Idle.

- Có 3 loại: DIP 40, PLC 44 và TQFP44. Sơ đồ khối của P89V51RD2.

Hình 3.38: Sơ đồ khối của P89V51RD2.

3.3.2.2.Sơ đồ chức năng chân của 89V51RD2.

Hình 3.39: Sơ đồ chân của 89V51RD2BN.

Port 0 (P0.0 – P0.7): Chân 39 – chân 32:

Port 0 là một port xuất/nhập song hướng cực máng hở 8 bit. Nếu được sử dụng như là một ngõ xuất thì mỗi chân có thể kéo 8 ngõ vào TTL. Khi mức 1 được viết vào các chân của port 0, các chân này có thể được dùng như là các ngõ nhập tổng trở cao.

Port 0 có thể được định cấu hình để hợp kênh giữa Bus địa chỉ và Bus dữ liệu (phần byte thấp) khi truy cập đến bộ nhớ dữ liệu và bộ nhớ chương trình ngoài. Ở chế độ này, P0 có các điện trở pullup bên trong.

Port 0 cũng nhận các byte code (byte mã chương trình) khi lập trình Flash, và xuất ra các byte code khi kiểm tra chương trình. Cần có các điện trở pullup bên ngoài khi thực hiện việc kiểm tra chương trình.

Port 1 (P1.0 – P1.7): Chân 1 – chân 8:

 Port 1 là một port xuất/ nhập song hướng 8 bit có điện trở pullup bên trong. Các bộ đệm ngõ ra của port 1 có thể kéo hoặc cung cấp 4 ngõ nhập TTL. Khi mức 1 được viết vào các chân của port 1, chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ nhập. Nếu các chân của port 1 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do các điện trở pullup bên trong.

 P1.0 (chân 1) – T2: Ngõ vào Counter cho Timer/Counter 2 hoặc ngõ ra cho Counter/Timer 2.

 P1.1 (chân 2) – T2EX: Điều khiển hướng và khởi sự chức năng Capture cho Timer/Counter 2.

 P1.2 (chân 3) – ECI: Ngõ vào xung nhịp. Tín hiệu này là nguồn xung nhịp ngoài cho chức năng PCA.

 P1.3 (chân 4) – CEX0: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 0.

 P1.4 (chân 5) – CEX1: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 1.

SS: Chọn cổng phụ vào cho SPI.

 P1.5 (chân 6) – CEX2: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 2. (adsbygoogle = window.adsbygoogle || []).push({});

 MOSI: Phục vụ SPI. 

 P1.6 (chân 7) – CEX3: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 3.

 MISO: Phục vụ SPI

 P1.7 (chân 8) – CEX4: Ngõ vào xung nhịp cho chức năng Capture/Compare modul 4.

 SCK: Phục vụ SPI.

Port 2 (P2.0 – P2.7): Chân 21 – chân 28:

Port 2 là một port xuất ngập song hướng 8 bit có các điện trở pullup bên trong. Các bộ đệm ngõ ra của port 2 có thể kéo hoặc cung cấp 4 ngõ TTL. Khi các mức 1 được viết vào các chân của port 2 thì chúng được kéo lên cao bởi các điện trở pullup nội và có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 2 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong.

Port 2 phát ra byte cao của địa chỉ khi đọc từ bộ nhớ chương trình ngoài và khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 16 bit (MOVX @DPTR). Trong ứng dụng này, nó dùng các điện trở pullup nội “mạnh” khi phát ra các mức 1. Khi truy cập bộ nhớ dữ liệu ngoài dùng các địa chỉ 8 bit (MOVX @RI). Port 2 phát ra các nội dung của thanh ghi chức năng đặc biệt P2. Port 2 cũng nhận các bit cao của địa chỉ và một vài tín hiệu điều khiển lập trình và kiểm tra Flash.

Port 3 (P3.0 – P3.7): Chân 10 – chân 17:

Port 3 là một port xuất ngập song hướng 8 bit có các điện trở pullup bên trong. Các bộ đệm ngõ ra của port 3 có thể kéo hoặc cung cấp 4 ngõ TTL. Khi các mức 1 được viết vào các chân của port 3 thì chúng được kéo lên cao bởi các điện trở.

pullup nội và có thể được dùng như các ngõ vào. Khi được dùng như các ngõ vào, các chân của port 3 (được kéo xuống thấp qua các điện trở bên ngoài) sẽ cấp dòng IIL do có các điện trở pullup bên trong.

Port 3 cũng cung cấp các chức năng của các đặc trưng đặc biệt như được liệt kê dưới đây:

Châ Ký hiệu Chức năng chuyển đổi

n

P3.0 RxD Nhận tín hiệu kiểu nối tiếp P3.1 TxD Truyền tín hiệu kiểu nối tiếp P3.2 /INT0 Ngắt ngoài 0

P3.3 /INT1 Ngắt ngoài 1

P3.4 T0 Chân vào 0 của bộ Timer/Counter 0 P3.5 T1 Chân vào 1 của bộ Timer/ Counter 1 P3.6 /WR Ghi dữ liệu vào bộ nhớ ngoài

P3.7 /RD Đọc dữ liệu từ bộ nhớ ngoài

Bảng 3.1. Chức năng cổng P3.

XTAL (XTAL 1 – XTAL 2): Chân 19 – chân 18:

XTALL 1 (chân 19): Là ngõ vào của một bộ khuếch đại dao động nghịch và là ngõ vào của mạch tạo dao động bên trong cho 89V51.

XTALL 2 (chân 18): Là ngõ ra của bộ khuếch đại dao động nghịch.

Hình3.40: Các kết nối của bộ tạo dao động.

VDD: Chân 40.

VSS: Chân 20: Chân nối Mass.

PSEN: Chân 29: Cho phép dùng bộ nhớ chương trình ngoài. Khi MCU sử dụng bộ nhớ chương trình trong chip, PSEN không tích cực. Khi sử dụng bộ nhớ

chương trình ngoài, PSEN thường tích cực 2 lần trong mỗi chu kì máy. Sự chuyển mức cao sang thấp trên PSEN cưỡng bức từ bên ngoài khi ngõ vào RST

đang ở mức cao trong 10 chu kì máy sẽ đưa MCU vào chế độ lập trình host từ bên ngoài.

RST: Chân 9 :Khi nguồn dao động đang hoạt động, mức cao trên chân RST trong ít nhất 2 chu kì máy sẽ Reset lại hệ thống. Nếu chân PSEN chuyển mức (adsbygoogle = window.adsbygoogle || []).push({});

thaasptrong khi RST vẫn còn ở mức cao, MCU sẽ vào chế độ lập trình host từ bên ngoài, nếu không sẽ hoạt động bình thường.

Hình 3.41: Sơ đồ mạch Reset.

EA: Chân 31: Cho phép sử dụng bộ nhớ chương trình ngoài.  EA = ‘0’ thì cho phép sử dụng bộ nhớ chương trình ngoài.  EA = ‘1’ Thì cho phép sử dụng bộ nhớ trong chip.

ALE/PROG: Chân 30: ALE là một xung ngõ ra để chốt byte thấp của địa chỉ

trong khi truy cập bộ nhớ ngoài. Chân này cũng là ngõ nhập xung lập trình (

PROG) khi lập trình Flash.

 Khi hoạt động bình thường. ALE được phát với một tỷ lệ không đổi là 1/6 tần số bộ dao động và có thể được dùng cho các mục đích timing và clocking bên ngoài. Tuy nhiên lưu ý rằng một xung ALE sẽ bị bỏ qua mỗi khi truy cập bộ nhớ dữ liệu ngoài. Nếu muốn, hoạt động ALE có thể cấm được bằng cách set bit 0 của bộ SFR tại địa chỉ 8Eh. Nếu bit này được set, ALE chỉ được hoạt động khi có một lệnh MOVX hoặc MOVC. Ngược lại, chân này được kéo lên cao bởi một điện trở pullup “nhẹ”. Việc set bit cấm ALE không có tác dụng khi bộ vi điều khiển đang ở chế độ thi hành ngoài. Ngoài ra, chân này còn được dùng để đưa vào chế độ lập trình Flash.

3.3.2.3.Tổ chức không gian bộ nhớ của 89V51RD2.

MCU 89V51RD2 có 2 bộ nhớ riêng biệt: Bộ nhớ chương trình (ROM, Flash) và bộ nhớ dữ liệu (RAM).

- Bộ nhớ chương trình Flash.

Có 2 vùng nhớ nội flash trong 89V51RD2. Block 0 có 64KB được tổ chức thành 512 khu vực chứa 128 bytes. Block 1 chứa đường truyền ISP/IAP và cho phép 8Kbyte đầu tiên của nó được sử dụng để chứa mã bộ nhớ. Nó được kích hoạt khi chọn kết hợp bit Reset mềm (SWR) ở FCF.1 và bank lựa chọn bit (BSEL) ở FCF.0. Sự kết hợp của các bit này và nguồn của vùng nhớ được chỉ dẫn ở bảng sau:

SWR (FCF.1)

BSEL (FCF.0)

Địa chỉ từ 0000h đến 1FFFh Địa chỉ trên 1FFFh

0 0 Bootcode (trong Block 1) Sử dụng mã (trong blok 0) 0 1 Sử dụng mã (trong Block 0)

1 0

1 1

Bảng 3.2. Bộ nhớ Flash.

Vậy, không gian nhớ cực đại của bộ nhớ này chiếm 64Kbyte, được định địa chỉ từ 0000h đến FFFFh. Trong đó, có 8Kbyte Flash nội trú bên trong nó và đươc định địa chỉ từ 0000h đến 1FFFh (khác với 80C51, chỉ có 4Kbyte Flash nội trú bên trong).

Hình 3.42: cấu trúc bộ nhớ chương trình.

- Bộ nhớ dữ liệu Ram.

Bộ nhớ dữ liệu RAM nội trú có 1024Bytes. Bộ nhớ dữ liệu ngoại trú của 89V51 có thể lên tới 64Kbyte. Cấu trúc của bộ nhớ dữ liệu nội trú gồm có 4 phần:

- Vùng nhớ 128 Byte thấp (00h – 7Fh): có thể truy cập bằng địa chỉ trực tiếp hoặc gián tiếp.

- Vùng nhớ 128 Byte cao (80h – FFh): có thể truy cập bằng địa chỉ gián tiếp.

- Các thanh ghi có chức năng đặc biệt (80h – FFh): Chỉ có thể truy cập bằng địa chỉ trực tiếp.

- Vùng RAM mở rộng có 768 Byte (00h – 2FFh): được truy cập bằng địa chỉ gián tiếp bởi lệnh truy xuất dữ liệu ngoài MOVX và xóa bit EXTRAM (trong thanh ghi AUXR). (chú ý: vùng này không có ở 80C51 hay 89C51).

Hình 3.43: Cấu trúc bộ nhớ dữ liệu nội, ngoại trú. (adsbygoogle = window.adsbygoogle || []).push({});

3.3.2.4.Các chức năng đặc biệt khác của 89V51RD2.

Hình 3.44:

timer và counter

Chức năng nổi bật của P89V51RD2 là có 5 kênh PCA, các thanh ghi chịu tác động: CMOD, CCON, CCAPMn.

Hình 3.45: Các thanh ghi.

Hệ thống các chức năng PCA. Ta sẽ lợi dụng chức năng PWM của PCA để điều xung. PCA là Timer 16bit đặc biệt, gồm 5 modul. Mỗi modul có thể lập trình để vận hành 1 trong 4 chế độ: capture cạnh lên/xuống, timer, ngõ ra tốc độ cao, hay.

PWM. Timer PCA có thể vận hành nhờ các nguồn xung nhịp: ½OscFreq ;

1/6OscFreq; tốc độ tràn của timer 0; hay từ ngõ vào trên chân ECI(P1.2). Nguồn xung

nhịp của PCA được chọn nhờ các bit CPS1-CPS0 trên thanh ghi đa dụng CMOD. Thanh ghi chức năng đặc biệt CMOD:

Đây là thanh ghi không thể can thiệp vào từng bit.

Bit Kí hiệu Chức năng

7 CIDL Điều khiển trạng thái rỗi của Counter PCA. CIDL=0 sẽ cho Counter PCA tiếp tục hoạt động bất chấp đang trong trạng thái rỗi. CIDL=1 sẽ lập trình cho nó không hoạt động trong trạng thái rỗi.

6 WDTE Cho phép Watchdog Timer trên modul 4. 5-3 - Chưa được khai báo

2-1 CPS1-CPSO Lựa chọn nguồn xung đếm cho PCA (Xem bảng dưới)

0 ECF Cho phép ngắt khi tràn Counter PCA.

Bảng 3.3: Các bit định nghĩa cho thanh ghi CMOD.

CPS1 CPSO Chọn xung nhịp cho PCA

0 0 Fosc/6

0 1 Fosc/2

1 0 Tràn từ Timer 0

1 1 Xung nhịp ngoài (ECI) Tốc độ lớn nhất Fosc/4

Bảng 3.4: Quy định cách chọn xung nhịp cho PCA.

3.3.2.5.Thanh ghi chức năng đặc biệt CCON.

Có thể can thiệp vào từng bit.

Bít Kí hiệu Chức năng

7 CF Cờ đếm tràn PAC

6 CR Bit điều khiển chạy counter PCA

5 - Chưa định nghĩa (adsbygoogle = window.adsbygoogle || []).push({});

4 CCF4 Cờ ngắt modul PCA 4 3 CCF3 Cờ ngắt modul PCA 3 2 CCF2 Cờ ngắt modul PCA 2 1 CCF1 Cờ ngắt modul PCA 1 0 CCF0 Cờ ngắt modul PCA 0

Bảng 3.5: Các bit định nghĩa của thanh ghi CCON.

Thanh ghi chức năng so sánh/capture cho các modul PCA:CCAPMn.

Không can thiệp được vào từng bit. Bit Kí hiệu Chức năng

7 - Chưa định nghĩa

6 ECOMN Cho phép bộ so sánh 5 CAPPN Cho phép capture cạnh lên 4 CAPNN Cho phép capture cạnh xuống

3 MATN Cho phép kết nối với cờ ngắt CCFn ở thanh ghi CCON 2 TOGN Lật mức ngõ ra, tác động đến chân CEXn

1 PWMN Chế độ điều xung, tác động đến chân CEXn 0 EXCFN Cho phép ngắt CCFn

Bảng 3.6: các bit định nghĩa thanh ghi CCAPMn.

3.3.3.Sơ đồ nguyên lý.

Trong khối vi xử lý ngoài chíp vi điều khiển ra còn có các mạch hỗ trợ như: mạch reset, mạch dao động thạch anh, mạch nạp chương trình...

Để nạp chương trình hay thay đổi chương trình cho Vi điều khiển thực hiện một công việc nào đấy thì ta cần viết chương trình cho chip, và nạp chương trình cho chip thông qua 2 chân giao tiếp nối tiếp P3.0 (RXD) và P3.1(TXD). Sử dụng phần mềm nạp

Một phần của tài liệu Tính toán thiết kế robot tự động (Trang 69 - 92)