Huong Dan - TT VXL - Chuong 7 - 9

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 30

2CHƯƠNG 7: ADC + CẢM BIẾN NHIỆT ĐỘ LM35

I. PHẦN CỨNG:

Sơ đồ bố trí cảm biến và công tắc kết nối trên bộ thí nghiệm

Sơ đồ nguyên lý kết nối cảm biến qua công tắc (SW802), trong sơ đồ là có 2
cách kết nối cảm biến (1 là trực tiếp, 2 là qua ADC rời bên ngoài)
Sơ đồ nguyên lý kết nối với relay, đèn tròn (AC 220V) tạo nhiệt độ, có công
tắc cưỡng bức tắt mở đèn

Hình dáng cảm biến, sơ đồ chân xác định bằng phương pháp quay ngược
chân linh kiện lên (gọi là bottom view)
II. PHẦN MỀM:

1. Lý thuyết: Xem clip + bài giảng lý thuyết (sách lý thuyết) + giáo trình

https://youtu.be/invB4b_x3mg
Nhắc lại cách tính toán mối quan hệ điện áp ngõ vào (giá trị điện áp của
cảm biến) đến bộ ADC và tín hiệu số sau khi chuyển đổi

2. Hướng dẫn thực hiện bài tập chương 7:

701,702,703 (thay buzzer_on, off bằng 32 led đơn sáng tắt)

làm hết các bài từ 704 --> 710

CÁC BÀI VỀ NHIỆT ĐỘ LM35, thay buzzer bằng 8 led đơn bên phải, thay đèn
bằng 8 led đơn bên trái (CÁC LED CÒN LẠI LÀ TẮT)

XUAT_32LED_DON_4BYTE(den, 0, 0, LOA);

nếu làm thực tế thì chỉ thay Buzzer bằng led đơn, còn đèn thì mô phỏng mới
thay bằng led đơn (thay đổi nhiệt độ trên linh kiện LM35 bằng mũi tên lên
xuống trong Proteus)

Bài 702 có hướng dẫn đo lấy trung bình có phần thập phân (xem trong file giáo
trình)

Bài 705 – thêm delay_ms(1) như hướng dẫn trong file giáo trình; đây cũng là
bài mẫu tổng quát để đo 2 kênh hoặc 1 kênh đều được, cách lập trình đo nhiệt độ
viết theo hàm con như bài này khi ta ghép với các bài khác.
Bài 705 bis - hiển thị thêm trên led quét, LCD, nhấp nháy khi nhiệt độ cao
* ĐO KHOẢNG CÁCH – DÙNG CẢM BIẾN HỒNG NGOẠI

I. PHẦN CỨNG:

II. PHẦN MỀM:

1. Đọc thông số kỹ thuật từ trang 201 – 205, để biết:

- Giới hạn khoảng cách đo của cảm biến (tính chất của cảm biến),

- Xác định sơ đồ chân để kết nối phần cứng (Hình 7-7),

- Xác định được trình tự điều khiển (Hình 7-9),

- Xác định được mối quan hệ giữa điện áp ngõ ra và khoảng cách phản xạ từ vật
cản (hình 7-10) và lập bảng giá trị (bảng 7-1),

2. Bài tập mẫu:

- 711: Đo khoảng cách với độ chính xác 10cm.

- 712: Đo khoảng cách với độ chính xác 1cm, nên viết lại đo khoảng cách dưới
dạng hàm con như hướng dẫn trong file giáo trình.
- 713: Đo khoảng cách dùng hàm mũ (tốc độ thực hiện chậm --> ảnh hưởng đến
led quét nếu có).

- 714 BIS: Bài tổng hợp: Hiển thị đầy trên 3 module led 7 đoạn quét, LCD,
module 4 led 7 đoạn.

LED quét: K.CACH – LM35A – LM35B

LCD: Kcach: LM35A: LM35B:

xx yy zz (font nhỏ)

XX YY ZZ (font lớn)

4 led 7đ: K.CACH.LM35B


* ĐO NHIỆT ĐỘ DÙNG CẢM BIẾN 1 DÂY DS18B20

(bên trong có sẵn bộ ADC + chip xử lý --> gọi là IC cảm biến nhiệt độ số):

XEM THÊM TRONG THƯ MỤC 2 – BAI GIANG --> 8 – BAI GIANG
DS18B20.PDF

I. PHẦN CỨNG:

- Sơ đồ nguyên lý trang 226, hình 7-28 --> 2 cảm biến này tại 1 thời điểm chỉ kết
nối 1 con, nếu muốn dùng 2 con cùng 1 dây kết nối thì phải bỏ bớt 1 điện trở
như hình 7-18, trang 216 (xem thêm trong datasheet – thư mục 4 – THAM
KHAO).
- Tổ chức bộ nhớ lưu (hình 7-20):

+ Byte 0, 1 là ô nhớ chứa giá trị nhiệt độ sau khi chuyển đổi;

+ Byte 1, 2 là ô nhớ chứa giá trị cài đặt.

+ Byte 4 là byte cấu hình (hình 7-21 / trang 217) --> chọn độ phân giải (độ chính
xác, phần thập phân đo được) (bảng 7-2 / trang 217)

+ Cách tính độ phân giải (hình 7-16 / trang 214):


9 bit --> 0,5

10 bit --> 0,25

11 bit --> 0,125

12 bit --> 0,0625


II. PHẦN MỀM:
1. Lý thuyết:
- Nguyên lý giao tiếp ghi/đọc cảm biến theo qui trình (lưu đồ) hình 7-22 / trang
219 và hình 7-23 / trang 221.

- Các tín hiệu điều khiển (dạng sóng):

+ Xung reset và xung hiện diện (hình 7-24 / trang 223).


+ Ghi/đọc (hình 7-25 / trang 223)

--> Các công việc này được phần mềm CCS hỗ trợ trong thư viện <touch.c>
(trang 226, 227)

touch_present(); //xung reset và xung hiện diện

touch_write_byte(); //ghi dữ liệu

touch_read_byte(); //ghi dữ liệu


2. Bài tập mẫu:
- Bài 731: Có 3 cách hiển thị trong file giáo trình --> nên dùng cách 1.
- Bài 732: Xem ghi chú trong file giáo trình.
- Bài 733: Thay buzzer bằng led đơn.
- Bài 736: Hiển thị thêm trên led quét và LCD.
CHƯƠNG 8: REALTIME DS1307

I. PHẦN CỨNG:

- Hình 8-5 / trang 235.


- Hình 8-9 / trang 237:

+ Kiểm tra gạt 2 công tắc nối SDA, SCL với vi điều khiển – kế bên công tắc gạt
LM35).

+ Quan sát cách kết nối với nhiều thiết bị chung với nhau qua 2 đường SDA,
SCL như nguyên tắc hình 8-1 / trang 232.
II. PHẦN MỀM:

1. Lý thuyết:

PHẦN MỀM CCS BẮT BUỘC PHẢI LÀ PHIÊN BẢN 5.015.

- Đọc datasheet DS1307.pdf trong thư mục tham khảo / trang 12 để xác định địa
chỉ của linh kiện: + Slave address: 1101 000_ (bit cuối = 0: là ghi, = 1:
là đọc).

--> giải thích lý do có 2 dòng khai báo trong thư viện:

#define addr_wr_1307 0xd0

#define addr_rd_1307 0xd1

--> mỗi một linh kiện theo chuẩn I2C sẽ có 1 địa chỉ riêng biệt do nhà sản xuất
cung cấp.

- Qui trình ghi đọc, hình 8-2, 8-3 / trang 234 được hỗ trợ bằng các lệnh của phần
mềm CCS:

+ Khai báo I2C trong thư viện TV_PICKIT2_SHIFT_1.C dòng thứ 5:

#USE I2C(MASTER,SLOW,SDA=PIN_B0, SCL=PIN_B1)

PIN_B0, PIN_B1 là 2 chân có hỗ trợ giao tiếp I2C có sẵn của VĐK.

+ Start: i2c_start
+ Stop: i2c_stop

+ Write: i2c_write

+ Read: i2c_read

+ Not ACK – A\ (cuối qui trình đọc – datasheet trang 12):


i2c_read(0); //not ack

- Các giá trị thời gian lưu trong DS1307 là theo kiểu BCD (0101 = 5), hình 8-7 /
trang 236.

--> các giá trị gán cho DS1307 ở đầu thư viện là dạng số BCD viết dưới dạng số
hex: 0x55 là = 55.

- Tách 1 số BCD hay 1 số hex (hệ 16) --> thì ta chia cho 16 --> hàm hiển thị
trong thư viện trang 240

- THAY ĐỔI THỜI GIAN : Đặt lại các giá trị ở trong đầu thư viện.

#define ma_ds 0x98

--> THAY SỐ 0X98 bằng 1 giá trị bất kỳ trước khi thay đổi thời gian.
3. Bài tập mẫu: CHỈ LÀM từ 801-806

- 801: Hiệu chỉnh theo hướng dẫn trong file giáo trình và cho hiển thị lên led
quét và module 4 led 7 đoạn (PHUT.GIAY). Chỉnh sửa các hàm trong
chương trình thành DS13B07 (thêm chữ B) để trùng với tên hàm trong thư
viện.
TÁCH SỐ BCD: CHIA CHO 16 (TÁCH 4 BIT)

THAY ĐỔI THỜI GIAN THEO YÊU CẨU


- 802: Điều chỉnh các nội dung như hướng dẫn trong file giáo trình.

- Đọc hiểu nguyên tắc tăng giảm số BCD (0-9 : 0000 – 1001). Hai hàm con
hiệu_chỉnh_số_bcd... trang 243.

--> khi tăng >=10 thì cộng thêm 6.

--> khi giảm từ 0x00 - 1 = 0xFF (& 0x0F chỉ lấy 1 số BCD so sánh) --> thì trừ
cho 6.
- 803: Hiệu chỉnh như hướng dẫn trong file giáo trình.

- 804: Theo hướng dẫn ở bài 803, dùng ngắt Timer để nhấp nháy giá trị khi chỉnh.

- 805: Theo hướng dẫn trong bài giảng / trang 2, thay buzzer bằng led đơn.

- 806: Hẹn giờ --> so sánh dạng số BCD.


Chương 9: ĐỘNG CƠ BƯỚC

I. PHẦN CỨNG:

- Hình 9-2 / trang 280 --> động cơ bước đơn cực (unipolar) có 5 (2 chân a,b nối
chung) hoặc 6 chân.
- Các thông số trên động cơ bước: Điện trở cuộn dây, điện áp cung cấp --> xác
định dòng cung cấp cho các cuộn dây; góc bước (step angle) --> xác định số
bước quay / 1 vòng = 360 độ / góc bước.

VD: 1,8 độ / 1 bước --> 1 vòng = 360 / 1,8 = 200 bước

- Hình 9-6 / trang 283 --> động cơ có dòng lớn hơn 20mA nên phải dùng thêm
IC nâng (đệm) dòng L298.
II. PHẦN MỀM:

- Bảng 9-1: Qui trình điều khiển động cơ bước (mỗi lần thay đổi điện áp 2 đầu
cuộn dây là 1 bước, thay đổi 1 đầu cuộn dây là nữa bước – bảng 9-2).

- Đọc hiểu phần thư viện trang 286.


+ Dựa trên phần cứng Hình 1-15, 1-16 / trang 18 --> hiểu được định nghĩa các
chân điều khiển từ bit 0 – bit 4 (5 bit).
3. Bài tập mẫu:

- 901: Viết lại chương trình theo lệnh if như hướng dẫn trong file giáo trình.

- 902: Gọi hàm quay ngược.

- 903: Viết lại theo hướng dẫn trong file giáo trình --> dùng if và hàm con.
- 904: Viết theo cách không thay đổi thư viện như hướng dẫn trong file giáo
trình.

- 905: Động cơ bước có thông số: 1 vòng = 200 bước.

- 906: Ta lập trình so sánh từng trường hợp --> tìm cách viết gọn lại bằng cách
tìm ra qui luật rồi dùng biến số, biểu thức để thay đổi giá trị theo từng cấp
độ.

- 907: Dùng biến trạng thái cho phím INV.

- 908: Dùng biến trạng thái cho phím D.

- 909: Khi hiển thị số bước ta nên /2 lấy phần nguyên là số bước.
- BT TỔNG HỢP

You might also like