اطلاعیه

Collapse
No announcement yet.

مدار کنترل با دو یا چند خروجی

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

    مدار کنترل با دو یا چند خروجی

    سلام وقت بخیر
    دوستان کسی میتونه راهنمایی کنه من یک مدار لازم دارم که با یک سوییچ 2 خروجی رو کنترل کنم. به این صورت که با زدن سوییچ ،خروجی اول فعال بشه با قطع و وصل مجدد خروجی دوم فعال بشه. ( مشابه مداری که در چراغ قوه های پلیسی هست .با چندبار زدن یک کلید حالت های مختلف چراغ قوه فعال میشه)
    سپاس
    جدیدترین ویرایش توسط AR phantom; ۰۹:۱۲ ۱۴۰۴/۰۵/۱۶.

    #2
    درود
    مدارات مربوط به Toggle switch را در گوگل ببینید.

    دیدگاه


      #3
      نوشته اصلی توسط AR phantom نمایش پست ها
      سلام وقت بخیر
      دوستان کسی میتونه راهنمایی کنه من یک مدار لازم دارم که با یک سوییچ 2 خروجی رو کنترل کنم. به این صورت که با زدن سوییچ ،خروجی اول فعال بشه با قطع و وصل مجدد خروجی دوم فعال بشه. ( مشابه مداری که در چراغ قوه های پلیسی هست .با چندبار زدن یک کلید حالت های مختلف چراغ قوه فعال میشه)
      سپاس
      با سلام و احترام
      راحتترین و سریعترین راه برای دریافت راهنمایی و حتی موارد پیچیده تر مثل دریافت کد برای آردویینو و یا ESP و ... اینه که میرید داخل CHATGPT و متن درخواستتان را به فارسی اونجا مینویسید و جواب سوال یا کد مورد درخواستتان را تحویل میگیرید حتی میتوانید با توجه به راهنماییها و نوشتن درخواستهای اضافی مرتبا کد را کاملتر کنید. به همین راحتی!
      موفق باشید.

      دیدگاه


        #4
        نوشته اصلی توسط AR phantom نمایش پست ها
        سلام وقت بخیر
        دوستان کسی میتونه راهنمایی کنه من یک مدار لازم دارم که با یک سوییچ 2 خروجی رو کنترل کنم. به این صورت که با زدن سوییچ ،خروجی اول فعال بشه با قطع و وصل مجدد خروجی دوم فعال بشه. ( مشابه مداری که در چراغ قوه های پلیسی هست .با چندبار زدن یک کلید حالت های مختلف چراغ قوه فعال میشه)
        سپاس
        با سلام مجدد
        ادامه از پست قبل.
        بعنوان نمونه من سوال شما را همانگونه که نوشته بودید در CHATGPT وارد کردم:

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

        برای ساختن مداری که با فشردن یک کلید (push button یا momentary switch)، بین دو خروجی به صورت ترتیبی سوئیچ کند (بار اول خروجی اول فعال شود، بار دوم خروجی دوم و بعد دوباره خروجی اول و …)، می‌توان از یک مدار شمارنده (counter) و مدار منطقی یا میکروکنترلر استفاده کرد.

        در ادامه دو راه‌حل برای شما می‌آورم:
        ✅ راه‌حل اول: استفاده از آی‌سی شمارنده (بدون میکروکنترلر)

        قطعات مورد نیاز:
        • آی‌سی CD4017 (جانسون دکودر شمارنده ده حالته)
        • دکمه فشاری (Push Button)
        • مقاومت 10kΩ
        • خازن 100nF
        • ترانزیستور یا رله (برای سوئیچ کردن بارهای بزرگ)
        • دیود (برای حفاظت از رله)
        • منبع تغذیه 5V یا 9V یا 12V
        عملکرد:
        • آی‌سی CD4017 در هر بار دریافت یک پالس (مثلاً با فشار دادن دکمه)، یکی از خروجی‌هایش را HIGH می‌کند.
        • می‌توان از خروجی Q0 برای خروجی اول و Q1 برای خروجی دوم استفاده کرد.
        • پس از Q1 باید شمارنده ریست شود تا دوباره به Q0 برگردد.
        مدار ساده:

        Button --> RC Debounce --> Clock input (pin 14) of CD4017
        Q0 (pin 3) --> Output 1
        Q1 (pin 2) --> Output 2
        Q2 (pin 4) --> Reset pin (pin 15)


        نکته: با اتصال Q2 به پایه ریست، بعد از رسیدن شمارنده به Q2، دوباره به Q0 برمی‌گردد.
        ✅ راه‌حل دوم: استفاده از آردوینو (اگر دسترسی دارید)


        اگر با برنامه‌نویسی ساده مشکلی ندارید، می‌توانید از یک میکروکنترلر مثل Arduino Nano یا Uno استفاده کنید. مزایا:
        • قابل گسترش برای بیش از 2 حالت (مثلاً حالت چشمک‌زن، SOS، استروب و...)
        • انعطاف‌پذیر
        • ساده‌تر برای تغییر منطق عملکرد
        شماتیک ساده:
        • یک دکمه به یک پین دیجیتال (مثلاً D2)
        • دو خروجی به پین‌های دیگر (مثلاً D3 و D4)
        کد آردوینو:

        int buttonPin = 2;
        int output1 = 3;
        int output2 = 4;

        int state = 0;
        bool lastButtonState = LOW;
        unsigned long lastDebounceTime = 0;
        const unsigned long debounceDelay = 50;

        void setup() {
        pinMode(buttonPin, INPUT);
        pinMode(output1, OUTPUT);
        pinMode(output2, OUTPUT);
        }

        void loop() {
        bool reading = digitalRead(buttonPin);

        if (reading != lastButtonState) {
        lastDebounceTime = millis();
        }

        if ((millis() - lastDebounceTime) > debounceDelay) {
        if (reading == HIGH && lastButtonState == LOW) {
        state = (state + 1) % 2; // بین 0 و 1 می‌چرخد
        }
        }

        lastButtonState = reading;

        digitalWrite(output1, state == 0 ? HIGH : LOW);
        digitalWrite(output2, state == 1 ? HIGH : LOW);
        }​





        البته توجه داشته باشید که لزوما همیشه جواب یا کد ممکن است صد در صد صحیح نباشد و بخشهایی از آن مشکل داشته باشد ولی حتی در این موارد هم میتوانید با پرسیدن بیشتر نتیجه را بهبود بخشید.

        موفق باشید.
        جدیدترین ویرایش توسط evergreen; ۱۱:۵۵ ۱۴۰۴/۰۵/۱۶.

        دیدگاه


          #5
          سلام بهتره از ماژول آماده بازار استفاده بکنید مشابه توضیحات شما هست

          دیدگاه

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