Problema Riaccensione display e led matrix

Nessun errore
Non si riaccende

Ho provato a risolvere il problema tramite l’intelligenza artificiale ChatGPT ma non sono arrivato ad una conclusione.

Sono possessore di un Arduino Uno R4 Wi-Fi. Il mio progetto consiste nell'accendere un display e i led matrix integrati all'interno della scheda, più nello specifico ciò che voglio fare è avere un voltometro che misura la tensione che poi il valore viene mostrato sul display HT16K33 Adafruit e sul monitor seriale, il tutto funziona solamente quando il selettore è attivo, quindi i led matrix mostreranno la scritta "VOLTOMETRO ON" e il display farà vedere il valore della tensione. quando il selettore riviene attivato si dovrebbero accendere entrambe ma proprio quà è dove riscontro problemi, qualcuno mi sa aiutare?

#include "HT16K33.h"
#include "ArduinoGraphics.h"
#include "Arduino_LED_Matrix.h"



int status = WL_IDLE_STATUS;
char input_sensore = A0 ;
float fattoreScala = 5;
float risoluzione = 0.0049;
float Tensione;
float Tensione1;
int Stato_Selettore = 0;
const int Selettore = 2; 
const int Alimentazione_Schermo = 4;    
int x=0;
int y=0,z=0;
ArduinoLEDMatrix matrix;
HT16K33 seg(0x70);
const char text[] = "   VOLTOMETRO ON   ";

void setup(){ 
  Serial.begin(115200);
  pinMode(A0,INPUT);
  Serial.println(__FILE__);
  pinMode(Alimentazione_Schermo, OUTPUT);
  pinMode(Selettore, INPUT);
  y=1;
}

void loop(){
  
      if(z==0){
     matrix.begin();
     z=1;
    }
  Stato_Selettore = digitalRead(Selettore);

  if((Stato_Selettore == HIGH)&&(x==0)){
    x=1;
    digitalWrite(Alimentazione_Schermo, HIGH);
    HT16K33 seg(0x70); 
    Tensione=analogRead(input_sensore);
    seg.displayOn();
    seg.displayFloat(Temperatura);   
    Serial.println("Selettore_Attivo");
  }
    
   

 if((Stato_Selettore == LOW)&&(x==1)){
    x=0; 
    y=0;
    matrix.endDraw();
    Serial.println("Selettore_Disattivo");
    Temperatura=analogRead(input_sensore);
    digitalWrite(Alimentazione_Schermo, LOW);
    Serial.println("Controllo Selettore eseguiuto");
  }

  if((Stato_Selettore == HIGH)&&(y==1)){ 
    digitalWrite(Alimentazione_Schermo, HIGH);
    matrix.beginDraw();
    matrix.stroke(0xFFFFFFFF);
    matrix.textScrollSpeed(125);
    matrix.textFont(Font_5x7);
    matrix.beginText(0, 1, 0xFFFFFF);
    matrix.println(text);
    matrix.endText(SCROLL_LEFT);
    matrix.endDraw(); 
    Tensione=analogRead(input_sensore);
    Tensione1=Tensione * risoluzione;
    Serial.println(Temperatura1);
    delay(100);
    seg.displayFloat(Temperatura1);
  }
}
  



Buongiorno e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando 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:

Puoi indicare i vari collegamenti? A che pin e come sono collegate le varie cose?

Guglielmo

Ciao Guglielmo come scritto nel codice i miei pin sono:
Tensione-A0
Selettore-I2
Alimentazione schermo-Q4
I led Matrix sono quelli integrati all’interno della scheda

Ma lo schermo come è collegato ad Arduino?

Guglielmo

Lo schermo è collegato correttamente come da istruzione, gnd, alimentazione alla porta 4 come uscita, e scl e sda collegati negli appositi pin

Dove hai letto che puoi alimentare uno schermo con l'OUTPUT di un pin ??? Al limite puoi pilotare un transistor (BJT o MOSFET) che poi fa da interruttore per l'alimentazione, ma NON puoi usare un pin per "alimentare" ... rischi di fare solo danni !

Quindi ripeto, COME è collegato esattamente qullo schermo ???

Guglielmo

P.S.: e metti anche un link al prodotto di cui parli perché, sul sito di Adafruit, non è ben chiaro quale prodotto stai usando.

Ciao Guglielmo grazie della precedente risposta, per l’alimentazione dello schermo non mi sono mai informato tramite un datasheet ma bensì un mio conoscente elettronico ha detto che avrebbe funzionato impostato in questo modo. Ti mando il link affinché tu possa capirne di più
https://www.distrelec.ch/de/stellige-segmentanzeige-mit-i2c-rucksack-adafruit-878/p/30091223

E ti ha detto una stupidaggine ... i pin di I/O del R4 possono dare al massimo 8 mA ... con i quali NON alimenti di certo un display come quello!

Usa il pin di I/O per comandare un transistor (meglio di tutti un piccolo MOSFET) che fa da interruttore per accendere e spegnere il display.

Guglielmo

Grazie Guglielmo proverò così e ti farò sapere l’esito

Ti do un'altra informazione ... leggi QUI sul sito del produttore gli assorbimenti ... :roll_eyes:

QUESTO è il WiKi del prodotto.

E QUESTO il link originale al prodotto.

Guglielmo