查看: 538|回复: 0

[评测分享] 【Arrow 有好料】DFR0654多路电压精密测量

[复制链接]
  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 121 天

    连续签到: 22 天

    [LV.7]常住居民III

    发表于 2024-2-15 09:19:39 | 显示全部楼层 |阅读模式
    分享到:
    【实验目的】使用DFR0654实现一个多路电压表
    【实验器材】
    1、DFR0654开发板
    2、OLED屏
    3、ADS1115开发板
    【实现步骤】
    1、按照帖子【Arrow 有好料】DFR0654自制温湿度计 - 板卡试用 - 与非网 (eefocus.com)驱动好OLED屏
    2、下载ADS1115库。
    3、编写代码如下:
    1. /*!
    2. * @file readVoltage.ino
    3. * @brief connect ADS1115 I2C interface with your board (please reference board compatibility)
    4. * @n The voltage value read by A0 A1 A2 A3 is printed through the serial port.
    5. *
    6. * @copyright   Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
    7. * @license     The MIT License (MIT)
    8. * @author [luoyufeng](yufeng.luo@dfrobot.com),
    9. * @version  V1.0
    10. * @date  2019-06-19
    11. * @url https://github.com/DFRobot/DFRobot_ADS1115
    12. */


    13. #include <Wire.h>
    14. #include <DFRobot_ADS1115.h>
    15. #include <GyverOLED.h>
    16. DFRobot_ADS1115 ads(&Wire);
    17. GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;

    18. void setup(void)
    19. {
    20.     Serial.begin(115200);
    21.   oled.init();
    22.   oled.clear();   // очистить дисплей (или буфер)

    23.   // --------------------------
    24.   oled.home();            // курсор в 0,0
    25.   oled.setScale(2);
    26.   oled.print("ADS1115Dmo!");   // печатай что угодно: числа, строки, float, как Serial!
    27.   oled.update();
    28.     ads.setAddr_ADS1115(ADS1115_IIC_ADDRESS1);   // 0x48
    29.     ads.setGain(eGAIN_TWOTHIRDS);   // 2/3x gain
    30.     ads.setMode(eMODE_SINGLE);       // single-shot mode
    31.     ads.setRate(eRATE_128);          // 128SPS (default)
    32.     ads.setOSMode(eOSMODE_SINGLE);   // Set to start a single-conversion
    33.     ads.init();
    34. }

    35. void loop(void)
    36. {
    37.     if (ads.checkADS1115())
    38.     {
    39.         int16_t adc0, adc1, adc2, adc3;
    40.         adc0 = ads.readVoltage(0);
    41.         Serial.print("A0:");
    42.         Serial.print(adc0);
    43.         Serial.print("mV,  ");
    44.         adc1 = ads.readVoltage(1);
    45.         Serial.print("A1:");
    46.         Serial.print(adc1);
    47.         Serial.print("mV,  ");
    48.         adc2 = ads.readVoltage(2);
    49.         Serial.print("A2:");
    50.         Serial.print(adc2);
    51.         Serial.print("mV,  ");
    52.         adc3 = ads.readVoltage(3);
    53.         Serial.print("A3:");
    54.         Serial.print(adc3);
    55.         Serial.println("mV");

    56.           oled.clear();   // очистить дисплей (или буфер)

    57.   // --------------------------
    58.       oled.home();   
    59.       oled.setScale(2);
    60.       oled.setCursor(0,0);  
    61.       oled.print("A0:");
    62.       oled.print(adc0);
    63.       oled.print("mv");
    64.       oled.setCursor(0,2);
    65.       oled.print("A1:");
    66.       oled.print(adc1);
    67.       oled.print("mv");
    68.       oled.setCursor(0,4);
    69.       oled.print("A2:");
    70.       oled.print(adc2);
    71.       oled.print("mv");
    72.       oled.setCursor(0,6);
    73.       oled.print("A3:");
    74.       oled.print(adc3);
    75.       oled.print("mv");
    76.       oled.update();
    77.     }
    78.     else
    79.     {
    80.         Serial.println("ADS1115 Disconnected!");
    81.     }

    82.     delay(1000);
    83. }
    复制代码
    3、将代码下载到开发板,然后把ADS1115的SDA、SCL与开发板SDA、SCL相连,就可以测试出来ADS1115的4路电压了。
    【实验效果】
    ads1115.jpg adss1115_1.jpg
    【总结】
    DFR0654开发板非常优秀,能够使用灵活的库来快速实现开发项目。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-5-20 16:29 , Processed in 0.106294 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.