an Arduino Uno R3; MAX6675
thermocouple temperature sensor;
and1602 LCD keypad display. Assembly is
simply a matter of observing the correct
orientation and fitting the sub-units
together. Soldering the MAX6675 module
is optional for initial testing (Figure 3).
Analog pins A1-A5 were enabled for
digital function to provide temperature
sensor power and communication.
Fortunately, this leaves digital pins 3 and 11
(both on 16-bit TIMER2) available to use
for Pulse Width Modulation (PWM)
outputs: pin 11 to heat (plus +); pin 3 to
cool (minus -). Two optional LEDs provide a
visual indication of PID variable outputs.
An Arduino Nano and breadboard were
used for actual SSR bench testing purposes.
1602 LCD Keypad Display Shield
This is a popular Arduino shield that integrates a 16-
character by two-line LCD display with five navigation
buttons and one reset button. This hardware is supported
in the standard Arduino IDE library. Simply #include
<LiquidCrystal.h> in your sketch.
MAX6675 Temperature Sensor
This temperature sensor module incorporates the
MAXIM 6675ISA eight-pin integrated circuit soldered to a
PCB (printed circuit board) substrate. The five-pin electrical
interface consists of two power pins and three data I/O
• 3.0-5.5V supply voltage
• K-type thermocouple only
• 0–1024°C temperature range
• 12-bit resolution (0.25°C)
• ~250K conversions per second max
• SPI compatible interface
Install the Arduino MAX6675 library for both
Fahrenheit and Celsius temperature measurements. The
module’s five interface pins fit neatly into the A1-A5 holes
on the LCD keypad display shield.
This sketch modifies the excellent PID_v1 library from
By Ross Winters
November 2017 31
FIGURE 2. Example temperature profile.
Post comments on this article and find any associated files and/or downloads
FIGURE 3. Simplified