The RAK16000 WisBlock DC Current Module is a compact and versatile module designed to measure direct current (DC) in a wide range of applications. It provides accurate current readings, making it ideal for monitoring and control in electronic circuits. This module is part of the WisBlock ecosystem, which allows for seamless integration with other WisBlock modules and baseboards.
The RAK16000 module is built to deliver precise current measurements while maintaining ease of use. Below are its key technical details:
Parameter | Specification |
---|---|
Input Voltage Range | 3.3V to 5V (via WisBlock Baseboard) |
Current Measurement Range | ±5A |
Measurement Resolution | 12-bit ADC |
Communication Interface | I2C |
Operating Temperature | -40°C to +85°C |
Dimensions | 25mm x 25mm |
The RAK16000 module connects to the WisBlock Baseboard via the standard WisBlock interface. Below is the pin configuration:
Pin Name | Description | Notes |
---|---|---|
VCC | Power Supply (3.3V/5V) | Provided by the WisBlock Baseboard |
GND | Ground | Common ground |
SDA | I2C Data Line | Connects to the I2C bus |
SCL | I2C Clock Line | Connects to the I2C bus |
IN+ | Positive Current Input | Connect to the positive side of the load |
IN- | Negative Current Input | Connect to the negative side of the load |
The RAK16000 module is easy to integrate into your project. Follow the steps below to use it effectively:
IN+
pin and the negative side to the IN-
pin.SDA
and SCL
pins to the I2C bus of your microcontroller or WisBlock Core module.0x40
. Verify that no other devices on the I2C bus share the same address.The RAK16000 can be interfaced with an Arduino UNO using the I2C protocol. Below is an example code snippet:
#include <Wire.h>
// Define the I2C address of the RAK16000 module
#define RAK16000_I2C_ADDRESS 0x40
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
// Initialize the I2C communication
Wire.begin();
Serial.println("RAK16000 DC Current Module Initialized");
}
void loop() {
// Request 2 bytes of data from the RAK16000 module
Wire.beginTransmission(RAK16000_I2C_ADDRESS);
Wire.write(0x00); // Command to read current data
Wire.endTransmission();
Wire.requestFrom(RAK16000_I2C_ADDRESS, 2);
if (Wire.available() == 2) {
// Read the two bytes of current data
uint8_t msb = Wire.read();
uint8_t lsb = Wire.read();
// Combine the bytes into a 16-bit value
int16_t currentRaw = (msb << 8) | lsb;
// Convert the raw value to current in amperes
float current = currentRaw * 0.001; // Assuming 1mA resolution
// Print the current value
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
}
delay(1000); // Wait for 1 second before the next reading
}
No Data from the Module:
SDA
and SCL
.Inaccurate Current Readings:
Module Overheating:
I2C Communication Errors:
Q1: Can the RAK16000 measure AC current?
A1: No, the RAK16000 is designed specifically for DC current measurement.
Q2: What is the resolution of the current measurement?
A2: The module provides a 12-bit resolution, allowing for precise current readings.
Q3: Can I use the RAK16000 with a 5V microcontroller?
A3: Yes, the module supports both 3.3V and 5V logic levels.
Q4: How do I change the I2C address of the module?
A4: The I2C address is fixed at 0x40
and cannot be changed.
By following this documentation, you can effectively integrate the RAK16000 WisBlock DC Current Module into your projects for accurate and reliable current measurements.