اطلاعیه

Collapse
No announcement yet.

وارد کردن عدد اعشاری توسط LCD keypad shield

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    وارد کردن عدد اعشاری توسط LCD keypad shield

    درود
    آیا میتوان توسط دکمه های روی آردوینو LCD keypad shield یک عدد دورقمی با دو رقم اعشار وارد کرد ( Float ) ( مثل 58.36) اگر امکان دارد لطفا برنامه ( به زبان C ) آنرا برایم ارسال نمایید. با تشکر از همه دوستان
    اطلاعات مربوط به این شیلد :
    https://eshop.eca.ir/%D9%85%D8%A7%DA...%86%D9%88.html

    #2
    پاسخ : وارد کردن عدد اعشاری توسط LCD keypad shield

    ارسال 123456

    دیدگاه


      #3
      پاسخ : وارد کردن عدد اعشاری توسط LCD keypad shield

      نوشته اصلی توسط ali_darvish نمایش پست ها
      ارسال 123456
      خب این که فرستادی یعنی چی ؟؟؟ تو هم میخواهی آمار پستهات بالا بره ؟؟؟؟

      دیدگاه


        #4
        پاسخ : وارد کردن عدد اعشاری توسط LCD keypad shield

        نوشته اصلی توسط nimdar نمایش پست ها
        درود
        آیا میتوان توسط دکمه های روی آردوینو LCD keypad shield یک عدد دورقمی با دو رقم اعشار وارد کرد ( Float ) ( مثل 58.36) اگر امکان دارد لطفا برنامه ( به زبان C ) آنرا برایم ارسال نمایید. با تشکر از همه دوستان
        اطلاعات مربوط به این شیلد :
        https://eshop.eca.ir/%D9%85%D8%A7%DA...%86%D9%88.html
        با درود
        ایا مشکلتون حل شد ؟

        دیدگاه


          #5
          پاسخ : وارد کردن عدد اعشاری توسط LCD keypad shield

          درود
          نه کاکوی عزیز بطور کلی کار بااین LCD keypad بسیار مشکل است من میخواهم از این بعنوا ن ورودی جهت دیتا های 4 رقمی صحیح و اعشاری استفاده کنم و نیاز بیک تابع دارم که بتواند ورودیهای مختلف را در طول برنامه از طریق کیپد دریافت و در برنامه استفاده کنم ولی هنوز نتوانسته ام راهی برای این کار بیابم اگر بتوانید کمکم کنید ممنون خواهم شد راستی زیاد از برنامه نویسی هم سررشته ندارم. توی اینترنت خیلی گشتم کد زیر رو پیدا کردمکار هممیکنه اما فقط برای ورود یک عدد نتونستم آنرا بصورت تابع تعریف کنم از دوستان تقاضا دارم اگر ممکن هست با تغییراتی آنرا بصورت تابع برای ورودی های متعدد درآورند. با تشکر
          #include <LiquidCrystal.h>

          LiquidCrystal lcd(8,9,4,5,6,7);

          enum {btnNONE, btnSELECT, btnLEFT, btnUP, btnDOWN, btnRIGHT, NUM_KEYS };

          const byte ButtonsPin= A0;

          int read_LCD_buttons()
          {
          int returnValue;
          // read ADC value of pressed button
          int adc_key_in = analogRead (ButtonsPin);
          int adc_key_in1= analogRead (ButtonsPin);
          // read again and check for stable ADC reading (software debouncing for analog input)
          if (abs(adc_key_in1-adc_key_in)>3) return btnNONE; // if ADC reading is not stable, return btnNONE
          if (adc_key_in <50) returnValue= btnRIGHT;
          else if (adc_key_in <150) returnValue= btnUP;
          else if (adc_key_in <325) returnValue= btnDOWN;
          else if (adc_key_in <500) returnValue= btnLEFT;
          else if (adc_key_in <800) returnValue= btnSELECT;
          else returnValue=btnNONE;
          // simple "blocking" code: "Busy waiting" until button is released by user
          while(adc_key_in<800) adc_key_in= analogRead(ButtonsPin);
          return returnValue;
          }


          void setup()
          {
          Serial.begin(9600);
          lcd.begin(16,2);
          lcd.clear();
          lcd.print ("How many frame?");
          lcd.blink();
          }


          char value[]= "0000";
          int cursorPos;
          boolean lcdNeedsUpdate=true;

          void loop()
          {
          char key=read_LCD_buttons();
          if (key!= btnNONE) lcdNeedsUpdate=true;
          switch (key)
          {
          case btnRIGHT:
          if (cursorPos<3) cursorPos++;
          break;
          case btnLEFT:
          if (cursorPos>0) cursorPos--;
          break;
          case btnUP:
          if (value[cursorPos]<'9') value[cursorPos]++;
          break;
          case btnDOWN:
          if (value[cursorPos]>'0') value[cursorPos]--;
          break;
          case btnSELECT:
          Serial.print("Saved value: ");
          Serial.println(value);
          strcpy(value,"0000");

          cursorPos=0;
          lcd.clear();
          lcd.setCursor(0,1);
          lcd.print (value);
          break;
          }
          if (lcdNeedsUpdate)
          {
          lcd.setCursor(0,1);
          lcd.print(value);
          lcd.setCursor(cursorPos,1);
          lcdNeedsUpdate=false;
          }
          }
          جدیدترین ویرایش توسط nimdar; ۱۸:۵۰ ۱۴۰۱/۰۲/۰۸.

          دیدگاه

          لطفا صبر کنید...
          X