LCD 128x64 ST7567S si blocca su arduino nano

Ciao a tutti.
Ho acquistato un lcd grafico 128x64 in I2C con controller ST7567S.
https://it.aliexpress.com/item/1005004237282931.html?spm=a2g0o.order_list.order_list_main.60.74443696sgJBvV&gatewayAdapt=glo2ita

Per gestirlo utilizzo U8g2lib.

Questo lcd funziona a 3V, con Arduino Nano 33 IoT funziona perfettamente e non da segni di nessun blocco.

Se utilizzo arduino nano, (abbinato ad un traslatore di livelli con pullup integrato per avere i segnali a 3.3v) si blocca dopo 10/15 minuti.

Ho povato anche ad settare setBusClock alla velocita di 100000 ma niente da fare.
Avete qualche idea per risolvere il problema?

Allego lo sketch utilizzato.

#include <Wire.h>
#include <U8g2lib.h>

float tempo0 = 0;
float tempoX = 0;
int sec = 0;
int minu = 0;

U8G2_ST7567_ENH_DG128064I_1_HW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE);  // LCD GRANDE

void setup()
{
  u8g2.setI2CAddress(0x3F * 2); // LCD GRANDE
  u8g2.setBusClock(100000); // VELOCITA DI TRASFERIMENTO
  u8g2.begin();
  u8g2.clearBuffer();  // clear the internal memory
  //digitalWrite(SDA, 0);
  //digitalWrite(SCL, 0);
  u8g2.setFont(u8g2_font_ncenB14_tr);
  tempo0 = millis();
}

void loop()
{

  u8g2.firstPage();
  do {

    tempoX = millis();
    sec = ((tempoX - tempo0) / 1000);
    if (sec == 60)
    {
      minu = minu + 1;
      tempo0 = millis();
    }

    u8g2.clearBuffer();
    u8g2.setCursor(15, 23);
    u8g2.print(sec);
    u8g2.setCursor(15, 53);
    u8g2.print(minu);
  } while ( u8g2.nextPage() );
}

Questo è basato su SAMD21 Cortex®-M0+ ed ha 32 KBytes di SRAM, Arduino nano classico è basato su ATmega328P e ha solo 2 KBytes di SRAM ... molto probabile che, con quel "mattone" della U8g2lib, dopo un po' vada "fuori" come memoria e si blocchi.

Guglielmo

Ciao.
In seguito alla tua valutazione ho fatto alcune prove utilizzando lo stesso sketch su:
Arduino Mega 2560
Arduino nano.

Nello sketch ho inserito la libreria <MemoryFree.h> per verificare la memoria restante e ho ottenuto i seguenti risultati:

Arduino Mega 2560 memoria restante 7344
Arduino nano memoria restante 1201

Purtroppo lo sketch si blocca ancora.

Andando per deduzione mi viene da dire che LCD di per se va bene perchè utilizzandolo su arduino nano 33 iot e senza traslatore di livelli funziona egregiamente.

Usandolo su nano e su mega si blocca (utilizzando il traslatore di livelli)
La discriminante pare sia propio il traslatore di livelli.

Ho utilizzato questo. https://it.aliexpress.com/item/32612366630.html?spm=a2g0o.order_list.order_list_main.55.fd703696aslFIZ&gatewayAdapt=glo2ita

Ho commesso un errore a scegliere questo modello?
I
Avete altri suggerimenti
Grazie.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.