Versione 0.6h
Ci stiamo avvicinando alla versione finale.
Alcune considerazioni:
#define LCD_PRINT //Permette l'Output su LCD
#define DEBUG_PRINT //Permette l'Output su console Seriale
l'Output su seriale sembra funzionare bene.
l'Output su LCD funziona ma fino a quando non implemento il pulsante non visualizza tutte le informazioni sul componente.
Ho cercato di fare più pulizia possibile al codice. (E altra ce ne vorrà)
PaoloP:
Qui però bisogna scegliere: se lavori con i registri il codice è veloce ma non portabilissimo.
Se lavori con le funzioni definite da Arduino ad un livello più alto, il codice è più portabile ma un pò più lento.
Bisogna trovare una via di mezzo. Come dici te però la portabilità sarà un bel problema.
PaoloP:
Poi sinceramente non ho capito perché incapsuli le funzioni wait_20ms o wait_5ms.
Non fai prima a scrivere nel codice il delay e la chiamata alla funzione di lettura senza rimandare ad una funzione che ne chiama un'altra.
Sono d'accordo anche io per la modularizzazzione, ma quando è troppo....
Poi, comunque, il compilatore ottimizza, ma il codice diventa illeggibile.
Release dopo release ottimizzo e pulisco. Se ti ricordi all'inizio avevo fatto una serie di funzioni waitXXXXus(), adesso c'è ne solo una
Considerazioni finali:
Lo sto testando, posso affermare con serenità che è uno strumentino interessante, superiore al DCA (Non penso di dire boiate).
Buon lavoro,
pighixxx:
Lo sto testando, posso affermare con serenità che è uno strumentino interessante, superiore al DCA
Questo ce lo potrebbe dire Michele, che, se non ho capito male, ha anche il DCA.
Appena sarà terminato il lavoro potrebbe fare una recensione comparativa. (Se ne ha voglia, s'intende)
PaoloP:
Questo ce lo potrebbe dire Michele, che, se non ho capito male, ha anche il DCA.
Appena sarà terminato il lavoro potrebbe fare una recensione comparativa. (Se ne ha voglia, s'intende)
Infatti, la mia voleva essere una provocazione
Però questo fa più del DCA...
Quando viene visualizzata una bandierina sull'lcd vuol dire che sono disponibili ulteriori informazioni per il componente (Premere il pulsante per visualizzarle)
Se non si vuole usare il pulsante rimuovere la seguente riga: #define BUTTON_INST
Nota:
Il pulsante è collegato tra il pin2 e la massa.
Confermo di avere il DCA-55, non ho gelosie e non ho bisogno di essere provocato , sono molto incuriosito dal fatto che legga anche i componenti passivi, poiché possiedo una vasta e solida strumentazione sono in grado di fare prove serie e confermare o meno la validità dello strumento. Il problema, come detto, è il tempo, ho non meno di 5 progetti da completare, sono in ritardo e sono incasinato all'UNI, però ho anche un'idea, lasciatemi ragionarci su.... per ora complimenti!!!
Pighixxx,
nel setup, dove c'è l'inizializzazione dell'ADC, prova ad inserire:
DIDR0 = 0b00111111; //DIDR0 – Digital Input Disable Register 0 - Disable digital input on analog pins
serve per disabilitare gli ingressi digitali collegati ai pin analogici che creano imprecisioni nelle letture.
--> ATmega ADC tutorial | Open Music Labs
Potresti fare anche una versione R3 della scheda? Devi aggiungere i pin SDA e SCL dopo AREF e GND.
In quel modo la scheda è utilizzabile anche con la MEGA e la Leonardo, anche se il codice è ancora da testare con tali schede.
PaoloP:
Pighixxx,
nel setup, dove c'è l'inizializzazione dell'ADC, prova ad inserire:
DIDR0 = 0b00111111; //DIDR0 – Digital Input Disable Register 0 - Disable digital input on analog pins
serve per disabilitare gli ingressi digitali collegati ai pin analogici che creano imprecisioni nelle letture.
--> ATmega ADC tutorial | Open Music Labs
Interessante l'articolo. Do un'occhiata e provo. Grazie
PaoloP:
Potresti fare anche una versione R3 della scheda? Devi aggiungere i pin SDA e SCL dopo AREF e GND.
In quel modo la scheda è utilizzabile anche con la MEGA e la Leonardo, anche se il codice è ancora da testare con tali schede.
ho visto che includi due librerie solo se si vuole usare l'LCD, mi chiedevo se servisse veramente, perche' credo che se le librerie incluse non vengono usate nel codice compuque non vengono compilate giusto ? quindi potresti lasciarle e basta
lo schema elettrico di questo shield ? perche' non lo posti insieme alla scheda nel primo post ? siamo in Megatopic mica bruscolini
Inoltre per il discorso leggibilita', essendo un codice bello lungo, io mi trovo molto bene con l'uso delle Tab nell'IDE ufficiale, chiarisce e distribuisce meglio il tutto.
Paolo, ovviamente studierò il tuo link ma soprattutto voglio approfondire sul data-sheet, la cosa mi interessa non solo per lo studio sull'ADC, che è a medio termine, ma soprattutto per il Frequenzimetro LCD, settimana prossima mi arrivano i PCB e quindi dovrò iniziare l'ottimizzazione del codice e soprattutto della gestione dell'ADC che gioca un ruolo importante, quindi proverò quella riga di comando, visto che uso un solo pin Ax e gli altri li ho lasciati volutamente liberi.