ที่ ADS1115 คือ ตัวแปลงอะนาล็อกเป็นดิจิตอล 16 บิต (ADC) ที่ช่วยให้ Raspberry Pi อ่านได้ สัญญาณอะนาล็อก จากเซ็นเซอร์โพเทนชิโอมิเตอร์และอุปกรณ์อะนาล็อกอื่น ๆ คู่มือนี้จะนำคุณผ่านการตั้งค่าไฟล์ ADS1115 โมดูล ADC ด้วย Raspberry Pi เพื่ออ่านข้อมูลเซ็นเซอร์อะนาล็อกโดยใช้ Python
สิ่งที่คุณต้องการ
- Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน I2C เช่น PI 3, PI 4)
- ADS1115 โมดูล ADC
- เซ็นเซอร์อะนาล็อก (เช่นโพเทนชิออมิเตอร์, เซ็นเซอร์อุณหภูมิ, เซ็นเซอร์ความชื้นในดิน ฯลฯ )
- เครื่องหั่นขนมปังและสายจัมเปอร์
- ติดตั้ง Python บนราสเบอร์รี่ pi
ขั้นตอนที่ 1: ทำความเข้าใจกับ ADS1115
ที่ Raspberry Pi ขาดพินอินพุตแบบอะนาล็อกดังนั้น ADS1115 ใช้ในการแปลง สัญญาณอะนาล็อกเป็นดิจิตอล- ADS1115 ให้:
- 4 ช่องสัญญาณอินพุตแบบอะนาล็อก (A0, A1, A2, A3)
- ความละเอียด 16 บิตเพื่อความแม่นยำสูง
- อินเทอร์เฟซการสื่อสาร I2C
- แอมพลิฟายเออร์อัตราขยายที่ตั้งโปรแกรมได้ (PGA) สำหรับความไวที่สามารถปรับได้
ขั้นตอนที่ 2: เดินสาย ADS1115 ไปยัง Raspberry Pi
ที่ ADS1115 สื่อสารผ่าน I2Cดังนั้นเราจึงเชื่อมต่อกับหมุด I2C ของ Raspberry Pi
การเชื่อมต่อ
ADS1115 พิน | Raspberry Pi Pin |
---|---|
VCC | 3.3V (พิน 1) หรือ 5V (พิน 2) |
gnd | พื้นดิน (พิน 6) |
SDA | SDA (พิน 3, GPIO2) |
SCL | SCL (PIN 5, GPIO3) |
A0-A3 (อินพุตอะนาล็อก) | เชื่อมต่อกับเอาต์พุตเซ็นเซอร์ |
ขั้นตอนที่ 3: เปิดใช้งาน I2C บน Raspberry Pi
- เปิดเครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config
- นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน
- รีบูตราสเบอร์รี่ pi:
sudo reboot
- ตรวจสอบว่า ตรวจพบ ADS1115 บนรถบัส I2C:
ที่ ADS1115 ควรปรากฏตามที่อยู่sudo i2cdetect -y 1
0x48
.
ขั้นตอนที่ 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
# Initialize I2C and ADS1115 ADC
i2c = busio.I2C(board.SCL, board.SDA)
ads = ADS.ADS1115(i2c)
# Select Analog Input Channel (A0)
channel = AnalogIn(ads, ADS.P0)
try:
while True:
print(f"Raw Value: {channel.value}, Voltage: {channel.voltage:.2f}V")
time.sleep(1)
except KeyboardInterrupt:
print("Exiting...")
ขั้นตอนที่ 6: แอปพลิเคชันของ ADS1115 กับ Raspberry Pi
- อ่านเซ็นเซอร์อะนาล็อก - อุณหภูมิแสงความชื้นหรือเซ็นเซอร์ก๊าซ
- การตรวจสอบแรงดันไฟฟ้าของแบตเตอรี่ - วัดแรงดันไฟฟ้าอย่างปลอดภัยด้วยความละเอียดสูง
- การตรวจสอบความชื้นในดิน - ใช้สำหรับ ระบบชลประทานอัจฉริยะ.
- การอ่านโพเทนชิออมิเตอร์ - ใช้เป็นไฟล์ ผู้ใช้อินพุตคอนโทรลเลอร์ สำหรับโครงการ
การแก้ไขปัญหา
-
ไม่พบ ADS1115 (
i2cdetect
ไม่แสดง0x48
)- ตรวจสอบให้แน่ใจว่า หมุด SDA/SCL มีสายอย่างถูกต้อง
- ตรวจสอบว่า เปิดใช้งาน I2C โดยใช้
sudo raspi-config
.
-
การอ่านที่ไม่ถูกต้อง
- ใช้ การตั้งค่า PGA ในรหัส Python เพื่อปรับช่วงแรงดันไฟฟ้า
- ตรวจสอบ แหล่งจ่ายไฟที่มั่นคง ไปยังโมดูล ADS1115
-
โมดูล ADS1115 หลายตัว
- ปรับเปลี่ยนไฟล์ ที่อยู่ i2c ใช้ Addr Pin เพื่อหลีกเลี่ยงความขัดแย้ง
บทสรุป
ที่ ADS1115 โมดูล ADC เปิดใช้งาน Raspberry Pi อ่านข้อมูลเซ็นเซอร์แบบอะนาล็อก มีความแม่นยำสูง ไม่ว่าคุณจะสร้าง การตรวจสอบสิ่งแวดล้อมการตรวจจับแบตเตอรี่หรือแอปพลิเคชัน IoTคู่มือนี้ให้วิธีง่ายๆในการรวมเข้าด้วยกัน อินพุตแบบอะนาล็อกลงในโครงการของคุณ! 🚀