GY-471 MAX471 Current Sensor Module โ€“ 3A DC 0โ€“30V Bidirectional Current Measurement for Arduino & Microcontrollers

  • โšก GY-471 current sensor module based on MAX471
  • ๐Ÿ” Measures DC current up to 3A (bidirectional sensing)
  • ๐Ÿ”‹ Supports load voltage range: 0โ€“30V
  • ๐Ÿ“ˆ Analog output for easy reading with Arduino/MCU ADC
  • ๐Ÿงฉ Ideal for battery monitoring, power profiling, and motor current
  • ๐Ÿ›ก๏ธ Low insertion lossโ€”minimal impact on the load
  • ๐Ÿ› ๏ธ Simple wiring: VIN+, VIN-, VCC, GND, OUT
  • โœ… Great for power management and protection projects

Apple Shopping Event

Hurry and get discounts on all Apple devices up to 20%

165,00 EGP

12 People watching this product now!

Payment Methods:

Description

The GY-471 MAX471 3A Current Sensor Module is a compact and efficient solution for monitoring DC current and voltage in your projects.
Built around the MAX471 IC, this module provides bidirectional current sensing (both positive and negative currents) and outputs analog signals proportional to current and voltage.

It’s ideal for applications like battery monitoring, solar systems, motor control, and power management. The onboard shunt resistor ensures precise current measurement without the need for external components.

Simply connect it to your Arduino, ESP32, STM32, or Raspberry Pi ADC pin, and start reading real-time current and voltage data effortlessly.


โš™๏ธ Features

  • โšก Measures DC current up to 3A and voltage up to 30V

  • ๐Ÿ” Bidirectional current sensing capability

  • ๐Ÿ“ Built-in precision shunt resistor for accurate measurement

  • ๐Ÿ’ก Analog output for easy integration with ADCs

  • ๐Ÿ”Œ Compatible with 3.3V and 5V logic systems

  • ๐Ÿงฉ Compact, ready-to-use module design

  • ๐Ÿง  Ideal for battery management, solar charging, motor drivers, and power analyzers


๐Ÿ“Š Specifications

Parameter Description
Module Name GY-471 MAX471 Current Sensor
IC Model MAX471
Current Measurement Range 0 – 3A DC
Voltage Measurement Range 0 – 30V DC
Output Type Analog Voltage Output
Input Voltage 3V – 5V
Interface Type Analog
Accuracy ±1% (typical)
Operating Temperature -40°C to +85°C
Dimensions Approx. 27mm × 15mm × 5mm
๐Ÿ”Œ
Pin Connections
1 Table
Pin Connections Table 1
BoardSensor PinConnection
MAX471VCC/GND/VOUT/IOUT3.3-5V / GND / board analog pin / board analog pin
๐Ÿ“Ÿ
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers
7 Examples โ€ข C/C++ | Boards: Arduino Uno, Arduino Nano, Arduino Mega, ESP32, ESP8266, STM32, Raspberry Pi Pico
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers - Arduino Uno
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers - Arduino Nano
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers - Arduino Mega
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers - ESP32
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers - ESP8266
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers - STM32
GY-471 MAX471 Current Sensor Module - 3A DC 0-30V Bidirectional Current Measurement for Arduino & Microcontrollers - Raspberry Pi Pico
๐Ÿ“„ File: gy-471_max471_current_sensor_module_-_3a_dc_0-30v_bidirectional_current_measurement_for_arduino_&_microcontrollers_-_arduino_uno.inoArduino Uno
712 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Voltage-out pin A0, Current-out pin A1 on Arduino Uno
6#define V_PIN A0
7#define I_PIN A1
8
9void setup() {
10 Serial.begin(115200);
11}
12
13void loop() {
14 float vOut = analogRead(V_PIN) * 5.0 / 1023.0;
15 float iOut = analogRead(I_PIN) * 5.0 / 1023.0;
16
17 float busVoltage = vOut * 25.0 / 5.0; // module divides input voltage by 25 (per MAX471 breakout reference design)
18 float current = iOut; // module outputs ~1V per 1A (check your module's own scale factor)
19
20 Serial.print("Voltage: "); Serial.print(busVoltage); Serial.print(" V ");
21 Serial.print("Current: "); Serial.print(current); Serial.println(" A");
22
23 delay(500);
24}
๐Ÿ“„ File: gy-471_max471_current_sensor_module_-_3a_dc_0-30v_bidirectional_current_measurement_for_arduino_&_microcontrollers_-_arduino_nano.inoArduino Nano
713 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Voltage-out pin A0, Current-out pin A1 on Arduino Nano
6#define V_PIN A0
7#define I_PIN A1
8
9void setup() {
10 Serial.begin(115200);
11}
12
13void loop() {
14 float vOut = analogRead(V_PIN) * 5.0 / 1023.0;
15 float iOut = analogRead(I_PIN) * 5.0 / 1023.0;
16
17 float busVoltage = vOut * 25.0 / 5.0; // module divides input voltage by 25 (per MAX471 breakout reference design)
18 float current = iOut; // module outputs ~1V per 1A (check your module's own scale factor)
19
20 Serial.print("Voltage: "); Serial.print(busVoltage); Serial.print(" V ");
21 Serial.print("Current: "); Serial.print(current); Serial.println(" A");
22
23 delay(500);
24}
๐Ÿ“„ File: gy-471_max471_current_sensor_module_-_3a_dc_0-30v_bidirectional_current_measurement_for_arduino_&_microcontrollers_-_arduino_mega.inoArduino Mega
713 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Voltage-out pin A0, Current-out pin A1 on Arduino Mega
6#define V_PIN A0
7#define I_PIN A1
8
9void setup() {
10 Serial.begin(115200);
11}
12
13void loop() {
14 float vOut = analogRead(V_PIN) * 5.0 / 1023.0;
15 float iOut = analogRead(I_PIN) * 5.0 / 1023.0;
16
17 float busVoltage = vOut * 25.0 / 5.0; // module divides input voltage by 25 (per MAX471 breakout reference design)
18 float current = iOut; // module outputs ~1V per 1A (check your module's own scale factor)
19
20 Serial.print("Voltage: "); Serial.print(busVoltage); Serial.print(" V ");
21 Serial.print("Current: "); Serial.print(current); Serial.println(" A");
22
23 delay(500);
24}
๐Ÿ“„ File: gy-471_max471_current_sensor_module_-_3a_dc_0-30v_bidirectional_current_measurement_for_arduino_&_microcontrollers_-_esp32.inoESP32
706 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Voltage-out pin 34, Current-out pin 35 on ESP32
6#define V_PIN 34
7#define I_PIN 35
8
9void setup() {
10 Serial.begin(115200);
11}
12
13void loop() {
14 float vOut = analogRead(V_PIN) * 3.3 / 4095.0;
15 float iOut = analogRead(I_PIN) * 3.3 / 4095.0;
16
17 float busVoltage = vOut * 25.0 / 3.3; // module divides input voltage by 25 (per MAX471 breakout reference design)
18 float current = iOut; // module outputs ~1V per 1A (check your module's own scale factor)
19
20 Serial.print("Voltage: "); Serial.print(busVoltage); Serial.print(" V ");
21 Serial.print("Current: "); Serial.print(current); Serial.println(" A");
22
23 delay(500);
24}
๐Ÿ“„ File: gy-471_max471_current_sensor_module_-_3a_dc_0-30v_bidirectional_current_measurement_for_arduino_&_microcontrollers_-_esp8266.inoESP8266
887 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Voltage-out pin A0, Current-out pin A0 on ESP8266
6// NOTE: ESP8266 only has ONE analog pin (A0) - you can only read voltage OR current at a time, not both simultaneously as shown here; read them on alternate loop passes instead.
7#define V_PIN A0
8#define I_PIN A0
9
10void setup() {
11 Serial.begin(115200);
12}
13
14void loop() {
15 float vOut = analogRead(V_PIN) * 3.3 / 1023.0;
16 float iOut = analogRead(I_PIN) * 3.3 / 1023.0;
17
18 float busVoltage = vOut * 25.0 / 3.3; // module divides input voltage by 25 (per MAX471 breakout reference design)
19 float current = iOut; // module outputs ~1V per 1A (check your module's own scale factor)
20
21 Serial.print("Voltage: "); Serial.print(busVoltage); Serial.print(" V ");
22 Serial.print("Current: "); Serial.print(current); Serial.println(" A");
23
24 delay(500);
25}
๐Ÿ“„ File: gy-471_max471_current_sensor_module_-_3a_dc_0-30v_bidirectional_current_measurement_for_arduino_&_microcontrollers_-_stm32.inoSTM32
710 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Voltage-out pin PA0, Current-out pin PA1 on STM32
6#define V_PIN PA0
7#define I_PIN PA1
8
9void setup() {
10 Serial.begin(115200);
11}
12
13void loop() {
14 float vOut = analogRead(V_PIN) * 3.3 / 4095.0;
15 float iOut = analogRead(I_PIN) * 3.3 / 4095.0;
16
17 float busVoltage = vOut * 25.0 / 3.3; // module divides input voltage by 25 (per MAX471 breakout reference design)
18 float current = iOut; // module outputs ~1V per 1A (check your module's own scale factor)
19
20 Serial.print("Voltage: "); Serial.print(busVoltage); Serial.print(" V ");
21 Serial.print("Current: "); Serial.print(current); Serial.println(" A");
22
23 delay(500);
24}
๐Ÿ“„ File: gy-471_max471_current_sensor_module_-_3a_dc_0-30v_bidirectional_current_measurement_for_arduino_&_microcontrollers_-_raspberry_pi_pico.inoRaspberry Pi Pico
718 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Voltage-out pin 26, Current-out pin 27 on Raspberry Pi Pico
6#define V_PIN 26
7#define I_PIN 27
8
9void setup() {
10 Serial.begin(115200);
11}
12
13void loop() {
14 float vOut = analogRead(V_PIN) * 3.3 / 4095.0;
15 float iOut = analogRead(I_PIN) * 3.3 / 4095.0;
16
17 float busVoltage = vOut * 25.0 / 3.3; // module divides input voltage by 25 (per MAX471 breakout reference design)
18 float current = iOut; // module outputs ~1V per 1A (check your module's own scale factor)
19
20 Serial.print("Voltage: "); Serial.print(busVoltage); Serial.print(" V ");
21 Serial.print("Current: "); Serial.print(current); Serial.println(" A");
22
23 delay(500);
24}
Analog current+voltage sensor (two separate analog outputs).

Specification

Specification

WeightWeight6 g
Dimensions3 × 2 × 1 cm
Sensor ChipMAX471
Measurement Range0โ€“3A
Voltage RangeDC 0โ€“30V
InterfaceAnalog output (compatible with Arduino)
Operating Voltage5V
MaterialPCB with electronic components
UsageCurrent sensing, battery monitoring, electronics projects

Customer Reviews