Ecran oled I2c et bibliothèque u8x8

Bonjour

Pour Lesept, peux-tu me redonner le code pour la transparence du texte, histoire de gratter des octets ?
Merci

Je veux afficher la température de 2 sondes Ds18B20 sur un oled I2c 128x64.
Mais cela prend ENORMEMENT de place et je ne peux pas mettre le code pour mon projet de bateau

Sur les bons conseils combinés de fdufnews et Lesept , j'ai pris cette librairieu8x8 bcp plus légère

J'essaie pour l'instant d'afficher sur l'écran Hello word avant d'afficher des infos venant des sondes

Ici on a le choix de l'écran

le choix est celui-ci

U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, clock, data]])

Mais je ne sais quoi mettre a reset, clock data et… tout simplement si c'est le bon choix
bien qu'il semble que cela soit bon ( voir l'image)

J'ai fais ça

U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, clock/* pin SCL ?*/, data/pin SDA?/]])
et donc
U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, A5, A4]])
Mais cela plante ( normal vous me direz :smiley: )

![' token

D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino: In function 'void setup()':

8x8_test:8: error: 'u8x8' was not declared in this scope

u8x8.begin();

^

In file included from D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/U8x8lib.h:45:0,

from D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino:2:

8x8_test:9: error: expected primary-expression before '*' token

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:45: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected primary-expression before 'adr'

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:67: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected ')' before 'adr'

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:67: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected ')' before ';' token

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino: In function 'void loop()':

8x8_test:13: error: 'u8x8' was not declared in this scope

u8x8.setFont(u8x8_font_chroma48medium8_r);

^

exit status 1
expected unqualified-id before '[' token

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.


![ScreenShot018.jpg|899x346](upload://8X5qZ4I1T5DdQBokmTnbPO3Nvsz.jpeg)

choix de l'écran
https://github.com/olikraus/u8g2/wiki/u8x8setupcpp#ssd1305-128x64_adafruit

Voici mon code

#include <Arduino.h>
#include <U8x8lib.h>

//U8X8_SSD1306_128X64_4W_SW_SPI u8x8(/* clock=/ 13, / data=/ 11, / cs=/ 10, / dc=/ 9, / reset=*/ 8);
//U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, clock, data]]);
U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, A5, A4]])
void setup(void) {
 u8x8.begin();
 u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);
}

void loop(void) {
 u8x8.setFont(u8x8_font_chroma48medium8_r);
 u8x8.drawString(0,0,"Hello World!");
 delay(1000);
}


et le retour des erreurs

Arduino : 1.8.5 (Windows 10), Carte : "Arduino/Genuino Uno"

8x8_test:6: error: expected unqualified-id before '[' token

U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, A5, A4]])

^

8x8_test:6: error: expected ')' before '

J'ai cherché sur le net et j'ai trouvé ceci ici
Lien YouTube

Lien code
http://jume-maker.blogspot.com/2018/03/oled-i2c-display-u8glib-library-arduino.html

Pour brancher l'écran oled i2c 128x64
VCC / 5v
GND / GND
SLA / A4
SCL / A5

Mon code pour oled i2c 128x64

/*

  HelloWorld.ino
  
  "Hello World" version for U8x8 API

  Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/)

  Copyright (c) 2016, olikraus@gmail.com
  All rights reserved.

  Redistribution and use in source and binary forms, with or without modification, 
  are permitted provided that the following conditions are met:

  * Redistributions of source code must retain the above copyright notice, this list 
    of conditions and the following disclaimer.
    
  * Redistributions in binary form must reproduce the above copyright notice, this 
    list of conditions and the following disclaimer in the documentation and/or other 
    materials provided with the distribution.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  

*/

#include <Arduino.h>
#include <U8x8lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif

// Please UNCOMMENT one of the contructor lines below
// U8x8 Contructor List 
// The complete list is available here: https://github.com/olikraus/u8g2/wiki/u8x8setupcpp
// Please update the pin numbers according to your setup. Use U8X8_PIN_NONE if the reset pin is not connected


U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/* clock=*/ A5, /* data=*/ A4, /* reset=*/ U8X8_PIN_NONE);   // OLEDs without Reset of the Display
//U8X8_SH1107_128X128_HW_I2C u8x8(/* reset=*/ 8);




void setup(void)
{
  /* U8g2 Project: SSD1306 Test Board */
  pinMode(A4, OUTPUT);
  digitalWrite(A4, 0);
  
  u8x8.begin();
  u8x8.setPowerSave(0);
  
  
}

void loop(void)
{
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.drawString(0,0,"u8x8 TRES leger");
  delay(2000);
}

Code (complet avec tous les écrans) en pièce jointe, il est lourd car tous les écrans possible sont listés

Prochaine étape, afficher le résultat de mes sondes :slight_smile:

Ecran_u8x8_TOUS_ECRANS.ino (15.5 KB)

Je crois que je suis noir !!

Compilation du code du bateau

Le croquis utilise 16558 octets (51%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 1801 octets (87%) de mémoire dynamique, ce qui laisse 247 octets pour les variables locales. Le maximum est de 2048 octets.
La mémoire disponible faible, des problèmes de stabilité pourraient survenir.

du code avec u8x8

Le croquis utilise 5720 octets (17%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 387 octets (18%) de mémoire dynamique, ce qui laisse 1661 octets pour les variables locales. Le maximum est de 2048 octets.

68% de l'espace de stockage de programmes
87 + 18 = 106% de mémoire dynamique.
Ca ne passera pas !?

Sinon j'arrête de m'arracher les cheveux et utiliserai 2 carte Arduino.
Je ne vois que cela pour l'instant :confused:

Salut

Dans la ligne

U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, clock, data]])

il y a une convention d'écriture, que l'on retrouve un peu partout en informatique : les [ et ] encadrent des options. Mais, si tu utilises ces options, il ne faut pas mettre les [ ], donc la ligne correcte serait :
U8X8_SSD1306_128X64_NONAME_HW_I2C(reset, A5, A4)(je fais de mémoire, je ne sais plus si la clock est sur A5, mais l'idée est là)

Pour le problème de mémoire, si tu veux conserver un code aussi complexe, et autant d'IO (d'entrées / sorties, c'est à dire de chose branchées sur la carte), tu as plusieurs solutions :

  • Changer pour un "Arduino" avec plus de mémoire
  • Optimiser le code
  • Utiliser plusieurs Arduinos

Salut
Quel arduino a plus de memoire et les branchements/code seront les memes ?

il faut compiler le code définitif. Il y a de la mémoire qui est consommée par des fonctions qui sont communes aux 2 morceaux de code donc l'occupation mémoire au final ne sera pas la somme des 2 codes que tu as compilés.
Autrement, pour répondre à ta question la mega2560 à plus de mémoire

J ai vu ce post
https://www.carnetdumaker.net/

Ca peut le faire ?

Ton lien pointe sur la racine du site

Desole
[https://www.carnetdumaker.net/articles/reduire-lempreinte-memoire-dun-programme-arduino-avec-progmem/[/ur](https://www.carnetdumaker.net/articles/reduire-lempreinte-memoire-dun-programme-arduino-avec-progmem/)

progmem permet de stocker les chaines de caractères constantes dans la mémoire programme au lieu de les placer en RAM. Ça à du sens de l'utiliser si tu as des chaines de caractères assez volumineuses.

Bonjour

Je veux afficher la température de 2 sondes Ds18B20 sur un oled I2c 128x64.
Mais cela prend ENORMEMENT de place et je ne peux pas mettre le code pour mon projet de bateau

Sur les bons conseils combinés de fdufnews et Lesept , j'ai pris cette librairieu8x8 bcp plus légère

J'essaie pour l'instant d'afficher sur l'écran Hello word avant d'afficher des infos venant des sondes

Ici on a le choix de l'écran

le choix est celui-ci

U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, clock, data]])

Mais je ne sais quoi mettre a reset, clock data et… tout simplement si c'est le bon choix
bien qu'il semble que cela soit bon ( voir l'image)

J'ai fais ça

U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, clock/* pin SCL ?*/, data/pin SDA?/]])
et donc
U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, A5, A4]])
Mais cela plante ( normal vous me direz :smiley: )

![' token

D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino: In function 'void setup()':

8x8_test:8: error: 'u8x8' was not declared in this scope

u8x8.begin();

^

In file included from D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/U8x8lib.h:45:0,

from D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino:2:

8x8_test:9: error: expected primary-expression before '*' token

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:45: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected primary-expression before 'adr'

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:67: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected ')' before 'adr'

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:67: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected ')' before ';' token

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino: In function 'void loop()':

8x8_test:13: error: 'u8x8' was not declared in this scope

u8x8.setFont(u8x8_font_chroma48medium8_r);

^

exit status 1
expected unqualified-id before '[' token

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.


![ScreenShot018.jpg|899x346](upload://8X5qZ4I1T5DdQBokmTnbPO3Nvsz.jpeg)

choix de l'écran
https://github.com/olikraus/u8g2/wiki/u8x8setupcpp#ssd1305-128x64_adafruit

Voici mon code

#include <Arduino.h>
#include <U8x8lib.h>

//U8X8_SSD1306_128X64_4W_SW_SPI u8x8(/* clock=/ 13, / data=/ 11, / cs=/ 10, / dc=/ 9, / reset=*/ 8);
//U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, clock, data]]);
U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, A5, A4]])
void setup(void) {
 u8x8.begin();
 u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);
}

void loop(void) {
 u8x8.setFont(u8x8_font_chroma48medium8_r);
 u8x8.drawString(0,0,"Hello World!");
 delay(1000);
}


et le retour des erreurs

Arduino : 1.8.5 (Windows 10), Carte : "Arduino/Genuino Uno"

8x8_test:6: error: expected unqualified-id before '[' token

U8X8_SSD1306_128X64_NONAME_HW_I2C([reset [, A5, A4]])

^

8x8_test:6: error: expected ')' before '[' token

D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino: In function 'void setup()':

8x8_test:8: error: 'u8x8' was not declared in this scope

u8x8.begin();

^

In file included from D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/U8x8lib.h:45:0,

from D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino:2:

8x8_test:9: error: expected primary-expression before '*' token

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:45: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected primary-expression before 'adr'

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:67: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected ')' before 'adr'

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\Documents\Arduino\libraries\U8g2\src/clib/u8x8.h:356:67: note: in definition of macro 'u8x8_SetI2CAddress'

#define u8x8_SetI2CAddress(u8x8, address) ((u8x8)->i2c_address = (address))

^

8x8_test:9: error: expected ')' before ';' token

u8x8_SetI2CAddress(u8x8_t *u8x8, uint8_t adr);

^

D:\ACER-Patrick\CLARISSE\Code bateau\00 ok\8x8_test\8x8_test.ino: In function 'void loop()':

8x8_test:13: error: 'u8x8' was not declared in this scope

u8x8.setFont(u8x8_font_chroma48medium8_r);

^

exit status 1
expected unqualified-id before '[' token

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Bonjour

Pour Lesept : peux-tu me redonner le code pour le texte transparent stp, je ne le retrouve plus :confused:

J'arrive à écrire un texte et une donnée.
Mais si j'écrit un texte à 0,0 exemple NIVEAU BATTERIE
et si à la position 0,15 une donnée, celle-ci va écraser la première ligne

J'ai mis un delay (1000) pour faire la photo de la ligne

// Affichage Niveau batterie
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setCursor(0, 0);
  u8x8.print("NIVEAU BATTERIE");
  delay ( 1000);
// pour le voltage de la batterie
  // Conversion du signal (which goes from 0 - 1023) to a voltage (0 - (V):
  int sensorValue = analogRead(A0);//*******************************************************  A3 pour la voiture bateau
  // écrit la valeur lue
  float voltage = sensorValue * (5.0 / 1023.0);
  u8x8.setCursor(0, 15);
  u8x8.print(voltage);
  u8x8.print("V");

J'ai mis en fin de code mes 2 données à afficher après la ligne de NIVEAU BATTERIE

Code complet

// Pour l'écran
#include <Arduino.h>
#include <U8x8lib.h>
//Pour les sondes
#include <DallasTemperature.h>     //DS18B20 pour température de l'eau et de l'air
#include <Wire.h>



// Déclaratipon de l'écran 128x64
U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(A5, A4, U8X8_PIN_NONE); // OLEDs without Reset of the Display
// Déclaratipon de l'écran 128x128 à venir
// U8X8_SH1107_128X128_HW_I2C u8x8(/* reset=*/ 8);

// les 2 sondes DS18B20
#define ONE_WIRE_BUS_1 2               // sonde pour l'eau pin 2 
#define ONE_WIRE_BUS_2 4               // sonde pour l'air pin 4
OneWire oneWire_in(ONE_WIRE_BUS_1);    // sonde pour l'eau
OneWire oneWire_out(ONE_WIRE_BUS_2);   // sonde pour l'air
DallasTemperature sensor_eau(&oneWire_in);     // sonde pour l'eau
DallasTemperature sensor_air(&oneWire_out);    // sonde pour l'air



void setup(void)
{
  /* U8g2 Project: SSD1306 Test Board */
  pinMode(A4, OUTPUT);
  digitalWrite(A4, 0);
  u8x8.begin();
  u8x8.setPowerSave(0);


  // start serial port
  Serial.begin(115200);
  Serial.println("Dallas Temperature Control Library Demo - TwoPin_DS18B20");

  // Start up the library
  sensor_eau.begin();    // sonde pour l'eau
  sensor_air.begin();    // sonde pour l'air

  // déclaration de la pin 2 et 4
  pinMode(2, INPUT);
  pinMode(4, INPUT);

  int readValEau = analogRead(2);// met à zéro la sonde EAU
  int readValAir = analogRead(4);// met à zéro la sonde AIR


}

void loop(void)
{
  // AFFICHAGE SUR SERIAL
  Serial.print("Recherche des temperatures...");
  sensor_eau.requestTemperatures();
  sensor_air.requestTemperatures();
  Serial.println(" done");

  // sonde EAU
  Serial.print("Température eau: ");
  Serial.println(sensor_eau.getTempCByIndex(0));

  // sonde AIR
  Serial.print("Température air: ");
  Serial.println(sensor_air.getTempCByIndex(0));
  delay ( 5000);
  
 /*/modele d'écriture 
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setCursor(0, 18);
  u8x8.print("Hello World");
*/

// Affichage Niveau batterie
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setCursor(0, 0);
  u8x8.print("NIVEAU BATTERIE");
  delay ( 1000);

// pour le voltage de la batterie
  // Conversion du signal (which goes from 0 - 1023) to a voltage (0 - (V):
  int sensorValue = analogRead(A0);//*******************************************************  A3 pour la voiture bateau
  // écrit la valeur lue
  float voltage = sensorValue * (5.0 / 1023.0);
  u8x8.setCursor(0, 15);
  u8x8.print(voltage);
  u8x8.print("V");  

/*/ Affichage  températures Air
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setCursor(0, 30);
  u8x8.println("TEMP. AIR ");
  u8x8.println(sensor_air.getTempCByIndex(0));
*/
/*/ Affichage  températures Eau
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  u8x8.setCursor(0, 45);
  u8x8.println("TEMP. AIR ");
  u8x8.println(sensor_eau.getTempCByIndex(0));
*/

}

Je pense que les coordonnées curseur sont exprimées en n° de caractère et n° de ligne pas en coordonnées pixels écran.
Dans ce cas:

u8x8.setCursor(0, 15);

la librairie doit essayer d'envoyer le curseur sur la 15ème ligne de texte et comme l'écran n'est pas assez grand il y a un rebouclage au début de l'écran.
Essaye

u8x8.setCursor(0, 1);

Merci c'est bon d'avoir de bons conseils pas des bons ( valables pour tous ceux qui nous aident , nous les nuls :slight_smile: )

Comment augmenter la taille de la police svp?

Et pour fdufnews, t uas raison. La compilation du code bateau et de l'écran n'est pas égale à la somme des deux codes

Le croquis utilise 15010 octets (46%) de l'espace de stockage de programmes. Le maximum est de 32256 octets.
Les variables globales utilisent 1182 octets (57%) de mémoire dynamique, ce qui laisse 866 octets pour les variables locales. Le maximum est de 2048 octets.

code modifié

// pour le voltage de la batterie
  // Conversion du signal (which goes from 0 - 1023) to a voltage (0 - (V):
  int sensorValue = analogRead(A0);//*******************************************************  A3 pour la voiture bateau
  // écrit la valeur lue
  float voltage = sensorValue * (5.0 / 1023.0);
  u8x8.setCursor(0, 1);// position 0, sur la 1 ere ligne,
    u8x8.print("          ");
  u8x8.print(voltage);
  u8x8.print("V");

et l'image bien sûr

joint le code complet pour l'écran oled i2c 128x64 et 2 sondes DS118B20 si cela intéresse l'un de vous :slight_smile:

Ecran_u8x8_128x64et128x128.ino (4.8 KB)

ArduinoFree:
Comment augmenter la taille de la police svp?

La librairie U8x8 semble ne pas le permettre. En tout cas je n'ai vu aucune méthode permettant de modifier la taille des caractères et les polices ont toutes une taille de 8x8 (ou plus petite). C'est le prix à payer pour avoir une librairie plus compacte.
La librairie U8g2, elle dispose de polices de différentes tailles mais elle est beaucoup plus gourmande en ressource mémoire.