From bd677fcb52bb3296683d1ab29a9f23b6fed4c566 Mon Sep 17 00:00:00 2001 From: Daniel Eichhorn <dani.eichhorn@squix.ch> Date: Wed, 21 Mar 2018 11:38:20 +0100 Subject: [PATCH] Add setBrightness as convenience method --- OLEDDisplay.cpp | 18 ++++++++++++++++++ OLEDDisplay.h | 3 +++ README.md | 7 ++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/OLEDDisplay.cpp b/OLEDDisplay.cpp index 71c4189..2c0c72a 100644 --- a/OLEDDisplay.cpp +++ b/OLEDDisplay.cpp @@ -578,6 +578,24 @@ void OLEDDisplay::setContrast(uint8_t contrast, uint8_t precharge, uint8_t comde sendCommand(DISPLAYON); } +void OLEDDisplay::setBrightness(uint8_t brightness) { + uint8_t contrast = brightness; + if (brightness < 128) { + // Magic values to get a smooth/ step-free transition + contrast = brightness * 1.171; + } else { + contrast = brightness * 1.171 - 43; + } + + uint8_t precharge = 241; + if (brightness == 0) { + precharge = 0; + } + uint8_t comdetect = brightness / 8; + + setContrast(contrast, precharge, comdetect); +} + void OLEDDisplay::resetOrientation() { sendCommand(SEGREMAP); sendCommand(COMSCANINC); //Reset screen rotation or mirroring diff --git a/OLEDDisplay.h b/OLEDDisplay.h index 75f0ee1..ddf80bd 100644 --- a/OLEDDisplay.h +++ b/OLEDDisplay.h @@ -222,6 +222,9 @@ class OLEDDisplay : public Print { // normal brightness & contrast: contrast = 100 void setContrast(uint8_t contrast, uint8_t precharge = 241, uint8_t comdetect = 64); + // Convenience method to access + void setBrightness(uint8_t); + // Reset display rotation or mirroring void resetOrientation(); diff --git a/README.md b/README.md index 3809ddc..d7db5ef 100644 --- a/README.md +++ b/README.md @@ -141,7 +141,12 @@ void invertDisplay(void); void normalDisplay(void); // Set display contrast -void setContrast(uint8_t contrast); +// really low brightness & contrast: contrast = 10, precharge = 5, comdetect = 0 +// normal brightness & contrast: contrast = 100 +void setContrast(uint8_t contrast, uint8_t precharge = 241, uint8_t comdetect = 64); + +// Convenience method to access +void setBrightness(uint8_t); // Turn the display upside down void flipScreenVertically(); -- GitLab