Raspberry Pi ADC
Raspberry Pi không có chân đầu vào analog tích hợp, nên nó không thể đọc trực tiếp giá trị từ các cảm biến analog như biến trở, nhiệt trở, và cảm biến khí gas. Để giải quyết vấn đề này, chúng ta sử dụng bộ chuyển đổi Analog-to-Digital Converter (ADC). Hướng dẫn này sẽ chỉ cho bạn cách sử dụng module ADC ADS1115 để đọc giá trị cảm biến analog với Raspberry Pi.
Hướng dẫn này bao gồm:
- Cách kết nối cảm biến analog với Raspberry Pi bằng module ADS1115.
- Cách lập trình Raspberry Pi để đọc giá trị từ cảm biến analog.
Phần Cứng Cần Thiết
| 1 | × | Raspberry Pi 5 | ||
| 1 | × | mô-đun ADC ADS1115 | ||
| 1 | × | Cảm biến analog (ví dụ: Potentiometer, Cảm biến ánh sáng, Cảm biến nước) | ||
| 1 | × | breadboard | ||
| 1 | × | Dây nối Jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi | ||
| 1 | × | (Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit | ||
| 1 | × | (Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Tìm hiểu về Module ADS1115
ADS1115 là ADC 16-bit với 4 kênh và giao tiếp với Raspberry Pi sử dụng I2C (Inter-Integrated Circuit). Nó có thể đọc tín hiệu analog (0-3.3V) và cung cấp độ phân giải 16 bit.
Module ADS1115 có 4 kênh đầu vào analog, có nghĩa là bạn có thể kết nối tối đa 4 cảm biến analog khác nhau với một module ADS1115 cùng một lúc. Điều này cho phép bạn đo nhiều giá trị cảm biến đồng thời chỉ với một module ADC.
Sơ đồ chân ADS1115

| Chân | Tên | Mô tả |
|---|---|---|
| VDD | Nguồn cung cấp (3.3V hoặc 5V) | |
| GND | Đất | |
| SCL | I2C clock (kết nối với Raspberry Pi GPIO3) | |
| SDA | I2C data (kết nối với Raspberry Pi GPIO2) | |
| A0-A3 | Kênh đầu vào analog | |
| ADDR | Chọn địa chỉ I2C | |
| ALERT/RDY | Đầu ra Alert/Ready (tùy chọn) |
Đấu nối ADS1115 với Raspberry Pi
| Chân ADS1115 | Chân Raspberry Pi |
|---|---|
| VDD | 3.3V (Pin 1) |
| GND | GND (Pin 6) |
| SCL | GPIO3 (Pin 5) |
| SDA | GPIO2 (Pin 3) |
Dưới đây là một số ví dụ về cách đấu nối Raspberry Pi, module ADS1115, và các cảm biến analog khác nhau:
- Sơ đồ đấu nối giữa Raspberry Pi, module ADS1115, và potentiometer

This image is created using Fritzing. Click to enlarge image
- Sơ đồ đấu nối giữa Raspberry Pi, module ADS1115, và cảm biến ánh sáng

This image is created using Fritzing. Click to enlarge image
- Sơ đồ đấu nối giữa Raspberry Pi, module ADS1115, và cảm biến nước

This image is created using Fritzing. Click to enlarge image
- Sơ đồ đấu nối giữa Raspberry Pi, module ADS1115, và cảm biến độ ẩm đất

This image is created using Fritzing. Click to enlarge image
Như đã đề cập trước đó, module ADS1115 có thể kết nối tối đa bốn cảm biến analog đồng thời. Hướng dẫn này trình bày cách sử dụng với một cảm biến, nhưng bạn có thể dễ dàng điều chỉnh cho nhiều cảm biến.
Cách sử dụng ADC với Raspberry Pi
- Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích Raspberry Pi nào khác trên Pi của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
- Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, xem Raspberry Pi - Cài Đặt Phần Mềm
- Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
- Chạy lệnh sau để mở công cụ cấu hình Raspberry Pi:
- Điều hướng đến Interfacing Options > I2C và bật nó để kích hoạt giao diện I2C trên Raspberry Pi.
- Khởi động lại Raspberry Pi:
- Kết nối lại PC của bạn với Raspberry Pi qua SSH
- Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, cài đặt nó bằng lệnh sau:
- Cài đặt thư viện Adafruit_ADS1x15 bằng cách chạy các lệnh sau trên terminal Raspberry Pi của bạn:
Đọc giá trị Analog bằng Python
- Tạo file script Python adc_read.py và thêm đoạn code sau:
- Lưu file và chạy script Python bằng cách thực hiện lệnh sau trong Terminal:
Nếu mọi thứ được kết nối đúng cách, bạn sẽ thấy các giá trị analog được in ra trong terminal.
Giải thích Code:
- Thư viện Adafruit_ADS1x15 khởi tạo giao tiếp I2C.
- Đối tượng ADS1115 đọc giá trị ADC 16-bit từ kênh được chỉ định.
- Script liên tục đọc và in giá trị analog mỗi giây.
Kết luận
Sử dụng ADC như ADS1115 cho phép Raspberry Pi giao tiếp với các cảm biến analog, mở rộng khả năng của nó. Hướng dẫn này đã trình bày cách đấu nối và lập trình ADS1115 để đọc dữ liệu analog sử dụng giao tiếp I2C. Bây giờ bạn có thể tích hợp các cảm biến analog khác cho nhiều dự án khác nhau!
Dưới đây là các hướng dẫn toàn diện giải thích cách kết nối và sử dụng Raspberry Pi với các cảm biến analog khác nhau:
- Hướng dẫn Raspberry Pi - Cảm biến độ ẩm đất
- Hướng dẫn Raspberry Pi - Cảm Biến Nước
- Hướng dẫn Raspberry Pi - Cảm Biến Ánh Sáng
- Hướng dẫn Raspberry Pi - Potentiometer (Biến trở)