analogComp, una libreria per gestire il comparatore analogico

"Grazie Leo, ti seguo!"

Leo che impedenza in entrata ha il comparatore del 328?

BrainBooster: Leo che impedenza in entrata ha il comparatore del 328?

Non lo so, non ho trovato il dato sul datasheet.

Leo, ti avevo promesso le prove ma ho dovuto mandare il DSO in assistenza per una verifica. Ieri sera sono passato un paio d'ore al lab ed ho implementato nel mio Capacimetro il cambio portata automatico, la prossima volta metto l'autoreset, vorrei saper programmare quanto so maneggiare le logiche TTL/CMOS :)

[quote author=Michele Menniti link=topic=130533.msg986311#msg986311 date=1352282997] Leo, ti avevo promesso le prove ma ho dovuto mandare il DSO in assistenza per una verifica. Ieri sera sono passato un paio d'ore al lab ed ho implementato nel mio Capacimetro il cambio portata automatico, la prossima volta metto l'autoreset, vorrei saper programmare quanto so maneggiare le logiche TTL/CMOS :) [/quote] Ed io vorrei capirci di elettronica quanto so programmare ;) L'erba del vicino è sempre più verde, mettiamola così XD

basta togliere la siepe e fare un giardino unico :) ;)

Tu mi capisci :wink:

leo72:

BrainBooster: Leo che impedenza in entrata ha il comparatore del 328?

Non lo so, non ho trovato il dato sul datasheet.

Credo non ci sia perche' dipende da quali ingressi si usano.

Testato:

leo72:

BrainBooster: Leo che impedenza in entrata ha il comparatore del 328?

Non lo so, non ho trovato il dato sul datasheet.

Credo non ci sia perche' dipende da quali ingressi si usano.

Ma internamente c'è sempre e comunque un op-amp, questo avrà delle caratteristiche tecniche, no? ;)

certo, ma non potendo accedere direttamente ai pin di ingresso del componente, l'impedenza di ingresso sara' influenzata dai pin e dalla configurazione che usi. Se connetti i pin del componente agli Analogpin avrai una certa impedenza di ingresso, se ci attivi la pullup cambiera', se scegli l'aref come pin sara' ancora diverso Cioe' se anche volendo si puo' indicare il valore richiesto, il componente pero' e' chiuso in una scatola che e' raggiungibile solo attraverso altri componenti. E' un dato inutile da dare secondo me

Ho capito cosa vuoi dire.

Testato, non condivido quello che dici, perchè al massimo l'impedenza di entrata di un opamp usato come comparatore analogico è il punto dipartenza dei calcoli necessari alla progettazione della rete esterna di polarizzazione e delle correnti in gioco no? perchè dici che è un dato inutile?

non sto' dicendo che e' inutile dare questo valore per un OAmp in generale, ma per un Oamp che e' "nascosto" dietro ad altri ingressi diventa un dato fuorviante. Il nostro OA non ha accesso diretto a due pin esterni, ma arriva all'esterno tramite diversi pin, a scelta del programmatore, i quali pin avranno proprie caratteristiche. A questo punto si dovrebbe dare l'impedenza di ingresso di ogni modalita' di connessione, perche' di certo se usi Aref come pin Rispetto ad A0, ci sara' un'impedenza diversa

Tu come la vedi ? (cit.: Quelo) :)

Credo che sia giusto quello che dici, ma alla fine puoi giocare con uno solo dei due ain che può essere connesso ad aref oppure ad uno qualsiasi degli ingressi multiplexati dall'adc (sbaglio Leo?) quindi le impedenze da conoscere sarebbero due. Considerazione collaterale... ma se l'impedenza è diversa a seconda del collegamento,avremo misure differenti usando pin differenti?! c'è grossa crisi (cit.: Quelo) smiley

BrainBooster: Credo che sia giusto quello che dici, ma alla fine puoi giocare con uno solo dei due ain che può essere connesso ad aref oppure ad uno qualsiasi degli ingressi multiplexati dall'adc (sbaglio Leo?) quindi le impedenze da conoscere sarebbero due.

AIN+ si può collegare sia al pin AIN0 che alla tensione interna di riferimento, mentre AIN- si può collegare sia al pin AIN1 sia ad uno degli ingressi analogici (non AREF).

Compilando per ATTiny85

In file included from C:\arduino-1.0.3\hardware\tiny\cores\tiny/Stream.h:24,
                 from C:\arduino-1.0.3\hardware\tiny\cores\tiny/TinyDebugSerial.h:31,
                 from C:\arduino-1.0.3\hardware\tiny\cores\tiny/WProgram.h:18,
                 from C:\arduino-1.0.3\hardware\tiny\cores\tiny/Arduino.h:4,
                 from C:\arduino-1.0.3\libraries\analogComp\/analogComp.h:32,
                 from C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp:7:
C:\arduino-1.0.3\hardware\tiny\cores\tiny/Print.h:37:1: warning: "BIN" redefined
In file included from c:/arduino-1.0.3/hardware/tools/avr/lib/gcc/../../avr/include/avr/iotn85.h:38,
                 from c:/arduino-1.0.3/hardware/tools/avr/lib/gcc/../../avr/include/avr/io.h:284,
                 from c:/arduino-1.0.3/hardware/tools/avr/lib/gcc/../../avr/include/avr/interrupt.h:38,
                 from C:\arduino-1.0.3\hardware\tiny\cores\tiny/WProgram.h:8,
                 from C:\arduino-1.0.3\hardware\tiny\cores\tiny/Arduino.h:4,
                 from C:\arduino-1.0.3\libraries\analogComp\/analogComp.h:32,
                 from C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp:7:
c:/arduino-1.0.3/hardware/tools/avr/lib/gcc/../../avr/include/avr/iotnx5.h:55:1: warning: this is the location of the previous definition
C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp: In member function 'uint8_t analogComp::setOn(uint8_t, uint8_t)':
C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp:57: error: 'DIDR1' was not declared in this scope
C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp: In member function 'void analogComp::setOff()':
C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp:112: error: 'DIDR1' was not declared in this scope
C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp: At global scope:
C:\arduino-1.0.3\libraries\analogComp\analogComp.cpp:159: warning: 'ANALOG_COMP_vect' appears to be a misspelled signal handler

E' previsto un aggiornamento della libreria per correggere questo errore che previene la compilazione?

Ora verifico...

Ho scritto un controllo troppo semplicistico relativamente alla parte in cui provvedo a disattivare gli input digitali sui pin AIN0/1 quando vengono usati come ingressi per il comparatore. Ho corretto mettendo un check più complesso.

Però ho trovato un altro problemino, appena ho terminato la correzione metto online la nuova versione.

EDIT. è online la versione 1.1.0 provala e fammi sapere, non ho potuto verificarla in pratica se sulla Tiny85 funziona (la compilazione comunque va) perché non ho possibilità di farlo.

Ti ringrazio, appena posso la provo sul Tiny85, per il momento ha compilato con successo

Col seguente codice

  analogComparator.setOn(INTERNAL_REFERENCE, A3);
  analogComparator.enableInterrupt(MiaFunzione);

Purtroppo sembra non chiamare MiaFunzione..