#include "SevSeg.h"
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
SevSeg sevseg; //Instantiate a seven segment controller object
//temperature-sensor
const float BETA = 3950;
void setup() {
//temperature-sensor
Serial.begin(9600);
//SevSeg
byte numDigits = 4;
byte digitPins[] = {2, 3, 4, 5};
byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
bool resistorsOnSegments = false; // 'false' means resistors are on digit pins
byte hardwareConfig = COMMON_ANODE; // See README.md for options
bool updateWithDelays = false; // Default 'false' is Recommended
bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros
bool disableDecPoint = false; // Use 'true' if your decimal point doesn't exist or isn't connected
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,
updateWithDelays, leadingZeros, disableDecPoint);
sevseg.setBrightness(90);
//LCD
lcd.init();
lcd.backlight();
}
void loop() {
//temperature-sensor
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
//LCD
lcd.setCursor(12, 0);
lcd.print(celsius);
// int second = millis()/1000;
// if(second/12%2>0){
// lcd.scrollDisplayRight();
// }else{
// lcd.scrollDisplayLeft();
// }
// delay(1000);
Serial.println((String)celsius);
// SevSeg - Cannot be used with the 'delay' parameter
sevseg.setNumber(celsius * 100, 2);
sevseg.refreshDisplay();
}