voltammetria fatta in casa

Myttex Forum ha chiuso definitivamente. Non è più possibile inviare messaggi, ma il contenuto è ancora consultabile in questo archivio.

theiden

2013-05-15 08:28

Non avevo idea di dove postare questo argomento se qui, in elettronica o in software comunque:

vorrei sapere se c'è un modo per allestire un sistema che faccia la voltammetria ciclica in casa senza acquistare degli strumenti assurdamente cari. alla fine il concetto è semplice serve solo un generatore di tensione che crei una rampa di potenziale e un multimetro che campioni molto velocemente, stavo pensando che un pc può fare entrambe le cose sia dall'entrata-uscita audio che dalla usb però non so se esiste un programma per fare ciò, in alternativa usare un generatore di funzione (anche se quello che ho io al minimo fa onde triangolari a 0,2Hz che sono un po' veloci) e un multimetro che campioni, in questo caso ne ho uno che si collega al pc ma campiona al minimo ogni 1s che non è proprio rapido... o al limite costruire qualche apparecchio home made.

cosa ne pensate? avete delle idee o meglio avete mai provato?

grazie, theiden.

MarcoA

2013-05-16 07:34

Non ho mai provato, ma per applicazioni di acquariofilia (analisi in continuo di pH, redox, conduttività) sto pensando ad Arduino, una cheda con microprocessore e diverse uscite che potrebbe propriofare al caso: è economico e molto versatile.

theiden

2013-05-16 08:05

ne ho sentito parlare ma non ho mai approfondito, ora cerco qualcosa in rete, tu hai un link di riferimento o una guida per capire come funziona (interfaccia, programmazione, ecc)?

NaClO3

2013-05-16 09:31

Arduino, il famoso Re italico!!

B-lab

2013-05-16 18:09

Salve, mi introduco nella discussione perché l'argomento tocca un argomento che mi sta a cuore; io sconsiglio vivamente di usare Arduino perché ha un costo spropositato rispetto a quello che offre, mi spiego meglio. Arduino è una scheda con un processore di potenza paragonabile ( o se vogliamo un po' superiore ) a un PIC Microchip di fascia medio-alta tipo PIC24FJ64GB002 o PIC32MX220F032B tanto per fare due nomi ben noti; questi hanno l'inconveniente che ci si deve sviluppare il software da soli ( nulla di infattibile con un po' di voglia di fare e la sterminata documentazione della Microchip ), ma al contrario di Arduino vengono inviati nel numero di 3-5 a titolo di campioni GRATUITAMENTE dalla Microchip. Anche considerando il costo del programmatore ( che dura una vita ) il prezzo è minore se consideriamo che possiamo avere un PIC dedicato per ogni progetto. Se invece, e penso sia questo il caso, si preferisce semplificarsi la vita per quanto riguarda la programmazione per una cifra simile, anche se un po' superiore, ad Arduino ( 40-45€ ) si possono comprare dei COMPUTER in una scheda ( RaspberryPi piuttosto che BeagleBoard ecc ) che sono dei veri e propri computer ( 700MHz-1GHz di processore ecc ) dotati di GPIO facilmente gestibili in Python C e tutti i principali linguaggi. Arduino può essere comodo come standard ma costa uno sproposito rispetto a quello che è realmente ed esistono alternative molto più valide, che permettono tra l'altro un approccio più sano all'elettronica digitale. Saluti Bond

I seguenti utenti ringraziano B-lab per questo messaggio: theiden

theiden

2013-05-16 19:00

Allora io non so assolutamente niente di questo argomento, so solo che i pic sono dei microchip programmabili, anche se conosco le basi di alcuni linguaggi (python, C) non credo che sarei in grado programmarne uno per i miei scopi. Dici che per arduino (o questi computer-scheda) non diminuisce la difficoltà? inoltre non ho capito la cosa della Microchip: tu fai una richiesta e loro ti mandano il circuito bello finito e programmato? se ho capito bene mi incuriosisce il prezzo! Cmq quello che chiedevo io all'atto pratico non è difficile: variare una tensione da un certo valore ad un altro a una velocità fissata e misurare in tempo reale la tensione, si potrebbe fare anche a mano con alimetatore da banco e multimetro, certo facendo un sacco di errore ma si potrebbe, però non so se a livello di programmazione si possa fare facilmente. La usb si che usa 5V non so se sono modulabili, altrimenti si risparmierebbe anche l'interfaccia hardware. In ogni caso grazie per le risposte mi state dando degli spunti!

GabriChan

2013-05-16 19:10

Ciao B-Lab credo che Arduino per quel tipo di applicazioni possa andare bene, come fai notare l'unica pecca è che forse è un po caro, ma per me si ripaga ne tempo minore che serve per la programmazione, è uno standard e quindi si trovano librerie di tutti i tipi, ha già montato 6 ingressi analogici a 12bit, e la tensione la puoi regolare pilotando con il PWM un Mosfet e stabilizzarla con un condensatore elettrolitico, poi via USB puoi leggere i dati e salvarli in un file usando il banalissimo iperterminal e analizzarli poi con excel o simili. RaspberryPi , BeagleBoard sono belli ma forse un po sprecati per quel tipo di utilizzo in più hanno la complicazione di necessitare di monito, tastiere, mouse e alimentazione.

B-lab

2013-05-16 20:44

theiden i PIC sono dei processori che vanno programmati di volta in volta secondo i propri scopi. La microchip fornisce gratis i processori a titolo di saggio campione due ordini da due componenti al mese al massimo. Con 15-20 euro ti compri il programmatore USB con cui programmi tutti i processori della microchip che spaziano da i 12Fxxx che sono minuscoli con architettura a 8 bit ( 8 pin 4 o più ingressi analogici, modulo spi i2c e pwm e molto altro ) ai 16Fxxx sempre 8 bit ma più grandi fino ai 40 pin del 16F877 e con più o meno funzioni ai 18Fxxx ancora a 8 bit ma dotati di interfacce digitali più avanzate ( USB, ethernet, etc ) fino ai più avanzati a 16 e 32 bit con sopra veramente di tutto. Si programmano in C solitamente e non servono conoscenze troppo esoteriche ci sono molti corsi on line e i datasheet della microchip sono decisamente esaurienti sul funzionamento dei processori, in più per applicazioni particolari ( leggere un pen drive etc ) ci sono delle "application note" della stessa forza. GabriChan, Arduino va sicuramente bene se con questo intendiamo che andrà ( probabilmente al primo colpo ). Ma mi domando, se l'obbiettivo è la pratica ("tutto va e nessuno sa il perché";-) allora tanto vale comprare un raspberry, e se sarà sprecato pace magari domani devi fare un altro lavoro del genere e sarà bello e pronto. In più può fare direttamente acquisizione ed elaborazione in diretta dei dati ( 3M sample al secondo senza battere ciglio con un AD da 13 bit che costa 2 euro, o campioni gratuiti on line, sono una cosa dignitosa per molti usi ), e mandarteli direttamente sul pc tramite la rete. Niente problema di tastiera un cavo di rete o ancora meglio un wifi via usb e con ssh fai tutto. Semplice e veloce. I dati arrivano puliti in forma grafica sul tuo pc. Se invece ti interessa capire come lavora l'elettronica digitale registri di sistema ecc allora via di pic. Spendere 35€ per arduino che è uno standard solo hobbistico che favorisce fortemente l'acquisto del suo hardware rispetto alla progettazione di periferiche nuove, e che in generale non avvicina al mondo né dell'informatica né dell'elettronica, secondo me è un errore. Per lo scopo del topic secondo me l'ideale è raspi + AD 12bit che è facilmente gestibile e da risultati eccellenti. Se sei interessato possiamo approfondire il discorso tecnico.

I seguenti utenti ringraziano B-lab per questo messaggio: theiden

theiden

2013-05-16 21:50

non avevo capito cosa intendevi con "costo del programmatore" l'ho capito cercando "programmatore usb". Provo a fare un riassunto delle opzioni per vedere se ho capito: - PIC: serve un programmatore usb e un compilatore C -arduino: è tutto compreso rispetto all'opzione PIC ma costa di più -RaspberryPi: è in pratica un processore del livello di un pc, ma non ho capito come funziona xD a parte le prestazioni che differenza c'è con le opzioni precedenti? si attaccano direttamente al pc? si compilano con C?

B-lab

2013-05-16 21:58

Si chiamano PIC. Comunque il concetto di PIC e Arduino è chiaro, quello che ti sfugge è che il raspberry è effettivamente un PC su cui per altro gira un sistema linux. Ovvero se installi gcc puoi compilare un listato C e lanciare l'eseguibile esattamente come sul tuo PC, se preferisci python lanci l'interprete e così via. Se attacchi un monitor e dai startx ti parte normalmente l'interfaccia grafica desktop su cui puoi navigare in internet con firefox ascoltare la musica.. In aggiunta ha delle librerie che ti permettono di controllare degli I/O anche tramite periferiche SPI, I2C ecc ecc

theiden

2013-05-16 22:14

non so perchè ho scritto pin... ora correggo. adesso ho capito bene la differenza tra i tre, però a questo punto invece di usare raspberry perchè non potrei usare direttamente il mio pc? forse la cosa è un po' più complessa ma credo sia una questione di uscite. Comunque ti ringrazio molto, ora magari mi guardo qualche guida in merito e poi vedo qual'è la soluzione migliore per me.

GabriChan

2013-05-17 09:25

B_Lab, lo so che Raspberry è notevole, ce lo :-) ho anche arduino, dipende come dici del tempo e della voglia che si ha di mettersi a smanettare, arduino è più semplice tutto li, e quindi più veloce da usare. Per generare la rampa a triangolo lo si può fare tranquillamente con il PWM, il mio dubbio e sulla lettura della corrente,che per quello che ho visto sono micro Ampere, e quindi ci vuole sicuramente un interfaccia per adattare il segnale per l'ingresso analogico.

theiden

2013-05-19 19:01

Mi sono documentato un po' e dovrei essere in grado di fare diverse cose con arduino uno però da quello che ho capito usare il PWM con un filtro passa basso dà una risposta troppo lenta. Una soluzione potrebbe essere usare un dac ma non so bene come fare. Mi sembra incredibile che nessuna versione di arduino abbia uscite analogiche!!

Ho visto che un pic possibile potrebbe essere PIC18F4550 però tra programmatore e scheda prototipi a comprarle (per avere l'equivalente di arduino già montato) costano quanto o più di arduino...

sinceramente non saprei proprio che fare :S

GabriChan

2013-05-20 16:26

Ciao theiden qui trovi qualcosa dagli un'occhiata

http://embeddednewbie.blogspot.it/2011/02/review-of-arduino-dac-solutions.html

per me il problema rimane più l'ingresso analogico che l'uscita...

vediamo se B-Lab ha qualche consiglio.

theiden

2013-05-20 19:01

si avevo letto quella pagina e ho trovato anche dei video utili potrei provare. Per l'entrata pensavo a un semplice amplificatore a transistor.

B-lab

2013-05-20 21:39

Ci ho pensato un po'. Secondo me la soluzione migliore per te in fin dei conti è un mini pc ( raspberry pi o chi per lui ). Se sei interessato a questa soluzione posso darti qualche consiglio pratico e fornirti un po' di materiale software per il progetto. Se ho capito bene serve, in definitiva un sistema che ti permetta di variare con continuità la tensione in un certo range e al contempo acquisire dati (ovvero valori di tensione) per poi elaborarli. Secondo me la parte più problematica è la prima infatti ti servirebbe una DAC per fare le cose per bene che però va a salti, ovvero non puoi variare la tensione con continuità, ma solo a certi valori ben definiti. Mi permetto di nutrire qualche dubbio rispetto all'approccio PWM/mosfet/condensatore elettrolitico che secondo me non può garantire una stabilità accettabile per l'applicazione richiesta, inoltre se l'assorbimento fosse eccessivo la tensione inevitabilmente si abbasserebbe falsando di fatto la misurazione; per rimediare bisognerebbe usare un altro input analogico per sapere che tensione c'è effettivamente ai capi della cella, ma allora cominciano a esserci un po' troppi ADC in giro.

Per il lato input, non ci sono problemi ho già ampiamente testato degli ADC ( convertitori analogico digitale ) a 13 bit che comunicano in SPI; Ne ho diversi, tutti più o meno simili, se fossi interessato ti posso dire come ottenerli.

Saluti, B-lab.

theiden

2013-05-21 10:34

allora quello di cui c'è bisogno è un sistema output di variazione del potenziale in modo continuo con una funzione definita che per coprire tutta la chimica in soluzione vada da +2.5 a -2.5 V con una precisione del mV, un sistema input per la misure del potenziale con precisione del mV e un sistema input per la misura della corrente con una precisione del uA. Da quello che ho visto (poco) raspberry pi ha uscite solo digitali anche se molto ben programmabili quindi potrebbe arrivare a un analogico quasi perfetto, arduino ha già l'input analogico ma non l'output che sarebbe da programmare in modo un po' più difficoltoso, altri pic hanno sia l'input che l'output analogico. quello che mi lascia un po' perplesso che raspberry pi sia un calcolatore che costa meno di 40€ e possa fare cose che un normale pc non può, a questo punto non potrei usare direttamente un uscita del pc come l'uscite audio o usb? ora come ora sarei più orientato a un pic anche se la facilità d'uso di arduino mi ispira molto, però se riuscissi a programmare qualche uscita del mio pc sarei anche più contento. Molto sta anche nel vedere se questi sistemi sono sensibili alle correnti e ai voltaggi richiesti. PS per l'amplificazione del segnale ho trovato questa pagina molto interessante: http://www.strumentazioneelettronica.it/tecnologie/analog-test/picoamperometri-e-misure-di-basse-correnti-201302181062/

B-lab

2013-05-21 12:55

La precisione che richiedi nel misurare tensioni è elevata circa 12-14bit, fuori dalla portata delle normali periferiche "on-board" bisogna prendere un chip dedicato, con un chip che gli fornisca un Vref preciso se non se lo fa da solo. Quella che richiedi per le correnti nell'ordine del µA è MOLTO elevata, e ti causerà non pochi guai; infatti non si può misurare direttamente una corrente, ma bisogna misurare una differenza di potenziale ( ad esempio ai capi di una resistenza di sensing ) e poi da quest'ultima ricavare la corrente. Considerando che questa resistenza di sensing deve essere abbastanza piccola da non variare significativamente la corrente ( dell'ordine di grandezza del µA!!!! ) direi che questo rappresenta un primo scoglio, e non da poco. Infine variare con continuità una corrente con una precisione di 1 mV sia positiva che negativa. Anche qua direi di scordarci gli output analogici "on board", ti serve una DAC da 13-14 bit, a seconda di quanta corrente assorbe la cella, e delle caratteristiche della DAC, potrebbe essere necessario ( e probabilmente lo è ) anche uno stadio finale di amplificazione di potenza che conservi un'elevatissima linearità ( stiamo parlando dello 0.02% O.o ). Quindi ecco secondo me se è la tua prima esperienza in questo campo non è uno scherzo; io appena ho tempo guardo se riesco a trovare qualche soluzione pratica per questi aspetti.

Saluti

warco

2013-08-03 10:18

ciao, appena iscritto per dar il mio contributo al thread.

credo proprio che raspberry sia abbastanza inutile in questo caso, 1GHz per campionare V/I mi sembra esagerato, tanto a plottare si arrangia il tuo pc, oltre che elaborare i dati (origin, matlab, . . . excell? )

arduino non mi pare sia sta grossa spesa, ce ne sono anche da 20€ (ArduinoUno)

come dice b-lab il grossogrosso scoglio è la misura della corrente, ma ce ne sono degli altri:

quando c'è il trasferimento di elettroni tra speci Red e Ox si genera una cella con una caduta di potenziale, quindi, anche se tu riuscissi a misurare con elevata precisione la corrente, avresti la coordinata del potenziale sfalsata. non saprei a livello circuitale se ci sia un mezzo tramaccio con l'elettrodo di riferimento per ovviare al problema, ma credo di si.

comuuuunque, ora vi giro una chicca trovata qualche mese fa, m'ero ripromesso di provar a realizzarla quest'estate, ma manca tempo e voglia.

http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0023783

quimico

2013-08-03 12:17

Ma presentarsi? Leggere regolamento? Troppa fatica.

Excel ha una sola elle *Si guarda intorno*

Secondo me a casa non si fa voltammetria... Meglio farla seriamente alle superiori o ancora meglio all'università... Al prossimo giro cosa proporrete NMR casalingo? *help*

theiden

2013-08-03 13:19

@warco: Benvenuto, ho rimandato quell'esperimento, ma di ritorno dalle vacanze spero di continuare e il tuo aiuto potrebbe essere utile!

@Quimico: Non sono d'accordo, warco anche se non si è presentato, cosa poi non così grave, ha dato un contributo a una discussione già in atto cosa che fanno ben pochi nuovi iscritti che in genere piombano subito con delle richieste. Inoltre provare a riprodurre in casa certi esperimenti anche se complicati dovrebbe essere uno stimolo e non ostacolato (ricordo ad esempio che qualcuno tempo fa fece una specie di spettrofotometro VIS).

E infine basta con queste correzioni dai a chi importa se in un messaggio c'è qualche errore basta che non venga scritto come un SMS...

quimico

2013-08-04 07:09

Ho detto la mia, e mi pare possa ancora farlo quindi non vedo dove sia il problema.

Ok sperimentare ma da qui a fare voltammetria ne passa... E penso di aver tutte le carte per dire la mia...

Saluti

theiden

2013-08-04 09:05

certo che puoi dire la tua, dico solo che uno non si deve limitare solamente perchè una cosa sembra troppo difficile, se la si può immaginare la si può fare.

A conferma del fatto che non stiamo parlando di fantascienza ecco i primi due articoli che ho trovato facendo una ricerca lampo su google:

http://makezine.com/2011/09/13/cheapstat-an-open-source-diy-potentiostat/

http://makezine.com/2007/08/09/ardustat-low-cost-arduino/

quello che costa di più viene 80$ cifra non indifferente ma comunque meno in un agitatore magnetico (senza riscaldamento tra l'altro) nuovo.