PCF8575 e Micro su Matrici

Visualizzazione 1 filone di risposte
  • Autore
    Post
    • #32260
      riccardo
      Partecipante

        Salve, Grazie x il lavoro !
        Ho acquistato i chip e scaricato la sua libreria dopo aver letto l’articolo, perchè volevo realizzare con un Pro/Micro e più interfaccie PCF8575 uba specie di multitastiera, praticamente più
        interfaccie a matrice di vari pannelli di un cocpit utilizzando una sola CPU.
        Ho realizzato da prima la matrice a provata diretta sul Micro, e visto che tutto era ok sono andato avanti per farla leggere ak PCF8575.
        La matrice è fatta da circa 8 colonne e 7 righe, come primo progetto i pulsanti portavano a massa.
        Percui ciclo for tutte le colonne alte some set up e poi le abbassavo in sequenza ed andavo a leggere le righe singolarmente, con un incrementale per individuare il pulsante.
        Più un array per verificare lo stato antecedente in modo da rilevare solo i fronti di salita o discesa.
        Sul micro nessun problema, collegato al PCF sono iniziati i problemi. Ho introdotto dei ritardi sia da quando mando alto la colonna che dopo aver chiamato la lettura, altrimenti non ne voleva sapere.
        Una volta trovati indicativamente dei tempi che potessero andare , però la matrice si comporta in modo strano, sembra diafonia su i fili, delle righe vanno , altra blinkano tra on ed off ecc ecc.
        Così l’ho rifatta, visto che le uscite pilotano corrente , ho cambiato logica, messo dei pull up da 1 k sulle uscite e portate a messa e poi le alzo separatamente con un BAT come diodo per disaccoppiare. Ho risolto poco però.
        Sempre problemi di diafonia, in base a come muovo i cavi, circa 30 cm succedono magie.
        Ho visto leggendo l’articolo che è possibile fare una lettura del buffer dell’ IO tipo shift register e poi andare a lavorare sulle singole posizioni. Così ho pensato OK, aumento i tempi, peggo in una sola volta e poi estraggo dalla singola lettura.
        Ma nulla , come lancio il readall sia in low memory che normale, il pro/micro si pianta.
        Dunque le domande sono multiple, la n1 meglio che lasci perdere non nasce per fare una cosa del genere?
        La 2 metto resistenze di pull up di valori più bassi, anche se tiro più corrente diminuisco la diafonia e risolvo?
        La 3 , devo cambiare micro il 32u4 meglio destinarlo ad altre cose?
        Grazie anticipatamente
        Riccardo

        P.S. allego anche il codice che stò usando per fare la varie prove

      • #32264
        Renzo Mischianti
        Amministratore del forum

          Ciao Riccardo,
          così di primo acchito ti direi
          – Potresti provare a leggere simultaneamente più righe o colonne anziché farlo una alla volta. Questo può ridurre i tempi di latenza e limitare la diafonia.
          – Aggiungere condensatori di disaccoppiamento: Se la diafonia persiste, prova a mettere dei condensatori da 100nF tra GND e VCC vicino ai pin I/O.
          – Se il microcontroller è limitato in memoria, potresti considerare l’uso di un buffer esterno o ottimizzare la logica di lettura della matrice per farla più efficiente.
          Ciao Renzo

      Visualizzazione 1 filone di risposte
      • Devi essere connesso per rispondere a questo topic.
      Exit mobile version