Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » Interfacing AD8495 K-Type Thermocouple Amplifier with Arduino
Arduino Projects

Interfacing AD8495 K-Type Thermocouple Amplifier with Arduino

Mamtaz AlamBy Mamtaz AlamUpdated:February 2, 20256 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
Interfacing AD8495 K-Type Thermocouple Amplifier with Arduino
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

Overview

In this tutorial we will be interfacing AD8495 Analog Output K-Type Thermocouple Amplifier with Arduino microcontroller board. Earlier we used MAX6675 Thermocouple Amplifier with Arduino which is an SPI module. The AD8495 is an analog output thermocouple amplifier.

A thermocouple is a rugged, low cost temperature transducer consisting two dissimilar metals. Its output is proportional to the temperature difference between a measurement junction and a reference junction. It has a very wide temperature range. Its low level output (typically tens of microvolts per °C) requires amplification.

The AD8495 thermocouple amplifiers provide a simple, low cost solution for measuring thermocouple temperatures. This hookup guide will help you to connect AD8495 K-Type Thermocouple Amplifier with Arduino UNO Board. Then using the analog output formula, we can write an Arduino code to read the detected temperature. Furthermore, we can add a 0.96″ I2C OLED Display to show the temperature reading on OLED Screen.


Bill of Materials

We need the following components for this tutorial. You can purchase all the components from the given links.

S.N.ComponentsQuantityPurchase Link
1Arduino UNO Board1Amazon | AliExpress | SunFounder
2AD8495 K-Type Thermocouple Amplifier1Amazon | AliExpress
30.96" SSD1306 I2C OLED Display1Amazon | AliExpress | SunFounder
4Jumper Wires10Amazon | AliExpress | SunFounder
5Breadboard1Amazon | AliExpress | SunFounder




AD8495 K-Type Thermocouple Amplifier

The AD8495 K-Type Thermocouple Amplifier, developed by Analog Devices, is particularly suited for applications requiring high precision. As part of the AD8494/AD8495/AD8496/AD8497 family, it integrates precision instrumentation amplifiers with a cold junction compensator to directly produce a 5 mV/°C output from a K-type thermocouple signal.

AD8495 k-Type Thermocouple Amplifier

This device simplifies the process of temperature measurement by combining an ice point reference with a precalibrated amplifier. This facilitates its use either as a standalone thermometer or as part of a switched output setpoint controller. Specifically calibrated for K-type (chromel-alumel) thermocouples through laser wafer trimming, the AD8495 ensures high accuracy across its optimized ambient temperature range. It supports a wide variety of supply voltages, from 3 V for direct interfacing with low-supply ADCs to up to 36 V for industrial systems requiring broad common-mode input ranges.

AD8495 k-Type Thermocouple Amplifier with Thermocouple

The temperature readings can be easily obtained by measuring the output voltage and applying the equation:

Temperature = (Vout – 1.25) / 0.005 V

For instance, a voltage reading of 1.5VDC translates to a temperature of 50°C. The device’s design minimizes self-heating with a total supply current of 180 μA when unloaded, although it is capable of delivering over ±5 mA to a load. This amplifier comes with a fully assembled PCB, which includes the AD8495 and a TLVH431 1.25V precision voltage reference, a 2-pin terminal block for easy connection to a thermocouple, and a pin header for breadboard integration. Refer to the AD8495 Datasheet for more information.


AD8495 Features & Specifications

  • Works with any K-type thermocouple
  • Will not work with any other kind of thermocouple other than K type.
  • Easy to use analog output.
  • Temp range with 5V power: -250°C to +750°C output(0 to 5VDC)
  • Temp range with 3.3V power: -250°C to +410°C output(0 to 3.3VDC)
  • Sensing Accuracy Range: ± 1°C around room temperature, ± 2°C for −25°C to +400°C
  • Sensing Temperature Max: 400°C
  • Sensing Temperature Min: -25°C
  • Supply Voltage: 3-18V DC

AD8495 Block Diagram & Internal Circuitry

The following image shows a block diagram of the AD8495 circuitry. The AD849x consists of a low offset, fixed-gain instrumentation amplifier, and a temperature sensor.

AD8495 Block Diagram

The AD849x output is a voltage that is proportional to the temperature at the measurement junction of the thermocouple (TMJ). A thermocouple signal is so small that considerable gain is required before it can be sampled properly by most ADCs. The AD849x has an instrumentation amplifier with a fixed gain that generates an output voltage of 5 mV/°C for J-type and K-type thermocouples.

TMJ = (VOUT − VREF)/(5 mV/°C)

The AD8495 also includes a temperature sensor for cold junction compensation. This temperature sensor is used to measure the reference junction temperature of the thermocouple and to cancel its effect.  An ideal AD8495 achieves this output with an error of less than ±2°C.


Adafruit AD4895 Breakout Board Schematic

Adafruit AD4895 Breakout Board Schematic

AD8495 Breakout Board Pinout

Power & Output Pins

  • V+ – This is the power pin. This board works with 3.3V and 5V power.
  • GND – Common ground pins
  • OUT – This is the output voltage pin. Read using an analog input.

Thermocouple Terminal

  • Red- – Connect the red or – wire on your thermocouple to this side of the screw terminal.
  • Ylw+ – Connect the yellow or + wire on your thermocouple to this side of the screw terminal.

Interfacing AD8495 Analog K-Type Thermocouple Amplifier with Arduino

Now let us interface the AD8495 Analog K-Type Thermocouple Amplifier with Arduino. The connection is fairly simple.

AD8495 Arduino Connection

  • Connect the VCC of the AD8495 to the 5V on the Arduino.
  • Connect the GND of the AD8495 to a GND pin on the Arduino.
  • Finally, connect the Vout (output) of the AD8495 to one of the Arduino’s analog input pins (e.g., A0)

You may use a breadboard to fit the AD8495 Module. Properly install the thermocouple on the thermocouple terminal of AD8495.




Source Code/Program for Reading the Temperature Value

Here is an Arduino code for interfacing AD8495 Analog Output K-Type Thermocouple Amplifier with Arduino.

This code performs the following actions:

  • Reads a temperature value from a thermocouple connected to an Arduino’s analog input pin, converting the raw analog-to-digital converter (ADC) value to a voltage.
  • Calculates the temperature in Celsius from the voltage using the characteristics of an AD8495 thermocouple amplifier (5mV per degree Celsius with a 1.25V offset at 0°C).
  • Outputs the measured temperature to the Serial Monitor every 500 milliseconds.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Define the ADC pin to which the thermocouple output is connected.
#define THERMOCOUPLE_PIN A0          
 
// Define the analog reference voltage (AREF). This should match your board's voltage, typically 3.3V or 5.0V.
#define ANALOG_REFERENCE_VOLTAGE 5.0          
 
// Define the ADC resolution in bits. For many Arduino models, the default resolution is 10 bits.
#define ADC_BIT_RESOLUTION 10                  
 
// Variables to store the raw ADC reading, the calculated voltage, and the calculated temperature.
float rawAdcReading, calculatedVoltage, measuredTemperature;
 
// Function to convert a raw ADC reading to voltage.
// The function takes the raw ADC value as an input and returns the corresponding voltage.
float convertRawAdcToVoltage(int rawAdcValue)
{
  // The ADC value is converted to voltage by multiplying with the voltage step size.
  // The step size is determined by the analog reference voltage and the ADC resolution.
  return rawAdcValue * (ANALOG_REFERENCE_VOLTAGE / (pow(2, ADC_BIT_RESOLUTION) - 1));  
}
 
// Function to calculate the temperature in Celsius from the thermocouple voltage.
// The function takes the measured voltage as input and returns the temperature in Celsius.
float calculateTemperatureFromVoltage(float voltage)
{
  // The AD8495 outputs 5mV per degree Celsius with a 1.25V offset at 0°C.
  // To find the temperature, subtract the offset and divide by the voltage per degree Celsius.
  return (voltage - 1.25) / 0.005;
}
 
void setup() {
  // Initialize serial communication at 9600 bits per second.
  Serial.begin(9600);
}
 
void loop()
{
  // Read the raw ADC value from the thermocouple pin.
  rawAdcReading = analogRead(THERMOCOUPLE_PIN);
  
  // Convert the raw ADC reading to voltage.
  calculatedVoltage = convertRawAdcToVoltage(rawAdcReading);
  
  // Calculate the temperature in Celsius from the voltage.
  measuredTemperature = calculateTemperatureFromVoltage(calculatedVoltage);
  
  // Print the measured temperature to the Serial Monitor.
  Serial.print("Temperature = ");
  Serial.print(measuredTemperature);
  Serial.println(" °C");
  
  // Wait for 500 milliseconds before the next reading.
  delay(500);
}

Upload the code to the Arduino Board and open the Serial Monitor.

The Serial Monitor will display the latest temperature reading of your room.



Displaying the Temperature Reading on OLED Display

Let us add an extra OLED Display to the above circuit to display the thermocouple temperature reading. The OLED Display is based on SSD1306 I2C OLED driver. The connection between OLED Display & Arduino is very simple.

AD8495 K-Type Thermocouple with Arduino & OLED

  • Connect the VCC of the OLED to the 3.3V on the Arduino.
  • Connect the GND of the OLED to a GND pin on the Arduino.
  • Then, Connect the SDA of the OLED to the A4 on the Arduino.
  • Finally, Connect the SCL of the OLED to a A5 pin on the Arduino.

Insert the OLED Display on the breadboard & use the jumper wires to connect it to the Arduino Board.

The following code will display the temperature readings on OLED Display. The code requires Adafruit SSD1306 and Adafruit GFX library. Add these two libraries to the Arduino Library Folder & upload the following code to your Arduino Board.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
 
#define THERMOCOUPLE_PIN A0
#define ANALOG_REFERENCE_VOLTAGE 5.0
#define ADC_BIT_RESOLUTION 10
 
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 //Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C //See datasheet for Address
 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
 
float rawAdcReading, calculatedVoltage, measuredTemperature;
 
float convertRawAdcToVoltage(int rawAdcValue)
{
  return rawAdcValue * (ANALOG_REFERENCE_VOLTAGE / (pow(2, ADC_BIT_RESOLUTION) - 1));
}
 
 
float calculateTemperatureFromVoltage(float voltage)
{
  return (voltage - 1.25) / 0.005;
}
 
 
void setup()
{
  Serial.begin(9600);
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for (;;); // Don't proceed, loop forever
  }
 
  display.clearDisplay();
  display.display();
  delay(500);
}
 
 
void loop()
{
  dispTemp();
  display.clearDisplay();
}
 
 
void dispTemp(void)
{
  rawAdcReading = analogRead(THERMOCOUPLE_PIN);
  calculatedVoltage = convertRawAdcToVoltage(rawAdcReading);
  measuredTemperature = calculateTemperatureFromVoltage(calculatedVoltage);
  Serial.print("Temperature = ");
  Serial.print(measuredTemperature);
  Serial.println(" °C");
 
  displaytemp(measuredTemperature, 'C');  // call to function void displaytemp(float temp, char C_F) giving temperature in Deg C and character C
  delay(500);  // wait for 500ms and then clear display, you can adjust this time to increase or decrease duration of displaying Deg C or Deg F
  display.clearDisplay();
 
 
}
 
void displaytemp(float temp, char C_F)   // function to display temp, takes temperature and character C or F from calling function void dispTemp(void)
{
  display.drawRect(1, 1, display.width() - 1, display.height() - 1, WHITE); // draws the outer rectangular boundary on the screen
  display.setTextColor(WHITE);   // i have white OLED display, you can use other colors in case you have multicolored display
  display.setTextSize(1);        // i have used large font to display temperature, it can be varied as per your taste
  display.setCursor(104, 3);
  display.print("o");            // this prints the "o" symbol to show Degree
  display.setTextSize(2);
  display.setCursor(112, 10);
  display.print(C_F);           // this takes character from function call either C or F for centigrade of farenheit
 
  if (temp >= 100 || temp < 0) { //i have reduced font size if temp goes in 3 digits or is -ve, keeps text in center of display , it can be varied as per your taste
    display.setTextSize(2);
    display.setCursor(15, 10);
  }
  else if (temp < 10 && temp >= 0) { //some adjustments to keep text in center of display , it can be varied as per your taste
    display.setTextSize(3);
    display.setCursor(25, 6);
  }
 
  else
  {
    display.setTextSize(3);    //i have used large font to display temperature, it can be varied as per your taste
    display.setCursor(10, 6);
  }
 
  display.print(temp);   // finally prints the temperature on your OLED display
  display.display();
}


Testing High Temperature for AD8495 Thermocouple Amplifier

After uploading the above code, the OLED Display will start showing the temperature of your room.



You may heat the Thermocouple with any heating source and you will observer the quickly rise in temperature.

Heating the Thermocouple will give further give rise in temperature.

You may heat the thermocouple for long period of time to observer the rise in temperature reading.

The maximum temperature the AD8495 Analog Output K-Type Thermocouple Amplifier measure is +750°C. For measuring low temperatures you may put the thermocouple in the ice or liquid nitrogen. The lowest temperature it can measure is upto -250°C.

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleLM35 Temperature Sensor with Raspberry Pi Pico MicroPython
Next Article Building a Raspberry Pi Pico W & LM35 Web Server

Related Posts

DC Energy Meter using Arduino

Build a DC Energy Meter using Arduino – 32V/5A

Updated:August 26, 20252K
Interfacing ADXL375 Accelerometer with Arduino

Interfacing ADXL375 Accelerometer with Arduino (±200g)

Updated:June 28, 2025
PZEM-004T Arduino Energy Meter

DIY AC Energy Meter using PZEM-004T & Arduino

Updated:March 6, 20258K
Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Interfacing BMI160 Accelerometer & Gyroscope with Arduino

Updated:February 2, 20259K
Password Based Door Lock Security System Using Arduino & Keypad

Password Based Door Lock Security System Using Arduino & Keypad

Updated:February 2, 20252436K
Earthquake Detector Alarm with with Accelerometer & Arduino

Earthquake Detector Alarm with Accelerometer & Arduino

Updated:February 2, 2025661K
Add A Comment

CommentsCancel reply

Latest Posts
ESP32 Fingerprint Attendance System with Live Web Dashboard

ESP32 Fingerprint Attendance System with Live Web Dashboard

June 16, 2026
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

June 14, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
Top Posts & Pages
  • IoT Based PM & Air Quality Monitoring System using ESP32
    IoT Based PM & Air Quality Monitoring System using ESP32
  • Buck Converter: Basics, Working, Design & Application
    Buck Converter: Basics, Working, Design & Application
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
    IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
  • How to use Modbus RTU with ESP32 to read Sensor Data
    How to use Modbus RTU with ESP32 to read Sensor Data
  • ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
    ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
  • Designing of MPPT Solar Charge Controller using Arduino
    Designing of MPPT Solar Charge Controller using Arduino
  • RS-485 Simplex Communication with Arduino & MAX485
    RS-485 Simplex Communication with Arduino & MAX485
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (205)
    • ESP32 MicroPython (7)
    • ESP32 Projects (82)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.