اطلاعیه

Collapse
No announcement yet.

دیمر دیجیتال با نمایشگر

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

    #16
    پاسخ : دیمر دیجیتال با نمایشگر

    حالا بجای اینکه لامپ نور کمتری داشته باشه چشمک میزنه راه چاره چیه؟
    من دقیقا با همین مشکل شما قبلا مواجه شده ام.
    مشکل در طول بیش از اندازه ، وقفه ها میباشد. میکرو برای هر نیم سیکل از موج سینوسی ، یک سیگنال تحریک باید به ترایاک بده. پس ماگزیمم میزان تاخیر ، میشه 10ms و اگه تاخیر شما از این مقدار بیشتر بشه ، وارد محدوده نیم سیکل بعدی خواهیم شد که در اینصورت تداخل پیش خواهد آمد و همه چی به هم میریزه.
    پس حداکثر تاخیر ها باید زیر 10ms باشه.

    دیدگاه


      #17
      پاسخ : دیمر دیجیتال با نمایشگر

      نوشته اصلی توسط feredi
      من دقیقا با همین مشکل شما قبلا مواجه شده ام.
      مشکل در طول بیش از اندازه ، وقفه ها میباشد. میکرو برای هر نیم سیکل از موج سینوسی ، یک سیگنال تحریک باید به ترایاک بده. پس ماگزیمم میزان تاخیر ، میشه 10ms و اگه تاخیر شما از این مقدار بیشتر بشه ، وارد محدوده نیم سیکل بعدی خواهیم شد که در اینصورت تداخل پیش خواهد آمد و همه چی به هم میریزه.
      پس حداکثر تاخیر ها باید زیر 10ms باشه.
      حداکثر تاخیر 20 میلی ثانیه!
      خوب من یک لوپ قرار ادم که بصورت زیره:

      کد:
      Int0_int:
      
      Set Portd.7
      For D = 0 To B
      Waitus 200
      Next D
      Reset Portd.7
       D = 0
      Return

      حالا کریستال میکرو را 4000000 قرار دادم
      یعنی تاخیر من در هر بار اجرای زیر برنامه ی وقفه برابر است با:
      مقدار متغیر B * دویست میکروثانیه

      که چون فرکانس برق شهر 50 هرتزه نباید از 20 میلی ثانیه تجاوز کنم
      یعنی ماکزیمم عدد B چقدر باشه؟ صد
      20000 میکرو ثانیه = دویست میکرو ثانیه * 100
      اما وقتی متغیر B = 10 باشه چشمک میزنه

      احساس میکنم دارم اشتباه حساب میکنم یا....

      شما نظرتون چیه؟
      Reveng will surely come... Your hard time are ahead
      // - - - - - - - - - -
      برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
      // - - - - - - - - - -
      اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
      // - - - - - - - - - -

      دیدگاه


        #18
        پاسخ : دیمر دیجیتال با نمایشگر

        حالا اگه حد اکثر تاخیر 10ms باشه ؛ ماکسیمم مقدار متغیر B برابر است با: 50

        درسته؟

        10000 میکرو ثانیه = 200میکرو ثانیه * 50
        Reveng will surely come... Your hard time are ahead
        // - - - - - - - - - -
        برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
        // - - - - - - - - - -
        اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
        // - - - - - - - - - -

        دیدگاه


          #19
          پاسخ : دیمر دیجیتال با نمایشگر

          یک سوال دیکه
          با فرکانس کریستال 1000000 ؛ هر بار اجرای دستور WAITUS 200 چند ثانیه میکرو تاخیر میده؟
          اگه میشه این موضوع را روشن کنید
          Reveng will surely come... Your hard time are ahead
          // - - - - - - - - - -
          برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
          // - - - - - - - - - -
          اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
          // - - - - - - - - - -

          دیدگاه


            #20
            پاسخ : دیمر دیجیتال با نمایشگر

            نوشته اصلی توسط سعید خیری
            یک سوال دیکه
            با فرکانس کریستال 1000000 ؛ هر بار اجرای دستور WAITUS 200 چند ثانیه میکرو تاخیر میده؟
            اگه میشه این موضوع را روشن کنید
            توی این برنامه ، برای تریگر کردن به موقع ترایاک ، محاسبه مقدار وقفه ها خیلی زیاد اهمیت داره. و همونطور که قبلا گفتم ، اشتباه توی این قسمت همه چی رو به هم میریزه.
            برنامتو مرور کردم اشتباهتون توی انتخاب فرکانس کریستال هست.
            البته فرکانس رو میشه عددهای دیگه هم انتخاب کرد ولی در اون صورت میزان وقفه ها باید مجددا محاسبه بشه.

            با مقدار E = 9 و فرکانس کریستال 4MHz که در برنامه اصلی تعیین شده ، شما موقع پروگرام کردن آیسی ، فیوز بیت فرکانس رو تغییر ندید و بگذارید روی همون 1MHz بمونه. مشکل شما حل خواهد شد.

            دیدگاه


              #21
              پاسخ : دیمر دیجیتال با نمایشگر

              فرمایش شما صحیح
              من هم هیچوقت فیوز بیتها رو دست نزدم و در همان مقدار !1Mhz باقی مونده
              اما یه سوال دیگه دارم که احتمال میدم شما متوجه منظور بنده نشدید
              تمامی زمان دهی ها درست شده و تریگر صحیح کار میکنه
              اما نور لامپ ممتد نیست؛ مثلا در لحظه ی ماکسیمم تاخیر ؛ نور لامپ فقط توی یک لحظه هی روشن میشه و باز خاموش میشه و باز روشن میشه و باز ....
              مثلا در مدت زمان 20ms لامپ فقط در لحظات 18ms الی 20ms روشن میمونه و در نهایت پروسه نور لامپ ممتد نمیمونه
              نهایتا فکر میکنم اگر به طریقی بشه در تمام لحظات به لامپ ولتاژ اعمال کنیم و نور را با جریان کنترل کنیم این مشکل حل بشه
              اما نمیدونم چطوری اینکارو انجام بدم
              شاید با یک خازن در دو سر لامپ مشکل حل بشه
              اما چه خازنی و چه اندازه ای و چطوری(سری یا موازی)
              شما چه راه حلی رو پیشنهاد میکنید؟
              امید وارم متوجه عرایز بنده شده باشید.
              Reveng will surely come... Your hard time are ahead
              // - - - - - - - - - -
              برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
              // - - - - - - - - - -
              اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
              // - - - - - - - - - -

              دیدگاه


                #22
                پاسخ : پاسخ : دیمر دیجیتال با نمایشگر

                نوشته اصلی توسط سعید خیری
                احتمال میدم شما متوجه منظور بنده نشدید
                .
                .
                امید وارم متوجه عرایض بنده شده باشید.
                از همون اول هم متوجه فرمایشاتتون بودم.
                باز هم میگم ، مشکل شما در میزان تاخیر ها میباشد.

                مثلا در لحظه ی ماکسیمم تاخیر ؛ نور لامپ فقط توی یک لحظه هی روشن میشه و باز خاموش میشه و باز روشن میشه و باز ....
                همین مورد دقیقا نشانه تداخل فرمان تریگر تریاک هست. وقفه هاتون زیاده.

                مثلا در مدت زمان 20ms لامپ فقط در لحظات 18ms الی 20ms روشن میمونه
                این فرمایشتون بی معنی هست.
                ترایاک در هر کجای موج هم قرار داشته باشه ، با تریگر شدن ، اون نیم سیکل رو تا آخر هدایت خواهد کرد. حتی اگه ولتاژ تریگر بعد از مدت کوتاهی قطع هم شده باشه.

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

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

                دیدگاه


                  #23
                  پاسخ : دیمر دیجیتال با نمایشگر

                  آقا Majid-BN
                  تلاشهام برای یاد گرفتن برنامه نویسی با سر خطهای شما به شدت ادامه داره.
                  امروز موفق شدم با دستور SELECT CASE که فرموده بودید ، اعداد 0 تا 100 رو روی 7segment نمایش بدم.
                  برای اثبات اینکه درسهامو خوب یاد گرفته ام ، به یه اشتباه کوچولو توی برنامتون اشاره میکنم. :icon_razz:
                  Set Sadgan_dig
                  چون مقادیر B برای 7segment کاتد مشترک نوشته شده بنابر این هنگام نمایش عدد ، Sadgan_dig باید reset بشه ، که من این مورد رو توی برنامه خودم رعایت کردم. البته میدونم اون برنامه رو فقط برای آموزش ارائه کرده بودید و توی متن ، زیاد تاکید بر دقت نشده. من هم فقط برای انبساط خاطر این نکته رو عرض کردم. جدی نگیرید.
                  تو راهنماییتون سه رقم نوشته بودید ، ولی جسارتا من با دو رقم کار کردم! آخه با محاسبه عدد 0 میشه صد رقم رو با دوتا 7segment هم نشون داد. :biggrin:
                  حالا مشکل بعدی رو مطرح میکنم ، که از اول هم انتظارش رو داشتم ، گذاشته بودم به وقتش مطرح کنم.

                  در این مدار ، duty cycle با مقدار توان تحویلی به بار نسبت عکس داره!!
                  یعنی با زیاد شدن اعداد ، نور لامپ کم میشه. و با کمترین عدد ، بیشترین نور رو توی لامپ داریم.
                  برای متناظر شدن اعداد نمایش داده شده با توان ارائه شده ، چه راه حلی پیشنهاد میفرمایید؟
                  به نظر خودم رسید که در جدول SELECT CASE چینش اعداد 0 تا 9 رو معکوس کنم. بدیین ترتیب که مقادیر باینری رو دست نزدم و محل 0 رو با 9 و 1 رو با 8 و . . . عوض کردم.
                  مشکل حل شد ولی به میزان دو رقم خطا دارم ، البته قابل اغماض هست ، ولی اگه یه راه حل حرفه ای داشته باشه ، ممنون میشم که راهنمایی بفرمایید.

                  دیدگاه


                    #24
                    پاسخ : دیمر دیجیتال با نمایشگر

                    نوشته اصلی توسط feredi
                    ترایاک در هر کجای موج هم قرار داشته باشه ، با تریگر شدن ، اون نیم سیکل رو تا آخر هدایت خواهد کرد. حتی اگه ولتاژ تریگر بعد از مدت کوتاهی قطع هم شده باشه.
                    وا خوب منم منظورم همین بود دیگه
                    مثلا اگه توی لحظه ی 14ms تریگ شده باشه تا آخر لامپ رو روشن میذاره
                    یا اگه تو لحظه ی 18ms تریگ شده باشه تا آخر 20ms روشت میذاره
                    یا اگه تو لحظه ی 8ms تریگ شده باشه تا آخر 20ms روشن میذاره
                    و ...

                    این سورس من
                    ریش و قیچی دست خودت
                    فقط اون ظربدر ده رو اگه بردارم اصلا نورو کم و زیاد نمیکنه



                    کد:
                    $regfile = "m8def.dat"
                    $crystal = 4000000
                    
                    Config Pind.6 = Output                   ' Gate Triac 1
                    Config Pind.7 = Output                   ' Gate Triac 2
                    Config Lcd = 16 * 2
                    Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , _
                    Db7 = Portc.5 , Rs = Portd.1 , E = Portd.0
                    Cursor Off
                    Config Kbd = Portb , Debounce = 10
                    
                    
                    Config Int0 = Rising
                    On Int0 Int0_int                      ' Initialise the INT0 Interrupt
                    
                    Enable Interrupts
                    Enable Int0
                    
                    
                    Dim Set_key As Byte
                    Dim System_mod As Byte
                    Dim Key As Byte
                    Dim E As Eram Byte
                    Dim B As Byte , I As Byte
                    Dim D As Byte , _min As Byte , _sec As Byte
                    Dim Sum As Byte
                    
                    If E > 9 Then E = 9
                    E = B
                    D = 0                            '
                    Set Portd.7
                    
                    
                    
                    
                    Do
                    
                    Home1:
                    Key = Getkbd()
                    Gosub Key_convert
                    
                    If Key > 15 Then Goto Home1
                     Key = Key * 10
                    B = Key
                    E = B
                    Home
                    Lcd B
                    
                     Loop
                    
                     End
                    
                     Int0_int:
                    
                    Set Portd.7
                    For D = 0 To B
                    
                    Waitus 100
                    
                    Next D
                    Reset Portd.7
                    
                    Return
                    
                                               '
                      Key_convert:
                      Select Case Key
                    
                      Case 0:
                      Key = 10
                      Case 1:
                      Key = 0
                      Case 2:
                      Key = 11
                      Case 4:
                      Key = 7
                      Case 5:
                      Key = 8
                      Case 6:
                      Key = 9
                      Case 7:
                      Key = 7
                      Case 8:
                      Key = 1
                      Case 9:
                      Key = 2
                      Case 10:
                      Key = 3
                      Case 12:
                      Key = 4
                      Case 13:
                      Key = 5
                      Case 14:
                      Key = 6
                      End Select
                    Return
                    Reveng will surely come... Your hard time are ahead
                    // - - - - - - - - - -
                    برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                    // - - - - - - - - - -
                    اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                    // - - - - - - - - - -

                    دیدگاه


                      #25
                      پاسخ : دیمر دیجیتال با نمایشگر

                      فیوز بیت ها رو هم دست نزدما! وقتی پروگرم میشه فیوز بیت همون 1Mhz هست
                      Reveng will surely come... Your hard time are ahead
                      // - - - - - - - - - -
                      برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                      // - - - - - - - - - -
                      اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                      // - - - - - - - - - -

                      دیدگاه


                        #26
                        پاسخ : دیمر دیجیتال با نمایشگر

                        نوشته اصلی توسط سعید خیری
                        وا خوب منم منظورم همین بود دیگه
                        .
                        یا اگه تو لحظه ی 8ms تریگ شده باشه تا آخر 20ms روشن میذاره
                        و ...
                        این فرمایشتون درست نیست.
                        با اینکه چند بار عرض کردم ، ولی توجه نکردید.
                        یک بار دیگه هم میگم ، برای هر نیم سیکل یه پالس مجزا باید به ترایاک بفرستیم پس ماگزیمم عرض پالس میشه 10ms
                        اصلا ما تو این برنامه با رقم 20ms سرو کار نداریم. پس دیگه سراغ این 20ms نرو. وگرنه کل محاسباتت اشتباه در میاد.


                        خودم برنامه نویسی بلد نیستم و تازه دارم سعی میکنم یاد بگیرم ، با اینحال برنامتو مرور کردم و فعلا دو تا اشکال توش دیدم. اول اینها رو رفع کن تا بعد.
                        If E > 9 Then E = 9
                        توی این خط بیشترین مقدار رو برای E عدد 9 تعیین کردی پس مقدار E هیچوقت از 9 بیشتر نخواهد شد.
                        ولی ببین پایینتر چی نوشتی!!
                        If Key > 15 Then Goto Home1
                        و این یعنی تناقض. قرار بود عدد بیشتر از 9 نداشته باشیم.


                        مشکل دوم توی جدول معرفی اعداد Select Case Key هست.
                        تعریف اعداد 3 و 11 رو جا انداختی!!
                        ببین
                        Select Case Key

                        Case 0:
                        Key = 10
                        Case 1:
                        Key = 0
                        Case 2:
                        Key = 11
                        Case 4:
                        Key = 7
                        Case 5:
                        Key = 8
                        Case 6:
                        Key = 9
                        Case 7:
                        Key = 7
                        Case 8:
                        Key = 1
                        Case 9:
                        Key = 2
                        Case 10:
                        Key = 3
                        Case 12:
                        Key = 4
                        Case 13:
                        Key = 5
                        Case 14:
                        Key = 6
                        End Select

                        دیدگاه


                          #27
                          پاسخ : دیمر دیجیتال با نمایشگر

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

                          دیدگاه


                            #28
                            پاسخ : دیمر دیجیتال با نمایشگر

                            وای خدایا :angry:
                            من هیچی بلد نیستم و از علوم برق خیلی عقبم اما هرچی باشم از زمانی که 8051و Z80 بود؛ گرفته تا AVR ؛ از اسبلی تا ... اندازه موای سرم کیبورد و ال سی دی به میکرو وصل کردم
                            الکترونیک صنعتی هم با نمره بالا پاس کردم و فرق دیاک و ترایاک را هم خوب میدونم
                            من 20ms را برای مثال گفتم
                            که قطعا چون ترایاک روی دو سطح برش میده میشه ده میلی ثانیه

                            این ایرادها رو از ما نگیر خداوکیلی

                            در این دستور:
                            If E > 9 Then E = 9

                            چون قبل از حلقه ی Do - loop نوشته شده فقط یک بار اجرا میشه و متغیر E حافظه ی EEPROM تعریف شده ؛ این به دلیل اینه که اگه مدار خاموش شد چون آخرین رقم متغیر ما قبلا ذخیره شده است قطعا بازخوانی میشه :angry:

                            در اتصال کیبورد به میکرو؛ دستور زیر را داریم:
                            key = getkbd
                            که عدد را از کیبورد میخونه و اگر کلیدی زده نشده باشه عدد 16 را در متغیر میریزه و ما برای انجام درخواست دوباره از صفحه کلید این دستور را مینویسیم:
                            If Key > 15 Then Goto Home1

                            تازه این تناقض شما چه ربطی به همدیگه داره بابا :icon_razz:
                            اسم این متغیر E و اون متغیر key است

                            یکیش تو Do -loop و اون یکی بیرون


                            اون مطلب آخری هم که گفتی ؛ چون کیبوردم سه در چهاره باید اعداد رو معادل سازی کنم (البته چهار در چهار هم اگه بود باز باید این کارو میکردم) و ... :agree:

                            بابا من مدار میکروم درسته
                            شما اگه میتونی فقط لطف کن مشکل زمانبندی تحریک گیت را مشخص کن
                            چکار با اینا داری؟
                            من فقط و فقط یک ایراد دارم
                            اینکه چرا لامپ چشمک میزنه :angry:
                            Reveng will surely come... Your hard time are ahead
                            // - - - - - - - - - -
                            برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                            // - - - - - - - - - -
                            اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                            // - - - - - - - - - -

                            دیدگاه


                              #29
                              پاسخ : دیمر دیجیتال با نمایشگر

                              جائی خواندم که:

                              بدلیل روشن و خاموش شدن مداوم ترایاک در این مدار، نویز تولید میآ‌گردد که من توصیه میکنم یک خازن سرامیکی 4.7 میکروفاراد 400 ولتی به صورت موازی با پریز قرار دهید.

                              :job:
                              Reveng will surely come... Your hard time are ahead
                              // - - - - - - - - - -
                              برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                              // - - - - - - - - - -
                              اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                              // - - - - - - - - - -

                              دیدگاه


                                #30
                                پاسخ : دیمر دیجیتال با نمایشگر

                                نوشته اصلی توسط سعید خیری
                                شما اگه میتونی فقط لطف کن مشکل زمانبندی تحریک گیت را مشخص کن
                                چکار با اینا داری؟
                                من فقط و فقط یک ایراد دارم
                                اینکه چرا لامپ چشمک میزنه :angry:
                                برای چندمین بار تکرار میکنم و فکر میکنم دیگه تکرار این مورد کافی باشه.
                                چشمک زدن لامپ نشانه اینه که وقفه های شما طولش زیاده و از 10ms زیاد شده و وارد سیکل بعدی شده!
                                چکار با اینا داری؟
                                پس من دیگه ، توی برنامه شما سرک نمیکشم! :biggrin:

                                جائی خواندم که:

                                بدلیل روشن و خاموش شدن مداوم ترایاک در این مدار، نویز تولید میآ‌گردد که من توصیه میکنم یک خازن سرامیکی 4.7 میکروفاراد 400 ولتی به صورت موازی با پریز قرار دهید.
                                این مسئله مربوط به بارهای سلفی میباشد. و لامپ چون یه بار اهمی هست ما اینجا اون مشکلات رو نداریم.

                                دیدگاه

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