Lab 3: Make a Heater and Measure Temperature

PHYS 37100 - Fall 2021

Due: October 25th, 4 pm

The goal: Make a simple heater and use the thermistor to measure its output.


Any amount of current passing through a resistor will create some heat. This can be expressed analytically by the power dissipated, which is given by \begin{equation} P = I V = I^2 R \end{equation} We can use a regular resistor and supply it with a current from the Arduino to make a very rudimentary heater element. (It's not much different than a toaster, except the currents are much smaller so we don't have worry about burning our toast.) We've already built a temperature measurement device using the thermistor. This project joins the two into a heater/thermometer system.

The block diagram for the experiment

We can consider an overview of the entire project as shown here. We have 4 primary elements:

  • Microcrontrolloer (Arduino)
  • The Heater (a resistor)
  • The Temperature Sensor (Thermistor)
  • The Heater Control (Potentiometer)

The previous labs and demos have built up each component of the project. Now the idea is the put them together into one application: A controlloble heater with a temperature sensor.

Detailed Instructions

  1. Use the voltage divider method to build the temperature measurement component of the setup. This is essntially the same thermistor based measurement setup you already did. Measure this value on an Analog In pin.
  2. Set up the potentiometer to send its 'value' to another Analog In pin. The potentiometer is really just a voltage divider built into a single component.
  3. Connect a 220 Ω resistor between a Digital Out/PWM pin and ground. This is the heater.
  4. Important!! Make sure the Rheater is in physical contact with the thermistor, like shown in the picture below. If there is a gap between the resistor and the thermistor, then there will be less heat transferred.
  5. Use the input from the potentiometer to control the duty cycle of the output to the Rheater (just like we did with the LED brightness controller from last week.) All the code necessary for this project has been seen in the previous weeks of the course. It shouldn't require any thing new, but perhaps just a little rearranging.
  6. Output the time, potentiometer value, and thermistor measurements to the serial log. It should be comma separted and each line would then have three distinct numerical values: time, pot value, therm value. The video below shoes the disired output correlated with the action of the device.
  7. Set your delay() pararemeter to 200 milliseconds, so it records 5 data points per second.
  8. Make a plot showing that your heater works. (no, you can't use excel)
  9. Estimate the maximum power output of your heater in Watts using specs about the Arduino's PWM output. (yes, you might have to look this up)
Please prepare your report as follows.
  1. Short introduction in your own words describing the experiment.
  2. Full detailed electrical schematic diagram, not handrawn. (i.e. not a block diagram like above, but a real schematic with all the parts labeled and wires etc.)
  3. Photograph of your set up.
  4. Your Arduino code - the actual copied code please (not a screenshot of your sketch).
  5. Links to any Colab notebooks you made for data analysis. You can also just include in the code in your report as well, but a link as well is nice. Just make sure you have the sharing attributes set. If it says 'no access' when I click it, then that's where I stop.
  6. Your data. Please do not include 20 pages of data. Link to a file online somewhere. (google drive, github, etc)
  7. The plot showing that your heater is being controlled by the potentiometer and that the temperature of the resistor is being measured as expected. This is where you prove to me that your device works.
  8. Any references or citations can be included as end notes.
  9. Make the report into a single document delivered as a pdf, not a hodgepodge collection of images, words, etc. Here's an example: Example Report pdf Name your pdf as: LastName_FirstName-Lab3.pdf
  10. Submit via the Blackboard Lab 3 submission page by 4pm Oct 25. Late submissions will be reduced by 20%/day.
Other notes:

Our heater is really a very bad heater. The output current we are using from the Arduino is not intended to be used as a heater source current, so you must be sure to not put too small of a resistor in this part. I suggest 220 Ω for your heater. When you change the output of the PWM pin, you aren't chaning the current, but the duty cycle. So that means it's only delivering the current for some fraction of the time, not changing the value of the current outputted.

The physical contact between the resistor and the thermistor is crucial. Arrange your board so that the two are close and can be held together with the tension in their metal legs.

Put the potentiometer far away, so that when you adjust it, you don't accidentally disrupt the thermistor/heater contact.

I put an LED on another PWM output with a brightness controlled by the heater output. Not necessary, but might be helpful for debugging. If you wanted to get fancy, you could imagine connecting one of the LED number displays in your kit to display a numerical value associated with the power to the heater.

The Heater and the Thermistor are in physical contact.

Example plot showing the temperature being controlled by the potentiometer.

Here is an example plot. The Potentiometer was set to about 50% of its maximum value after a few seconds. After the temperature stabalized, the potentiometer was increased to 100%, at around 80 seconds. After about 150 seconds, the potentiometer was reduced to a minimum, and the temperature slowly returned to the initial reading.

Example video

The video below shows the completed device and the serial monitor output as I change the pot to half its max value and then back to zero over the course of about a minute.