Display Oled SPI Fuentes y simbolos - pensactius/Tutoriales GitHub Wiki
La librería u8g2 dispone de una cantidad ingente de fuentes (tipo de letra) a elegir. En el siguiente enlace encontraremos todas las fuentes agrupadas según diferentes criterios. Cada grupo viene con una imagen de muestra con los diferentes tipos de letra correspondientes al grupo. Veamos como funciona con un ejemplo:
Vamos a ver los detalles de la fuente que usamos en el ejemplo Hello World. Recordemos que establecíamos la fuente así:
u8g2.setFont(u8g2_font_ncenB10_tr);
Esto significa que hemos usado la fuente NCENB10. Esta fuente está en el grupo de fuentes Adobe X11. Si clicamos en este grupo veremos que nos aparece todo un listado de las fuentes de ese grupo. Un poco más abajo, veremos una descripción exhaustiva de cada fuente con una previsualización de todos los símbolos que la forman. En concreto, para la fuente NCENB10:
En verde oscuro podemos ver el nombre general de la fuente: ncenB10. En rojo podemos ver la variante de la fuente. En concreto la fuente usada en el ejemplo es u8g2_font_ncenB10_tr
. Por último, en verde clarito podemos ver el ancho (width) y alto (height) de la fuente. En nuestro caso la fuente elegida tiene un tamaño de 16x15 (ancho x alto). ¿De qué nos sirve el ancho y alto? Pues para saber exactamente en qué punto escribir nuestros textos. Vamos a verlo con un ejemplo:
#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI oled(U8G2_R0, 10, 9, 8);
void setup() {
oled.begin();
}
void loop() {
oled.firstPage();
do {
oled.setFont (u8g2_font_courB10_tr);
oled.drawStr (4,14, "PensActius");
oled.setFont (u8g2_font_oldwizard_tu);
oled.drawStr (3,14+15, "HARRY POTTER");
oled.setFont (u8g2_font_iconquadpix_m_all);
oled.drawStr (3,14+15+12+4, "B");
oled.setFont (u8g2_font_courB10_tr);
oled.drawStr (3+16, 14+15+12+4, "Guardar");
} while (oled.nextPage());
}
Y el resultado es el siguiente: