اطلاعیه

Collapse
No announcement yet.

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

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

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

    با سلام خدمت دوستان عزیز و گرامی. من به یک تایمر با کارکرد خاص دارم. ولی از اونجایی که به avr وارد نیستم به توصیه دوست خوبم جناب طراح این مورد را اینجا مطرح کردم تا با کمک دوستان حل بشه.
    من به یک تایمر با دو مد کاربری یکی از 1 دقیقه تا 10 دقیقه و دیگری از 15 دقیقه تا 2 ساعت نیاز دارم. در واقع میخوام با یک دیپ سوئیچ مشخص بشه که تایمر رو کدوم مد قراره کار کنه. از طرفی رو هر دو حالت هم بشه از کلید ست و ریست استفاده کرد و هم در صورت لزوم از قطع و وصل جریان برق.
    مهمترین نکته اینه که این تایمر باید ولوم تنظیم بشه نه با کلیدهای up و down .
    چیزی که من دارم یه پروگرمر ساده avr هستش. اگر نرم افزار یا وسیله ای باید تهیه کنم بفرمایید تا تهیه کنم.
    خنده بر لب میزنم تا کس نداند راز من ورنه این دنیا که ما دیدیم خندیدن نداشت

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

    #2
    پاسخ : در خواست کمک برای ساخت تایمر

    سلام
    جناب آقای طراح استاد ما هستند من که خودم خیلی چیزها از ایشون یاد گرفتم
    شما با بیسیک می خواین برنامه بنویسید یا سی ؟
    برای c باید کدویژن رو دانلود کنید و برای بیسیک بسکام (البته استاد طراح همیشه سی رو پیشنهاد می کنند)

    نمایشگر چی باشه ؟ 7سگمنت ؟ ال سی دی ؟ (کاراکتری یا گرافیکی)
    از لب ویو هم میشه به عنوان نمایشگر استفاده کرد

    دیدگاه


      #3
      پاسخ : در خواست کمک برای ساخت تایمر

      مرسی از پاسختون. هر نرم افزاری باشه دانلود میکنم. نمایشگر هم نیاز نیست. ولی اگر لازمه خوب اونم مهم نیست. هم کاراکتری 2*16 دارم هم سون سگمنت.
      در واقع من قراره این تایمر رو جایگزین تایمرهای مکانیکی قدیمی بکنم.
      خنده بر لب میزنم تا کس نداند راز من ورنه این دنیا که ما دیدیم خندیدن نداشت

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

      دیدگاه


        #4
        پاسخ : در خواست کمک برای ساخت تایمر

        خواهش می کنم
        من تا جائی که بتونم کمک می کنم ( متاسفانه زیاد وقت ندارم چندروز دیگه باید برم سربازی ولی امیدوارم بشه تو این چند روز تمومش کرد)

        درباره ولوم : پیشنهاد من اینه که به وسیله ولوم یه ولتاژ متغییر بین 0 تا مثلا 4 رو بدیم به ADC میکرو و با توجه به مقدار دیجیتال اون تایمر رو تنظیم کنیم

        سوال ؟ چرا دارای 2 مد کاری باشه ؟ نمیشه 1 مد داشته باشه و ما به وسیله یه ولوم مثلا براش تنظیم کنیم 1 ساعت یا 10 دقیقه و تایمر شروع کنه به شمارش؟

        راستی بازه تغییرات چقدره ؟ یک دقیقه ؟ مثلا 1و2و3و... یا بزرگتر از 1 دقیقست ؟

        دیدگاه


          #5
          پاسخ : در خواست کمک برای ساخت تایمر

          با توجه به ارادتی که برای جناب ashk به دلیل کمک های ایشان در انجمن قائل هستم، در مورد این صورت مسئله از ایشان درخواست کردم که مسئله را در انجمن مطرح کنند تا هم برای همه قابل استفاده باشد و هم در صورتی که توسط دوستان دیگر به نتیجه نرسید، برای انجام آن همکاری لازم را انجام دهم. در صورت مسئله مطرح شده، چند ورودی و خروجی لازم به نظر می رسد:

          - ورودی آنالوگ برای تعیین زمان تایمر
          - ورودی برای تعیین محدوده زمانی ( 1 تا 10 دقیقه یا 15 دقیقه تا 2 ساعت).
          - ورودی برای تعیین نحوه شروع به کار تایمر از زمان ریست یا با کلید Start/Stop
          - ورودی برای کلید Start/Stop
          - خروجی برای ایجاد فرمان قطع و وصل ناشی از فرمان تایمر

          همچنین موارد زیر هم می توانند برای عملکرد بهتر پیش بینی شوند:

          - خروجی برای اتصال به Led برای تعیین قرار داشتن در وضعیت زمان گیری یا غیر فعال بودن تایمر
          - خروجی برای اتصال به Led برای تعیین فعال یا غیر فعال بودن خروجی

          بسته به اینکه چه تعداد ورودی و خروجی مورد نظر باشد و این مطلب که آیا دقت زمانی اسیلاتور داخلی در این کاربرد کفایت می کند (که ظاهرا اینطور است) می توان از شماره هایی با پین های کم مثل tiny13 استفاده کرد و در شرایطی که اتصال کریستال برای دقت بیشتر مورد نظر باشد و همه ورودی و خروجی ها هم مورد نیاز باشند، شماره هایی مثل mega8 (که در بازار فراوان هستند) پاسخگوی صورت مسئله خواهد بود.
          اوژن: به معنای افکننده و شکست دهنده است
          دانایی، توانایی است-Knowledge is POWER
          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

          دیدگاه


            #6
            پاسخ : در خواست کمک برای ساخت تایمر

            نوشته اصلی توسط mehrdad_italy

            سوال ؟ چرا دارای 2 مد کاری باشه ؟ نمیشه 1 مد داشته باشه و ما به وسیله یه ولوم مثلا براش تنظیم کنیم 1 ساعت یا 10 دقیقه و تایمر شروع کنه به شمارش؟

            راستی بازه تغییرات چقدره ؟ یک دقیقه ؟ مثلا 1و2و3و... یا بزرگتر از 1 دقیقست ؟
            ضمن تشکر از شما باید بگم علت تعیین دو مد اینه که اگر قرار باشه تایمر 1 تا 120 دقیقه تنظیم بشه ممکنه تنظیم برای زمانهای کم مثلاً 5 دقیقه دشوار بشه. چون دامنه حرکت ولوم کم میشه. در مورد بازه هم در مد اول 1 دقیقه کافی است(30 ثانیه باشه عالی است) در مد دوم هم بازه 15 دقیقه کار رو را میاندازه که اونم اگر تا 5 دقیقه بشه خیلی بهتره.
            نوشته اصلی توسط طراح
            با توجه به ارادتی که برای جناب ashk به دلیل کمک های ایشان در انجمن قائل هستم، در مورد این صورت مسئله از ایشان درخواست کردم که مسئله را در انجمن مطرح کنند تا هم برای همه قابل استفاده باشد و هم در صورتی که توسط دوستان دیگر به نتیجه نرسید، برای انجام آن همکاری لازم را انجام دهم. در صورت مسئله مطرح شده، چند ورودی و خروجی لازم به نظر می رسد:

            - ورودی آنالوگ برای تعیین زمان تایمر
            - ورودی برای تعیین محدوده زمانی ( 1 تا 10 دقیقه یا 15 دقیقه تا 2 ساعت).
            - ورودی برای تعیین نحوه شروع به کار تایمر از زمان ریست یا با کلید Start/Stop
            - ورودی برای کلید Start/Stop
            - خروجی برای ایجاد فرمان قطع و وصل ناشی از فرمان تایمر

            همچنین موارد زیر هم می توانند برای عملکرد بهتر پیش بینی شوند:

            - خروجی برای اتصال به Led برای تعیین قرار داشتن در وضعیت زمان گیری یا غیر فعال بودن تایمر
            - خروجی برای اتصال به Led برای تعیین فعال یا غیر فعال بودن خروجی

            بسته به اینکه چه تعداد ورودی و خروجی مورد نظر باشد و این مطلب که آیا دقت زمانی اسیلاتور داخلی در این کاربرد کفایت می کند (که ظاهرا اینطور است) می توان از شماره هایی با پین های کم مثل tiny13 استفاده کرد و در شرایطی که اتصال کریستال برای دقت بیشتر مورد نظر باشد و همه ورودی و خروجی ها هم مورد نیاز باشند، شماره هایی مثل mega8 (که در بازار فراوان هستند) پاسخگوی صورت مسئله خواهد بود.
            جناب کی نژاد همیشه نسبت به بنده لطف داشتند. راستش دقیقاً همینطوره و مدار به همین شکل خواهد بود. فقط با توجه به محل زندگی این حقیر فکر میکنم با mega8 بهتر باشه چون فکر نمیکنم اینجا tiny پیدا بشه ولی mega 8 و16 باید باشه. حتی فکر کنم یکی داشته باشم.
            باز هم تشکر میکنم از همکاری شما دوستان عزیز.
            خنده بر لب میزنم تا کس نداند راز من ورنه این دنیا که ما دیدیم خندیدن نداشت

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

            دیدگاه


              #7
              پاسخ : پاسخ : در خواست کمک برای ساخت تایمر

              نوشته اصلی توسط طراح
              با توجه به ارادتی که برای جناب ashk به دلیل کمک های ایشان در انجمن قائل هستم، در مورد این صورت مسئله از ایشان درخواست کردم که مسئله را در انجمن مطرح کنند تا هم برای همه قابل استفاده باشد و هم در صورتی که توسط دوستان دیگر به نتیجه نرسید، برای انجام آن همکاری لازم را انجام دهم. در صورت مسئله مطرح شده، چند ورودی و خروجی لازم به نظر می رسد:

              - ورودی آنالوگ برای تعیین زمان تایمر
              - ورودی برای تعیین محدوده زمانی ( 1 تا 10 دقیقه یا 15 دقیقه تا 2 ساعت).
              - ورودی برای تعیین نحوه شروع به کار تایمر از زمان ریست یا با کلید Start/Stop
              - ورودی برای کلید Start/Stop
              - خروجی برای ایجاد فرمان قطع و وصل ناشی از فرمان تایمر

              همچنین موارد زیر هم می توانند برای عملکرد بهتر پیش بینی شوند:

              - خروجی برای اتصال به Led برای تعیین قرار داشتن در وضعیت زمان گیری یا غیر فعال بودن تایمر
              - خروجی برای اتصال به Led برای تعیین فعال یا غیر فعال بودن خروجی

              بسته به اینکه چه تعداد ورودی و خروجی مورد نظر باشد و این مطلب که آیا دقت زمانی اسیلاتور داخلی در این کاربرد کفایت می کند (که ظاهرا اینطور است) می توان از شماره هایی با پین های کم مثل tiny13 استفاده کرد و در شرایطی که اتصال کریستال برای دقت بیشتر مورد نظر باشد و همه ورودی و خروجی ها هم مورد نیاز باشند، شماره هایی مثل mega8 (که در بازار فراوان هستند) پاسخگوی صورت مسئله خواهد بود.
              سلام خدمت اقای کینژاد
              با توجه با توضیحاتی که اقای ashk به من دادن شروع به نوشتن برنامه کردم (atmega 8 نداشتم از atmega 32 استفاده کردن که در صورت نیاز با ایجاد کمی تغییرات قابل استفاده است)
              برای نمایش مقدار تایمر از 7سگمنت استفاده کردم و قسمت تعیین مقدار تایمر تا حدی انجام شده...
              الان یه مشکلی هست برای ایجاد 1 ثانیه از تایمر 0 و کریستال 8MHz استفاده کردم به صورت زیر :

              کد:
              void delay_1s(){
              
                for(c=0;c<=500;c++){
                TCCR0|=(1<<CS01|1<<CS00);
                TCNT0=0x06;
                while(!(TIFR & 0x01));  
                TCCR0=0x00;
                TIFR|=0x01;
               }
               
              }
              ولی متاسفانه در عمل بیشتر از 1 ثانیه زمان می بره (فیوزبیت ها رو هم CLSEL0..3 11111 قرار دادم )
              به نظر شما مشکل از چی می تونه باشه ؟

              دیدگاه


                #8
                پاسخ : در خواست کمک برای ساخت تایمر

                در حلقه for تعداد سرریز تایمر به دلیل استفاده از 500=> در عمل 501 بار شمارش شده که باید 500 بار باشد. به غیر از این مسئله اگر کد معادل اسمبلی دستورات را ببینید، مشاهده خواهید کرد که از لحظه مقدار دهی اولیه به تایمر تا تشخیص یک شدن Flag آن و تکرار این حلقه، دستورات اضافی زیادی اجرا می شود که موجب افزایش زمان مورد نظر خواهد شد. بطور کلی استفاده از روش مقداردهی اولیه و Overflow دارای خطای قابل توجهی است و برای ساخت دقیق تر زمان باید از روش CTC استفاده کنید.
                اوژن: به معنای افکننده و شکست دهنده است
                دانایی، توانایی است-Knowledge is POWER
                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                دیدگاه


                  #9
                  پاسخ : پاسخ : در خواست کمک برای ساخت تایمر

                  نوشته اصلی توسط طراح
                  در حلقه for تعداد سرریز تایمر به دلیل استفاده از 500=> در عمل 501 بار شمارش شده که باید 500 بار باشد. به غیر از این مسئله اگر کد معادل اسمبلی دستورات را ببینید، مشاهده خواهید کرد که از لحظه مقدار دهی اولیه به تایمر تا تشخیص یک شدن Flag آن و تکرار این حلقه، دستورات اضافی زیادی اجرا می شود که موجب افزایش زمان مورد نظر خواهد شد. بطور کلی استفاده از روش مقداردهی اولیه و Overflow دارای خطای قابل توجهی است و برای ساخت دقیق تر زمان باید از روش CTC استفاده کنید.
                  من تا اینجا پیشرفتم
                  یه دیپ سوئیچ گذاشتم که دوتا مد 1تا10 و 15 تا 120 دقیقه رو داره و روی سون سگمنت نمایش می ده ...
                  از کریستال ساعت و تایمر 2 استفاده کردم تا بتونم زمان 1دقیقه رو بوجود بیارم...

                  دیدگاه


                    #10
                    پاسخ : پاسخ : در خواست کمک برای ساخت تایمر

                    نوشته اصلی توسط mehrdad_italy
                    من تا اینجا پیشرفتم
                    یه دیپ سوئیچ گذاشتم که دوتا مد 1تا10 و 15 تا 120 دقیقه رو داره و روی سون سگمنت نمایش می ده ...
                    از کریستال ساعت و تایمر 2 استفاده کردم تا بتونم زمان 1دقیقه رو بوجود بیارم...
                    شما کار خود را در این مورد ادامه دهید. در صورت به نتیجه نرسیدن، من در یک فرصت مقتضی نمونه کدی را آماده می کنم و در این تاپیک قرار می دهم.
                    اوژن: به معنای افکننده و شکست دهنده است
                    دانایی، توانایی است-Knowledge is POWER
                    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                    دیدگاه


                      #11
                      پاسخ : در خواست کمک برای ساخت تایمر

                      تقریبا تموم شده فقط یکم ریزه کاریش مونده ...

                      دیدگاه


                        #12
                        پاسخ : در خواست کمک برای ساخت تایمر

                        توضیحات :

                        همونطوری که تو شماتیک مشخصه از ATmega 32 استفاده شده که میتونید با ATmega16 جایگزین کنید , برای تامین کلاک از کریستال خارجی 8MHz استفاده کردم چون قراره تو محیط صنعتی استفاده بشه نویز کمتری بگیره البته میشه از کریستال داخلی میکرو استفاده کرد .
                        برای ایجاد زمان دقیق از کریستال 32768Hz (کریستال ساعت) و تایمر 2 به عنوان RTC استفاده شده .
                        برای تغذیه مدار هم از 7805 استفاده کردم که تو شماتیک دیگه رسم نکردم.
                        خوب حالا میرم سراغ عملکرد مدار:

                        وقتی تغذیه مدار وصل بشه میکرو 2 مد رو می تونه انتخاب کنه 1: اتوماتیک 2: دستی
                        (1: اتوماتیک به این صورته که میکرو مقدار زمان مورد نظر رو که قبلا با پتانسومتر انتخاب شده رو می خونه و خروجی رو وصل می کنه و شروع به شمارش می کنه تا زمانی که مقدار زمان مورد نظر تموم بشه و خروجی رو قطع می کنه ( در شکل زیر ال ای دی سبز وصل بودن خروجی و قرمز قطع بودن خروجی رو نشون می ده) برای تنظیم زمان باید پتانسیومتر رو تنظیم کرد و کلید ریست مدار رو زد
                        2: دستی به این صورته که میکرو وارد یه حلقه میشه و مقدار زمانی رو که کاربر نیاز داره رو ازش می گیره و منتظر می مونه تا کلید استارت زده بشه در این صورت خروجی رو وصل میکنه و تا زمانی که شمارش تموم بشه یا کلید استوپ زده بشه به کارش ادامه میده . )

                        اگه دیپ سویچ دوم on باشه وضعیت اتوماتیک و اگر off باشه وضعیت دستی

                        بعد از انتخاب مد اتوماتیک یا دستی میکرو باید وضعیت گام های زمانی رو مشخص کنه که دارای 2 حالته :
                        1 : از 1 تا 10 دقیقه با گام های 1 دقیقه
                        2: از 15 تا 120 دقیقه با گام های 15 دقیقه ( که میشه کمتر باشه)

                        برای انتخاب مد اول دیپ سوییچ اول باید on باشه و برای حالت دوم off
                        (البته برای تغییر مدهای مختلف میکرو باید بعد از اعمال تغییرات کلید ریست میکرو فشار داده بشه یا تغذیه قطع و وصل بشه البته می شد به صورت انلاین مدها رو تغییر داد ولی برای کارکرد بهتره دستگاهی که قراره کنترل بشه بهتره به اینصورت باشه

                        بقیه مدار هم توضیح خاصی نداره اگه سوالی بود در خدمتم البته تا شنبه چون از شنبه در خدمتم از نوع سربازی

                        (از جناب اقای طراح هم می خوام اگر مشکلی داره لطف کنن بگن برطرف کنم , با تشکر )

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

                        http://mitaly.persiangig.com/document/Timer.rar











                        دیدگاه


                          #13
                          پاسخ : در خواست کمک برای ساخت تایمر

                          واقعاً ممنونم. خیلی لطف کردید.
                          فقط 1 نکته. من دیدم یه mega8 دارم. با اون نمیشه؟؟؟ بعد برای پروگرم کردنش از برنامه ای استفاده کنم؟؟
                          خنده بر لب میزنم تا کس نداند راز من ورنه این دنیا که ما دیدیم خندیدن نداشت

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

                          دیدگاه


                            #14
                            پاسخ : پاسخ : در خواست کمک برای ساخت تایمر

                            نوشته اصلی توسط ashk
                            واقعاً ممنونم. خیلی لطف کردید.
                            فقط 1 نکته. من دیدم یه mega8 دارم. با اون نمیشه؟؟؟ بعد برای پروگرم کردنش از برنامه ای استفاده کنم؟؟
                            خواهش می کنم
                            برای پروگرم کردنش بستگی به پروگرمرتون داره اگه خودش برنامه برای این کار نداره از خود کدویژن (برنامه رو با کدویژن نوشتم) استفاده کنید
                            می تونید از اینجا دانلود کنید
                            http://www.techno-electro.com/21-%D8...VR-2-05-3.html

                            با atmega 8 نمیشه اگه می تونید atmega16 یا 32 گیر بیارید اگه نمی تونید بگید من برنامش رو برای atmega 8 تغییر بدم

                            دیدگاه


                              #15
                              پاسخ : در خواست کمک برای ساخت تایمر

                              شماتیک پروگرمر STK 200//300

                              دیدگاه

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