ADS1115 เป็นตัวแปลงอะนาล็อกเป็นดิจิตอล 16 บิต (ADC) ที่มีอินเทอร์เฟซ I2C มันมีความแม่นยำสูงและช่องอินพุตหลายช่องทำให้เหมาะสำหรับการอ่านเซ็นเซอร์การตรวจสอบแรงดันไฟฟ้าหรือการขยายสัญญาณในโครงการ Arduino บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ ADS1115 กับ Arduino
สิ่งที่คุณต้องการ
- ADS1115 โมดูล ADC
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เซ็นเซอร์หรืออุปกรณ์อะนาล็อก (เช่นโพเทนชิออมิเตอร์)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง 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
- GND:
ขั้นตอนที่ 2: เดินสาย ADS1115 ถึง Arduino
เชื่อมต่อ ADS1115 กับ Arduino ดังนี้:
ADS1115 พิน | พิน Arduino |
---|---|
VCC | 5V |
gnd | gnd |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
บันทึก: สำหรับบอร์ด Arduino อื่น ๆ ให้แน่ใจว่าคุณใช้พิน I2C ที่ถูกต้อง
ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ
หากต้องการลดความซับซ้อนของการสื่อสารกับ ADS1115 ให้ติดตั้งไลบรารี Adafruit ADS1X15
ขั้นตอนในการติดตั้ง:
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "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: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - เปลี่ยนแรงดันไฟฟ้าอินพุต (เช่นการใช้โพเทนชิออมิเตอร์) และสังเกตค่า 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
- การอ่านเซ็นเซอร์ที่มีความแม่นยำสูง
- การตรวจสอบและวัดแรงดันไฟฟ้า
- การขยายสัญญาณสำหรับเซ็นเซอร์ขนาดเล็ก
- การวัดสัญญาณที่แตกต่างกัน
การแก้ไขปัญหา
- ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบการเชื่อมต่อ I2C และตรวจสอบให้แน่ใจว่าใช้ที่อยู่ I2C ที่ถูกต้อง
- การอ่านที่ไม่สอดคล้องกัน: ตรวจสอบแหล่งจ่ายไฟที่เสถียรและอินพุตสัญญาณที่สะอาด
- ความละเอียดต่ำ: ตรวจสอบให้แน่ใจว่าคุณใช้การตั้งค่าอัตราขยายที่ถูกต้องสำหรับช่วงอินพุตของคุณ
บทสรุป
คุณสามารถเชื่อมต่อ ADS1115 ADC กับ Arduino ได้สำเร็จ ด้วยความแม่นยำและความยืดหยุ่นสูง ADS1115 เป็นเครื่องมือที่ยอดเยี่ยมสำหรับโครงการต่าง ๆ ที่ต้องมีการแปลงแบบอะนาล็อกเป็นดิจิตอลที่แม่นยำ ทดลองกับคุณสมบัติเพื่อสร้างระบบการวัดขั้นสูงและอินเตอร์เฟสเซ็นเซอร์!