เดอะ ADS1115 เป็น ตัวแปลงสัญญาณอะนาล็อกเป็นดิจิทัลแบบ 16 บิต (ADC) ที่ทำให้ Raspberry Pi สามารถอ่านได้ สัญญาณแอนะล็อก จากเซ็นเซอร์ โพเทนชิโอมิเตอร์ และอุปกรณ์แอนะล็อกอื่น ๆ คู่มือนี้จะพาคุณทีละขั้นตอนในการตั้งค่า ADS1115 โมดูล ADC ด้วย Raspberry Pi เพื่ออ่านข้อมูลจากเซ็นเซอร์แบบแอนะล็อกโดยใช้ Python.
สิ่งที่คุณต้องมี
- Raspberry Pi (รุ่นใดก็ได้ที่รองรับ I2C เช่น Pi 3, Pi 4)
- ADS1115 โมดูล ADC
- เซนเซอร์แอนะล็อก (เช่น โพเทนชิโอมิเตอร์, เซนเซอร์วัดอุณหภูมิ, เซนเซอร์วัดความชื้นในดิน เป็นต้น)
- เบรดบอร์ดและสายจัมเปอร์
- ติดตั้ง Python แล้ว บน Raspberry Pi
ขั้นตอนที่ 1: ทำความเข้าใจ ADS1115
ดังกล่าว Raspberry Pi ไม่มีขาอินพุตแบบแอนะล็อก, ดังนั้น ADS1115 ใช้เพื่อแปลง สัญญาณแอนะล็อกสู่ดิจิทัล. ADS1115 มีให้:
- 4 ช่องสัญญาณอินพุตแบบแอนะล็อก (A0, A1, A2, A3)
- ความละเอียด 16-bit เพื่อความแม่นยำสูง
- อินเทอร์เฟซการสื่อสารแบบ I2C
- เครื่องขยายสัญญาณแบบกำหนดเกนได้ (PGA) สำหรับปรับความไวได้
ขั้นตอนที่ 2: การเดินสายของ ADS1115 ไปยัง Raspberry Pi
เดอะ ADS1115 สื่อสารผ่าน I2C, ดังนั้นเราจึงเชื่อมต่อมันเข้ากับขา I2C ของ Raspberry Pi
การเชื่อมต่อ
| ADS1115 หมุด | พิน Raspberry Pi |
|---|---|
| VCC | 3.3V (ขา 1) หรือ 5V (ขา 2) |
| GND | กราวด์ (ขา 6) |
| SDA | SDA (ขา 3, GPIO2) |
| SCL | SCL (ขา 5, GPIO3) |
| A0-A3 (อินพุตแอนะล็อก) | เชื่อมต่อกับเอาต์พุตของเซ็นเซอร์ |
ขั้นตอนที่ 3: เปิดใช้งาน I2C บน Raspberry Pi
- เปิดเครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config - ไปที่ ตัวเลือกอินเทอร์เฟซ > I2C และเปิดใช้งาน.
- รีบูต Raspberry Pi:
sudo reboot - ตรวจสอบว่า ADS1115 ถูกตรวจพบ บนบัส I2C:
ADS1115 ควรปรากฏที่ที่อยู่sudo i2cdetect -y 10x48.
ขั้นตอนที่ 4: ติดตั้งไลบรารีที่จำเป็น
- อัปเดตรายการแพ็กเกจของ Raspberry Pi ของคุณ:
sudo apt update && sudo apt upgrade -y - ติดตั้งสิ่งที่จำเป็น เครื่องมือ I2C และไลบรารี Python:
sudo apt install -y python3-smbus python3-pip pip3 install adafruit-circuitpython-ads1x15
ขั้นตอนที่ 5: การอ่านข้อมูลอนาล็อกจาก ADS1115
โค้ด Python สำหรับอ่านข้อมูลเซ็นเซอร์จาก ADS1115
import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
# เริ่มต้น I2C และ ADS1115 ADC
i2c = busio.I2C(board.SCL, board.SDA)
ads = ADS.ADS1115(i2c)
# เลือกช่องสัญญาณอินพุตแบบอะนาล็อก (A0)
channel = AnalogIn(ads, ADS.P0)
try:
while True:
print(f"ค่าดิบ: {channel.value}, แรงดันไฟฟ้า: {channel.voltage:.2f}V")
time.sleep(1)
except KeyboardInterrupt:
print("กำลังออก...")
ขั้นตอนที่ 6: การประยุกต์ใช้ของ ADS1115 กับ Raspberry Pi
- การอ่านค่าจากเซ็นเซอร์อนาล็อก – เซ็นเซอร์อุณหภูมิ, แสง, ความชื้น หรือก๊าซ.
- การตรวจสอบแรงดันไฟฟ้าของแบตเตอรี่ – วัดแรงดันไฟฟ้าได้อย่างปลอดภัยด้วยความละเอียดสูง
- การติดตามความชื้นในดิน – ใช้สำหรับ ระบบชลประทานอัจฉริยะ.
- การอ่านค่าโพเทนชิโอมิเตอร์ – ใช้เป็น ตัวควบคุมการป้อนข้อมูลของผู้ใช้ สำหรับโครงการ.
การแก้ไขปัญหา
-
ADS1115 ไม่พบ (
i2cdetectไม่แสดง0x48)- ตรวจสอบให้แน่ใจว่า ขา SDA/SCL ถูกต่อสายอย่างถูกต้อง.
- ตรวจสอบว่า เปิดใช้งาน I2C แล้ว การใช้
sudo raspi-config.
-
การอ่านค่าที่ไม่แม่นยำ
- ใช้ การตั้งค่า PGA ในโค้ด Python เพื่อปรับช่วงแรงดันไฟฟ้า.
- ให้มั่นใจใน แหล่งจ่ายไฟที่เสถียร ไปยัง ADS1115 โมดูล.
-
หลายรายการ ADS1115 โมดูล
- แก้ไข ที่อยู่ I2C โดยใช้ ขา ADDR เพื่อหลีกเลี่ยงความขัดแย้ง.
บทสรุป
นั้น ADS1115 โมดูล ADC ทำให้ Raspberry Pi สามารถ อ่านข้อมูลจากเซ็นเซอร์แบบแอนะล็อก ด้วยความแม่นยำสูง ไม่ว่าคุณจะกำลังสร้าง การตรวจติดตามสภาพแวดล้อม, การตรวจวัดแบตเตอรี่, หรือแอปพลิเคชัน IoT, คู่มือนี้มีวิธีง่ายๆ ในการผสานรวม อินพุตแอนะล็อกในโปรเจกต์ของคุณ! 🚀



