SKU_DFR1073_2_Channel_15bit_I2C_to_0-10V_DAC WIKI

INTRODUCTION

DAC series modules are a range of products that can be controlled through I2C or PWM signals to generate voltage or current output signals. They possess the capability to produce a variety of analog voltage or current signals, including 0-5V, 0-10V, 0-2.5V, 0-VCC, and 0-25mA.

An analog quantity refers to the continuous variation of voltage magnitude (or current magnitude) within a specific range. Due to its stability, long transmission distance, and ease of use, it has found widespread application in the field of industrial automation control, including:

This series of DAC products not only offers a variety of output signal ranges, but also provides three selectable resolutions: 8-bit, 12-bit, and 15-bit. It allows for the choice of either single-channel or dual-channel configurations, and multiple modules can be cascaded to form a multi-channel output. When coupled with Arduino controllers, Raspberry Pi, STM32, and similar controllers, it finds application in various automation control scenarios, including:

The following table presents the functional parameters of each DAC product for reference in the selection process.

DFR1073-GP8413(2-Channel 15-bit I2C to 0-5V/10V DAC Module)

FUNCTIONS

This is a 2-channel DAC module with I2C communication, a resolution of 15-bit, and 0.01% output voltage linearity error, capable of generating analog voltage outputs of 0-10V or 0-5V. The 0-10V or 0-5V voltage range is a standard driving method. It can be widely used in automation applications such as light adjustment, frequency converters, valve regulation, and pump control. This product can drive a variety of 0-10V or 0-5V controlled devices available in the market through Arduino programming.

The high precision and resolution of this module make it suitable for control scenarios that require higher signal accuracy, such as fine speed control or angle control.

The module features an onboard I2C address selection switch, allowing for the configuration of eight different I2C addresses. By cascading through I2C, it can be expanded to support 16 output channels.

FEATURES

DIMENSION

FUNCTIONAL DIAGRAM

Name Description Remarks
I2C Interface + Positive terminal of the power supply (3.3V-5V)
- Negative terminal of the power supply
C SCL
D SDA
I2C Address Selection Switch Address switching for I2C, refer to the demonstration code for address information
Voltage Signal Output Port VOUT0 Positive terminal of output voltage signal 0
VOUT1 Positive terminal of output voltage signal 1
GND Negative terminal of the output voltage signal

SPECIFICATIONS

TUTORIAL

In this example, we will demonstrate the generation of different voltage values on two channels.

Input signal value range: 0-32767

Channel 0: Input value of 21457, resulting in an output voltage of 6.548V

Channel 1: Input value of 3210, resulting in an output voltage of 0.979V.

SOFTWARE REQUIREMENTS

HARDWARE CONNECTION

SAMPLE CODE

#include <DFRobot_GP8XXX.h>
/**************************
----------------------------
| A0 |  A1 | A2 | i2c_addr |
----------------------------
| 0  |  0  | 0  |   0x58   |
----------------------------
| 1  |  0  | 0  |   0x59   |
----------------------------
| 0  |  1  | 0  |   0x5A   |
----------------------------
| 1  |  1  | 0  |   0x5B   |
----------------------------
| 0  |  0  | 1  |   0x5C   |
----------------------------
| 1  |  0  | 1  |   0x5D   |
----------------------------
| 0  |  1  | 1  |   0x5E   |
----------------------------
| 1  |  1  | 1  |   0x5F   |
----------------------------
***************************/
DFRobot_GP8413 GP8413(/*deviceAddr=*/0x58);

void setup() {

  Serial.begin(9600);

  while(GP8413.begin()!=0){
    Serial.println("Communication with the device has encountered a failure. Please verify the integrity of the connection or ensure that the device address is properly configured.");
    delay(1000);
  }

  /**
   * @brief. Setting the range of DAC output.
   * @param range. the range of DAC output.
   * @n     eOutputRange5V(0-5V)
   * @n     eOutputRange10V(0-10V)
   */
  GP8413.setDACOutRange(GP8413.eOutputRange10V);

  /**
   * @brief. Configuring different channel outputs for DAC values
   * @param data. Data values corresponding to voltage values
   * @n (0 - 32767).This module is a 15-bit precision DAC module, hence the values ranging from 0 to 32767 correspond to voltages of 0-5V or 0-10V respectively. The specific voltage range depends on the selection of the module's voltage fluctuation switch.
   * @param channel. Output channels
   * @n  0:channel 0
   * @n  1:channel 1
   * @n  2:All channels
   */
  GP8413.setDACOutVoltage(21457,0);//channel 0 output 6.548V
  GP8413.setDACOutVoltage(3210,1);//channel 1 output 0.979V

  delay(1000);

  //The set voltage is saved internally in the chip for power-off retention.
  //GP8413.store();
}

void loop() {

}

RESULT

After downloading the program, the actual output voltage of channel 0 was measured as 6.548V, while the output voltage of channel 1 was measured as 0.979V using a voltmeter.

More Documents

DFR1073 Documents:

DFR1073-Schematics.pdf

DFR1073_Dimensions.pdf

DFR1073_3D File.rar

DFR1073_2D_CAD File.rar

DFR1073_GP8413 Datasheet.pdf

FAQ

For any questions, advice or cool ideas to share, please visit the DFRobot Forum.