Consumo e-ink display

Buonasera, mi rivolgo a Voi cercando una soluzione al mio problema che mi interessa da mesi ormai.
sono nuovo nella comuniti e da poco mi sono cimentato nella conoscenza del codice di arduino
ho un progetto dove devo visualizzare un dato di umidita su uno schermo con un servomotore
il mio problema è il consumo che dopo varie letture tra comando Lowpower e altri, sono riuscito a portare il consumo a circa 5mAh.
premetto che il progetto funziona con 4 batterie tipo AA

il mio problema ora è il seguente.
-comprato schermo oled 128x64 ma per mantenerlo acceso servono circa 3mAh

-comprato schermo e-ink per rimediare al problema consumo.
con quest'ultimo xro ho dei problemi:

  • usando la libreria GXEPD lo schermo una volta inviato quello che devo scrivere sbiadisce in un nero molto tenue quasi illeggibile. "non sono riuscito a rimediare"
  • usando la libreria GXEPD2 il problema non persiste ma mi rimane un consumo costante di 4mA
  • usando il comando .poweroff e disattivando il pin RST riesco ad abbatere il consumo fino a 1Mah ma il problema che riattivando il pin RST e facendo l'aggiornamento display tutto va in confusione.
  • provato il comando .end la corrente si abbassa 1maH ma nn riesco piu ad riattivare il monito a meno del comando .INIT che mi crea qual fastidioso Refresh lampeggiante che vorrei evitare dato che laggiornamento è ogni 60 sec.

il tutto funziona con il .setpartialwindow proprio per evitare lo sfarfallio di aggiornamento.

Qualcuno sa aiutarmi?
sto leggendo di schermi LCD ma chiedo a voi se qualcuno sa quanto consumano dato che presumo che questi schermi vadano sempre alimentati x la visualizzazione.
mi chiedo come i telecomandi e le stazioni meteo riescano a funzionare con 2 batterie x cosi lungo tempo.

facendo i calcoli il mio progetto con un consumo costante di 5maH dovrebbe funzionare su per giu circa 50giorni. vorrei arrivare almeno ad 1 anno
Grazie

di seguito codice che ho creato prendendo sputo da vari esempi.

 showPartialUpdate();

  digitalWrite(5, LOW); //tolgo alimentazione a transistor

   digitalWrite(8, LOW); // tolgo alimentazione a RST e-ink

  for (int i = 0; i <= 0; i++) {
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
  }
 digitalWrite(8, HIGH);

  contatore == contatore++;
  
  if (contatore == 500) {
    resetscreen();  // dopo 500 aggiornamenti parziali ne faccio 1 totale
  }
}

void showPartialUpdate() {

  display.firstPage();
  do {
    display.setRotation(3);
  display.setPartialWindow(40, 25, 160, 110);

    display.setCursor(40, 25);
    display.setTextSize(10);

    display.print(hum + 10);
    display.setTextSize(6);
    display.print("%");

//display.setCursor(0, 170);
    //display.setTextSize(2, 4);
 

 } while (display.nextPage());

  display.firstPage();

  display.setPartialWindow(0, 170, 200, 30);

 display.firstPage();
  do {


    display.setCursor(0, 170);
    display.setTextSize(2, 4);

    switch (apertura) {
      case 0:
        display.print(F("Close "));
        display.print(F(">    "));
        display.println(F(" Open"));
        break;
      case 1:
        display.print(F("Close "));
        display.print(F(">>   "));
        display.println(F(" Open"));
        break;
      case 2:
        display.print(F("Close "));
        display.print(F(">>> "));
        display.println(F(" Open"));

        break;
      case 3:
        display.print(F("Close "));
        display.print(F(">>>> "));
        display.println(F(" Open"));
        break;
      case 4:
        display.print(F("Close "));
        display.print(F(">>>>> "));
        display.println(F("Open"));
        break;
      case 5:
        display.print(F("Close "));
        display.print(F(">>>>>>"));
        display.println(F("Open"));
        break;
    }

  } while (display.nextPage());

  display.firstPage();

  display.powerOff();
}

:warning:
Ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato.
Grazie.

A quanto detto da UKHeliBob aggiungo ...

... cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO della sezione Italiana del forum, (... e, per evitare future possibili discussioni/incomprensioni, prestando sempre molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

grazie mille, la presentazione l'avevo gia fatta rispondendo a uno dei mex presenti.
ne ho fatta un altra.
non riesco a trovare il modo di scrivere un messaggio senza risponderne a uno gia presente.

Basta usare il grande pulsate verde "Reply" alla fine della discussione, ma va bene anche così.
https://forum.arduino.cc/t/re-presentazioni-nuovi-iscritti-fatevi-conoscere-da-tutti-part-2/1018420/20000
Benvenuto, Gianluca! :slight_smile:

Buonasera a tutti, sempre riguardo al mio problema chiedo a voi se c'è la possibilità con il display e-ink di waweshare 1.54" 200x200 monocolore di effettuare un parzial update senza avere un consumo di 4mah costanti.
Grazie