چطور میشه برد آردوینو رو با استفاده از button برنامه ریزی کرد؟

یه برنامه نوشتم که داده سنسور دما DHT رو دریافت کنه و روی نمایشگر نشان بده، همچنین اگه دما از یه حدی بالاتر رفت فن رو روشن کنه و اگه از یه حدی پایینتر رفت هیتر رو روشن کنه اما مسئله اینجاست که این دوتا دمای خاص رو چطور میشه با استفاده از دکمه های فشاری تغییر داد مثلا برای زمستان یک دما تعریف بشه برای تابستان یک دما به طور کلی یک منو تنظیمات ساخت که بشه یک سری از پارامتر هارو تغییر داد.

#include <dht.h>
#define dht22Pin 3 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display(-1);

int RelayFanPin = 4;
int RelayHeaterPin = 5;

void setup()
{
Serial.begin(9600);

// initialize with the I2C addr 0x3C
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

// Clear the buffer.
display.clearDisplay();

// Set RelayPin as an output pin
pinMode(RelayFanPin, OUTPUT);
pinMode(RelayHeaterPin, OUTPUT);
}
void loop()
{
//Uncomment whatever type you’re using!
int readData22 = DHT.read22(dht22Pin); // DHT22/AM2302

float t22 = DHT.temperature; // Gets the values of the temperature
float h22 = DHT.humidity; // Gets the values of the humidity

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print("T2: ");
display.println(t22, 2);
display.print("H2: ");
display.println(h22, 2);
display.display();
display.clearDisplay();
delay(2000); // Delays 2 secods
// Let’s turn on the relay…
if (t22>30)
{digitalWrite(RelayFanPin, LOW);}

// Let's turn off the relay...
else 
{digitalWrite(RelayFanPin, HIGH);};
delay(2000); // Delays 2 secods

if (t22<28)
{digitalWrite(RelayHeaterPin, LOW);}

// Let's turn off the relay...
else 
{digitalWrite(RelayHeaterPin, HIGH);};
delay(2000); // Delays 2 secods

}

 

با سلام

از  eeprom داخلی میکرو برای ذخیره سازی مقادیر استفاده کنید

همچنین چندین شرط و حداقل 2 دکمه بر روی برد خود قرار بدهید که با توجه به فشار دادن ها و زمان های نگه داشتن دکمه ها بتوانید بر روی نمایشگر خود اطلاعات مورد نظر را نمایش بدهید.

و در نهایت در eeprom سیو کنید.

و در بوت دستگاه خود نیز کدی قرار بدهید که از eeprom بخواند و با توجه به مقادیر در حالت قبل از ریست برود.