صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 11 به 19 از 19
Like Tree3 لایک

موضوع: ساخت منوی کشویی

  1. #11
    Senior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    112
    نه الان کلید هام کار میدن .فقط میخوام مثلا توی تنظیمات گرما که رفتم بعد از چند دیقه که کلید ها عمل نکردن برگردد به منوی اول

  2. #12
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط mohammadali نمایش پست ها
    نه الان کلید هام کار میدن .فقط میخوام مثلا توی تنظیمات گرما که رفتم بعد از چند دیقه که کلید ها عمل نکردن برگردد به منوی اول
    اجازه
    بدید یه دموی ساده براتون می نویسم به محض این که وقت کنم

  3. #13
    Senior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    112
    ممنون میخواید کل برنامم بدم؟

  4. #14
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    این برنامه رو ببین
    3 صفحه منو داره
    اگه وارد صفحه 2 و 3 شد اما 5 ثانیه هیچ اکشنی انجام نشد برمیگرده به صفحه اول :
    کد:
    #include <LCD_GFX.h>
    #include <NOKIA5110.h>
    
    
    NOKIA5110 display = NOKIA5110(7, 6, 5, 4, 3);
    
    
    int mpage = 0;
    int flag8 = 0;
    int oldflag8 = 0;
    int counter = 0;
    long long previousMillis = 0;
    unsigned long currentMillis = 0;
    void setup()   {
      Serial.begin(9600);
      display.begin();
      display.setContrast(60);
      display.display(); // show splashscreen
      delay(2000);
      display.clearDisplay();   // clears the screen and buffer
      pinMode(8, INPUT_PULLUP);
      pinMode(9, INPUT_PULLUP);
      Serial.println("End of setup");
    }
    
    
    
    
    void loop() {
      keyAction();
    }
    
    
    void showData(String data) {
      display.println(data);   //Write a Text
      display.setTextSize(1);
      display.display();
      display.clearDisplay();
      display.setCursor(0, 15);
      display.println("Counter=");   //Write a Text
      display.setTextSize(1);
      display.display();
      display.clearDisplay();
      display.setCursor(50, 15);
      display.println(counter);   //Write a Text
      display.setTextSize(1);
      display.display();
      display.clearDisplay();
    }
    
    
    void keyAction()
    {
      currentMillis = millis();
      if ( digitalRead(8) == LOW  ) {
        previousMillis = currentMillis;
        flag8++;
        delay(200);
      }
      if ( digitalRead(9) == LOW  ) {
        previousMillis = currentMillis;
        counter++;
        delay(200);
      }
      menuProcess() ;
      menuTimeProcess() ;
    }
    
    
    void menuProcess() {
      if ( flag8 == 0)  {
        Serial.println("first");
        showData("Main menu");
        oldflag8 = flag8;
      }
      if ( flag8 == 1)  {
        Serial.println("second");
        showData("submenu1");
      }
      if ( flag8 == 2) {
    
    
        Serial.println("Third");
        showData("submenu2");
      }
      if ( flag8 == 3) {
        flag8 = 0;
      }
    }
    void menuTimeProcess() {
      long diff = currentMillis - previousMillis;
      if ( diff > 5000 )  {
        flag8 = 0;
      }
    }
    siib and wolf like this.

  5. #15
    Senior Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    229
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    این برنامه رو ببین
    3 صفحه منو داره
    اگه وارد صفحه 2 و 3 شد اما 5 ثانیه هیچ اکشنی انجام نشد برمیگرده به صفحه اول :
    کد:
    #include <LCD_GFX.h>
    #include <NOKIA5110.h>
    
    
    NOKIA5110 display = NOKIA5110(7, 6, 5, 4, 3);
    
    
    int mpage = 0;
    int flag8 = 0;
    int oldflag8 = 0;
    int counter = 0;
    long long previousMillis = 0;
    unsigned long currentMillis = 0;
    void setup()   {
      Serial.begin(9600);
      display.begin();
      display.setContrast(60);
      display.display(); // show splashscreen
      delay(2000);
      display.clearDisplay();   // clears the screen and buffer
      pinMode(8, INPUT_PULLUP);
      pinMode(9, INPUT_PULLUP);
      Serial.println("End of setup");
    }
    
    
    
    
    void loop() {
      keyAction();
    }
    
    
    void showData(String data) {
      display.println(data);   //Write a Text
      display.setTextSize(1);
      display.display();
      display.clearDisplay();
      display.setCursor(0, 15);
      display.println("Counter=");   //Write a Text
      display.setTextSize(1);
      display.display();
      display.clearDisplay();
      display.setCursor(50, 15);
      display.println(counter);   //Write a Text
      display.setTextSize(1);
      display.display();
      display.clearDisplay();
    }
    
    
    void keyAction()
    {
      currentMillis = millis();
      if ( digitalRead(8) == LOW  ) {
        previousMillis = currentMillis;
        flag8++;
        delay(200);
      }
      if ( digitalRead(9) == LOW  ) {
        previousMillis = currentMillis;
        counter++;
        delay(200);
      }
      menuProcess() ;
      menuTimeProcess() ;
    }
    
    
    void menuProcess() {
      if ( flag8 == 0)  {
        Serial.println("first");
        showData("Main menu");
        oldflag8 = flag8;
      }
      if ( flag8 == 1)  {
        Serial.println("second");
        showData("submenu1");
      }
      if ( flag8 == 2) {
    
    
        Serial.println("Third");
        showData("submenu2");
      }
      if ( flag8 == 3) {
        flag8 = 0;
      }
    }
    void menuTimeProcess() {
      long diff = currentMillis - previousMillis;
      if ( diff > 5000 )  {
        flag8 = 0;
      }
    }
    خیلی هم خوب
    من یه نگاه به کد انداختم برام یه سوال پیش اومد
    مگه تو اسکچ توابع اصلی loop و setup نیستن؟ اگه باشن پس هر تابع دیگه ای باید حداقل تو یکی از این دوتا تابع فراخوان بشه که عمل کنه دیگه
    الان تو این کد برای مثال تابع menuprocess که تعریف شده تو هیچ کدوم از توابع loop یا setup فراخوان نشده ،
    پس چجوری تاثیر میذاره؟

  6. #16
    Senior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    112
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    خیلی هم خوب
    من یه نگاه به کد انداختم برام یه سوال پیش اومد
    مگه تو اسکچ توابع اصلی loop و setup نیستن؟ اگه باشن پس هر تابع دیگه ای باید حداقل تو یکی از این دوتا تابع فراخوان بشه که عمل کنه دیگه
    الان تو این کد برای مثال تابع menuprocess که تعریف شده تو هیچ کدوم از توابع loop یا setup فراخوان نشده ،
    پس چجوری تاثیر میذاره؟
    دستت درد نکنه عالیه فقط گیج کننده هستش سرعت عالیی داره فقط توی کانتر که مثبت میشه موندم چیه

  7. #17
    Senior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    112
    نقل قول نوشته اصلی توسط mohammadali نمایش پست ها
    دستت درد نکنه عالیه فقط گیج کننده هستش سرعت عالیی داره فقط توی کانتر که مثبت میشه موندم چیه
    دمت گرم عالی بود حرف نداره کارت البته چندتایی if دیگه اضافه کردم یکی برای نو شدن هر صفحه یک حذف lcd بزنه یکی دیگه این که تو این سرس که شما دادین کلید ست ملاک قرار دادین برا همین وقتی دارم با کلید + و - کار میکنم میره صفحه اول که من ی تغییری توش دادم
    فقط من یچیزی موندم اون کانتر براچی هستش

  8. #18
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط siib نمایش پست ها
    خیلی هم خوب
    من یه نگاه به کد انداختم برام یه سوال پیش اومد
    مگه تو اسکچ توابع اصلی loop و setup نیستن؟ اگه باشن پس هر تابع دیگه ای باید حداقل تو یکی از این دوتا تابع فراخوان بشه که عمل کنه دیگه
    الان تو این کد برای مثال تابع menuprocess که تعریف شده تو هیچ کدوم از توابع loop یا setup فراخوان نشده ،
    پس چجوری تاثیر میذاره؟
    نه
    اینطوری نیست
    یه تابع داریم به نام keyaction
    که menuprocess توی اون صدا زده شده

    هیچ مشکلی پیش نمیاد .
    عملا داره تو لوپ اجرا میشه این تابع هم

  9. #19
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط mohammadali نمایش پست ها
    دمت گرم عالی بود حرف نداره کارت البته چندتایی if دیگه اضافه کردم یکی برای نو شدن هر صفحه یک حذف lcd بزنه یکی دیگه این که تو این سرس که شما دادین کلید ست ملاک قرار دادین برا همین وقتی دارم با کلید + و - کار میکنم میره صفحه اول که من ی تغییری توش دادم
    فقط من یچیزی موندم اون کانتر براچی هستش
    کانتر مقداری رو که با کلید ها کم و زیاد میکنیم رو نگه می داره تو خودش

صفحه 2 از 2 نخستنخست 12

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO