Internet de les coses amb ESP32 i ESP8266

Exemples Referència Plaques   Recursos CITCEA
Projectes Programació Perifèrics   Inici
  Enrere

Dibuixar directament a la pantalla bicolor Midas

La biblioteca SSD1306 permet dibuixar directament a la pantalla i disposa de diverses funcions per fer-ho. No obstant, sempre que sigui possible, es recomana fer servir un canvas perquè dibuixant directament a la pantalla els dibuixos es poden interferir entre ells si hi intervenen píxels del mateix grup. L'ús de canvas, a més, permet anar preparant el dibuix i mostrar-lo quan es consideri oportú.

El programa següent dibuixa tres rectangles però es pot observar com en dibuixar el segon es veu modificat un tros del primer i en afegir el tercer es modifica la visualització del segon. De manera semblant, es mostren primer tres píxels de costat; després s'afegeix un píxel sota el primer i s'esborra el que ja hi havia perquè estan en el mateix bloc vertical de vuit. Una alternativa, més complexa de gestionar, és escriure de cop els vuit píxels d'un grup, com es fa a la línia següent. Al final del programa es dibuixen tres línies: una horitzontal, una vertical i una diagonal. Fixem-nos que en dibuixar la diagonal es veu afectat el dibuix de la horitzontal, per això és preferible fer servir un canvas per dibuixar.

Per acabar, s'esborra una zona quadrada de la pantalla.

#include "ssd1306.h"
void setup(){
  ssd1306_128x64_i2c_init();
  ssd1306_fillScreen(0);
  ssd1306_setFixedFont(ssd1306xled_font6x8);
}
void loop(){
  ssd1306_printFixed(0, 0, "Rectangles", STYLE_NORMAL);
  ssd1306_drawRect(16, 16, 40, 40);
  delay(500);
  ssd1306_drawRect(24, 24, 48, 48);
  delay(500);
  ssd1306_fillRect(26, 26, 32, 32);
  delay(500);
  ssd1306_putPixel(96, 16);
  ssd1306_putPixel(97, 16);
  ssd1306_putPixel(98, 16);
  delay(500);
  ssd1306_putPixel(96, 17);
  delay(500);
  ssd1306_putPixels(100, 16, 0b00000011);
  delay(500);
  ssd1306_drawHLine(10, 60, 110);
  ssd1306_drawVLine(20, 52, 62);
  delay(500);
  ssd1306_drawLine(10, 52, 110, 62);
  delay(1000);
  ssd1306_clearBlock(24, 5, 16, 16);
  delay(3000);
  ssd1306_clearScreen();  
}

Llista de les funcions

Funció Ús Paràmetres Comentaris
ssd1306_putPixel Dibuixa un píxel Posició x
Posició y
S'esborraran els altres píxels que hi hagi al
mateix bloc vertical de vuit
ssd1306_putPixels Dibuixa un grup vertical
de vuit píxels
Posició x
Posició y
Patró (8 bits) [0 a 255]
El patró correspon a 8 píxels verticals, on el bit
menys significatiu és el píxel superior.
ssd1306_drawHLine Dibuixa una línia horitzontal Posició x inicial
Posició y inicial
Posició x final
ssd1306_drawVLine Dibuixa una línia vertical Posició x inicial
Posició y inicial
Posició y final
ssd1306_drawLine Dibuixa una línia Posició x inicial
Posició y inicial
Posició x final
Posició y final
ssd1306_drawRect Crea un rectangle buit Posició x inicial
Posició y inicial
Posició x final
Posició y final
ssd1306_fillRect Crea un rectangle ple Posició x inicial
Posició y inicial
Posició x final
Posició y final
clearBlock Esborra una zona rectangular de la pantalla Posició x
Posició y en múltiples de 8
Amplada
Alçada
Posa tots els píxels negres

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.