Example Code

Chronoamperometry Data Collection and Basic Analysis

Code and Documents

Attachment

Functional Description

Main_chronoamp_page.vi is the main program.  It calls sub-vi's which:

(1) Collect chronoamperometry data using analog I/O and a potentiostat
(2) Displays the chronoamperometry data
(3) Extracts the electrode area from chronoamperometry data using the Cottrell Eq'n
         (but you need to know the diffusion coefficient)
(4) Extracts the Diffusion Coefficent from chronoamperometry data using the Cottrell Eq'n
         (but you need to have previously measured the electrode area)

Caveats and Additional Notes

************************************************************************************
An update has been uploaded.   This update has been in use

in my lab for several weeks now and includes several corrections.

(1) The data processing vi's stay open so you can use them.

(2)  An issue with saving the time.current data was corrected.

(3)  The programs have been tested in Labview 8.0, so the Labview 8.0 versions are in the update.  They should work fine in higher versions with some minor vi renaming substitutions.

Description of sub-vi's


The "chronoamp_engine.vi" is the main data collection program.  It is developed for an

Princeton Applied Research potentiostat, but the GPIB connection is used only to set the

resting potential and turn the cell on and off.  With an analogue potentiostat, these

functions could be done manually, as long as the rest potential is entered into the

appropriate location in the program.  This vi uses an analogue output attached to the

external input of the potentiostat to control the electrode potential.  It also uses a

pair of analogue inputs attached to the E-output and I-outputs of the potentiostat to

collect data.

The data collection rate of 500 hz should be more than sufficient for chronoamperometry.

The current range setting is the sensitivity of the potentiostat, and it is used to

translate the voltage output of I-output into current (A).  The program saves a

spreadsheet file columns of time, potential and current.

Screen shot:

engine.jpg

"Chronoamp_engine.vi" is set up so it can do double potential-step chronoamperometry, but

no analysis vi's have been developed for double potential step methods as of this time.

The E-settings are self-explanatory.  The tau settings need to add up to the total time.  The pulse waveform is assembled

by "pulse waveform generator.vi" which has the following screenshot:

pulse.jpg


The "display chronoamp data.vi" displays the chronoamperometry potential and current data

on a single display.  The user has a chance to specify which file to display before the

program runs, and then can look at the file for a while before choosing to end the

sub-vi.  The Y-axis on the current data can be expanded so that it can be displayed on

the same axis set as the potential.

Screen shot of a very dilute solution (1.1E-4 M)

display.jpg

The "chronoamp_area.vi" uses the Cottrell Equation to calculate the area of the electrode

from a known concentration of a standard electroactive material, the number of electrons

transfered, and the diffusion coefficent.  And a file generated by the chronoamp engine.

You should standardize the electrode area before trying to do other chronoamp

experiments.  The display shows a plot of current vs. the reciprocal of the square root of time (A standard Cottrell plot).

The user defines the linear region (high value and low value, red line) to use to calculate the linear regression,

whose slope will give the area

area.jpg

The "chronoamp_diffusion.vi" uses the Cottrell Equation to calculate the diffusion

coefficient of the electroactive compound under study from a known concentration, the

number of electrons transfered, and the electrode area.  And a file generated by the

chronoamp engine.  This vi is almost identical to the one that calculates area.

The "regression.vi" is a program developed for another application which has been

co-opted for this program.  Some versions of Labview lack a regression function, so

having the vi defined from scratch will increase how robust the set of vi's are.  The

regression vi is designed to do regressions of multiple sets of y-axis data against one

set of x-axis data, and it returns the slopes, the intercepts, and the regression

statistics for each Y-axis set.

*************************************************************************************
The Theory of Chronoamperometry is extensively discussed in Chapter 5 of Bard and

Faulkner, Electrochemical Methods: Fundamentals and Applications, 2nd Ed, Wiley, New

York: 2001.

*************************************************************************************

To get electrode areas, standardize with:
Diffusion coefficient of [Fe(CN)6]3- in 0.1 M KCl at 25°C is 0.76E-5 cm2/sec
Diffusion coefficient of [Fe(CN)6]4- in 0.1 M KCl at 25°C is 0.65E-5 cm2/sec
(According to Bard+ Faulkner ref above)

OR, for nonaqueous solvents:

Nikos G. Tsierkezos J. Solution Chem (2007) 36:289–302 says that ferrocene's diffusion coefficent is:
Acetonitrile at 273K: 1.74E-5 cm2/sec
CH2Cl2 at 273K: 1.12E-5 cm2/sec
Ref also gives other temperatures and a bunch of other solvents.

**************************************************************************************

A simulation program:

ESP 2.4 by carlo Nervi will simulate chronoamperometry data.
http://lem.ch.unito.it/chemistry/esp_manual.html

The data generated by the chronoamp engine is not in the right format to be directly

imported into ESP, but a translation program should not be too hard to write.

*************************************************************************************

More chronoamp tips are in the blog.

*************************************************************************************

Update Dec 2011:

A Labview 2010 version of this program implemented on a NI-USB-6251-BNC interfaced to a Bioanalytical Systems, Inc CV-27 (analogue potentiostat) has been uploaded.  This version also has the bug fix where the original program calculated too many points to sample dor the duration of the experiment.  This program was developed in my collaborator's lab since I don't have Labview 2010 (yet).

Previous and current (CHE 0911537) support by NSF is gratefully acknowledged for this work.

Example code from the Example Code Exchange in the NI Community is licensed with the MIT license.

Comments
Todd S.
NI Employee (retired)
on

Thanks for posting! Do you mind including a screen shot or two to give us a better idea of what your code looks like?

Todd S.
LabVIEW Community Manager
National Instruments
roadchem
Member
Member
on

Will do!  Thanks!

Contributors