#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <math.h>
// Pinlar va qurilmalar sozlamasi
#define ONE_WIRE_BUS 4
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 4
#define CS_PIN 10
// Qurilmalar bilan ishlash
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
const float BETA = 3950;
void setup() {
myDisplay.begin();
sensors.begin();
myDisplay.setIntensity(0);
myDisplay.displayClear();
}
void loop() {
int analogValue = analogRead(A0);
sensors.requestTemperatures();
float dsTemp = sensors.getTempCByIndex(0);
float celsius = 1 / (log(1 / (1023.0 / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
String temp1 = "Temperatura-CL: " + String(celsius, 1) + "C";
String temp2 = "Temperatura-DS: " + String(dsTemp, 1) + "C";
// Display birinchi sensor (analog) harorat
myDisplay.displayClear();
myDisplay.displayScroll(temp1.c_str(), PA_CENTER, PA_SCROLL_LEFT, 100);
while (!myDisplay.displayAnimate()) delay(10);
delay(1000);
// Display ikkinchi sensor (DS18B20) harorat
myDisplay.displayClear();
myDisplay.displayScroll(temp2.c_str(), PA_CENTER, PA_SCROLL_LEFT, 100);
while (!myDisplay.displayAnimate()) delay(10);
delay(1000);
}