Gas station without pumps

2013 February 10

RC time constant lab

Since Chapter 20 of Matter and Interactions deals with RC time constants, and we’re behind on physics (the Spring Hill Science Fair judging took up most of my day, and the AMC-12 exam took up my son’s time before Java class), today we did a simple RC time constant lab, charging a capacitor to 5V, then discharging it through a resistor, recording the discharge with my son’s DataLogger program (the one he wrote for my circuits class).

The circuit we used for the discharge of the capacitor.  Our first version used 4.7µF and 1MΩ, but we got some anomalous results and redid it with these values.

The circuit we used for the discharge of the capacitor. Our first version used 4.7µF and 1MΩ, but we got some anomalous results and redid it with these values.

The data looked pretty good when plotted, but we had a bit of a surprise when we tried fitting exponential decays to the data:

The initial fit for the first 5 seconds after flipping the switch behaves pretty much as expected, but the discharge slows down, and has a much larger time constant after a while.

The initial fit for the first 5 seconds after flipping the switch behaves pretty much as expected, but the discharge slows down, and has a much larger time constant after a while.

We are at a loss to explain this gradual slowing of the discharge.

I tried inserting a unity-gain buffer between the capacitor and the Arduino pin A0, to make sure that the Arduino was not disrupting the capacitor discharge.  This did not change the behavior, other than at the very low end, where we ran into the limits of the “rail-to-rail” output of the MCP6002 op amp chip, which is supposed to be able to get within 25mV of the power rails, but which seemed to be stopping at 100mV.  I think that this particular copy of the chip may be fried, though, as the other op amp on the chip was taking a huge current through the input pins. I replaced the MCP6002 op amp and got down to within 5mV of the rail—better than the spec.  The other chip was definitely fried, and I’ll discard it.  The stretching of the RC time constant as the capacitor discharges is still present, but to a much smaller extent:

The RC decay curve as seen after a unity-gain buffer made from an MCP6002 op amp.  The fit for the first few seconds has the RC time constant we expect, but fitting later in the discharge gets a longer RC time constant.

The RC decay curve as seen after a unity-gain buffer made from an MCP6002 op amp. The fit for the first few seconds has the RC time constant we expect, but fitting later in the discharge gets a longer RC time constant, though not as badly as when directly connected to the Arduino.

I’m still looking for a convincing explanation for why the RC time constant is not constant in the discharge.  The power supply voltage was not changing, nor was there enough power anywhere for significant self-heating.  I’m having trouble believing in enough inductance to cause any measurable effect, especially as that would have had the biggest effect at the beginning of the discharge, not the end.

I suppose I could be seeing non-ideal conversion in the Arduino ADC (different Arduino boards were used for the two plots on this page: the first one was done by my son on a Leonardo board, the second one by me on an Arduino Uno board, so the difference in the fits may be from different  non-ideal conversions in the board, rather than from the unity-gain buffer.  Indeed, taking out the unity-gain buffer, but still using the Uno board gets very similar results:

With no unity-gain buffer, the results are not changed much, which means the buffer is not really needed (a good thing, since I don't usually want to add an amplifier every time I use the DataLooger).

With no unity-gain buffer, the results are not changed much, which means the buffer is not really needed (a good thing, since I don’t usually want to add an amplifier every time I use the DataLogger).

I suppose that the most likely explanation is that the gain and offset errors in the Arduino ADC may be throwing things off. They are only supposed to cause errors of 2LSB (about 10mV with a 5V reference voltage). I can get a better fit if I add a constant offset error of about 10mV, though that doesn’t quite explain all the error. It looks, though, like what I’m seeing is limitations in the Arduino ADC as a measuring device, and not interesting physics or electronics in the capacitor.

I wonder whether the circuits course should have a capacitor discharge lab early in the quarter next year, as a refresher of physics thinking about RC time constants, before we do impedance and low-pass filters.

4 Comments »

  1. I noticed that in the EE 101 circuits class, they were doing essentially this lab this week, only without the Arduino recording (just the oscilloscopes) and varying the resistors and capacitors. I’m thinking of including this lab in the first two weeks of my course next year, as an introduction to model fitting before the thermistor lab. It is something that should be done in the physics course, not left for the circuits course, but the students I talked to said that RC time constants were well covered in physics lectures, but not in the labs.

    I also chatted with one of the EE 101 TAs who was in the lab helping students. He was interested in some of the things we were doing in our labs—they seemed much more interesting to him than the labs he had to supervise, even though he felt that the bio-engineering students were a the low end of the skill levels in EE 101. (I suspect that is true of the EE 101 students, but by the end of the quarter, I think I’ll be able to put my students up against the majority of the EE 101 students and have them come off well in anything except Thévenin and Norton equivalences).

    Comment by gasstationwithoutpumps — 2013 February 11 @ 20:56 | Reply

  2. […] our home-school physics today, we tried modifying the RC time constant lab to look at inductors instead of […]

    Pingback by L/R time constant lab | Gas station without pumps — 2013 June 18 @ 00:28 | Reply

  3. […] resistance of the capacitors would not explain the not-quite-exponential behavior we saw in the RC time constant lab, since those measurements were discharging the capacitor to zero. A parallel resistance would just […]

    Pingback by Logarithmic amplifier again | Gas station without pumps — 2013 July 12 @ 22:21 | Reply

  4. […] that this curve shows that the problems we had with direct measurement of RC discharge curves in the physics lab was due to limitations of the Arduino ADC, not to the underlying RC circuit. The tails of the […]

    Pingback by Still more on log amplifiers | Gas station without pumps — 2013 July 14 @ 21:01 | Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: