Arduino Uno ADS1115 數模轉換

數模轉換

其實現在我還是沒有搞得太懂數模轉換,先記錄一下吧。

大概一個作用是放大,提高精度,把模擬量轉換成數字,以便進行數據分析

本次實驗使用ADS1115,其特點是16位數據,可以表達0~65535的十進制數,

Arduino Uno 模擬輸入口(例如A0)可以表達0-1023的十進制


ADS1115





實驗效果

AIN0:讀取的是ADS模塊上A0引腳的原始數據

Voltage:通過計算得出的電壓值(AIN0 * 0.1875)/1000




BOM表

Arduino Uno                    *1

ADS1115 模數轉換器    *1

跳線若干


接線圖




程序


需要下載庫:https://github.com/adafruit/Adafruit_ADS1X15


#include <Wire.h>
#include <Adafruit_ADS1015.h>  //加載ADS1015/ADS1115庫

Adafruit_ADS1115 ads(0x48);    //聲明一個ads對象,設置模塊地址
float Voltage = 0.0;          //聲明一個變量 用於存儲檢測到的電壓值

void setup(void) 
{
  Serial.begin(9600);     //波特率
  ads.begin();             //ads對象開始
}

void loop(void) 
{
  int16_t adc0;  // 16位整數

  adc0 = ads.readADC_SingleEnded(0);  //讀取ADS1115模塊的A1引腳的數值
  Voltage = (adc0 * 0.1875)/1000;    //把數值轉換成電壓值,0.1875是電壓因數

  //串口顯示數據
  Serial.print("AIN0: ");   
  Serial.print(adc0);
  Serial.print("\tVoltage: ");
  Serial.println(Voltage, 7);  
  Serial.println();
  
  delay(1000);
}


程序思路講解

1,先加載兩個庫

#include <Wire.h>
#include <Adafruit_ADS1015.h>  //加載ADS1015/ADS1115庫


2,定義ADS對象並設置地址

Adafruit_ADS1115 ads(0x48);    //聲明一個ads對象,設置模塊地址


3,在setup()裏,開始ADS對象

ads.begin();             //ads對象開始


4,讀取對應模塊上模擬口的數值

 adc0 = ads.readADC_SingleEnded(1);  //讀取ADS1115模塊的A1引腳的數值 ,如果讀取A0則參數裏填寫0


還有ads.readADC_Differential_0_1();函數,作用是讀取模擬引腳0和1的電壓值 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章