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
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
Autore
Post
Visualizzazione 1 filone di risposte
Devi essere connesso per rispondere a questo topic.
Mantenere un repository, un sito o un forum è come prendersi cura di un giardino - richiede costante attenzione e cura per farlo prosperare. Se sei un abile giardiniere (o programmatore!) e vuoi aiutarci a far fiorire il nostro sito, saremmo felici di averti nel nostro team! Cerchiamo anche scrittori talentuosi e moderatori per il nostro forum per aiutarci a far crescere la nostra comunità. Se sei interessato a unirti a noi, non esitare a contattarci per farci sapere in che modo puoi contribuire!
Sei un appassionato di elettronica o programmazione? Condividi la tua conoscenza con gli altri, scrivi un semplice tutorial o come fare un grande progetto Contattami. share_your_ideas@mischianti.org
The content displayed on this website is protected under a CC BY-NC-ND license. Visitors are prohibited from using, redistributing, or altering any content from this website for commercial purposes, including generating revenue through advertising. Any unauthorized use is a violation of the license terms and legal action may be taken against individuals or entities found to be in violation.
You must also provide the link to the source.
Benvenuti nella nostra famiglia!
Per offrire le migliori esperienze, utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Acconsentire a queste tecnologie ci permetterà di elaborare dati come il comportamento di navigazione o gli ID unici su questo sito. Non acconsentire o ritirare il consenso può influire negativamente su determinate funzionalità e funzioni.
Functional
Sempre attivo
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Per offrire le migliori esperienze, utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Acconsentire a queste tecnologie ci permetterà di elaborare dati come il comportamento di navigazione o gli ID unici su questo sito. Non acconsentire o ritirare il consenso può influire negativamente su determinate funzionalità e funzioni.
Functional
Sempre attivo
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.