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:
Motor speed control
Sound intensity control
Temperature regulation
Adjustment of light brightness
Valve angle modulation
etc.
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:
Laboratory testing equipment
Automatic motor speed control
Indoor and outdoor lighting control
Automated volume adjustment
Backlight control for displays
etc.
The following table presents the functional parameters of each DAC product for reference in the selection process.
DFR1034-GP8503 (2-Channel 12bit I2C to 0-2.5V/VCC DAC Module)
FUNCTIONS
This is a 2-channel analog voltage output DAC module with I2C communication, 12-bit resolution, and 0.1% output voltage linearity error. It is well-suited for control projects operating within the 3.3V range, such as ESP32, Raspberry Pi, STM32, and other microcontrollers that require analog signal output.
FEATURES
- Support 3.3V-5V power supply.
- Output voltage linearity error of 0.1%.
- Two channels of voltage output, either 0-2.5V or 0-VCC, enabling connection and control of standard analog voltage devices.
- Gravity interface, I2C communication, Arduino control, suitable for program automation control.
DIMENSION
FUNCTIONAL DIAGRAM
Name | Description | Remarks |
---|---|---|
12C Interface | + | Positive terminal of the power supply (3.3V-5V) |
- | Negative terminal of the power supply | |
C | SCL | |
D | SDA | |
0-2.5V/0-VCC SwitchingSwitch | 0-VCC | Switch output voltage to 0V-VCC(Supply voltage) |
0-2.5V | Switch output voltage to 0V-2.5V | |
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
- Chip Type: GP8503
- Operating Voltage: 3.3V-5V
- Output Voltage: 0-2.5V or 0-VCC
- Number of Channels: 2 channels
- Communication Method: I2C
- Resolution: 12-bit
- Value Range: 0 - 4095 corresponding to 0-2.5V or 0-VCC
- Output voltage linearity error: 0.1%
TUTORIAL
In this example, we will demonstrate the output of different voltage values in two states.
Input signal value range:0-4095
In the state of 0-2.5V:
- Channel 0 inputs 2654, resulting in an output of 1.62V.
- Channel 1 inputs 1095, resulting in an output of 0.668V.
In the state of 0-VCC:
- Channel 0 inputs 2654, resulting in an output of 3.23V.
- Channel 1 inputs 1095, resulting in an output of 1.334V.
SOFTWARE REQUIREMENTS
Download Arduino IDE: Click to download Arduino IDE
Download Arduino libraries: Click to download https://github.com/DFRobot/DFRobot_GP8XXX
Click the link to view:How to install the library?;
Note: All modules in this series utilize the same library.
HARDWARE CONNECTION
SAMPLE CODE
#include <DFRobot_GP8XXX.h>
DFRobot_GP8503 GP8503;
void setup() {
Serial.begin(9600);
while(GP8503.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. Configuring different channel outputs for DAC values
* @param data. Data values corresponding to voltage values
* @n (0 - 4095).This module is a 12-bit precision DAC module, hence the values ranging from 0 to 4095 correspond to voltages of 0-2.5V or 0-VCC respectively. The specific voltage range depends on the selection of the module's voltage fluctuation switch.
* @param channel Output Channel
* @n 0:Channel 0
* @n 1:Channel 1
* @n 2:AII channels
*/
GP8503.setDACOutVoltage(2654,0);//At 0-2.5V voltage range, Channel 0 outputs 1.62V, whereas at 0-VCC voltage range, Channel 0 outputs 3.23V.
GP8503.setDACOutVoltage(1095,1);//At 0-2.5V voltage range, Channel 1 outputs 0.668V, whereas at 0-VCC voltage range, Channel 1 outputs 1.334V.
delay(1000);
//The set voltage is saved internally in the chip for power-off retention.
//GP8503.store();
}
void loop() {
}
RESULT
After downloading the program, the measured output voltage of channel 0 under the 0-2.5V state is 1.62V, and the output voltage of channel 1 is 0.668V. Under the 0-VCC state, the actual output voltage of channel 0 is 3.23V, and the output voltage of channel 1 is 1.334V.
More Documents
DFR1034 Documents:
FAQ
For any questions, advice or cool ideas to share, please visit the DFRobot Forum.