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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7578|回復: 2
打印 上一主題 下一主題
收起左側

ADS1115引腳圖電路圖與arduino源程序及pdf資料手冊下載

[復制鏈接]
跳轉到指定樓層
樓主
ADS1115資料,了解一下


ADS1115引腳圖:


ADS1115管腳功能描述:


ADS1115框圖:


ADS1115電路圖:


arduino源程序如下:
  1. /**************************************************************************/
  2. /*!
  3.     @file     Adafruit_ADS1015.cpp
  4.     @author   K.Townsend (Adafruit Industries)
  5.     @license  BSD (see license.txt)

  6.     Driver for the ADS1015/ADS1115 ADC

  7.     This is a library for the Adafruit MPL115A2 breakout

  8.     Adafruit invests time and resources providing this open source code,
  9.     please support Adafruit and open-source hardware by purchasing
  10.     products from Adafruit!

  11.     @section  HISTORY

  12.     v1.0 - First release
  13. */
  14. /**************************************************************************/
  15. #if ARDUINO >= 100
  16. #include "Arduino.h"
  17. #else
  18. #include "WProgram.h"
  19. #endif

  20. #include <Wire.h>

  21. #include "Adafruit_ADS1015.h"

  22. /**************************************************************************/
  23. /*!
  24.     @brief  Abstract away platform differences in Arduino wire library
  25. */
  26. /**************************************************************************/
  27. static uint8_t i2cread(void) {
  28.   #if ARDUINO >= 100
  29.   return Wire.read();
  30.   #else
  31.   return Wire.receive();
  32.   #endif
  33. }

  34. /**************************************************************************/
  35. /*!
  36.     @brief  Abstract away platform differences in Arduino wire library
  37. */
  38. /**************************************************************************/
  39. static void i2cwrite(uint8_t x) {
  40.   #if ARDUINO >= 100
  41.   Wire.write((uint8_t)x);
  42.   #else
  43.   Wire.send(x);
  44.   #endif
  45. }

  46. /**************************************************************************/
  47. /*!
  48.     @brief  Writes 16-bits to the specified destination register
  49. */
  50. /**************************************************************************/
  51. static void writeRegister(uint8_t i2cAddress, uint8_t reg, uint16_t value) {
  52.   Wire.beginTransmission(i2cAddress);
  53.   i2cwrite((uint8_t)reg);
  54.   i2cwrite((uint8_t)(value>>8));
  55.   i2cwrite((uint8_t)(value & 0xFF));
  56.   Wire.endTransmission();
  57. }

  58. /**************************************************************************/
  59. /*!
  60.     @brief  Writes 16-bits to the specified destination register
  61. */
  62. /**************************************************************************/
  63. static uint16_t readRegister(uint8_t i2cAddress, uint8_t reg) {
  64.   Wire.beginTransmission(i2cAddress);
  65.   i2cwrite(ADS1015_REG_POINTER_CONVERT);
  66.   Wire.endTransmission();
  67.   Wire.requestFrom(i2cAddress, (uint8_t)2);
  68.   return ((i2cread() << 8) | i2cread());  
  69. }

  70. /**************************************************************************/
  71. /*!
  72.     @brief  Instantiates a new ADS1015 class w/appropriate properties
  73. */
  74. /**************************************************************************/
  75. Adafruit_ADS1015::Adafruit_ADS1015(uint8_t i2cAddress)
  76. {
  77.    m_i2cAddress = i2cAddress;
  78.    m_conversionDelay = ADS1015_CONVERSIONDELAY;
  79.    m_bitShift = 4;
  80.    m_gain = GAIN_TWOTHIRDS; /* +/- 6.144V range (limited to VDD +0.3V max!) */
  81. }

  82. /**************************************************************************/
  83. /*!
  84.     @brief  Instantiates a new ADS1115 class w/appropriate properties
  85. */
  86. /**************************************************************************/
  87. Adafruit_ADS1115::Adafruit_ADS1115(uint8_t i2cAddress)
  88. {
  89.    m_i2cAddress = i2cAddress;
  90.    m_conversionDelay = ADS1115_CONVERSIONDELAY;
  91.    m_bitShift = 0;
  92.    m_gain = GAIN_TWOTHIRDS; /* +/- 6.144V range (limited to VDD +0.3V max!) */
  93. }

  94. /**************************************************************************/
  95. /*!
  96.     @brief  Sets up the HW (reads coefficients values, etc.)
  97. */
  98. /**************************************************************************/
  99. void Adafruit_ADS1015::begin() {
  100.   Wire.begin();
  101. }

  102. /**************************************************************************/
  103. /*!
  104.     @brief  Sets the gain and input voltage range
  105. */
  106. /**************************************************************************/
  107. void Adafruit_ADS1015::setGain(adsGain_t gain)
  108. {
  109.   m_gain = gain;
  110. }

  111. /**************************************************************************/
  112. /*!
  113.     @brief  Gets a gain and input voltage range
  114. */
  115. /**************************************************************************/
  116. adsGain_t Adafruit_ADS1015::getGain()
  117. {
  118.   return m_gain;
  119. }

  120. /**************************************************************************/
  121. /*!
  122.     @brief  Gets a single-ended ADC reading from the specified channel
  123. */
  124. /**************************************************************************/
  125. uint16_t Adafruit_ADS1015::readADC_SingleEnded(uint8_t channel) {
  126.   if (channel > 3)
  127.   {
  128.     return 0;
  129.   }
  130.   
  131.   // Start with default values
  132.   uint16_t config = ADS1015_REG_CONFIG_CQUE_NONE    | // Disable the comparator (default val)
  133.                     ADS1015_REG_CONFIG_CLAT_NONLAT  | // Non-latching (default val)
  134.                     ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
  135.                     ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
  136.                     ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
  137.                     ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)

  138.   // Set PGA/voltage range
  139.   config |= m_gain;

  140.   // Set single-ended input channel
  141.   switch (channel)
  142.   {
  143.     case (0):
  144.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_0;
  145.       break;
  146.     case (1):
  147.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_1;
  148.       break;
  149.     case (2):
  150.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_2;
  151.       break;
  152.     case (3):
  153.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_3;
  154.       break;
  155.   }

  156.   // Set 'start single-conversion' bit
  157.   config |= ADS1015_REG_CONFIG_OS_SINGLE;

  158.   // Write config register to the ADC
  159.   writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);

  160.   // Wait for the conversion to complete
  161.   delay(m_conversionDelay);

  162.   // Read the conversion results
  163.   // Shift 12-bit results right 4 bits for the ADS1015
  164.   return readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;  
  165. }

  166. /**************************************************************************/
  167. /*!
  168.     @brief  Reads the conversion results, measuring the voltage
  169.             difference between the P (AIN0) and N (AIN1) input.  Generates
  170.             a signed value since the difference can be either
  171.             positive or negative.
  172. */
  173. /**************************************************************************/
  174. int16_t Adafruit_ADS1015::readADC_Differential_0_1() {
  175.   // Start with default values
  176.   uint16_t config = ADS1015_REG_CONFIG_CQUE_NONE    | // Disable the comparator (default val)
  177.                     ADS1015_REG_CONFIG_CLAT_NONLAT  | // Non-latching (default val)
  178.                     ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
  179.                     ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
  180.                     ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
  181.                     ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)

  182.   // Set PGA/voltage range
  183.   config |= m_gain;
  184.                     
  185.   // Set channels
  186.   config |= ADS1015_REG_CONFIG_MUX_DIFF_0_1;          // AIN0 = P, AIN1 = N

  187.   // Set 'start single-conversion' bit
  188.   config |= ADS1015_REG_CONFIG_OS_SINGLE;

  189.   // Write config register to the ADC
  190.   writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);

  191.   // Wait for the conversion to complete
  192.   delay(m_conversionDelay);

  193.   // Read the conversion results
  194.   uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
  195.   if (m_bitShift == 0)
  196.   {
  197.     return (int16_t)res;
  198.   }
  199.   else
  200.   {
  201.     // Shift 12-bit results right 4 bits for the ADS1015,
  202.     // making sure we keep the sign bit intact
  203.     if (res > 0x07FF)
  204.     {
  205.       // negative number - extend the sign to 16th bit
  206.       res |= 0xF000;
  207.     }
  208.     return (int16_t)res;
  209.   }
  210. }

  211. /**************************************************************************/
  212. /*!
  213.     @brief  Reads the conversion results, measuring the voltage
  214.             difference between the P (AIN2) and N (AIN3) input.  Generates
  215.             a signed value since the difference can be either
  216.             positive or negative.
  217. */
  218. /**************************************************************************/
  219. int16_t Adafruit_ADS1015::readADC_Differential_2_3() {
  220.   // Start with default values
  221.   uint16_t config = ADS1015_REG_CONFIG_CQUE_NONE    | // Disable the comparator (default val)
  222.                     ADS1015_REG_CONFIG_CLAT_NONLAT  | // Non-latching (default val)
  223.                     ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
  224.                     ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
  225.                     ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
  226.                     ADS1015_REG_CONFIG_MODE_SINGLE;   // Single-shot mode (default)

  227.   // Set PGA/voltage range
  228.   config |= m_gain;

  229.   // Set channels
  230.   config |= ADS1015_REG_CONFIG_MUX_DIFF_2_3;          // AIN2 = P, AIN3 = N

  231.   // Set 'start single-conversion' bit
  232.   config |= ADS1015_REG_CONFIG_OS_SINGLE;

  233.   // Write config register to the ADC
  234.   writeRegister(m_i2cAddress, ADS1015_REG_POINTER_CONFIG, config);

  235.   // Wait for the conversion to complete
  236.   delay(m_conversionDelay);

  237.   // Read the conversion results
  238.   uint16_t res = readRegister(m_i2cAddress, ADS1015_REG_POINTER_CONVERT) >> m_bitShift;
  239.   if (m_bitShift == 0)
  240.   {
  241.     return (int16_t)res;
  242.   }
  243.   else
  244.   {
  245.     // Shift 12-bit results right 4 bits for the ADS1015,
  246.     // making sure we keep the sign bit intact
  247.     if (res > 0x07FF)
  248.     {
  249.       // negative number - extend the sign to 16th bit
  250.       res |= 0xF000;
  251.     }
  252.     return (int16_t)res;
  253.   }
  254. }

  255. /**************************************************************************/
  256. /*!
  257.     @brief  Sets up the comparator to operate in basic mode, causing the
  258.             ALERT/RDY pin to assert (go from high to low) when the ADC
  259.             value exceeds the specified threshold.

  260.             This will also set the ADC in continuous conversion mode.
  261. */
  262. /**************************************************************************/
  263. void Adafruit_ADS1015::startComparator_SingleEnded(uint8_t channel, int16_t threshold)
  264. {
  265.   // Start with default values
  266.   uint16_t config = ADS1015_REG_CONFIG_CQUE_1CONV   | // Comparator enabled and asserts on 1 match
  267.                     ADS1015_REG_CONFIG_CLAT_LATCH   | // Latching mode
  268.                     ADS1015_REG_CONFIG_CPOL_ACTVLOW | // Alert/Rdy active low   (default val)
  269.                     ADS1015_REG_CONFIG_CMODE_TRAD   | // Traditional comparator (default val)
  270.                     ADS1015_REG_CONFIG_DR_1600SPS   | // 1600 samples per second (default)
  271.                     ADS1015_REG_CONFIG_MODE_CONTIN  | // Continuous conversion mode
  272.                     ADS1015_REG_CONFIG_MODE_CONTIN;   // Continuous conversion mode

  273.   // Set PGA/voltage range
  274.   config |= m_gain;
  275.                     
  276.   // Set single-ended input channel
  277.   switch (channel)
  278.   {
  279.     case (0):
  280.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_0;
  281.       break;
  282.     case (1):
  283.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_1;
  284.       break;
  285.     case (2):
  286.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_2;
  287.       break;
  288.     case (3):
  289.       config |= ADS1015_REG_CONFIG_MUX_SINGLE_3;
  290.       break;
  291.   }

  292. ……………………

  293. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載(內含資料手冊):
ADS1115,ADS1015資料.zip (1.4 MB, 下載次數: 49)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:389852 發表于 2018-9-3 10:01 | 只看該作者
最近在做這個啊,就是老感覺采樣速度不行,該配置的都配置了,郁悶
回復

使用道具 舉報

板凳
ID:64765 發表于 2019-10-13 16:51 | 只看該作者
好資料,學習了,謝謝分享。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产一区二区三区观看不卡 | 日韩免费在线 | 欧美天天视频 | 欧美极品在线观看 | 99色播| 亚洲精品九九 | 国产欧美精品 | 黄网站在线播放 | 日韩免费在线 | 在线观看成年视频 | 久久毛片| 国产在线精品一区二区三区 | 欧美性生活网 | 在线播放国产一区二区三区 | 日本午夜精品 | 日本不卡免费新一二三区 | 久久99网| 黄色免费av| 欧美日韩一区二区三区不卡视频 | 久久婷婷香蕉热狠狠综合 | 久久久久久99| 亚洲网站在线观看 | 久久一二 | 91精品国产高清一区二区三区 | 人人射人人插 | 欧美久久一区二区三区 | 久久久精品综合 | 欧美激情va永久在线播放 | 久久国产秒 | 99re在线| 日韩视频在线一区 | 中文字幕在线观看视频网站 | www操操| av中文字幕在线播放 | 在线精品国产 | 中文字幕免费 | 91丨国产| 欧美成人免费在线 | 夜夜久久| 久久69精品久久久久久久电影好 | 久久蜜桃av一区二区天堂 |