readAll Example – eS2 Pro

< All Topics

This example sketch reads all of the information available from the energyShield 2 Pro and prints it serially.

For more information or to download the Arduino Library check out the eS2 Pro Arduino Library Reference.

// Cached readAll example 04/03/2018
/**********************************************************
  ReadAll - energyShield2 by NightShade Electronics V1.0

  This sketch reads voltage, current, fullChargeCapacity,
  remaingingCapacity, SOC, inputVoltage, temperature,
  Time, and Date from an energyShield2 by
  NightShade Electronics.

  Created by Aaron D. Liebold
  on January 30, 2017

  Distributed under the MIT license
  Copyright 2017 NightShade Electronics
  https://opensource.org/licenses/MIT
**********************************************************/

// Include energyShield2 library files
#include <NS_eS2_Utilities.h>
#include <NS_energyShield2.h>

// Create NS_energyShield2 class object called "es2"
NS_energyShield2 es2;

// Define variables
uint16_t FullCapacity, RemainingCapacity, StateOfCharge;
float BatteryVoltage, BatteryCurrent, InputVoltage, Temperature;

void setup() {
  // Initialize Serial
  Serial.begin(9600);
  while (!Serial); // Wait for Leonardo

  // Initialize energyShield and print error if es2.begin does not return 0
  if (es2.begin()) {
    Serial.println("! ERROR - Initialization Failed !");
    while (1);
  }
  
  if (es2.readVMPP() != -1) es2.setVMPP(-1, 1); // Disable VMPP regulation to allow charging from any power supply (7V - 23V) and prevent excessive EEPROM writes

  // Print header
  Serial.println("Voltage, V\tCurrent, A\tFull Capacity, mAh\tRemaining Capacity, mAh\tState of Charge, %\tInput Voltage, V\tTemperature, C\tTime, HH:MM:SS\tDate, DD/MM/YY");
}

void loop() {

  // Read values from energyShield2
  BatteryVoltage = (float) es2.batteryVoltage() / 1000;
  BatteryCurrent = (float) es2.batteryCurrent() / 1000;
  FullCapacity = es2.fullChargeCapacity();
  RemainingCapacity = es2.remainingCapacity();
  StateOfCharge = es2.SOC();
  InputVoltage = (float) es2.inputVoltage() / 1000;
  Temperature = (float) es2.temperature() / 10;

  // Print Results
  Serial.print(BatteryVoltage, 3);
  Serial.print("V    \t");
  Serial.print(BatteryCurrent, 3);
  Serial.print("A   \t");
  Serial.print(FullCapacity);
  Serial.print("mAh             \t");
  Serial.print(RemainingCapacity);
  Serial.print("mAh              \t");
  Serial.print(StateOfCharge);
  Serial.print("%              \t");
  Serial.print(InputVoltage, 2);
  Serial.print("V            \t");
  Serial.print(Temperature, 1);
  Serial.print("C       \t");

  // Read time and date from energyShield and store locally
  // Local values will not update until readClock is called again
  es2.readClock();

  // Print time and date from locally stored values
  Serial.print(es2.hour());
  Serial.print(":");
  if (es2.minute() < 10) Serial.print("0");
  Serial.print(es2.minute());
  Serial.print(":");
  if (es2.second() < 10) Serial.print("0");
  Serial.print(es2.second());
  Serial.print("     \t");
  Serial.print(es2.month());
  Serial.print("/");
  Serial.print(es2.dayOfMonth());
  Serial.print("/");
  Serial.print(es2.year());

  // Print carriage return to start new line
  Serial.println();

  // Wait between reads
  delay(2000);

}
 
Previous sleepBlink Example – eS2 Pro
Table of Contents