lcd Caractères perso progmem

Bonjour,
Je suis en quette de mémoire dans mon projet. J’utilise un LCD 2004 i2c avec 8 caractères perso.
Je me demande donc si il est possible de placer (je sais le faire), mais surtout d’'accéder aux caractère perso en mémoire Flash et de les afficher.

Voici quelques pistes que j’explore

PROGMEM const byte M1 [ ] = {
  B00001,  B00011,  B00111,  B01111,  B11001,  B01001,  B01001,  B01001};

lcd.createChar((pgm_read_byte_near (0)), M1); <= BUG

lcd.setCursor(1, 3); lcd.write(pgm_read_byte_near (0));

Mais bien entendu, ça ne fonctionne pas.
Avez vous une idée sur la méthode?
Merci.

Bonjour,
Oui, j'ai déjà appliqué cette méthode qui fonctionne très bien, mais j'aimerai gagner de la place. Est il possible d'utiliser la Flash?

Zarb94:
Bonjour,
Je suis en quette de mémoire dans mon projet. J’utilise un LCD 2004 i2c avec 8 caractères perso.
Je me demande donc si il est possible de placer (je sais le faire), mais surtout d’'accéder aux caractère perso en mémoire Flash et de les afficher.

bonsoir zarb94
Il faut “vraiment” être à la “quête” 8) pour vouloir “passer par cette voie”

Perso , j’ai tendance à penser que vouloir absolument traquer "les derniers bytes dispos ici ou là " est en code une source excessivement probable d’embrouilles/instabiltés qui ne vont surement pas manquer de survenir en exploitation. :grin:

Sur le sujet de la relecture d’un motif “perso” injecté dans un LCD “44780”
je ne suis pas sur que ce soit possible en mode 4 Bits
Mais je prend un “joker” ;D

Artouste:
bonsoir zarb94
Il faut "vraiment" être à la "quête" 8) pour vouloir "passer par cette voie"

Perso , j'ai tendance à penser que vouloir absolument traquer "les derniers bytes dispos ici ou là " est en code une source excessivement probable d'embrouilles/instabiltés qui ne vont surement pas manquer de survenir en exploitation. :grin:

Sur le sujet de la relecture d'un motif "perso" injecté dans un LCD "44780"
je ne suis pas sur que ce soit possible en mode 4 Bits
Mais je prend un "joker" ;D

Je pense que tu à raison,cela fait des économies de bout de chandelle finalement. Et en plus, à force de recherche,
Je viens de trouver un bout de code qui donne l'espace libre dans la SRAM et mon problème n'est pas la donc pas la peine d'insister.

Si ça intéresse:

 // Mémoire dispo entre la stack & la heap
 int freeRam ()
{
    extern int __heap_start, *__brkval;
    int v;
    Serial.print(F("SRAM dispo entre la stack & la heap= "));
    Serial.println((int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval));
}

Bonne soirée!