#include <MD_Parola.h>
#include <MD_MAX72xx.h>
// تعریف نوع سختافزاری و تعداد دستگاهها
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 4
#define CS_PIN 10
#define SPEAKER_PIN 9 // پین صدا
#define LED_PIN 8 // پین LED
// ایجاد یک شیء از کتابخانه MD_Parola
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
const float BETA = 3950; // باید باضریب بیتا (Beta Coefficient) ترمیستور همخوانی داشته باشد
void setup() {
// شروع نمایشگر
myDisplay.begin();
// تنظیم شدت نور نمایشگر
myDisplay.setIntensity(0);
// پاک کردن نمایشگر
myDisplay.displayClear();
// تعیین حالت خروجی برای پین LED
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// خواندن مقدار آنالوگ از پین A0
int analogValue = analogRead(A0);
// محاسبه دما به ازای مقدار آنالوگ
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
// تبدیل دما به رشته
String temp = (String) celsius;
// نمایش دما در نمایشگر
myDisplay.print(temp+"C");
// اگر دما بیشتر از 40.0 درجه سانتیگراد باشد
if (celsius > 40.0) {
// نمایش ALERT در نمایشگر
myDisplay.print(" ALERT");
// روشن کردن LED
digitalWrite(LED_PIN, HIGH);
// تولید صدای با فرکانس 1000 هرتز
tone(SPEAKER_PIN, 1000);
// تاخیر 1 ثانیه
delay(1000);
// قطع صدا
noTone(SPEAKER_PIN);
// خاموش کردن LED
digitalWrite(LED_PIN, LOW);
}
// تاخیر 1 ثانیه قبل از اجرای مجدد حلقه
delay(1000);
}