Texto big fonts al iniciar arduino

Hola

A ver si me podeis ayudar. No sé como se hace para que al iniciar mi placa, en el lcd me salga texto en grande

El texto lo imprime bien durante el tiempo programado en el apartado Void setup al iniciar, pero en tamaño normal

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);


char buffer[20] = " ";
char* buffn = " ";

int analogInput = 0;
int value = 0;
float vout = 0;
float vin = 0;
float R1 = 100000.0;
float R2 = 10000.0;

constexpr unsigned long
intervaloDatos = 5000; 

int x = 0;
// the 8 arrays that form each segment of the custom numbers
byte LT[8] = 
{
  B00111,
  B01111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte UB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte RT[8] =
{
  B11100,
  B11110,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};
byte LL[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B01111,
  B00111
};
byte LB[8] =
{
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};
byte LR[8] =
{
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11110,
  B11100
};
byte UMB[8] =
{
  B11111,
  B11111,
  B11111,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111
};
byte LMB[8] =
{
  B11111,
  B00000,
  B00000,
  B00000,
  B00000,
  B11111,
  B11111,
  B11111
};
void setup() {
lcd.begin(20, 4);
lcd.clear();
lcd.setCursor(9, 1); 
lcd.print(F("Hola")); 
lcd.setCursor(6, 3); 
lcd.print(F("Arduino"));
delay(5000);
lcd.clear();

  lcd.createChar(8,LT);
  lcd.createChar(1,UB);
  lcd.createChar(2,RT);
  lcd.createChar(3,LL);
  lcd.createChar(4,LB);
  lcd.createChar(5,LR);
  lcd.createChar(6,UMB);
  lcd.createChar(7,LMB);
}

void custom0O()
{ // uses segments to build the number 0
  lcd.setCursor(x, 0); 
  lcd.write(8);  
  lcd.write(1); 
  lcd.write(2);
  lcd.setCursor(x, 1); 
  lcd.write(3);  
  lcd.write(4);  
  lcd.write(5);
}

void custom6()
{
  lcd.setCursor(x,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(6);
  lcd.setCursor(x, 1);
  lcd.write(3);
  lcd.write(7);
  lcd.write(5);
}

void custom9()
{
  lcd.setCursor(x,0);
  lcd.write(8);
  lcd.write(6);
  lcd.write(2);
  lcd.setCursor(x+2, 1);
  lcd.write(255);
}

void customK()
{
  lcd.setCursor(x,0);
  lcd.write(255);
  lcd.write(4);
  lcd.write(5);
  lcd.setCursor(x,1);
  lcd.write(255);
  lcd.write(254);
  lcd.write(2); 
}

void customM()
{
  lcd.setCursor(x,0);
  lcd.write(8);
  lcd.write(3);
  lcd.write(5);
  lcd.write(2);
  lcd.setCursor(x,1);
  lcd.write(255);
  lcd.write(254);
  lcd.write(254);
  lcd.write(255);
}

void customT()
{
  lcd.setCursor(x,0);
  lcd.write(1);
  lcd.write(255);
  lcd.write(1);
  lcd.setCursor(x,1);
  lcd.write(254);
  lcd.write(255);
}

void Pantalla(){

  lcd.setCursor(0, 2);
  dtostrf(vin, 4, 1, buffn);
  char* formato3 = "%s V";
  sprintf(buffer, formato3, buffn);
  lcd.print(buffer);

}

void voltaje() {
  value = analogRead(0);
  vout = (value * 5.0) / 1024.0;
  vin = vout / (R2 / (R1 + R2));
  if (vin <= 1) {
    vin = 0;
  }
}

Hola Esoj.

No sale el texto en grande porque creo que no lo has formateado en grande. Parece que sólo has definido los segmentos que forman el texto en los 8 caracteres especiales que permite el LCD.

Lo primero que tienes que hacer es después de iniciar el LCD es crear los caracteres.

void setup() {
lcd.begin(20, 4);
lcd.clear();
  lcd.createChar(8,LT);
  lcd.createChar(1,UB);
  lcd.createChar(2,RT);
  lcd.createChar(3,LL);
  lcd.createChar(4,LB);
  lcd.createChar(5,LR);
  lcd.createChar(6,UMB);
  lcd.createChar(7,LMB);
...

Luego para imprimir el carácter lo puede hacer de varias formas:
-Hacerte una función que saque cada carácter de la frase, lo formatee y lo imprima. recomendado si hay que hacer muchas impresiones de textos diferentes.
-Imprimir el carácter completo.

Como veo que tienes las funciones customXX() para los guarismos 0, 6, 9, y las letras K, M, T y la O (igual que el 0) es la segunda que comento.

Como imagino que falta código en lo que has puesto, porque no veo definida la x, y faltan por definir muchas letras y números, doy por hecho que están definidas.
Por tanto, para escribir una K, hay que llamar a la función que se encarga de ella

customK(x,0); // donde x es la coordenada donde se imprime la letra K en grande

Espero que te sirva.

Saludos

Esoj

Por si acaso, aquí te dejo una función que hice hace un tiempo, que imprime un texto en letras grandes y mayúsculas.
No está todo el abecedario, ni hay minúsculas, pero hay bastantes y todos los números, y no es complicado añadir las letras que faltan, si las necesitas.
Cada carácter tiene 4 columnas y 2 filas. Si necesitas adaptarlo a otros, tampoco es complicado.

void bigLetter()
{
//Define los segmentos grandes que forman las letras
 byte LT[8]; byte UB[8]; byte RT[8]; byte LL[8];
 byte LB[8]; byte LR[8]; byte UMB[8]; byte LMB[8];
 LT[0] = 7; LT[1] = 15; LT[2] = 31; LT[3] = 31; LT[4] = 31; LT[5] = 31; LT[6] = 31; LT[7] = 31; UB[0] = 31; UB[1] = 31; UB[2] = 31; UB[3] = 0; UB[4] = 0; UB[5] = 0; UB[6] = 0; UB[7] = 0; RT[0] = 28; RT[1] = 30; RT[2] = 31; RT[3] = 31; RT[4] = 31; RT[5] = 31; RT[6] = 31; RT[7] = 31;
 LL[0] = 31; LL[1] = 31; LL[2] = 31; LL[3] = 31; LL[4] = 31; LL[5] = 31; LL[6] = 31; LL[7] = 31; LB[0] = 0; LB[1] = 0; LB[2] = 0; LB[3] = 0; LB[4] = 0; LB[5] = 31; LB[6] = 31; LB[7] = 31; LR[0] = 31; LR[1] = 31; LR[2] = 31; LR[3] = 31; LR[4] = 31; LR[5] = 31; LR[6] = 30; LR[7] = 28;
 UMB[0] = 31; UMB[1] = 31; UMB[2] = 0; UMB[3] = 0; UMB[4] = 0; UMB[5] = 0; UMB[6] = 31; UMB[7] = 31; LMB[0] = 31; LMB[1] = 0; LMB[2] = 0; LMB[3] = 0; LMB[4] = 0; LMB[5] = 31; LMB[6] = 31; LMB[7] = 31;
 lcd.createChar(8, LT);
 lcd.createChar(1, UB);
 lcd.createChar(2, RT);
 lcd.createChar(3, LL);
 lcd.createChar(4, LB);
 lcd.createChar(5, LR);
 lcd.createChar(6, UMB);
 lcd.createChar(7, LMB);
}

void printLetter(char letter, byte *x)
{
 //Devuelve la posición del siguiente carácter
 switch (letter)
 {
 case char('A') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\006\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\376\377"));
 *x += 4;
 break;
 case char('B') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\006\005"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\007\002"));
 *x += 4;
 break;
 case char('C') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\001\001"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\004\004"));
 *x += 4;
 break;
 case char('D') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\001\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\004\005"));
 *x += 4;
 break;
 case char('E') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\006\006"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\007\007"));
 *x += 4;
 break;
 case char('F') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\006\006"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377  "));
 *x += 4;
 break;
 case char('G') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\001\001"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\004\002"));
 *x += 4;
 break;
 case char('H') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\004\377"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\376\377"));
 *x += 4;
 break;
 case char('I') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\001\377\001"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\004\377\004"));
 *x += 4;
 break;
 case char('J') :
 lcd.setCursor(*x, 0);
 lcd.print(F("  \377"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\004\004\005"));
 *x += 4;
 break;
 case char('K') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\004\005"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\376\002"));
 *x += 4;
 break;
 case char('L') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377  "));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\004\004"));
 *x += 4;
 break;
 case char('M') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\003\005\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\376\376\377"));
 *x += 5;
 break;
 case char('N') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\002\376\377"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\376\003\005"));
 *x += 5;
 break;
 case char('O') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\001\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\004\005"));
 *x += 4;
 break;
 case char('P') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\006\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377  "));
 *x += 4; //corre 4 espacios
 break;
 case char('Q') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\001\002 "));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\004\377\004"));
 *x += 5; //corre 5 espacios
 break;
 case char('R') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\006\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\377\376\002"));
 *x += 4; //corre 4 espacios
 break;
 case char('S') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\006\006"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\007\007\005"));
 *x += 4;
 break;
 case char('T') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\001\377\001"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\376\377 "));
 *x += 4;
 break;
 case char('U') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\376\377"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\004\005"));
 *x += 5;
 break;
 case char('V') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\003\376\376\005"));
 lcd.setCursor(*x, 1);
 lcd.print(F(" \002\010 "));
 *x += 5;
 break;
 case char ('W'):
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\376\376\377"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\010\002\005"));
 *x += 5;
 break;
 case char('X') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\003\004\005"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\010\376\002"));
 *x += 4;
 break;
 case char('Y') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\003\004\005"));
 lcd.setCursor(*x, 1);
 lcd.print(F(" \377 "));
 *x += 4;
 break;
 case char('Z') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\001\006\005"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\010\007\004"));
 *x += 4;
 break;

 //*************NUMEROS***************
 case char('0') : //IGUAL QUE LA O
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\001\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\004\05"));
 *x += 4;
 break;
 case char('1') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\001\002 "));
 lcd.setCursor(*x, 1);
 lcd.print(F(" \377 "));
 *x += 4;
 break;
 case char('2') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\006\006\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\007\007"));
 *x += 4;
 break;
 case char('3') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\006\006\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\007\007\005"));
 *x += 4;
 break;
 case char('4') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\003\004\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("  \377"));
 *x += 4;
 break;
 case char('5') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\377\006\006"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\007\007\005"));
 *x += 4;
 break;
 case char('6') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\006\006"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\007\005"));
 *x += 4;
 break;
 case char('7') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\001\001\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F(" \010 "));
 *x += 4;
 break;
 case char('8') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\006\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("\003\007\005"));
 *x += 4;
 break;
 case char('9') :
 lcd.setCursor(*x, 0);
 lcd.print(F("\010\006\002"));
 lcd.setCursor(*x, 1);
 lcd.print(F("  \377"));
 *x += 4;
 break;
 default:
 break;
 }
}

void bigText(String texto, byte col) {
 //analiza el texto
 bigLetter(); //Crea el set de letras grandes
 //lcd.clear();
 //lcd.home();
 for (byte n = 0; n < texto.length(); n++)
 {
 printLetter(texto[n], &col);
 }
}

Llamas con

bigText(F("HOLA"), 0);// HOLA es un ejemplo

Y te imprime un HOLA grande desde la columna 0.

Esto es para un LCD de 16x2, pero no creo que sea un problema adaptarlo al otro. Y ten en cuenta que al ser más grande, y en mi caso, sólo entran 4 caracteres en el LCD.

Espero que te sirva.

Saludos

Existen librerías para hacer casi todo, solo van a google : Arduino Bit Font library y la tienen
Big Font Library

Perfecto Surbyte.

Vaya currada que me pegué en su momento, incluso pensé en hacer una libería pero me faltan conocimientos para hacerla. Y mira que busqué en internet sobre los bigfont para sacar ideas con las que hice eso, y no me topé con esta librería.

En fin, pero aprendí mucho del control del LCD.

Muchísimas gracias por el aporte.

Pero perdona.. soy reiterativo, eso te pasa por no leer las normas.
Las normas dicen antes de postear busca y como te dice que lo hagas. Te pide que antepongas la palabra Arduino a lo que quieres.

Ahora un consejo. Si buscas letras grandes sigue buscando hasta el final de tus dias.
Las cosas se buscan en inglés... y no hay otro modo de hacerlo. salvo excepciones como Luis Llamas no encuentro muchas librerias escritas en español. Se que hay grandes programadores de nuestra lengua pero... como lo publican EN INGLES, entonces porque si buscas fallas en encontrar algo? Respuesta obvia por buscar en español.

Muy obvio.

Es cierto que encontrar la palabra clave te puede llevar un buen tiempo, pero... esa es la cuestion.
Cuando encuentras la palabra clave en inglés, se abre todo el panorama.

Solucionado!!

Seguí buscando y en un ejempo que encontré, probé a crear los Void para las letras y para los numeros y funcionó
No se si es la manera mas correcta, pero ahi esta en marcha
Muchas gracias por las respuestas

Surbyte,

Aunque parezca mentira, sigo este consejo desde que empecé con Arduino, incluso antes de conocer este foro y me di cuenta que la información estaba en inglés. Permiteme decirte que me di de alta en este foro por gente como tu, de la cual he aprendido, algunas veces posteandoy otras leyendoos cuando ayudais a otros foreros, porque, como tu siempre dices, casi seguro que el problema ya lo ha tenido alguien antes, sino el mismo, parecido.
No hablo inglés perfectamente pero me desenvuelvo bien y lógicamente, me es más facil leer en español que es mi lengua madre.
Esa función la escribí hace por lo menos 3 años, sabia menos de Arduino y nunca posteé ayuda en el foro, la hice con la información que encontré en ese momento.
De cualquier forma, aunque hay librerias para muchas cosas, alguna veces me hago yo las funciones aunque sólo sea por aprender como funciona.
Sólo he respondido a Esoj por si le valía.
Cuando necesite de nuevo hacer bigfonts desde luego que intentaré usar la libería.

Muchísimas gracias

Yo no tengo tiempo pero si es interesante que mas gente tome librerías en ingles y haga tu interpretación y uso en español para que otro pueda aprovecharla.
El problema es que las cosas van muy rápido y lo que hoy sirve mañana no.
Con eso digo que ahora no hay un LCD que muestre caracteres grandes pero estoy seguro que si muchos los usaran a algún fabricante se le va a ocurrir agregar una ROM con los caracteres bitfont y entonces estamos otra vez en ascuas. A eso me refiero como que vamos llegando siempre tarde con el idioma, salvo excepciones.

Por lo demás y por tu trabajo no puedo mas que felicitarte @pepepotero y me alegra que siguas mi consejo de buscar y hacerlo en inglés. No mata a nadie el inglés y con el tiempo aunque no entiendas el 100% de lo que se dice el concepto general si estará a tu alcance y con Google Translate sacas el resto aunque no siempre si es idioma técnico.

Muchísimas gracias Surbyte!!!!