วิธีใช้ ADS1115 ADC กับ Arduino

How to Use the ADS1115 ADC with Arduino

ADS1115 เป็นตัวแปลงอะนาล็อกเป็นดิจิตอล 16 บิต (ADC) ที่มีอินเทอร์เฟซ I2C มันมีความแม่นยำสูงและช่องอินพุตหลายช่องทำให้เหมาะสำหรับการอ่านเซ็นเซอร์การตรวจสอบแรงดันไฟฟ้าหรือการขยายสัญญาณในโครงการ Arduino บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ ADS1115 กับ Arduino


สิ่งที่คุณต้องการ

  1. ADS1115 โมดูล ADC
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. เซ็นเซอร์หรืออุปกรณ์อะนาล็อก (เช่นโพเทนชิออมิเตอร์)
  4. เครื่องหั่นขนมปังและสายจัมเปอร์
  5. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจโมดูล ADS1115

ข้อเสนอ ADS1115:

  • ความละเอียด ADC 16 บิต (15 บิตสำหรับอินพุตที่แตกต่าง)
  • 4 ช่องสัญญาณอินพุต (หรือ 2 คู่ที่แตกต่างกัน)
  • แอมพลิฟายเออร์ Gain ที่ตั้งโปรแกรมได้ (PGA) สำหรับการขยายสัญญาณ

ADS1115 pinout

เข็มหมุด การทำงาน
VCC แหล่งจ่ายไฟ (3.3V/5V)
gnd พื้น
SDA สายข้อมูล i2c
SCL สายนาฬิกา i2c
addr การกำหนดค่าที่อยู่ I2C
  • การกำหนดค่า Addr Pin:
    • GND: 0x48 (ที่อยู่เริ่มต้น)
    • VCC: 0x49
    • SDA: 0x4A
    • SCL: 0x4B

ขั้นตอนที่ 2: เดินสาย ADS1115 ถึง Arduino

เชื่อมต่อ ADS1115 กับ Arduino ดังนี้:

ADS1115 พิน พิน Arduino
VCC 5V
gnd gnd
SDA A4 (SDA)
SCL A5 (SCL)

บันทึก: สำหรับบอร์ด Arduino อื่น ๆ ให้แน่ใจว่าคุณใช้พิน I2C ที่ถูกต้อง


ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ

หากต้องการลดความซับซ้อนของการสื่อสารกับ ADS1115 ให้ติดตั้งไลบรารี Adafruit ADS1X15

ขั้นตอนในการติดตั้ง:

  1. เปิด Arduino IDE
  2. ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
  3. ค้นหา "Adafruit ADS1X15" แล้วคลิก ติดตั้ง.

ขั้นตอนที่ 4: อัปโหลดรหัส

นี่คือตัวอย่างตัวอย่างในการอ่านอินพุตแบบอะนาล็อกจาก ADS1115:

#include <Wire.h>
#include <Adafruit_ADS1X15.h>

Adafruit_ADS1115 ads; // Create an ADS1115 object

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("Initializing ADS1115...");

  if (!ads.begin()) {
    Serial.println("Failed to detect ADS1115. Check connections.");
    while (1);
  }

  Serial.println("ADS1115 initialized.");
}

void loop() {
  int16_t adc0 = ads.readADC_SingleEnded(0); // Read channel 0
  float voltage = adc0 * 0.1875 / 1000.0; // Convert to voltage (gain = 2/3)

  Serial.print("ADC Value: ");
  Serial.print(adc0);
  Serial.print(" | Voltage: ");
  Serial.print(voltage);
  Serial.println(" V");

  delay(500); // Wait for 500ms before the next reading
}

ขั้นตอนที่ 5: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. เปลี่ยนแรงดันไฟฟ้าอินพุต (เช่นการใช้โพเทนชิออมิเตอร์) และสังเกตค่า ADC และการอ่านแรงดันไฟฟ้า

ตัวเลือก: การใช้โหมดดิฟเฟอเรนเชียล

ADS1115 ยังสามารถวัดความแตกต่างระหว่างสองอินพุตพิน (เช่น A0 และ A1):

int16_t diff = ads.readADC_Differential_0_1(); // Measure difference between A0 and A1
float voltage = diff * 0.1875 / 1000.0; // Convert to voltage
Serial.println(voltage);

แอปพลิเคชันของ ADS1115

  1. การอ่านเซ็นเซอร์ที่มีความแม่นยำสูง
  2. การตรวจสอบและวัดแรงดันไฟฟ้า
  3. การขยายสัญญาณสำหรับเซ็นเซอร์ขนาดเล็ก
  4. การวัดสัญญาณที่แตกต่างกัน

การแก้ไขปัญหา

  • ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบการเชื่อมต่อ I2C และตรวจสอบให้แน่ใจว่าใช้ที่อยู่ I2C ที่ถูกต้อง
  • การอ่านที่ไม่สอดคล้องกัน: ตรวจสอบแหล่งจ่ายไฟที่เสถียรและอินพุตสัญญาณที่สะอาด
  • ความละเอียดต่ำ: ตรวจสอบให้แน่ใจว่าคุณใช้การตั้งค่าอัตราขยายที่ถูกต้องสำหรับช่วงอินพุตของคุณ

บทสรุป

คุณสามารถเชื่อมต่อ ADS1115 ADC กับ Arduino ได้สำเร็จ ด้วยความแม่นยำและความยืดหยุ่นสูง ADS1115 เป็นเครื่องมือที่ยอดเยี่ยมสำหรับโครงการต่าง ๆ ที่ต้องมีการแปลงแบบอะนาล็อกเป็นดิจิตอลที่แม่นยำ ทดลองกับคุณสมบัติเพื่อสร้างระบบการวัดขั้นสูงและอินเตอร์เฟสเซ็นเซอร์!

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.