نمایش نتایج: از 1 به 10 از 57
Like Tree12 لایک

موضوع: شیلد lcd کاراکتری 1602 آردوینو

Hybrid View

  1. #1
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط paddesky نمایش پست ها
    اووو بـــــلـــه :d... تشکر، درست شد و شیلد من هم کار میکنه، مشکل نه از برد و نه از شیلد و نه از کد نبود، مشکل از جا زدن شیلد بروی برد بود که من تا آخر پین هارا فشار نمیدادم
    از روی تصویر ارسالی شما اینچنین نصب کردم ... ممنون
    الان تست کار میکنه، موندم که چرا برای برنامه های خودم که از لایبرری liquid crystal استفاده می کنم، بجای پارامترها، ررررررررررررررررررر نمایش میده!
    خب
    خدا رو شکر

    تو همون فایل pdf با این کتابخونه هم تست کرده . با اون کد تست بگیر لطفا

  2. #2
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    خب
    خدا رو شکر

    تو همون فایل pdf با این کتابخونه هم تست کرده . با اون کد تست بگیر لطفا
    سلام ... بله کمی روش کار کردم و بالاخره کار کرد و پارامترهای درخواستی را نمایش داد البته با لایبرری liquid crystal و حالا میخوام با این دکمه ها منو بسازم که مثلا وقتی دکمه را بزنیم بره و پارامتر لاین بعدی را نمایش بده اما موفق نشدم و بجاش به هر پارمتر یک دکمه اختصاص دادم ... حالا اگه نظر یا پیشنهادی راجع به منو سازی با این شیلد دارید خوشحال میشم بدونم و یاد بگیرم ... ممنون
    لایک کردن

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

    خب میتونی بک تابع بنویسی که به جای همه متغیرهای سطر اول نال بزاره با این کار متغیرهای سطر اول پاک میشن و فقط سطر دورم رو نشون میده

  4. #4
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    خب میتونی بک تابع بنویسی که به جای همه متغیرهای سطر اول نال بزاره با این کار متغیرهای سطر اول پاک میشن و فقط سطر دورم رو نشون میده
    ممنون چه خوب ... اما من بلد نیستم چنین تابعی بسازم که پس از فشردن مثلا دکمه پایین، متغیرهای دیگر را بجای متغیرهای فعلی قرار بده
    شما می تونید با این شیلد چنین تابعی بنویسید و بجای متغیرها 1 2 3 4 و ... قرار بدید ... مثلا وقتی روشن میشه روی صفحه سطر اول عدد 1 را نمایش بده و سطر دوم عدد 2 و وقتی که دکمه پایین را بزنیم بجای آنها 3 و 4 را نمایش بده و به همین ترتیب مثلا تا 11 و 12، و بلعکس با دکمه بالا، این عمل معکوس تکرار بشه؟
    من که نمیتونم این کارو انجام بدم!

  5. #5
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط paddesky نمایش پست ها
    ممنون چه خوب ... اما من بلد نیستم چنین تابعی بسازم که پس از فشردن مثلا دکمه پایین، متغیرهای دیگر را بجای متغیرهای فعلی قرار بده
    شما می تونید با این شیلد چنین تابعی بنویسید و بجای متغیرها 1 2 3 4 و ... قرار بدید ... مثلا وقتی روشن میشه روی صفحه سطر اول عدد 1 را نمایش بده و سطر دوم عدد 2 و وقتی که دکمه پایین را بزنیم بجای آنها 3 و 4 را نمایش بده و به همین ترتیب مثلا تا 11 و 12، و بلعکس با دکمه بالا، این عمل معکوس تکرار بشه؟
    من که نمیتونم این کارو انجام بدم!
    باید وقت کنم براتون بنویسم

  6. #6
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط paddesky نمایش پست ها
    ممنون چه خوب ... اما من بلد نیستم چنین تابعی بسازم که پس از فشردن مثلا دکمه پایین، متغیرهای دیگر را بجای متغیرهای فعلی قرار بده
    شما می تونید با این شیلد چنین تابعی بنویسید و بجای متغیرها 1 2 3 4 و ... قرار بدید ... مثلا وقتی روشن میشه روی صفحه سطر اول عدد 1 را نمایش بده و سطر دوم عدد 2 و وقتی که دکمه پایین را بزنیم بجای آنها 3 و 4 را نمایش بده و به همین ترتیب مثلا تا 11 و 12، و بلعکس با دکمه بالا، این عمل معکوس تکرار بشه؟
    من که نمیتونم این کارو انجام بدم!
    اینو تست کنید لطفا :
    کد:
    
    void row_Write(int rownumber , int number) {
      lcd.setCursor(0, rownumber);
      for (int i = 0 ; i < 16)  lcd.print(number);
    }

    این تابع دو تا متغیر داره
    متغیر اول rownumber شماره سطری هست که تصمیم دارید روش چاپ بشه
    number اون عددی هست که تصمیم دارید چاپش کنید کثلا 1 2 3 والی آخر

    البته این کد فقط برای عددهای یک رقمیه اگر دو رقمی بشه باید کد روتغییر بدیم
    قعلا این رو تست کنید لطفا

  7. #7
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32
    اووو من عدد را مثال زدم و در پروژه خودم عددی نیست ... اینم تصاویر چیزای که میخوام بصورت منو عوض بشه ...

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 20160328_081345 (Copy).jpg
مشاهده: 237
حجم: 102.9 کیلو بایت برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 20160328_081012 (Copy).jpg
مشاهده: 194
حجم: 102.9 کیلو بایت برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 20160328_080727 (Copy).jpg
مشاهده: 244
حجم: 100.3 کیلو بایت


    اما وقتی روی یکی از پارامترهای نشان داده میرم، بعد از اینکه میخواهد به حالت اول بازگردد، چند تا از حروف از حالت قبل در تصویر می ماند ...!!!

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 20160328_081147 (Copy).jpg
مشاهده: 195
حجم: 104.5 کیلو بایت

    این کدهای منه، میخوام اونای که نمایش بدم بصورت منو باشن، البته الان این را آپلود نکردم، این پارامترهام هستند که بلد نیستم منو بسازم که عوض بشن

    کد HTML:
    #include "EmonLib.h"  // Include Emon Library
    EnergyMonitor emon1;  // Create an instance
    // include LCD the library: 
    #include <LiquidCrystal.h>
    // select the pins used on the LCD panel
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
    
    // define some values used by the panel and buttons
    int lcd_key     = 0;
    int adc_key_in  = 0;
    #define btnRIGHT  0
    #define btnUP     1
    #define btnDOWN   2
    #define btnLEFT   3
    #define btnSELECT 4
    #define btnNONE   5
    
    // read the buttons
    int read_LCD_buttons()
    {
    adc_key_in = analogRead(0);      // read the value from the sensor 
    // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
    // we add approx 50 to those values and check to see if we are close
    if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
    if (adc_key_in < 50)   return btnRIGHT;  
    if (adc_key_in < 195)  return btnUP; 
    if (adc_key_in < 380)  return btnDOWN; 
    if (adc_key_in < 555)  return btnLEFT; 
    if (adc_key_in < 790)  return btnSELECT;   
    return btnNONE;  // when all others fail, return this...
    }
    
    void setup()   
    {  
      Serial.begin(9600);   // set up the LCD’s number of columns and rows:
      lcd.begin(20, 4);  
      emon1.voltage(2, 234.26, 1.7);  // Voltage: input pin, calibration, phase_shift
      emon1.current(1, 111.1);  // Current: input pin, calibration.
    }  
    void loop()  
    {  
      emon1.calcVI(20,2000);  // Calculate all. No.of half wavelengths (crossings), time-out
      emon1.serialprint();  // Print out all variables (realpower, apparent power, Vrms, Irms, power factor)
        unsigned int long timemillis=millis();  //keeping the track of the time since the device is switched ON
      unsigned int long time=timemillis/1000;  
       float realPower       = emon1.realPower; //extract Real Power into variable
      float apparentPower   = emon1.apparentPower;  //extract Apparent Power into variable
      float powerFactor=emon1.powerFactor;//extract Apparent Power into variable rFactor     = emon1.powerFactor; //extract Power Factor into Variable
      float supplyVoltage   = emon1.Vrms; //extract Irms into Variable
      float Irms            = emon1.Irms;  
      //displaying the values  
    lcd.setCursor(1,0);  
    lcd.print("Energy Monitor");   
    lcd.setCursor(0,1);  
    lcd.print("V=");   
    lcd.print(supplyVoltage);  
    lcd.setCursor(9,1);  
    lcd.print("I=");   
    lcd.print(Irms);   
    lcd.setCursor(-4,2);  
    lcd.print("PowerFactor=");  
    lcd.print(powerFactor);  
    lcd.setCursor(-4,3);  
    lcd.print("Units(kWh)=");  
    lcd.print(abs(realPower*time)/abs(1000*3600));
    lcd.setCursor(-4,4);
    lcd.print("(kW)=");   
    lcd.print(realPower/1000);    
    lcd.setCursor(-4,5);   
    lcd.print("(KVA)=");    
    lcd.print(apparentPower/1000);    
    lcd.setCursor(-4,6);   
    lcd.print("(KVAR)=");   
    lcd.print((sqrt((apparentPower*apparentPower)-(realPower*realPower)))/1000);    
    }
    ویرایش توسط paddesky : 04-02-2016 در ساعت 05:39 PM دلیل: تصحیح سایز تصاویر

  8. #8
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط paddesky نمایش پست ها
    اووو من عدد را مثال زدم و در پروژه خودم عددی نیست ... اینم تصاویر چیزای که میخوام بصورت منو عوض بشه ...

    }oop()
    {
    emon1.calcVI(20,2000); // Calculate all. No.of half wavelengths (crossings), time-out

    lcd.setCursor(9,1);
    lcd.print("I=");
    lcd.print(Irms);
    lcd.setCursor(-4,2);
    lcd.print("PowerFactor=");
    lcd.print(powerFactor);
    lcd.setCursor(-4,3);
    lcd.print("Units(kW
    lcd.print("(KVAR)=");
    lcd.print((sqrt((apparentPower*apparentPower)-(realPower*realPower)))/1000);
    }[/HTML]

    متاسفانه من وقت نمی کنم روی کدخودتون براتون ادیت کنم

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

  9. #9
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    اینو تست کنید لطفا :
    کد:
    
    void row_Write(int rownumber , int number) {
      lcd.setCursor(0, rownumber);
      for (int i = 0 ; i < 16)  lcd.print(number);
    }

    این تابع دو تا متغیر داره
    متغیر اول rownumber شماره سطری هست که تصمیم دارید روش چاپ بشه
    number اون عددی هست که تصمیم دارید چاپش کنید کثلا 1 2 3 والی آخر

    البته این کد فقط برای عددهای یک رقمیه اگر دو رقمی بشه باید کد روتغییر بدیم
    قعلا این رو تست کنید لطفا
    راه حلی پیدا نشد لطـــفا!؟ طبق توضیحات و کدی که گفتم

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

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

SEO by vBSEO