Transferred Charge and Number of Electrons from Chronoamperogram
Source:R/eval_ECh_QNe_chronoamp.R
eval_ECh_QNe_chronoamp.Rd
Evaluating transferred charge and the corresponding number of electrons
from chronoamperogram related to electrochemical
experiment, performed simultaneously with the EPR time series measurement or independently of the latter.
To acquire charge, the input \(I\) vs \(time\) relation (coming from the
data.at
) is integrated by the pracma::cumtrapz
function.
Prior to integration a capacitive current correction must be done, especially if it is relatively
high in comparison to faradaic one. Afterwards,
the number of electrons is calculated by Faraday's law (see details). The output plot can be visualized
either as \(Q(N_{\text{e}})\) vs \(t\) (time) or as \(Q(N_{\text{e}})\) vs \(E\)
(potential, if available in the input data.at
).
Usage
eval_ECh_QNe_chronoamp(
data.at,
time = "time_s",
time.unit = "s",
tlim = NULL,
Current = "I_A",
Current.unit = "A",
E = NULL,
E.unit = NULL,
ref.electrode = NULL,
Ne.output = TRUE,
separate.plots = FALSE
)
Arguments
- data.at
Data frame (table) object, including required columns like
Time
(\(t\)),Current
(\(I\)). Even though an arbitrary column label can be used, the best option is to use labels such astime_s
,I_uA
orI_mA
. Optionally, column related to potential (\(E\)) may be present as well for the transferred charge (\(Q\)) or number of electrons (\(N_{\text{e}}\)) vs \(E\) visualization (see also the argumentsE
,E.unit
andref.electrode
).- time
Character string, pointing to
time
-axis/column header in the originaldata.at
. Default:time = "time_s"
(time in seconds).- time.unit
Character string, pointing to
time
-quantity unit. There are following units available:time.unit = "s"
(default),time.unit = "ms"
,time.unit = "us"
(microseconds),time.unit = "ns"
ortime.unit = "min"
.- tlim
Numeric vector of the
time
-quantity lower and upper limit, e.g.xlim = c(5,400)
(time in seconds. Default:tlim = NULL
actually setting the entiretime
interval from the original dataset.- Current
Character string, indicating the
Current
(\(I\))-axis/column quantity name in the originaldata.at
object. Default:Current = "I_A"
(current in \(\text{A}\)).- Current.unit
Character string, pointing to
Current
quantity unit likeCurrent.unit = "uA"
(microamps)Current.unit = "A"
(default),Current.unit = "mA"
andCurrent.unit = "nA"
.- E
Character string, referring to \(E\)(potential) column name within the input
data.at
dataset. Default:E = NULL
, corresponding to situation, when one doesn't want to visualize transferred charge (or number of electrons) vs \(E\).- E.unit
Character string, setting the potential unit (see
E
argument), usuallyE.unit = "mV"
orE.unit = "V"
. Default:E.unit = NULL
, corresponding to situation, when one doesn't want to visualize transferred charge (or number of electrons) vs \(E\).- ref.electrode
Character string, corresponding to reference electrode notiation/label, e.g.
ref.electrode = "Ag-quasiref"
orref.electrode = "Fc/Fc+"
. Default:ref.electrode = NULL
(displayed potential is not related to anyref.electrode
).- Ne.output
Logical. Should be the number of transferred electrons (
Ne
) presented within the plot ? Default:Ne.output = TRUE
.- separate.plots
Logical. By default, both relations: \(Q(N_{\text{e}})\) vs \(t,E\) (time or potential) are shown in one plot (
separate.plots = FALSE
). One can separate \(N_{\text{e}}\) vs \(t,E\) and \(Q\) vs \(t,E\) into individual plots setting up theseparate.plots = TRUE
.
Value
List containing the following elements, depending on separate.plots
:
If
separate.plots = FALSE
- df
Original
data.at
data frame object with the following additional columns/variables:Q_C
(charge in coulombs),Q_mC
(charge in millicoulombs, if the maximum charge \(\leq 0.099\,\text{C}\)) andNe
(number of transferred electrons, ifNe.output = TRUE
).- plot
Side-by-side plot object (list) of \(N_{\text{e}}\) vs \(t,E\) as well as \(Q\) vs \(t,E\).
If
separate.plots = TRUE
- df
Original
data.at
data frame object with the following additional columns/variables:Q_C
(charge in coulombs),Q_mC
(charge in millicoulombs, if the maximum charge \(\leq 0.099\,\text{C}\)) andNe
(number of transferred electrons, ifNe.output = TRUE
).- plot.Ne
Plot object (list) of \(N_{\text{e}}\) vs \(t,E\).
- plot.Q
Plot object (list) of \(Q\) vs \(t,E\).
Details
When quantitative EPR is carried out along with electrochemistry simultaneously,
one can easily compare the number of radicals with the number of transferred electrons.
Number of radicals (\(N_{\text{R}}\)) are evaluated from quantitative measurements (see also
quantify_EPR_Abs
), whereas number of transferred electrons (\(N_{\text{e}}\)) is related
to charge (\(Q\)), according to:
$$N_{\text{e}} = (Q\,N_{\text{A}})/F$$
where \(N_{\text{A}}\) stands for the Avogadro's number and \(F\) for the Faraday's constants.
Both obtained by constans::syms$na
and constants::syms$f
, respectively,
using the constants package
(see syms
). If both numbers match (\(N_{\text{R}} = N_{\text{e}}\)),
it reveals the presence of one-electron oxidation/reduction, while different numbers may point
to a more complex mechanism (such as comproportionation, follow-up reactions, multiple electron transfer).
References
Bard AJ, Faulkner LR, White HS (2022). Electrochemical methods: Fundamentals and Applications, 3rd edition, John Wiley and Sons, Inc., ISBN 978-1-119-33405-7, https://www.wiley.com/en-us/9781119334064.
Pingarrón JM, Labuda J, Barek J, Brett CMA, Camões MF, Fojta M, Hibbert DB (2020). “Terminology of Electrochemical Methods of Analysis (IUPAC Recommendations 2019).” Pure Appl. Chem., 92(4), 641–694, https://doi.org/10.1515/pac-2018-0109.
Neudeck A, Petr A, Dunsch L (1999). “The redox mechanism of Polyaniline Studied by Simultaneous ESR–UV–vis Spectroelectrochemistry.” Synth. Met., 107(3), 143–158, https://doi.org/10.1016/S0379-6779(99)00135-6.
Hans W. Borchers (2023). pracma: Practical Numerical Math Functions. R package version 2.4.4, https://cran.r-project.org/web/packages/pracma/index.html.
See also
Other EPR Spectroelectrochemistry:
plot_ECh_VoC_amperogram()
Examples
## loading package built-in example file =>
## `.txt` file generated by the IVIUM potentiostat software
triarylamine.path.cv <-
load_data_example(file = "Triarylamine_ECh_CV_ivium.txt")
## the data frame contains following variables:
## time, desired potential, current and the actual/applied
## potential
triarylamine.data.cv <-
data.table::fread(file = triarylamine.path.cv,
skip = 2,
col.names = c("time_s",
"E_V_des", # desired potential
"I_A",
"E_V_app") # applied potential
)
#
## simple chronoamperogram plot
plot_ECh_VoC_amperogram(data.vat = triarylamine.data.cv,
x = "time_s",
x.unit = "s",
Current = "I_A",
Current.unit = "A",
ticks = "in"
)
#
## transferred charge and the number of electrons
## with default parameters
triarylamine.data.QNe <-
eval_ECh_QNe_chronoamp(data.at = triarylamine.data.cv)
#
## data frame preview
triarylamine.data.QNe$df
#> time_s E_V_des I_A E_V_app Q_C Q_mC
#> <num> <num> <num> <num> <num> <num>
#> 1: 0.0 0.0000 -3.95429e-08 -0.000251648 1.0036104e-07 1.0036104e-04
#> 2: 0.5 0.0025 -3.35184e-08 0.002265060 8.2095711e-08 8.2095711e-05
#> 3: 1.0 0.0050 -2.92210e-08 0.004787570 6.6410861e-08 6.6410861e-05
#> 4: 1.5 0.0075 -2.54160e-08 0.007305210 5.2751611e-08 5.2751611e-05
#> 5: 2.0 0.0100 -2.19019e-08 0.009820580 4.0922136e-08 4.0922136e-05
#> ---
#> 794: 396.5 0.0125 -4.48087e-07 0.012252300 2.0162832e-04 2.0162832e-01
#> 795: 397.0 0.0100 -4.49558e-07 0.009752980 2.0140391e-04 2.0140391e-01
#> 796: 397.5 0.0075 -4.51201e-07 0.007249400 2.0117872e-04 2.0117872e-01
#> 797: 398.0 0.0050 -4.52992e-07 0.004751440 2.0095267e-04 2.0095267e-01
#> 798: 398.5 0.0025 -4.54648e-07 0.002258640 2.0072576e-04 2.0072576e-01
#> Ne
#> <num>
#> 1: 6.2640432e+11
#> 2: 5.1240113e+11
#> 3: 4.1450399e+11
#> 4: 3.2924966e+11
#> 5: 2.5541589e+11
#> ---
#> 794: 1.2584650e+15
#> 795: 1.2570643e+15
#> 796: 1.2556588e+15
#> 797: 1.2542479e+15
#> 798: 1.2528316e+15
#
## graphical representation
triarylamine.data.QNe$plot