Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO Thermocouple Temperature Monitor with I2C LCD Display

View and Edit Project In Cirkit DesignerImage of Arduino UNO Thermocouple Temperature Monitor with I2C LCD Display

Circuit Documentation

Summary

This circuit is designed to measure temperature using a Type K thermocouple and display the readings on a 16x2 I2C LCD. The temperature data is processed by a MAX6675 module and an Arduino UNO microcontroller. The circuit is powered by a 5V battery.

Component List

16x2 I2C LCD

5V Battery

MAX6675 Module

Arduino UNO

Thermocouple Type K

Wiring Details

16x2 I2C LCD

5V Battery

MAX6675 Module

Arduino UNO

Thermocouple Type K

Documented Code

Arduino Sketch (sketch.ino)

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "max6675.h"

int thermoSO = 12; // Serial Out
int thermoCS = 10; // Chip Select
int thermoSCK = 13; // Serial Clock

MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  lcd.begin();
  lcd.backlight();
  lcd.print("Thermocouple");
  delay(2000);
  lcd.clear();
}

void loop() {
  double tempC = thermocouple.readCelsius();
  double tempF = thermocouple.readFahrenheit();

  lcd.setCursor(0, 0);
  lcd.print("Temp C: ");
  lcd.print(tempC, 1);

  lcd.setCursor(0, 1);
  lcd.print("Temp F: ");
  lcd.print(tempF, 1);

  delay(1000);
}

Documentation (documentation.txt)

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "max6675.h"

// Define MAX6675 pins
int thermoSO = 12; // Serial Out
int thermoCS = 10; // Chip Select
int thermoSCK = 13; // Serial Clock

// Initialize MAX6675
MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);

// Initialize I2C LCD (Address 0x27, 16 chars, 2 lines)
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600); // Serial monitor for debugging
  lcd.begin();
  lcd.backlight();
  lcd.print("Thermocouple");
  delay(2000);
  lcd.clear();
}

void loop() {
  double tempC = thermocouple.readCelsius();
  double tempF = thermocouple.readFahrenheit();

  lcd.setCursor(0, 0);
  lcd.print("Temp C: ");
  lcd.print(tempC, 1);

  lcd.setCursor(0, 1);
  lcd.print("Temp F: ");
  lcd.print(tempF, 1);

  delay(1000);
}