صفحه 1 از 4 123 ... آخرینآخرین
نمایش نتایج: از 1 به 10 از 40
Like Tree1 لایک

موضوع: درخواست کمک برای کد در آردیـــنو

  1. #1
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32

    Question درخواست کمک برای کد در آردیـــنو

    سلام به دوستان
    من از سایت زیر، پروژه ای را در پروتئوس شبیه سازی کردم، اما هنگام استفاده از کتابخانه در آردینو و کومپایل کد دچار ارور و مشکل می شوم.
    امکان دارد یکی از دوستان به سایت مراجعه کنید و با نصب کتابخانه Emonlib.h در نرم افزار آردینو، کدها را به برنامه دهد و فایل .ino را برای من ارسال نمایید
    واقعا لطف بزرگی می کنید، من تازه کار هستم لطفا کمک ام کنید


    Arduino based energy monitor with Emonlib library |

    آدرس سایت


  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    تا فردا صبر کنید من براتون انجام میدم

  3. #3
    Junior Member
    تاریخ عضویت
    Aug 2015
    نوشته ها
    4

    مشکل در تنظیم سرعت موتور با استفاده از آردوینو (برنامه ساده است )

    سلام . من برنامه زیر رو نوشتم . این برنامه به صورت ریموت قراره سرعت موتور رو کنترل کنه . از گیرنده ریموت 4 تا سیگنال دیجیتال میاد و به صورت digitalRead دریافت میشه . key1_jelo و key2_aghab برای حرکت به جلو وعقب هستند . و key3_inc_speed و key4_dec_speed هم برای افزایش و کاهش سرعت هستند که روی PWM خروجی از پایه 5 (potout) تاثیر میذارن . مقدار اولیه PWM رو 160 تنظیم می کنم . حالا مشکل من اینه که وقتی که کلید key3_inc_speed رو فشار می دم ، اول کار تقریبا به صفر میرسه و بعد شروع به افزایش میکنه . . چرا به صفر میرسه ؟ . این تو برنامه من خیلی مشکل سازه . من نوشتم که potval به مقدار 5 تا اضافه بشه ، پس چرا اول به صفر میرسه ؟
    شدیدا به کمک یه آدم خبره نیاز دارم ، خودم خیلی روش کار کردم ، نمیتونم باگش پیدا کنم .
    int pot = 0;
    int potout = 5;
    int potval;
    int key1_jelo = 9;
    int key2_aghab= 10;
    int key3_inc_speed = 11;
    int key4_dec_speed= 12;
    int en1 = 3;
    int en2 = 4;

    void setup() {
    pinMode(potout , OUTPUT);
    pinMode(key1_jelo , INPUT);
    pinMode(key2_aghab , INPUT);
    pinMode(key3_inc_speed , INPUT);
    pinMode(key4_dec_speed , INPUT);
    pinMode(en1 , OUTPUT);
    pinMode(en2 , OUTPUT);
    int potval = 160;
    //setPwmFrequency(potout, 1);
    analogWrite(potout , potval );
    }

    void loop() {
    if (digitalRead(key1_jelo) == HIGH){
    digitalWrite(en2 , LOW);
    delay(300);
    digitalWrite(en1 , HIGH);
    }
    else if(digitalRead(key2_aghab) ==HIGH){
    digitalWrite(en1 , LOW);
    delay(300);
    digitalWrite(en2 , HIGH);
    }
    else{
    digitalWrite(en1 , LOW);
    digitalWrite(en2 ,LOW );
    }
    if (digitalRead(key3_inc_speed) == HIGH)
    {
    if (potval <230)
    {
    potval = potval+5;
    analogWrite(potout , potval );
    delay(100);
    }
    }
    else if(digitalRead(key4_dec_speed) == HIGH){
    if (potval >150){
    potval = potval-5;
    analogWrite(potout , potval );
    delay(100);
    }
    }
    }

  4. #4
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    نقل قول نوشته اصلی توسط paddesky نمایش پست ها
    سلام به دوستان
    من از سایت زیر، پروژه ای را در پروتئوس شبیه سازی کردم، اما هنگام استفاده از کتابخانه در آردینو و کومپایل کد دچار ارور و مشکل می شوم.
    امکان دارد یکی از دوستان به سایت مراجعه کنید و با نصب کتابخانه Emonlib.h در نرم افزار آردینو، کدها را به برنامه دهد و فایل .ino را برای من ارسال نمایید
    واقعا لطف بزرگی می کنید، من تازه کار هستم لطفا کمک ام کنید


    Arduino based energy monitor with Emonlib library |

    آدرس سایت


    من موندم کسی که این کد رو اینجوری تو سایت نوشته چند چنده با خودش :
    کتابخونه که همونه هیچی
    کد رو برات ادیت کردم :
    کد:
    #include <EmonLib.h>  // Include Emon Library
    EnergyMonitor emon1;  // Create an instance
    // include LCD the library: 
    #include <LiquidCrystal.h>  
    // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
    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 Power Factor into Variable
      float supplyVoltage   = emon1.Vrms; //extract Irms into Variable
      float Irms            = emon1.Irms; 
    //displaying the values
    lcd.setCursor(4,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(0,2); 
    lcd.print("Power factor="); 
    lcd.print(powerFactor); 
    lcd.setCursor(0,3); 
    lcd.print("Units(kWh)="); 
    lcd.print(abs(realPower*time)/abs(1000*3600));  
    }

  5. #5
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    نقل قول نوشته اصلی توسط 882743 نمایش پست ها
    سلام . من برنامه زیر رو نوشتم . این برنامه به صورت ریموت قراره سرعت موتور رو کنترل کنه . از گیرنده ریموت 4 تا سیگنال دیجیتال میاد و به صورت digitalRead دریافت میشه . key1_jelo و key2_aghab برای حرکت به جلو وعقب هستند . و key3_inc_speed و key4_dec_speed هم برای افزایش و کاهش سرعت هستند که روی PWM خروجی از پایه 5 (potout) تاثیر میذارن . مقدار اولیه PWM رو 160 تنظیم می کنم . حالا مشکل من اینه که وقتی که کلید key3_inc_speed رو فشار می دم ، اول کار تقریبا به صفر میرسه و بعد شروع به افزایش میکنه . . چرا به صفر میرسه ؟ . این تو برنامه من خیلی مشکل سازه . من نوشتم که potval به مقدار 5 تا اضافه بشه ، پس چرا اول به صفر میرسه ؟
    شدیدا به کمک یه آدم خبره نیاز دارم ، خودم خیلی روش کار کردم ، نمیتونم باگش پیدا کنم .
    int pot = 0;
    int potout = 5;
    int potval;
    int key1_jelo = 9;
    int key2_aghab= 10;
    int key3_inc_speed = 11;
    int key4_dec_speed= 12;
    int en1 = 3;
    int en2 = 4;

    void setup() {
    pinMode(potout , OUTPUT);
    pinMode(key1_jelo , INPUT);
    pinMode(key2_aghab , INPUT);
    pinMode(key3_inc_speed , INPUT);
    pinMode(key4_dec_speed , INPUT);
    pinMode(en1 , OUTPUT);
    pinMode(en2 , OUTPUT);
    int potval = 160;
    //setPwmFrequency(potout, 1);
    analogWrite(potout , potval );
    }

    void loop() {
    if (digitalRead(key1_jelo) == HIGH){
    digitalWrite(en2 , LOW);
    delay(300);
    digitalWrite(en1 , HIGH);
    }
    else if(digitalRead(key2_aghab) ==HIGH){
    digitalWrite(en1 , LOW);
    delay(300);
    digitalWrite(en2 , HIGH);
    }
    else{
    digitalWrite(en1 , LOW);
    digitalWrite(en2 ,LOW );
    }
    if (digitalRead(key3_inc_speed) == HIGH)
    {
    if (potval <230)
    {
    potval = potval+5;
    analogWrite(potout , potval );
    delay(100);
    }
    }
    else if(digitalRead(key4_dec_speed) == HIGH){
    if (potval >150){
    potval = potval-5;
    analogWrite(potout , potval );
    delay(100);
    }
    }
    }
    من با کدت اینطوری جواب میگیرم (اضافیاشو پاک کردم )
    کد:
    
    int pot = 0;
    int potout = 5;
    int potval=160;
    int key1_jelo = 9;
    int key2_aghab = 10;
    int key3_inc_speed = 11;
    int key4_dec_speed = 12;
    int en1 = 3;
    int en2 = 4;
    
    
    void setup() {
      pinMode(potout , OUTPUT);
      pinMode(key1_jelo , INPUT);
      pinMode(key2_aghab , INPUT);
      pinMode(key3_inc_speed , INPUT_PULLUP);
      pinMode(key4_dec_speed , INPUT);
      pinMode(en1 , OUTPUT);
      pinMode(en2 , OUTPUT);
      //setPwmFrequency(potout, 1);
      analogWrite(potout , potval );
      Serial.begin (9600);
    }
    
    
    void loop() {
     
      if (digitalRead(key3_inc_speed) == LOW)
      {
        delay(150);
        if (potval < 230)
        {
          potval = potval + 5;
          Serial.println(potval);
          analogWrite(potout , potval );
          delay(100);
        }
      }
    }

  6. #6
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32
    با سلام ... بـــــله کد ایراداتی داشت از جمله اینکه چون از سایت کپی می کردم در آردینو، مقداری تغییر شکل می داد ... اونو اصلاح کردم ...
    و کد نیز ناقص بود که از نویسنده مطلب درخواست کد کامل را نمودم که برایم ارسال کردند ...
    پس از آن تنها مشکل در نمایش پارامترها بود که جای آنها اشتباه بود، آنها هم در ال سی دی 20*4 تنظیم نمودم و الان بدرستی کار می کنه!
    ممنون از راهنمایی دوستان،
    فقـــــط lcd 4*20 را کجا می تونم تهیه کنم؟ هیج جا پیدا نکردم!

  7. #7
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32
    و اینکه lcd 16*4 یا 20*4 را از کجا می تونم تهیه کنم؟ هر چه در سایت ها گشتم ندیدم!

  8. #8
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    3,995
    نقل قول نوشته اصلی توسط paddesky نمایش پست ها
    و اینکه lcd 16*4 یا 20*4 را از کجا می تونم تهیه کنم؟ هر چه در سایت ها گشتم ندیدم!
    ابعاد lcd ات یه کم بده!
    4 سطر 16 ستون !

    تو سایتای خارجی بگرد پیشنهاد بده همین آفتاب برات بیاره

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

    تو سایتای خارجی بگرد پیشنهاد بده همین آفتاب برات بیاره

    دوست عزیز اگر از ال سی دی 16*2 استفاده کنم چطور میشه با یک کلید فشاری صفحات صفحه نمایش را عوض کرد و به صفحه دیگر برویم برای مشاهده پارامترها ...
    میشه لطفا بگید دیاگرام و کدها چه تغییری میکنه؟

    ممنون

  10. #10
    Member
    تاریخ عضویت
    Nov 2015
    نوشته ها
    32
    کد هایی که الان دارم اینهاســـــت!

    کد HTML:
    #include "EmonLib.h"  // Include Emon Library
    EnergyMonitor emon1;  // Create an instance
    // include LCD the library:  
    #include <LiquidCrystal.h>   
      // initialize the library with the numbers of the interface pins
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   
    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);    
    }

صفحه 1 از 4 123 ... آخرینآخرین

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

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

SEO by vBSEO