Skip to content

10 Output Devices

Jakob Lerch

Measuring the LED Matrix' Maximum Power Consumption

For measuring the power, the Rigol multimeter was connected for current measurement and the multimeter was measuring voltage. The ESP32 was programmed to run all LEDs on full brightness. This yielded a current and a voltage value from which the power was calculated. \[ P = U \ I = 4.87\text{V} \cdot 132.7\text{mA} \approx 0.65\text{W}. \]

Niclas Starost

For the Power Consumption I measured the current of one WS2812B LED to calculate, how much Ampere would run on my board below. There I limited the current to 100mA and set the Voltage to 3.3V which I wanted to operate them with in my board below.

IMAGE_WS_current

There I measured:

0.02A @ 3.3V

for one LED with color white.

I wanted to build 12 of those LEDs in my board and I wanted to use 2 of the Super Capacitors to power the board, here the energy and time calculation:

2x Super Conductors
each:
    - 10F
    - 3.8V

12x WS2812B
each:
    - 0.02A
    - 3.3V

Q = C * V = 10F * 3.8V
=> 38C == 38 As

For 1 LED:

2 * 38 As / 0.02A = 3800s == ca. 63min (-> a small pomodoro cycle :D)

For 12 LEDs:

2 * 38As / (12 * 0.02A) = 317s == ca. 5min

Also note that this is with full Brightness and white color, meaning if I change to another color and decrease the brightness, I should get more time :].

Benedikt Feit

To determined the power consumption I decided to measure the power consumption of the small OLED displays that I used later. For that I wrote some code which toggle all pixels on, wait 10 seconds and deactivate all pixels for 10 seconds and repeat.

#include <Wire.h>               // include wire library need it for the Adafruit_GFX library
#include <Adafruit_GFX.h>       // include Adafruit_GFX library need it for the Adafruit_SSD1306 library
#include <Adafruit_SSD1306.h>   // include Adafruit_SSD1306 library tp control the OLED display

#define SCREEN_WIDTH 128        // set OLED display width
#define SCREEN_HEIGHT 64        // set OLED display height
#define OLED_RESET -1           // set the reset pin

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // initialize an Adafruit_SSD1306 object called display with the parameters from above  

void setup() {
  Serial.begin(115200);                               // initialize serial communication with a baudrate of 115200  

  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {   // checked if a display is available  
    Serial.println(F("SSD1306 allocation failed"));   // if no display is available send an error message to the serial monitor  
    for(;;);
  }

  display.clearDisplay();                             // clear the display --> set every pixel to black  
}

void loop() {
  display.fillScreen(SSD1306_WHITE);
  display.display();                                  // show data on the display with the parameters from above  
  delay(10000);
  display.clearDisplay();
  display.display(); 
  delay(10000);
}

I took measure the power consumption from the display I took five measurements.

  1. measure the power consumption from the XIAO ESP32C3 without any other modules connected while the display
  2. measure the power consumption from the XIAO ESP32C3 with the small display off
  3. measure the power consumption from the XIAO ESP32C3 with the small display on

After this I subtract measurement one from all other measurements too determine the power consumption of each display module in both states on and off. The power consumption itself will got measure with a usb power meter. The setup looks like that:

light controller

Measurement Voltage Current Power Consumption Power Consumption calculated
1 5,06 V 0,016 A 80,96 mW 80,96 mW
2 5,06 V 0,018 A 91,08 mW 10,12 mW
3 5,06 V 0,048 A 242,88 mW 161,92 mW