ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 1 از 1
  1. #1
    2019/05/30
    201
    57

    ساخت شیر خودکار برقی با سروو موتور

    بسم الله
    با عرض سلام خدمت عزیزان

    امروز میخوام تجربه ساخت یک شیر خودکار برقی که میتونه برای مصرف خاص که ماده داخل لوله فشار نداشته باشه و جامد هم باشه،
    به طوری که از طریق یک سیکنال منفی قابل کنترل (باز و بسته ) باشد با شما به اشتراک بزارم.
    با توجه به بررسی که کردم همچین شیری را اگر در بازار بخواهیم تهیه کنیم هزینه هنگفتی باید پرداخت کنیم ولی با وسایل زیر
    یک شیر ساده با کلی محاسن در اختیار خواهید داشت.

    برآورد هزینه حدود450 تا 550 هزار تومان بسته به قطر شیر یکطرفه
    قطعات مورد نیاز به شرح زیر:
    1 عدد سروو موتور 360 درجه
    1 عدد فلنج فلزی سروو موتور
    1 عدد ماژول LCD 2*16
    1 عدد ماژول i2c برای LCD
    1 عدد arduino micro pro
    1 عدد

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    1 عدد قرقره قطر 3سانت و طول 4 سانت
    50 سانت سیم بکسل خیلی نازک
    1 عدد جعبه 10x9x7
    یک عدد فیش آداپتوری توکار مادگی
    1 عدد کاهنده 2596
    3 عدد تک سوئیچ 6x6x10mm
    6 عدد مقاومت رنج مختلف است
    1 عدد اپتوکوپلر
    1 عدد ال ای دی
    1 عدد آداپتور 2 آمپری 6 ولت به بالا
    7 عدد پیچ ام دی افی
    عزیزان دقت داشته باشن قطعات بالا را میزین داخل مخلوط کن و برنامه زیر هم بهش میدن، انقدر میزنن تا کف کنه.
    محصول آماده مصرف هست.

    کد PHP:
    #include "Servo.h"
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    #include <AnalogButtons.h>
    #define ANALOG_PIN 9

    #include <EEPROM.h>
    // Set the LCD address to 0x3F or 0x27 for a 16 chars and 2 line display
    LiquidCrystal_I2C lcd(0x3F162);

    Servo servo1;
    //*********************************************Config Value
    boolean open1 0;
    int Speed_Rotate_Open EEPROM.get(10Speed_Rotate_Open); //110°monasebe
    int Delay_Rotate_Open EEPROM.get(15Delay_Rotate_Open); //1600ms monasebe
    int Stay_Open EEPROM.get(30Stay_Open); //2000ms monasebe
    int Speed_Rotate_Close EEPROM.get(20Speed_Rotate_Close); //80°monasebe
    int Delay_Rotate_Close EEPROM.get(25Delay_Rotate_Close); //2000ms monasebe
    int State_Show 1;
    boolean key 0;
    boolean key_SET key_DOWN 1key_UP 1;
    //**************************************


    void b1Click() {
      
    //Serial.print("button 1 clicked");
      
    if (State_Show == 3) {
        
    State_Show 1;
      } else {
        
    State_Show++;
      }
      
    lcd.clear();
    }
    void b1Hold() {
      
    //Serial.print("button 1 held");
      
    key_SET 0;
    }

    void b2Click() {
      
    //Serial.print("button 2 clicked");
      
    key_DOWN 0;
    }
    void b2Hold() {
      
    //Serial.print("button 2 held");
      
    key_DOWN 0;
    }

    void b3Click() {
      
    //Serial.print("button 3 clicked");
      
    key_UP 0;
    }
    void b3Hold() {
      
    //Serial.print("button 3 held");
      
    key_UP 0;
    }

    AnalogButtons analogButtons(ANALOG_PININPUT);
    Button b1 Button(42, &b1Click, &b1Hold15002500);//328
    Button b2 Button(228, &b2Click, &b2Hold10005);//846
    Button b3 Button(127, &b3Click, &b3Hold10005);//700

    void setup() {
      
    //Serial.begin(9600);
      //Serial.println("Testing your Analog buttons");
      
    digitalWrite(ANALOG_PINHIGH);
      
    analogButtons.add(b1);
      
    analogButtons.add(b2);
      
    analogButtons.add(b3);
      
    // initialize the LCD
      
    lcd.begin();
      
    // Turn on the blacklight and print a message.
      
    lcd.clear();
      
    lcd.backlight();
      
    lcd.setCursor(30);
      
    lcd.print("Bismillah");
      
    lcd.blink();
      
    lcd.setCursor(01);
      
    lcd.print("alrahman alrahim");
      
    delay(4000);
      
    lcd.noBacklight();
      
    delay(1000);
      
    lcd.clear();
      
    lcd.backlight();
      
    lcd.clear();
      
    servo1.attach(5);
      
    pinMode(4INPUT);
      
    digitalWrite(4HIGH);
      
    delay(50);
    }
    void loop() {
      
    // To check values when button are pressed
      
    analogButtons.check();

      if (
    digitalRead(4) == LOW) {
        
    open1 1;
      }
      if (
    open1) {
        
    lcd.clear();
        
    lcd.setCursor(00);
        
    lcd.print("   Dar Baz va   ");
        
    lcd.setCursor(01);
        
    lcd.print("Baste Mishavad.");
        
    lcd.blink();
        
    servo1.write(Speed_Rotate_Open);//Rotate Left****
        
    delay(Delay_Rotate_Open);//2200 taghriban 360 kamel mizane be chap***
        
    servo1.write(90);//Stop
        
    delay(Stay_Open);
        
    servo1.write(Speed_Rotate_Close);//Rotate Right***
        
    delay(Delay_Rotate_Close);// 1820 behtare bashe hodode 375 mizane be rast***
        
    servo1.write(90);//Stop
        
    delay(10000);
        
    lcd.clear();
        
    open1 0;
      }

      
    analogButtons.check();
      if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
        
    key_SET 1;
        
    key 1;

        
    SET_Speed_Rotate_Open();
      }
      if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
        
    key 0;
      }
      switch (
    State_Show)
      {
        case 
    1:
          
    lcd.setCursor(00);
          
    lcd.print("SpeedOpen:");
          
    lcd.print(Speed_Rotate_Open);
          
    lcd.print("\337");
          
    lcd.setCursor(01);
          
    lcd.print("DelayOpen:");
          
    lcd.print(Delay_Rotate_Open);
          
    lcd.print("ms");
          return ;
          ;
        case 
    2:
          
    lcd.setCursor(00);
          
    lcd.print("Stay Open For:");
          
    lcd.setCursor(01);
          
    lcd.print(Stay_Open);
          
    lcd.print(" ms");
          return ;
          ;
        case 
    3:
          
    lcd.setCursor(00);
          
    lcd.print("SpeedClos:");
          
    lcd.print(Speed_Rotate_Close);
          
    lcd.print("\337");
          
    lcd.setCursor(01);
          
    lcd.print("DelayClos:");
          
    lcd.print(Delay_Rotate_Close);
          
    lcd.print("ms");
          return ;
          ;
          
    //default:
          //return 0;
          //;
      
    }
    }

    //*********************************************Subprogram SET_Speed_Rotate_Open()
    void SET_Speed_Rotate_Open() {
      
    lcd.clear();
      
    lcd.cursor();
      while (
    1) {
        
    lcd.setCursor(00);
        
    lcd.print("Set_Speed_Open");
        
    lcd.setCursor (01);
        
    lcd.print(Speed_Rotate_Open);

        
    lcd.print("\337");

        
    analogButtons.check();
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_DOWN 1;
          
    key 1;
          if (
    Speed_Rotate_Open == 91) {
            
    Speed_Rotate_Open 180;
          } else {
            
    Speed_Rotate_Open--;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 0) {
          
    key_UP 1;
          
    key 1;
          if (
    Speed_Rotate_Open == 180) {
            
    Speed_Rotate_Open 91;
          } else {
            
    Speed_Rotate_Open++;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_SET 1;
          
    key 1;
          break;
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key 0;
        }
      }

      
    SET_Delay_Rotate_Open();
    }

    //*********************************************Subprogram SET_Delay_Rotate_Open()
    void SET_Delay_Rotate_Open() {
      
    lcd.clear();

      while (
    1) {
        
    lcd.setCursor(00);
        
    lcd.print("Set_Delay_Open");
        
    lcd.setCursor (01);
        
    lcd.print(Delay_Rotate_Open);
        
    lcd.print(" Milliseconds");

        
    analogButtons.check();
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_DOWN 1;
          
    key 1;
          if (
    Delay_Rotate_Open == 1000) {
            
    Delay_Rotate_Open 5000;
          } else {
            
    Delay_Rotate_Open--;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 0) {
          
    key_UP 1;
          
    key 1;
          if (
    Delay_Rotate_Open == 5000) {
            
    Delay_Rotate_Open 1000;
          } else {
            
    Delay_Rotate_Open++;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_SET 1;
          
    key 1;
          break;
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key 0;
        }
      }
      
    SET_Stay_Open();
    }
    //*********************************************Subprogram SET_Stay_Open()
    void SET_Stay_Open() {
      
    lcd.clear();

      while (
    1) {
      
    lcd.setCursor(00);
      
    lcd.print("Set_Stay_Open:");
      
    lcd.setCursor (01);
      
    lcd.print(Stay_Open);
      
    lcd.print(" Milliseconds");
      
        
    analogButtons.check();
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_DOWN 1;
          
    key 1;
          if (
    Stay_Open == 0) {
            
    Stay_Open 20000;
          } else {
            
    Stay_Open--;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 0) {
          
    key_UP 1;
          
    key 1;
          if (
    Stay_Open == 20000) {
            
    Stay_Open 0;
          } else {
            
    Stay_Open++;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_SET 1;
          
    key 1;
          break;
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key 0;
        }
      }

      
    SET_Speed_Rotate_Close();
    }
    //*********************************************Subprogram SET_Speed_Rotate_Close()
    void SET_Speed_Rotate_Close() {
      
    lcd.clear();

      while (
    1) {
        
    lcd.setCursor(00);
        
    lcd.print("Set_Speed_Close:");
        
    lcd.setCursor (01);
        
    lcd.print(Speed_Rotate_Close);
        
    lcd.print("\337");
        
        
    analogButtons.check();
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_DOWN 1;
          
    key 1;
          if (
    Speed_Rotate_Close == 1) {
            
    Speed_Rotate_Close 89;
          } else {
            
    Speed_Rotate_Close--;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 0) {
          
    key_UP 1;
          
    key 1;
          if (
    Speed_Rotate_Close == 89) {
            
    Speed_Rotate_Close 1;
          } else {
            
    Speed_Rotate_Close++;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_SET 1;
          
    key 1;
          break;
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key 0;
        }
      }

      
    SET_Delay_Rotate_Close();
    }

    //*********************************************Subprogram SET_Delay_Rotate_Close()
    void SET_Delay_Rotate_Close() {
      
    lcd.clear();

      while (
    1) {
        
    lcd.setCursor(00);
        
    lcd.print("Set_Delay_Close:");
        
    lcd.setCursor (01);
        
    lcd.print(Delay_Rotate_Close);
        
    lcd.print(" Milliseconds");
        
        
    analogButtons.check();
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_DOWN 1;
          
    key 1;
          if (
    Delay_Rotate_Close == 1000) {
            
    Delay_Rotate_Close 5000;
          } else {
            
    Delay_Rotate_Close--;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 0) {
          
    key_UP 1;
          
    key 1;
          if (
    Delay_Rotate_Close == 5000) {
            
    Delay_Rotate_Close 1000;
          } else {
            
    Delay_Rotate_Close++;
          }
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key_SET 1;
          
    key 1;
          break;
        }
        if (
    key == && key_SET == && key_DOWN == && key_UP == 1) {
          
    key 0;
        }
      }
      
    Save();
    }

    //*********************************************Subprogram Save()
    void Save() {
      
    lcd.clear();
      
    lcd.setCursor(00);
      
    lcd.print("*Alhamdolellah*");
      
    lcd.setCursor(01);
      
    lcd.print(">    Save...    ");
      
    EEPROM.put(10Speed_Rotate_Open);
      
    EEPROM.put(15Delay_Rotate_Open );
      
    EEPROM.put(30Stay_Open );
      
    EEPROM.put(20Speed_Rotate_Close );
      
    EEPROM.put(25Delay_Rotate_Close );
      
    delay(2500);
      
    lcd.clear();

    ویرایش توسط حمید حمید : 2020/04/06 در ساعت 20:45 دلیل: تکمیل و رفع چند ایراد کد
نمایش نتایج: از 1 به 1 از 1

موضوعات مشابه

  1. پاسخ: 7
    آخرين نوشته: 2019/06/11, 04:03
  2. ساخت اسپيد کنترل موتور dc با سروو
    توسط hamed.asadi در انجمن پروسسورهای ARM
    پاسخ: 1
    آخرين نوشته: 2013/09/07, 15:39
  3. طراحی و ساخت درایور سروو موتور ac با توان یک کیلو وات
    توسط mortezai در انجمن الكترونيك صنعتی
    پاسخ: 29
    آخرين نوشته: 2012/01/25, 07:40
  4. ساختمان داخلی سه نوع موتور (موتور dc و سروو موتور و استپ موتور)*انفجاری*
    توسط فرشاد اکرمی در انجمن ترانسفورماتورها و ماشين هاي الکتريکي
    پاسخ: 9
    آخرين نوشته: 2010/10/07, 16:25
  5. روش ساخت موتور سروو
    توسط feshwari در انجمن رباتيك و مكاترونيك
    پاسخ: 4
    آخرين نوشته: 2010/06/18, 10:28

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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