اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه نویسی آردینو

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

    مشکل در برنامه نویسی آردینو

    سلام
    من دوتا رله دارم و دوتا کلید وقتی که میخوام کلید دو حالته اول را وصل کردم اگر کلید دوم که به پین 5 وصله اگر روشن بود رله اول فعال شود و اگر قطع بود رله دوم فعال شود و با قطع کلید اول ، هر دو رله خاموش شوند
    مقاومت داخلی رله ها را فعال کردم
    کلید اول به پین سه وصله
    کلید دوم به پین 5
    رله اول به پین 10
    رله دوم به پین دوازده
    هر کاری می کنم خطا میده


    در حالت تکی هر دو کلید درست کار می کنن یعنی میگم کلید یک وقتی وصل میشه هر دو رله را روشن کن و روشن میشن و موقع قطع کلید قطع میشن ولی تا میام شرط میزارم درست کار نمیکنن
    این در حالت تک کلید که درست کار میکنه
    و بعد از این کد کدی که دو کلید کار نمیکنه را میزارم



    const int buttonPin = 3; // پین اتصال کلید
    const int relayPin1 = 10; // پین اتصال رله 1
    const int relayPin2 = 12; // پین اتصال رله 2
    void setup() {
    pinMode(buttonPin, INPUT_PULLUP); // تنظیم پین کلید به عنوان ورودی با مقاومت Pull-up داخلی
    pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی
    pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی
    digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا
    digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا
    }
    void loop() {
    int buttonState = digitalRead(buttonPin); // خواندن وضعیت کلید
    // اگر کلید فعال باشد (فشرده شود و پین 3 به حالت LOW برود)
    if (buttonState == LOW) {
    digitalWrite(relayPin1, HIGH); // فعال کردن رله 1
    digitalWrite(relayPin2, HIGH); // فعال کردن رله 2
    } else { // اگر کلید غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)

    digitalWrite(relayPin1, LOW); // خاموش کردن رله 1
    digitalWrite(relayPin2, LOW); // خاموش کردن رله 2
    }
    }

    ************************************************** *******اینم کدی که درست کار نمیکنه البته چند راه را امتحان کردم

    const int buttonPin = 3; // پین اتصال کلید

    const int relayPin1 = 10; // پین اتصال رله 1

    const int relayPin2 = 12; // پین اتصال رله 2




    void setup() {

    pinMode(buttonPin, INPUT_PULLUP); // تنظیم پین کلید به عنوان ورودی با مقاومت Pull-up داخلی

    pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی

    pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی

    digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا

    digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا

    }




    void loop() {

    int buttonState = digitalRead(buttonPin); // خواندن وضعیت کلید




    // اگر کلید فعال باشد (فشرده شود و پین 3 به حالت LOW برود)

    if (buttonState == LOW) {

    digitalWrite(relayPin1, HIGH); // فعال کردن رله 1

    digitalWrite(relayPin2, HIGH); // فعال کردن رله 2

    } else { // اگر کلید غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)



    digitalWrite(relayPin1, LOW); // خاموش کردن رله 1

    digitalWrite(relayPin2, LOW); // خاموش کردن رله 2

    }

    }


    #2
    نوشته اصلی توسط حامد ح نمایش پست ها
    سلام
    من دوتا رله دارم و دوتا کلید وقتی که میخوام کلید دو حالته اول را وصل کردم اگر کلید دوم که به پین 5 وصله اگر روشن بود رله اول فعال شود و اگر قطع بود رله دوم فعال شود و با قطع کلید اول ، هر دو رله خاموش شوند
    مقاومت داخلی رله ها را فعال کردم
    کلید اول به پین سه وصله
    کلید دوم به پین 5
    رله اول به پین 10
    رله دوم به پین دوازده
    هر کاری می کنم خطا میده


    در حالت تکی هر دو کلید درست کار می کنن یعنی میگم کلید یک وقتی وصل میشه هر دو رله را روشن کن و روشن میشن و موقع قطع کلید قطع میشن ولی تا میام شرط میزارم درست کار نمیکنن
    این در حالت تک کلید که درست کار میکنه
    و بعد از این کد کدی که دو کلید کار نمیکنه را میزارم



    const int buttonPin = 3; // پین اتصال کلید
    const int relayPin1 = 10; // پین اتصال رله 1
    const int relayPin2 = 12; // پین اتصال رله 2
    void setup() {
    pinMode(buttonPin, INPUT_PULLUP); // تنظیم پین کلید به عنوان ورودی با مقاومت Pull-up داخلی
    pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی
    pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی
    digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا
    digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا
    }
    void loop() {
    int buttonState = digitalRead(buttonPin); // خواندن وضعیت کلید
    // اگر کلید فعال باشد (فشرده شود و پین 3 به حالت LOW برود)
    if (buttonState == LOW) {
    digitalWrite(relayPin1, HIGH); // فعال کردن رله 1
    digitalWrite(relayPin2, HIGH); // فعال کردن رله 2
    } else { // اگر کلید غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)

    digitalWrite(relayPin1, LOW); // خاموش کردن رله 1
    digitalWrite(relayPin2, LOW); // خاموش کردن رله 2
    }
    }

    ************************************************** *******اینم کدی که درست کار نمیکنه البته چند راه را امتحان کردم

    const int buttonPin = 3; // پین اتصال کلید

    const int relayPin1 = 10; // پین اتصال رله 1

    const int relayPin2 = 12; // پین اتصال رله 2




    void setup() {

    pinMode(buttonPin, INPUT_PULLUP); // تنظیم پین کلید به عنوان ورودی با مقاومت Pull-up داخلی

    pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی

    pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی

    digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا

    digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا

    }




    void loop() {

    int buttonState = digitalRead(buttonPin); // خواندن وضعیت کلید




    // اگر کلید فعال باشد (فشرده شود و پین 3 به حالت LOW برود)

    if (buttonState == LOW) {

    digitalWrite(relayPin1, HIGH); // فعال کردن رله 1

    digitalWrite(relayPin2, HIGH); // فعال کردن رله 2

    } else { // اگر کلید غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)



    digitalWrite(relayPin1, LOW); // خاموش کردن رله 1

    digitalWrite(relayPin2, LOW); // خاموش کردن رله 2

    }

    }

    من کتاب برنامه نویسی آردوینو رو گرفتم ولی هنوز نخوندمش.
    این اپلیکیشن هوش مصنوعی شاید کارت رو راه بندازه
    با سلام و خدا قوت خدمت همه مهندس های انجمن. مطلبی رو آشنا شدم گفتم با شما به اشتراک بگذارم. هوش مصنوعی copilot محصول شرکت ماکروسافت . دوستان دانلود کنید اپلیکیشن اندروید و خیلی خوب هست... فیلتر شکن برای استفاده لازمه با بسیاری از زبان های دنیا از جمله فارسی کار می‌کنه. هر سوالی داشته باشید جواب میده عکس براتون میسازه. فقط کافیه
    دوستان عزیز همه ما بدون هیچ توقعی توی این انجمن دانسته هامون رو با هم به اشتراک میگذاریم. کمترین توقع یک لایک می باشد.

    دیدگاه


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

      دیدگاه


        #4
        نوشته اصلی توسط حامد ح نمایش پست ها
        سلام
        من دوتا رله دارم و دوتا کلید وقتی که میخوام کلید دو حالته اول را وصل کردم اگر کلید دوم که به پین 5 وصله اگر روشن بود رله اول فعال شود و اگر قطع بود رله دوم فعال شود و با قطع کلید اول ، هر دو رله خاموش شوند
        مقاومت داخلی رله ها را فعال کردم
        کلید اول به پین سه وصله
        کلید دوم به پین 5
        رله اول به پین 10
        رله دوم به پین دوازده
        هر کاری می کنم خطا میده


        در حالت تکی هر دو کلید درست کار می کنن یعنی میگم کلید یک وقتی وصل میشه هر دو رله را روشن کن و روشن میشن و موقع قطع کلید قطع میشن ولی تا میام شرط میزارم درست کار نمیکنن
        این در حالت تک کلید که درست کار میکنه
        و بعد از این کد کدی که دو کلید کار نمیکنه را میزارم



        const int buttonPin = 3; // پین اتصال کلید
        const int relayPin1 = 10; // پین اتصال رله 1
        const int relayPin2 = 12; // پین اتصال رله 2
        void setup() {
        pinMode(buttonPin, INPUT_PULLUP); // تنظیم پین کلید به عنوان ورودی با مقاومت Pull-up داخلی
        pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی
        pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی
        digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا
        digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا
        }
        void loop() {
        int buttonState = digitalRead(buttonPin); // خواندن وضعیت کلید
        // اگر کلید فعال باشد (فشرده شود و پین 3 به حالت LOW برود)
        if (buttonState == LOW) {
        digitalWrite(relayPin1, HIGH); // فعال کردن رله 1
        digitalWrite(relayPin2, HIGH); // فعال کردن رله 2
        } else { // اگر کلید غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)

        digitalWrite(relayPin1, LOW); // خاموش کردن رله 1
        digitalWrite(relayPin2, LOW); // خاموش کردن رله 2
        }
        }

        ************************************************** *******اینم کدی که درست کار نمیکنه البته چند راه را امتحان کردم

        const int buttonPin = 3; // پین اتصال کلید

        const int relayPin1 = 10; // پین اتصال رله 1

        const int relayPin2 = 12; // پین اتصال رله 2




        void setup() {

        pinMode(buttonPin, INPUT_PULLUP); // تنظیم پین کلید به عنوان ورودی با مقاومت Pull-up داخلی

        pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی

        pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی

        digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا

        digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا

        }




        void loop() {

        int buttonState = digitalRead(buttonPin); // خواندن وضعیت کلید




        // اگر کلید فعال باشد (فشرده شود و پین 3 به حالت LOW برود)

        if (buttonState == LOW) {

        digitalWrite(relayPin1, HIGH); // فعال کردن رله 1

        digitalWrite(relayPin2, HIGH); // فعال کردن رله 2

        } else { // اگر کلید غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)



        digitalWrite(relayPin1, LOW); // خاموش کردن رله 1

        digitalWrite(relayPin2, LOW); // خاموش کردن رله 2

        }

        }

        با سلام و احترام
        بنظر میاد هر دو کدی که گذاشته اید کاملا یکسان میباشد.

        دیدگاه


          #5
          نوشته اصلی توسط evergreen نمایش پست ها

          با سلام و احترام
          بنظر میاد هر دو کدی که گذاشته اید کاملا یکسان میباشد.
          const int buttonPin3 = 3; // پین اتصال کلید اول
          const int buttonPin5 = 5; // پین اتصال کلید دوم
          const int relayPin1 = 10; // پین اتصال رله 1
          const int relayPin2 = 12; // پین اتصال رله 2
          void setup() {
          pinMode(buttonPin3, INPUT_PULLUP); // تنظیم پین کلید اول به عنوان ورودی با مقاومت Pull-up داخلی
          pinMode(buttonPin5, INPUT_PULLUP); // تنظیم پین کلید دوم به عنوان ورودی با مقاومت Pull-up داخلی
          pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی
          pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی
          digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا
          digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا
          }
          void loop() {
          int buttonState3 = digitalRead(buttonPin3); // خواندن وضعیت کلید اول
          int buttonState5 = digitalRead(buttonPin5); // خواندن وضعیت کلید دوم
          // اگر کلید اول فعال باشد (فشرده شود و پین 3 به حالت LOW برود)
          if (buttonState3 == LOW) {
          // بررسی وضعیت کلید دوم
          if (buttonState5 == LOW) { // اگر کلید دوم نیز فعال باشد
          digitalWrite(relayPin1, HIGH); // فعال کردن رله 1
          digitalWrite(relayPin2, LOW); // خاموش کردن رله 2
          } else { // اگر کلید دوم غیرفعال باشد
          digitalWrite(relayPin1, LOW); // خاموش کردن رله 1
          digitalWrite(relayPin2, HIGH); // فعال کردن رله 2
          }
          } else { // اگر کلید اول غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)
          digitalWrite(relayPin1, LOW); // خاموش کردن رله 1
          digitalWrite(relayPin2, LOW); // خاموش کردن رله 2
          }
          }​

          دیدگاه


            #6
            نوشته اصلی توسط حامد ح نمایش پست ها

            const int buttonPin3 = 3; // پین اتصال کلید اول
            const int buttonPin5 = 5; // پین اتصال کلید دوم
            const int relayPin1 = 10; // پین اتصال رله 1
            const int relayPin2 = 12; // پین اتصال رله 2
            void setup() {
            pinMode(buttonPin3, INPUT_PULLUP); // تنظیم پین کلید اول به عنوان ورودی با مقاومت Pull-up داخلی
            pinMode(buttonPin5, INPUT_PULLUP); // تنظیم پین کلید دوم به عنوان ورودی با مقاومت Pull-up داخلی
            pinMode(relayPin1, OUTPUT); // تنظیم پین رله 1 به عنوان خروجی
            pinMode(relayPin2, OUTPUT); // تنظیم پین رله 2 به عنوان خروجی
            digitalWrite(relayPin1, LOW); // اطمینان از خاموش بودن رله 1 در ابتدا
            digitalWrite(relayPin2, LOW); // اطمینان از خاموش بودن رله 2 در ابتدا
            }
            void loop() {
            int buttonState3 = digitalRead(buttonPin3); // خواندن وضعیت کلید اول
            int buttonState5 = digitalRead(buttonPin5); // خواندن وضعیت کلید دوم
            // اگر کلید اول فعال باشد (فشرده شود و پین 3 به حالت LOW برود)
            if (buttonState3 == LOW) {
            // بررسی وضعیت کلید دوم
            if (buttonState5 == LOW) { // اگر کلید دوم نیز فعال باشد
            digitalWrite(relayPin1, HIGH); // فعال کردن رله 1
            digitalWrite(relayPin2, LOW); // خاموش کردن رله 2
            } else { // اگر کلید دوم غیرفعال باشد
            digitalWrite(relayPin1, LOW); // خاموش کردن رله 1
            digitalWrite(relayPin2, HIGH); // فعال کردن رله 2
            }
            } else { // اگر کلید اول غیرفعال باشد (رها شود و پین 3 به حالت HIGH برگردد)
            digitalWrite(relayPin1, LOW); // خاموش کردن رله 1
            digitalWrite(relayPin2, LOW); // خاموش کردن رله 2
            }
            }​
            با سلام مجدد
            مشکلی در این کد نمیباشد. در اجرا چه اتفاقی می افتد که میگویید به درستی عمل نمیکند؟

            دیدگاه


              #7
              همین که برنامه را آپلود میکنم بر روی آردینو ، رله 12 خود به خود وصل میشه و در واقع انگار کلید زده شده
              در هر دو حالت هم امتحان میکنم یعنی هم کلید را قطع میکنم و هم وصل باز یکی از رله ها در اول برنامه خود به خود اجرا میشه
              گفتم شاید از برد آردینو باشه یه برد دیگه هم امتحان کردم همان شد
              آردینو uno هستش
              جدیدترین ویرایش توسط حامد ح; ۱۰:۲۳ ۱۴۰۳/۱۱/۲۲.

              دیدگاه


                #8
                نوشته اصلی توسط حامد ح نمایش پست ها
                همین که برنامه را آپلود میکنم بر روی آردینو ، رله 12 خود به خود وصل میشه و در واقع انگار کلید زده شده
                در هر دو حالت هم امتحان میکنم یعنی هم کلید را قطع میکنم و هم وصل باز یکی از رله ها در اول برنامه خود به خود اجرا میشه
                گفتم شاید از برد آردینو باشه یه برد دیگه هم امتحان کردم همان شد
                آردینو uno هستش
                کلیدی که استفاده میکنید از چه مدلی است؟
                رله 12 در صورتی با آپلود یا ریست بورد روشن میشود که ولتاژ پین ورودی 3، صفر منطقی باشد و ولتاژ پین ورودی 5، یک منطقی باشد. با مولتیمتر ولتاژ پین مربوط به کلیدها را چک کنید و ببینید پس از آپلود، ولتاژ این پایه ها چقدر است؟
                همچنین برای اطمینان میتوانید مقاومت پول آپ داخلی را غیر فعال کنید و خودتان مقاومت بین 4 تا 10 کیلو اهم برای پول آپ قرار دهید.
                مشکل هر چه هست مربوط به کلیدها میباشد چون کد صحیح است.

                دیدگاه

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