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

10 ماه قبل
105 بازدید

0

یه برنامه نوشتم که داده سنسور دما 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
}

 

08 بهمن 02 در 04:07
محمد رضا فتحی
1

افزودن دیدگاه

1 پاسخ ثبت شده است
0

با سلام

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

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

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

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

 
09 بهمن 02 در 12:45
محمد دمیرچی
4220

افزودن دیدگاه


انجمن کافه‌ربات © 1400