Buenas a todos!
Aunque esta pregunta se quedó en el aire en otro hilo, abro uno nuevo, ya que el tema se desvía un poco del original y no contaminamos los temas.
Estoy utilizando la librería Adafruit para pantallas oled ssd1306. Pero no he encontrado información de calidad sobre ella. Artículos, vídeos y ejemplos que a veces tanto ayudan como confunden.
Veo, por ejemplo, que en algunos se puede controlar el brillo en las pantallas con esa librería, pero a mi me da error.
¿Conoceis una fuente de calidad sobre esta librería?
Gracias
La fuente más confiable es la propia librería ya que su código está excelentemente comentado.
Por otro lado, esta librería no controla el brillo, tal vez haya alguna versión (no de Adafruit) que lo haga pero como no dices donde lo has visto es difícil saberlo, lo cierto es que ésta definitivamente no lo hace.
Gracias por vuestras respuestas. En el repositorio de Github, esperaba encontrar algo semejante a un manual o lista explicada de funciones. Pero son más bien parcos:
Si cada uno pagara 1 USD por el uso de la librería habría muchos mas desarrolladores creándolas.
Creo que eres muy injusto con el trabajo desinteresado.
No esperes explicaciones de 5 hojas para lo que buscas, se supone que de este lado hay un ingeniero electrónico o en sistemas que tiene la habilidad técnica para hacer lo que necesita.
Si no puede porque el dispositivo no lo hace, siempre hay otros medios.
Respondiendo y sumando a tu búsqueda:
Yo busqué 3 segundos y encontré esto pero claro no lo busco en español, y ojo no me jacto de nada, solo que como siempre digo, si buscas en español no esperes encontrar todas las respuestas.
Google : SSD1306 brightness control The SSD1306 embeds with contrast control, display RAM and oscillator, which reduces the number of external components and power consumption. It has 256-step brightness control. SSD1306 Controllers - - GCBASIC documentation.
Creo que lo anterior no sirve para nada.
Y si la respuesta no esta ahi, al menos es la llave para seguir buscando o para modificar la librería para lograr lo que esperas.
Segun este desarrollador hay un control de brillo en su librería Comentado acá GitHub
No se trata de ser injusto, pero si voy a donde está la "madre" de un programa, en este caso una librería que implementa una serie de funciones, y ni siquiera están listadas, creo que tengo derecho a expresarlo. Y soy de los que entiende la faena que dan, y que creo que debería de estar remunerado.
Lo primero que se aprende, o te intentan enseñar en este mundillo, es que hay que documentar lo que haces. Porque de lo contrario, en un tiempo, ni uno mismo se acuerda de lo que hacían los programas, o te toca volverte loco para entenderlo. Bastante me ha tocado bregar en esta vida (y sigo!) por esa falta de documentación.
No tengo que justificarme listando todas las direcciones web en las que he buscado, pero buscar, he buscado. Y efectivamente, hay otras librerías que dicen que si permiten el control del brillo, pero estaba intentando ver si podía con la de adafruit, que es la que he empleado ahora.
Bueno, no quiero dar doctrina a nadie. Cada cual sabrá lo que hace y porqué.
¡Y dale!
Está excelentemente documentado el código, solo hay que tomarse el trabajo de leerlo
Por ejemplo begin()
// ALLOCATE & INIT DISPLAY -------------------------------------------------
/*!
@brief Allocate RAM for image buffer, initialize peripherals and pins.
@param vcs
VCC selection. Pass SSD1306_SWITCHCAPVCC to generate the display
voltage (step up) from the 3.3V source, or SSD1306_EXTERNALVCC
otherwise. Most situations with Adafruit SSD1306 breakouts will
want SSD1306_SWITCHCAPVCC.
@param addr
I2C address of corresponding SSD1306 display (or pass 0 to use
default of 0x3C for 128x32 display, 0x3D for all others).
SPI displays (hardware or software) do not use addresses, but
this argument is still required (pass 0 or any value really,
it will simply be ignored). Default if unspecified is 0.
@param reset
If true, and if the reset pin passed to the constructor is
valid, a hard reset will be performed before initializing the
display. If using multiple SSD1306 displays on the same bus, and
if they all share the same reset pin, you should only pass true
on the first display being initialized, false on all others,
else the already-initialized displays would be reset. Default if
unspecified is true.
@param periphBegin
If true, and if a hardware peripheral is being used (I2C or SPI,
but not software SPI), call that peripheral's begin() function,
else (false) it has already been done in one's sketch code.
Cases where false might be used include multiple displays or
other devices sharing a common bus, or situations on some
platforms where a nonstandard begin() function is available
(e.g. a TwoWire interface on non-default pins, as can be done
on the ESP8266 and perhaps others).
@return true on successful allocation/init, false otherwise.
Well-behaved code should check the return value before
proceeding.
@note MUST call this function before any drawing or updates!
*/
bool Adafruit_SSD1306::begin(uint8_t vcs, uint8_t addr, bool reset,
bool periphBegin) {
¿Te parece que no está documentando?
Y como begin() lo está todo el código, te lo dije en #6.