Ardutester - Arduino Component Tester (INCOMPLETO)

Sul datasheet.
Leggo appunto che switchare su un pin analogico impostato come output digitale crea disturbi sulla conversione dell'ADC.
Ecco perché dico quindi che conviene spengere il buffer digitale, in questo modo su quel pin resta attiva solo la circuiteria del mux analogico.

In conclusione invece di settare i pin A0-A4 (uso il solo A5) come OUTPUT mi basta mettere nello sketch DIDR0 = 0b00111111; per spegnere il buffer ed ottengo il risultato migliore?

Sì, proprio così.

Grazie astro,
Ma se ho capito quindi stai agfermando la mia stessa cosa. A questo punto come mai i test di pighi vanno in senso opposto ?

16.874K contro i 15.094K senza il #define LCD_PRINT.
:smiley:

edit:

0.6l in linea.

  • Fix minori
  • Digital functions on Analog pins disabled

astrobeed:
...
Semplicemente il compilatore non compila ciò che non viene usato, anche se metti l'include di una libreria in realtà non hai fatto altro che aggiungere una serie di prototipi e di define, se le varie funzioni previste dalla libreria non vengono esplicitamente usate nel programma il compilatore non le considera e rimangono fuori dall'eseguibile.
...

Astro, ma cosa succede se nella libreria hai dichiarato, al di fuori delle funzioni (che poi non usi), delle variabili statiche o delle costanti (sia in RAM che in PROGMEM) ? Ho idea che quelle il compilatore sia comunque costretto ad allocarle ...
.... il che spiegherebbe la cosa.

Guglielmo

gpb01:
Astro, ma cosa succede se nella libreria hai dichiarato, al di fuori delle funzioni (che poi non usi), delle variabili statiche o delle costanti (sia in RAM che in PROGMEM) ? Ho idea che quelle il compilatore sia comunque costretto ad allocarle ...
.... il che spiegherebbe la cosa.

Nelle librerie non si dovrebbero mai allocare delle variabili globali, anche perché il compilatore potrebbe arrabbiarsi, comunque se localmente dichiari delle variabili e/o costanti queste vengono allocate solo se usi realmente la funzione, idem se ci sono delle #define nella libreria, che è la norma, pure queste vengono usate solo se nel programma sono presenti i relativi alias.
Per farla breve, il compilatore, vale per tutti quelli che conosco (non sono pochi :)) , compila e alloca solo il codice, variabili, #define realmente utilizzati, tutto il resto viene ignorato oppure vengono fornite delle warning, non con lo scrauso ide di Arduino, sulle variabili inizializzate (cioè vi è stato caricato un valore) e non utilizzate, sta a te programmatore decidere se eliminarle oppure lasciarle perché serviranno più avanti durante lo sviluppo del software.

Testato:
A questo punto come mai i test di pighi vanno in senso opposto ?

Non mi risulta che a lui viene compilato con maggiore impegno di flash senza l'uso del display :slight_smile:

Mi viene un dubbio, riguardante i MOSFET, più volte abbiamo letto tutti, e a tal proposito ci fu una discussione proprio su una scheda di pighi, che molti mosfet richiedono tensioni di 10-12V per essere pilotati correttamente. Ora visto che lo schema elettrico opera chiaramente con i segnali a 5V provenienti da Arduino, come si comporta lo strumento, p.es., con un IRF540? cioè come fa a fornire indicazini corrette sul suo funzionamento se viene pilotato con metà della tensione necessaria?

Infatti non può :slight_smile:

astrobeed:

[quote author=Michele Menniti link=topic=163227.msg1227918#msg1227918 date=1367656720]
con un IRF540? cioè come fa a fornire indicazioni corrette sul suo funzionamento se viene pilotato con metà della tensione necessaria?

Infatti non può :slight_smile:

[/quote]
ahi :disappointed_relieved:

astrobeed:
Non mi risulta che a lui viene compilato con maggiore impegno di flash senza l'uso del display :slight_smile:

Invece si, come ho riportato prima. Il discorso penso sia dovuto, come dice Astro dici te, ad una cattiva programmazione della libreria LCD I2C

E per curiosità il DCA come si comporta?

pighixxx:
Invece si, come ho riportato prima. Il discorso penso sia dovuto, come dice Astro, ad una cattiva programmazione della libreria LCD I2C

Ho provato a compilare il tuo sketch, con display LCD 16846 Bytes, senza display LCD 15056 Bytes, sicuro di non aver invertito i due risultati ? :slight_smile:

E per curiosità il DCA come si comporta?

Il DCA usa una batteria da 12V :slight_smile:

astrobeed:
Il DCA usa una batteria da 12V :slight_smile:

Ovviamente nulla vieta di prevedere una batteria da 12V, quelle per i telecomandi vanno benissimo, sullo shield per disporre della giusta tensione per ogni tipo di giunzione, andrebbe un attimo rivista tutta la parte hardware.

E' alimentato a 12V, stavo studiandomi le caratteristiche :wink: appena ho letto questa cosa dell'alimentazione mi è venuto il flash :(.
Ora, il circuito del nostro amico tedesco (?) dal quale stai facendo il porting non prevede nemmeno questa cosa?
In caso a mio parere bisogna prevedere un circuito un tantino più complesso che commuti segnali a 12V nel caso in cui..... ecco, come si stabilisce se è il caso in cui? Qui serve sapere come si comporta esattamente un MOSFET che prevede 10-12V di gate quando è alimentato a tensioni inferiori, credo che la resistenza S-D si presenti molto elevata, forse si potrebbe iniziare normalmente a 5V e se tale valore supera una certa soglia commutare sui 12V. Astro?

astrobeed:
Ho provato a compilare il tuo sketch, con display LCD 16846 Bytes, senza display LCD 15056 Bytes, sicuro di non aver invertito i due risultati ? :slight_smile:

Si, scusa. :roll_eyes:

astrobeed:
Il DCA usa una batteria da 12V :slight_smile:

Mi era sfuggito il particolare. (non da poco)

per il momento no (da quanto mi risulta), ma c'è la possibilità di aggiungere dell'hardware per testare gli zener...

Può sia non aprire il canale DS che aprirlo con una certa impedenza, dipende dal valore della Vgsth (tensione minima sul gate per iniziare a condurre).

Uno step/evoluzione futura può essere l'introduzione delle funzionalità presenti sul DCA pro, in particolare la funzione tracciacurve, diventerebbe uno strumento molto interessante per il quale varrebbe la pena di produrre industrialmente la shield.

astrobeed:
Uno step/evoluzione futura può essere l'introduzione delle funzionalità presenti sul DCA pro, in particolare la funzione tracciacurve, diventerebbe uno strumento molto interessante per il quale varrebbe la pena di produrre industrialmente la shield.

:smiley:
Non dirlo a nessuno, ma è quello che sto implementando. Se dai un'occhiata all'ultimo sketch c'è un #define DET_COMP_ANALYSIS

Per gli zener il discorso è lo stesso, puoi misurarli fino ad un valore che sia circa il 15-20% della tensione di alimentazione; cioè se usi 5V al massimo misuri correttamente zener da 3,6V. Per capirci: se applichi tramite una R una tensione di 5V ad uno zener da 5V e ad uno da 12V sempre 5V misuri quindi come fai a sapere qual'è il valore dello zener? se invece usi uno zener da 3,6V leggi questa tensione che è inferiore a quella di pilotaggio, ecco perché puoi avere la certezza del suo valore.
Tornando ai mosfet la mia idea è questa: se il DCA-55 o lo strumento di pighi forniscono come misura il valore di questa impedenza, si potrebbe stabilire una soglia massima (p.es. 1 ohm o inferiore) oltre la quale si è certi che il MOSFET è sotto-pilotato, quindi si commuta sul gate una tensione di 10-12V e si rifà la misura; chiaro che il mio è solo uno schema logico, le cose saranno un tantino più complesse (p.es. se a 5V il mosfet è completamente interdetto come fa il sw a capire che è un mosfet?) ma si può fare secondo me.

Pighi: ma il tracciacurve richiederebbe a questo punto un LCD grafico, se si vuole restare a livello shield.... diccelo prima che compriamo un migliaio di 16x2 per poi darli in beneficienza :sweat_smile:

Nessun lcd :wink:

pighixxx:

[quote author=Michele Menniti link=topic=163227.msg1227980#msg1227980 date=1367661395]
Pighi: ma il tracciacurve richiederebbe a questo punto un LCD grafico, se si vuole restare a livello shield.... diccelo prima che compriamo un migliaio di 16x2 per poi darli in beneficienza :sweat_smile:

Nessun lcd :wink:
[/quote]
ok 8)