[ Prev ] [ Index ] [ Next ]

Chương 9 - Đọc cảm biến nhiệt độ analog qua IC ADC

Created Friday 27 June 2014


https://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing (DS18B20 có bán ở tme.com.vn hay machtudong.vn với giá 27k; nếu đổi thành LM35, nối với IC convert analog-digital MCP3008 - http://monirulpathan.com/afterhours/raspberry-pi-temperature-sensors/, hoặc dùng MCP3201 hoặc ADC0832 có bán ở banlinhkien.vn) - https://learn.adafruit.com/reading-a-analog-in-and-controlling-audio-volume-with-the-raspberry-pi

Trong file này có bài về việc kết nối RPi với MCP3001, tuy là code thì không dùng thư viện spidev:
http://troydenton.ca/rpi/labmanual.pdf

Đây là cách đọc SPI với thư viện spidev (tốc độ cao):
http://www.100randomtasks.com/simple-spi-on-raspberry-pi
(có hướng dẫn mắc mạch đọc ADC qua giao tiếp SPI)

IC LM35 xuất tín hiệu analog với mức thay đổi là 10mV/độ C.
http://www.ti.com/lit/ds/symlink/lm35.pdf

Đã thử nghiệm LM35 mua từ Hshop.vn, chạy với mức điện áp 3.3V cũng được, vẫn ra 10mV/độ C. Tuy nhiên datasheet thì nói là nó chạy với Vcc từ 4V trở lên.

Chương trình đọc
http://scruss.com/blog/2013/02/02/simple-adc-with-the-raspberry-pi/

Mua:
- ADC0832
- LM35
- MCP3201 (đã xin tài trợ từ Microchip, cả MCP3001)

Linh kiện

- LM35
- MCP3201
- MCP3001

Nội dung


Dẫn nhập (1 trang)

- mục tiêu học ở chương này
- các linh kiện cần thiết
- ý nghĩa của bài học này, có thể phát triển ra những ứng dụng nào
Sử dụng vi điều khiển để đo lường các đại lượng vật lý là một lĩnh vực rất đa dạng và thú vị. Hầu hết các loại máy đo điện tử đều có vi điều khiển bên trong, kết hợp với các cảm biến, các thành phần khuếch đại, xử lý tín hiệu và hiển thị. Một số ví dụ là cân điện tử, nhiệt kế điện tử, máy đo huyết áp, cường độ ánh sáng, áp suất... Vì những đại lượng trong tự nhiên đều là dạng biến đổi liên tục nên khi qua các cảm biến thường được chuyển thành tín hiệu điện tương tự (analog). Do đó, để sử dụng được tín hiệu cảm biến, ta cần chuyển tín hiệu điện tương tự (analog) sang tín hiệu số (digital) để phù hợp với cách quản lý thông tin của bộ vi xử lý.
Ta thông qua ví dụ minh họa sau đây để rõ hơn: máy đo cần đo được nhiệt độ trong khoảng 25 - 75 độ C, người ta dùng một cảm biến hoạt động theo nguyên lý giãn nở nhiệt của kim loại, ở một đầu của thanh kim loại có tiếp xúc với một thanh điện trở; khi nhiệt độ càng cao thì thanh kim loại càng dài, đầu tiếp xúc trượt đi làm thay đổi độ dài của khoảng điện trở, như vậy nhiệt độ được chuyển đổi tương ứng thành một biến trở, sau đó có mạch điện tử để biến trở đó được chuyển đổi thành một điện áp trong khoảng 0-3.3V, đây là điện áp analog ở đầu ra của cảm biến; ta cần dùng một module biến đổi analog-digital (analog to digital converter - ADC) để chuyển thành tín hiệu số theo nguyên lý chia nhỏ khoảng 0-3.3V này, ví dụ 1024 lần, và vi xử lý sẽ nhận được con số theo tỉ lệ, trong khoảng từ 0 đến 1023. Điều đó có nghĩa là không thể dùng được tín hiệu liên tục mà phải chia thành rất nhiều bậc thang, nếu chia càng nhiều bậc thì độ dài mỗi nấc thang càng nhỏ, kết quả càng ít sai số. Trên thị trường có rất nhiều module ADC như vậy, khác nhau về số khoảng chia (1024 khoảng thì gọi là ADC 10-bit, hoặc 256 khoảng là ADC 8-bit, 4048 khoảng là ADC 12-bit...), chúng cũng khác nhau về cách giao tiếp, số ngõ hoạt động đồng thời, chất lượng phép đo...

Khi nắm vững được cách làm việc với bộ biến đổi ADC, ta có thể dùng nó làm module giao tiếp với nhiều loại cảm biến analog khác nhau để triển khai được các hệ thống đo lường. Đi sâu vào lĩnh vực này, bạn đọc có thể kết hợp thêm mạch cầu Wheatstone, là phần mạch điện tử thường dùng trong kỹ thuật đo lường các biến trở, ví dụ như sử dụng để đo ứng suất lực trong các loại cân điện tử. Tuy nhiên trong phạm vi giới thiệu các kiến thức cơ bản cho bạn đọc đỡ thấy phức tạp, chúng tôi không trình bày về mạch cầu Wheatstone ở đây, ai quan tâm có thể tìm trên internet hoặc đọc các sách về kỹ thuật điện tử. Để minh họa cách sử dụng các module ADC, phần thực hành trong chương này giới thiệu một cảm biến nhiệt độ analog thông dụng là LM35, và IC (to do: tên IC) là loại module ADC 10-bit, sử dụng giao tiếp SPI (to do: hay I2C?).

Kết nối mạch điện tử (1 trang - hình ảnh)

- hình sơ đồ nối dây, minh họa mạch kiểu phim âm bản (lấy từ trang web project của nước ngoài như Adafruit)
- hình chụp mạch & breadboard đã kết nối
- coi như khi có sơ đồ nối dây là người ta làm theo được, không cần hướng dẫn từng bước


Chuẩn bị phần mềm (1 trang)

- quy trình từ lúc bật power đến khi sẵn sàng nhập lệnh:
- liệt kê các bước bằng text
- chụp hình màn hình khi chọn menu để vào môi trường nhập lệnh (console)


Code mẫu (1 trang)

- nhập code và xem kết quả:

- nhập các lệnh cấu hình phần cứng
- nhập các lệnh điều khiển


Giải thích các lệnh (3 trang )

- sẽ đưa các lệnh vào file Python để giải thích bằng chế độ comment đằng sau code
- thêm một phần giải thích việc nhập code kiểu interactive (nhập, gõ enter, thấy kết quả ngay, không có biên dịch hay phải nạp vào chip)
- (dự kiến khối lệnh ở mỗi bài trong vòng 20 - 40 dòng)


Bài thực hành thêm (1 trang)

- thêm một số gợi ý để người học tự thực hành (ví dụ: bài học bật tắt 1 LED, thêm bài tập bật tắt tuần tự 2 LED)



Số lượt truy cập: