TA的每日心情 | 开心 4 小时前 |
---|
签到天数: 307 天 连续签到: 38 天 [LV.8]以坛为家I
|
【实验目的】使用DFR0654实现一个多路电压表
【实验器材】
1、DFR0654开发板
2、OLED屏
3、ADS1115开发板
【实现步骤】
1、按照帖子【Arrow 有好料】DFR0654自制温湿度计 - 板卡试用 - 与非网 (eefocus.com)驱动好OLED屏
2、下载ADS1115库。
3、编写代码如下:
- /*!
- * @file readVoltage.ino
- * @brief connect ADS1115 I2C interface with your board (please reference board compatibility)
- * @n The voltage value read by A0 A1 A2 A3 is printed through the serial port.
- *
- * @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
- * @license The MIT License (MIT)
- * @author [luoyufeng](yufeng.luo@dfrobot.com),
- * @version V1.0
- * @date 2019-06-19
- * @url https://github.com/DFRobot/DFRobot_ADS1115
- */
- #include <Wire.h>
- #include <DFRobot_ADS1115.h>
- #include <GyverOLED.h>
- DFRobot_ADS1115 ads(&Wire);
- GyverOLED<SSD1306_128x64, OLED_BUFFER> oled;
- void setup(void)
- {
- Serial.begin(115200);
- oled.init();
- oled.clear(); // очистить дисплей (или буфер)
- // --------------------------
- oled.home(); // курсор в 0,0
- oled.setScale(2);
- oled.print("ADS1115Dmo!"); // печатай что угодно: числа, строки, float, как Serial!
- oled.update();
- ads.setAddr_ADS1115(ADS1115_IIC_ADDRESS1); // 0x48
- ads.setGain(eGAIN_TWOTHIRDS); // 2/3x gain
- ads.setMode(eMODE_SINGLE); // single-shot mode
- ads.setRate(eRATE_128); // 128SPS (default)
- ads.setOSMode(eOSMODE_SINGLE); // Set to start a single-conversion
- ads.init();
- }
- void loop(void)
- {
- if (ads.checkADS1115())
- {
- int16_t adc0, adc1, adc2, adc3;
- adc0 = ads.readVoltage(0);
- Serial.print("A0:");
- Serial.print(adc0);
- Serial.print("mV, ");
- adc1 = ads.readVoltage(1);
- Serial.print("A1:");
- Serial.print(adc1);
- Serial.print("mV, ");
- adc2 = ads.readVoltage(2);
- Serial.print("A2:");
- Serial.print(adc2);
- Serial.print("mV, ");
- adc3 = ads.readVoltage(3);
- Serial.print("A3:");
- Serial.print(adc3);
- Serial.println("mV");
- oled.clear(); // очистить дисплей (или буфер)
- // --------------------------
- oled.home();
- oled.setScale(2);
- oled.setCursor(0,0);
- oled.print("A0:");
- oled.print(adc0);
- oled.print("mv");
- oled.setCursor(0,2);
- oled.print("A1:");
- oled.print(adc1);
- oled.print("mv");
- oled.setCursor(0,4);
- oled.print("A2:");
- oled.print(adc2);
- oled.print("mv");
- oled.setCursor(0,6);
- oled.print("A3:");
- oled.print(adc3);
- oled.print("mv");
- oled.update();
- }
- else
- {
- Serial.println("ADS1115 Disconnected!");
- }
- delay(1000);
- }
复制代码 3、将代码下载到开发板,然后把ADS1115的SDA、SCL与开发板SDA、SCL相连,就可以测试出来ADS1115的4路电压了。
【实验效果】
【总结】
DFR0654开发板非常优秀,能够使用灵活的库来快速实现开发项目。
|
|