// include the required libraries
#include <SevSeg.h>
// define the pins for the 7-segment display
#define digit1 2
#define digit2 3
#define digit3 4
#define digit4 5
#define segA 6
#define segB 7
#define segC 8
#define segD 9
#define segE 10
#define segF 11
#define segG 12
#define segDP 13
// define the pins for the LM35 temperature sensor
#define tempPin A0
// define the pins for the buttons
#define upButton A1
#define downButton A2
// define the setpoint temperature
int setpoint = 25;
// initialize the 7-segment display
SevSeg sevseg;
void setup() {
// set the pins for the buttons as inputs
pinMode(upButton, INPUT);
pinMode(downButton, INPUT);
// initialize the 7-segment display
byte numDigits = 4;
byte digitPins[] = {digit1, digit2, digit3, digit4};
byte segmentPins[] = {segA, segB, segC, segD, segE, segF, segG, segDP};
bool resistorsOnSegments = true;
bool updateWithDelays = false;
byte hardwareConfig = COMMON_ANODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays);
}
void loop() {
// read the temperature from the LM35 sensor
int tempReading = analogRead(tempPin);
float tempC = (tempReading * 5.0) / 1024.0 * 100.0;
// check if the up button is pressed
if (digitalRead(upButton) == HIGH) {
setpoint++;
}
// check if the down button is pressed
if (digitalRead(downButton) == HIGH) {
setpoint--;
}
// display the temperature and setpoint on the 7-segment display
int tempDisplay = (int) tempC;
int setpointDisplay = setpoint;
sevseg.setNumber(tempDisplay, 1);
sevseg.setNumber(setpointDisplay, 2);
sevseg.refreshDisplay();
// wait for a short time before reading the temperature again
delay(100);
}