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.
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.
- measure the power consumption from the XIAO ESP32C3 without any other modules connected while the display
- measure the power consumption from the XIAO ESP32C3 with the small display off
- 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:
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 |