久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12500|回復: 2
收起左側

ADS1115+Arduino AC高斯電流偵測

[復制鏈接]
ID:399412 發表于 2018-9-18 11:21 | 顯示全部樓層 |閱讀模式
ADS1115是一塊由 TI 開發、基于 I2C 協議的ADC,可以將電壓轉換成16bits的數字信號,與 Arduino內置的ADC相比,分辨率提高數十倍,而且內置了 PGA (可程序設計增益放大器),可以設置測量范圍(±0.256V ~ 6.144V),無需參考電壓,因此精度相當之高,可達 7.8125uV(即:0.0078125mV),可以應用于精密電壓測量、 示波器中。而且ADS1115 供了4組模擬輸入,解決了 Arduino UNO 模擬埠被 I2C 占用后不夠用的問題。
所有原理圖及 arduino 源成碼, 均在附件中.

傳感器: 可使用 input (AC) 20A/40A, output(DC) 0V-5V 范圍之線性感應線圈.

Input: (AC) 20/40A
Output: (DC) 0V – 5V.

電流計算方式:
(范例)
量測值: 0.25V
目標量測電流:  Y

Y = 20 x 0.25 / 5.0  (20A感應線圈)

Or

Y = 40 x 0.25 / 5.0 (40A感應線圈)

對于電流偵測, 網網讓人產生困擾, 原因其實很簡單, 就是在線操作中的機器,
電源線不可能讓你亂改或破壞, 這時候如果需要測試電流穩定, 必須提供高斯電 流偵測器, 此裝置, 無需破壞原裝置電源接線, 也無需供電,可有效達成電流量 測目的.

ADS1115的設置比較復雜,可以先看看其 DataSheet 第 25 頁,有 5 個表格說明了如何 使用該模塊。但別慌,Arduino 作為成為最流行的開源平臺之一,優勢在于有豐富的庫。 TI 開發的 ADS1XXX 系列芯片的庫已經有不少,只要簡單的設置,即可使 用。

現在,我們需要先理解這塊芯片的具體性能:

首先,ADS1115 內置的 PGA 可以設置測量范圍,最高為 ±6.144V,但千萬不要以為它 可以測量 6.144V 的電壓,實際上,它最高耐壓不能超過 VDD 0.3V(VDD 為 5V, 實際測量范圍< 5.3 V),必須切記,否則可能會損壞芯片。



±6.144V / (2∧16 – 1) = ±6.144V / 32767 = ±0.1875 mV
與 Arduino UNO 內置的 10bits ADC,每步 4.85mV 相比,精度提高了 25 倍。如果

PGA 設為 1x 增益,即測量范圍降至 4.096V,精度為 ±0.125mV,如果 PGA 設為 16x 增益,測量范圍降至 ±0.256V,精度可達 ±0.0078125mV。簡單來說,PGA 增益越大, 測量范圍越小,精度越高。默認值為 ±6.144V。

ADS1115 的地址可以通過 ADDR 與 SDA、SCL、GND 或 VDD 短接,實現修改。不 設置的話,默認值為 0x48,如下圖:

現在,我們將 VDD 連接 Arduino 的 5V 埠,然后,用 ADS1115 的 A0 測量 Arduino的 3.3V 埠,但千萬不要反過來,因為測量電壓不能超過 VDD 的 0.3V!


  1. #include <Wire.h>

  2. #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2);
  3. #include <Adafruit_ADS1015.h> Adafruit_ADS1115 ads;
  4. void setup(void)

  5. {

  6. lcd.begin();
  7. // 切記,測量電壓不能超過 VDD 的 0.3V (5V + 0.3V = 5.3V) !
  8. // PGA 默認值為 2/3 增益

  9. // ads.setGain(GAIN_TWOTHIRDS);              // 2/3x gain +/- 6.144V              1 bit = 3mV

  10. 0.1875mV (default)

  11. // ads.setGain(GAIN_ONE);              // 1x gain              +/- 4.096V              1 bit = 2mV

  12. 0.125mV

  13. // ads.setGain(GAIN_TWO);              // 2x gain              +/- 2.048V              1 bit = 1mV

  14. 0.0625mV

  15. // ads.setGain(GAIN_FOUR);              // 4x gain              +/- 1.024V              1 bit = 0.5mV

  16. 0.03125mV

  17. // ads.setGain(GAIN_EIGHT);              // 8x gain              +/- 0.512V              1 bit = 0.25mV

  18. 0.015625mV

  19. // ads.setGain(GAIN_SIXTEEN);              // 16x gain              +/- 0.256V              1 bit = 0.125mV

  20. 0.0078125mV

  21. ads.begin();


  22. }


  23. void loop(void)

  24. {

  25. double adc0;

  26. adc0 = ads.readADC_SingleEnded(0);

  27. lcd.setCursor(0,0);

  28. lcd.print("AIN0: "); lcd.print(adc0 * 0.1875 / 1000);
  29. delay(100); //刷新率有上限,具體請參考 DataSheet


  30. }
復制代碼



規格書上面寫的好像是 2.048v 才是默認值
ADS111X 系列有三種型號,1113,1114 和 1115。只有 1113 是 2.048V。請見TI Datasheep,17 頁

0.png

全部資料51hei下載地址:
ADS1115 16bit ADC Arduino 教學.docx (625.25 KB, 下載次數: 72)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:529492 發表于 2019-5-8 20:44 | 顯示全部樓層
garyxiang_ag 發表于 2018-11-19 22:29
請問 為啥我的讀數一直是-1呢,我是直接按 Adafruit_ADS1015 里面的例子singleended來做的。

你好 你那個讀數一直是-1的問題怎么解決呢
回復

使用道具 舉報

ID:429552 發表于 2018-11-19 22:29 | 顯示全部樓層
請問 為啥我的讀數一直是-1呢,我是直接按 Adafruit_ADS1015 里面的例子singleended來做的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91高清视频 | 日韩免费视频一区二区 | www免费视频 | 国产精品美女久久久久久免费 | 91精品国产一区二区三区 | 美女亚洲一区 | 日韩国产在线观看 | 国产一伦一伦一伦 | 国产 日韩 欧美 在线 | 性一交一乱一透一a级 | 天天久久 | 国产精品自拍视频 | 日韩av中文 | 国产成人免费视频网站视频社区 | 91在线看片 | 午夜影院在线 | 国产一区二区三区久久久久久久久 | 最近日韩中文字幕 | 久久久影院 | 亚洲精品小视频在线观看 | 国产极品车模吞精高潮呻吟 | 亚洲午夜精品视频 | 国产精品久久久久aaaa | 一区视频 | 久久久久91| 免费国产黄| 亚洲欧美视频 | 欧美日韩亚洲成人 | 久久九九影视 | 中文字幕一区二区三区不卡在线 | 老外黄色一级片 | 国产精品久久久久久久久久免费看 | 一区二区三区视频在线免费观看 | 国产一区二区在线免费播放 | 久久久久国产一区二区三区四区 | 国产精品视频导航 | 久久91精品久久久久久9鸭 | 日韩国产中文字幕 | 色吧久久 | 久久av在线播放 | 国产精品免费一区二区三区 |