اطلاعیه

Collapse
No announcement yet.

دماسنج با سون سگمنت (نمایش دمای منفی)

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

    دماسنج با سون سگمنت (نمایش دمای منفی)

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



    کد:
    'www.micro-avr.blogfa.com'
    $regfile = "m8def.dat"
    $crystal = 1000000
    Config Portd = Output
    Config Portb = Output
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    
    Dim A As Word , B As Word , C As Single , W As Word , D As Byte , S As Byte
    
    Start Adc
    Declare Sub Comm
    Declare Sub Temp
    Declare Sub Refresh
    '=================================================================
    Do
    Call Refresh
    Call Temp
    Call Comm
    Loop
    '==================================================================
    Sub Temp
    A = Getadc(0)
    B = Getadc(1)
    C = A - B
    C = C / 4
    If C > 0 Then
    S = 12
    W = C
    Cls : Lcd W
    End If
    If C < 0 Then
    S = 11
    C = C / -1
    W = C
    Cls : Lcd W
    End If
    End Sub
    '===================================================================
    Sub Comm
    Portd = &B0111 : D = 10 : Call Refresh
    Portd = &B1011 : D = W Mod 10 : Call Refresh
    Portd = &B1101 : D = W / 10 : Call Refresh
    Portd = &B1110 : D = S : Call Refresh
    
    Portd = &B1111 : D = 0
    End Sub
    '=======================================================================
    Sub Refresh
    Portb = Lookup(d , 7seg)
    Waitms 4
    End Sub
    '=============================================================================
    7seg:
    Data &H3F , &H6 , &H5B , &H4F , &H66 , &H6D , &H7D , &H7
    Data &H7F , &H6F , &H63 , &H40 , &H00

    فعلا دو تا مشکل آزار دهنده داره.
    1- نور سون سگمنت ها خیلی کمه. البته من اون مقاومت های روی پایه های ، مشترک رو حذف کردم ، چون نمایشگر از نوع کاتد مشترک هست و نیاز به مقاومت نیست. ولی باز هم ، نورشون خیلی کمه. توی نور روز قابل استفاده نیست ، و فقط تو محیطهای تاریک ، ارقام قابل خوندن میشه.
    با سرعت های متفاوت refresh امتحان کردم ، فایده ای نداشت. خواهش میکنم نفرمایید که پایه های مشترک رو با ترانزیستور تقویت کنم و یا از ULN استفاده کنم. چون در اینجا راه حل این موارد نیستند. برای تست یه تاخیر بالا در شروع برنامه گذاشتم ، در طی اون زمان ، چهار تا 0 نسبتا پر نور روشن میشه ولی وقتی خود برنامه شروع میشه نورها خیلی کم میشه. گمان میکنم اشکال توی زیر برنامه comm باشه.

    2- سگمنتهای خاموش ، دارای یه مقدار اندک نور هستند و کاملا خاموش نمیشوند. و این توی جاهای کم نور خیلی آزار دهنده هست. با مقاومتهای pull down هم امتحان کردم. نتیجه نداشت. ایراد توی خود برنامه هست.

    دوستان با تجربه راهنمایی کنند ، ممنون خواهم شد.

    #2
    پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

    من از مقاومت های 27 اهم برای این نوع درایو استفاده میکنم که نتیجه عالیه
    مهم نيست كه چه انديشه اي در سر و چه ترسي در دل داريد؛ مهم آن است كه بيكار ننشينيد و دست به كاري بزنيد و وارد ميدان عمل بشويد.

    نمي توانيد به كودكي بياموزيد كه از خود مواظبت كند، مگر آنكه او را آزاد بگذاريد تا براي مواظبت از خود بكوشد؛ ممكن است اشتباه كند، ولي دانايي او از ميان همين اشتباهات سرچشمه مي گيرد.

    دیدگاه


      #3
      پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

      نوشته اصلی توسط SeGMeX
      من از مقاومت های 27 اهم برای این نوع درایو استفاده میکنم که نتیجه عالیه
      ولی من حتی با مقاومت 1 اهمی هم نور کافی توی سگمنت ها ندارم.
      میشه لطفا به مشکل شماره 1 و 2 من توجه کنید و با مرور متن برنامه ، اشکال رو حدس بزنید؟
      فکر میکنم ، توی روش اسکن ، سون سگمنتها مشکلی وجود داشته باشه!
      مخصوصا مشکل شماره 2 که این موضوع رو تایید میکنه!

      دیدگاه


        #4
        پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

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

        دیدگاه


          #5
          پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

          تو قسمت refresh آ‌اون تاخیر 4 میلی ثانیه رو دو یا سه برابر کن


          من بدون ترانزیستور و تنها با چهار تا مقاومت 27 اهمی سون سگمت ها رو با مگا 8 درایو میکنم که نورش خیلی عالیه و خوب هم بدون هنگ کار میکنه . البته من داخل حلقه اصلی رفرش میکنم
          مهم نيست كه چه انديشه اي در سر و چه ترسي در دل داريد؛ مهم آن است كه بيكار ننشينيد و دست به كاري بزنيد و وارد ميدان عمل بشويد.

          نمي توانيد به كودكي بياموزيد كه از خود مواظبت كند، مگر آنكه او را آزاد بگذاريد تا براي مواظبت از خود بكوشد؛ ممكن است اشتباه كند، ولي دانايي او از ميان همين اشتباهات سرچشمه مي گيرد.

          دیدگاه


            #6
            پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

            نوشته اصلی توسط SeGMeX
            تو قسمت refresh آ‌اون تاخیر 4 میلی ثانیه رو دو یا سه برابر کن
            آفرین درست متوجه شدی!
            من هم وقتی عملا این مدار رو بستم ، پرشهای refresh بدجوری معلوم بود ، بنابر این اون تاخیر رو روی 1ms گذاشتم.

            من بدون ترانزیستور و تنها با چهار تا مقاومت 27 اهمی سون سگمت ها رو با مگا 8 درایو میکنم که نورش خیلی عالیه
            باز هم درست میگی. چون من هم تو مدارات تجاری دیدم اینکار رو میکنند. دستگاهی دارم که دو تا سون سگمنت رو مستقیما با میکرو ، به روش refresh درایو کرده اند و نورش هم عالیه. بدون هیج بافر جریانی. روی این حساب خواهش کرده بودم که دوستان نفرمایند که جریان پایه مشترک سون سگمنتها رو تقویت کن. البته به لحاظ تئوری و رعایت استاندارد ، باید اینکار رو انجام بدیم. ولی در این مدار مشکل کمبود جریان نیست. مشکل توی متن برنامه هست.
            فرمایش جناب " طراح " رو عمل خواهم کرد.

            البته من داخل حلقه اصلی رفرش میکنم
            به نظر شما انجام عمل refresh در داخل حلقه اصلی با اجرای اون در زیر برنامه ، در عمل فرقی باهم خواهند داشت؟

            دیدگاه


              #7
              پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

              با سلام فکر کنم بهترین حالت رفرش اینه که رفرش را در روتین اینتراپت تایمر بذاری

              دیدگاه


                #8
                پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

                نوشته اصلی توسط زوار
                فکر کنم بهترین حالت رفرش اینه که رفرش را در روتین اینتراپت تایمر بذاری
                مرسی ، دوست من!
                همونطور که از پستهام معلومه ، من برنامه نویسی بلد نیستم و اخیرا شروع کردم بیسیک رو یاد بگیرم. انگیزه ام هم خیلی قوی هست. منبع یادگیری هم همین مقاله های کوتاهی هست که دوستان برای آموزش توی سایت گذاشته اند. ولی پیشرفتم خیلی کنده! :sad:
                برای همین ، معنی این جمله شما رو متوجه نشدم! :sad:
                اگه براتون ممکنه ، محل این " روتین اینتراپت تایمر " رو توی متن برنامه بهم نشون بدید.
                ازتون سپاسگزارم.

                دیدگاه


                  #9
                  پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

                  نوشته اصلی توسط طراح
                  در سخت افزار این طرح برای کاتدهای مشترک باید یک بافر قرار دهید تا جریان لازم برای روشن شدن توام 7 عدد LED را بتواند تامین کند. از نظر برنامه هم در پروژه برنامه غیر اصولی نوشته شده که شما ابتدا مشکل نور را با بافر کردن حل کنید تا به بخش دیگر سوال پرداخته شود.
                  امر جناب " طراح " اطاعت و اجرا شد.
                  پایه کاتد های مشترک رو با ترانزیستور تقویت کردم. چون خواسته ام ، حالت امیتر مشترک بود مجبور شدم از ترانزیستور NPN استفاده کنم. بنابر این توی متن برنامه ، دیتای مربوط به کاتد های مشترک رو معکوس کردم.



                  توی تست ، تقریبا هیچ تغییری مشاهده نشد. فقط به میزان نا محسوسی نورشون بیشتر شده. در حدود 5 درصد!
                  با این نور ارقام در طول نور روز ،قابل استفاده نیستند. نورشون خیلی کمه. برای اینکه سر نخی پیدا کنم ، اون تاخیر refresh رو 2 ثانیه کردم. توی اون مدتی که ارقام به نوبت هر کدوم 2 ثانیه روشن میشه ، نور اون رقم کامل و عالی هست ولی وقتی سرعت refresh رو 1ms میگذارم ، نورشون به شدت کم شده و غیر قابل استفاده میشه.

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

                  دیدگاه


                    #10
                    پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

                    این برنامه را امتحان کنید:

                    کد:
                    $regfile = "m8def.dat"
                    $crystal = 1000000
                    On Ovf0 Refresh
                    Config Portd = Output
                    Config Portb = Output
                    Config Adc = Single , Prescaler = Auto , Reference = Internal
                    Config Timer0 = Timer , Prescale = 8
                    
                    Dim Select_line As Byte
                    Dim A As Word , B As Word , C As Single , W As Word , D As Byte , S As Byte
                    Select_line = 1
                    Start Adc
                    Start Timer0
                    Enable Ovf0
                    Enable Interrupts
                    
                    '=================================================================
                    Do
                    
                    A = Getadc(0)
                    B = Getadc(1)
                    C = A - B
                    C = C / 4
                    If C > 0 Then
                    S = 12
                    W = C
                    End If
                    If C < 0 Then
                    C = C / -1
                    S = 11
                    W = C
                    End If
                    
                    Loop
                    
                    '=======================================================================
                    
                    Refresh:
                    
                    Portd = Portd And &HF0
                    Select Case Select_line
                    Case 1 : D = 10
                    Case 2 : D = W Mod 10
                    Case 4 : D = W / 10
                    Case 8 : D = S
                    End Select
                    Portb = Lookup(d , 7seg)
                    Portd = Portd Or Select_line
                    Select_line = Select_line * 2
                    If Select_line = 16 Then Select_line = 1
                    Return
                    
                    '=============================================================================
                    
                    7seg:
                    Data &H3F , &H6 , &H5B , &H4F , &H66 , &H6D , &H7D , &H7
                    Data &H7F , &H6F , &H63 , &H40 , &H00


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

                    دیدگاه


                      #11
                      پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

                      مرسی "طراح" عزیز
                      نور سون سگمنت ها عالیست! :applause:
                      فقط یه مشکل وجود داره!
                      چینش ترتیب ارقام معکوس شده. توضیح میدهم.
                      دیتای سون سگمنت یکان ، رفته جای هزارگان نشسته و دهگان جای صدگان قرار گرفته! و صدگان هم اومده جای دهگان.

                      ممنون میشم دوباره تنظیم بفرمایید. :smile:

                      دیدگاه


                        #12
                        پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

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

                        کد:
                        $regfile = "m8def.dat"
                        $crystal = 1000000
                        On Ovf0 Refresh
                        Config Portd = Output
                        Config Portb = Output
                        Config Adc = Single , Prescaler = Auto , Reference = Internal
                        Config Timer0 = Timer , Prescale = 8
                        
                        Dim Select_line As Byte , N As Byte , Sum As Integer
                        Dim A As Word , B As Word , C As Integer , W As Word , D As Byte , S As Byte
                        Select_line = 1
                        Start Adc
                        Start Timer0
                        Enable Ovf0
                        Enable Interrupts
                        
                        '=================================================================
                        Do
                        
                        Sum = 0
                        For N = 0 To 127
                        A = Getadc(0)
                        B = Getadc(1)
                        C = A - B
                        C = C / 4
                        Sum = Sum + C
                        Next N
                        C = Sum / 128
                        If C > 0 Then
                        S = 12
                        End If
                        If C < 0 Then
                        C = C / -1
                        S = 11
                        End If
                        W = C
                        waitms 1000
                        Loop
                        
                        '=======================================================================
                        
                        Refresh:
                        
                        Portd = Portd And &HF0
                        Select Case Select_line
                        Case 1 : D = S
                        Case 2 : D = W / 10
                        Case 4 : D = W Mod 10
                        Case 8 : D = 10
                        End Select
                        Portb = Lookup(d , 7seg)
                        Portd = Portd Or Select_line
                        Select_line = Select_line * 2
                        If Select_line = 16 Then Select_line = 1
                        Return
                        
                        '=============================================================================
                        
                        7seg:
                        Data &H3F , &H6 , &H5B , &H4F , &H66 , &H6D , &H7D , &H7
                        Data &H7F , &H6F , &H63 , &H40 , &H00
                        اوژن: به معنای افکننده و شکست دهنده است
                        دانایی، توانایی است-Knowledge is POWER
                        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                        دیدگاه


                          #13
                          پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

                          نوشته اصلی توسط feredi
                          مرسی "طراح" عزیز
                          نور سون سگمنت ها عالیست! :applause:
                          فقط دوتا مشکل داره!
                          1- چینش ترتیب ارقام معکوس شده. توضیح میدهم.
                          دیتای سون سگمنت یکان ، رفته جای هزارگان نشسته و دهگان جای صدگان قرار گرفته! و صدگان هم اومده جای دهگان.
                          2- در دیتای رقم صدگان فعلی که در واقع یکان دمای واقعی میباشد نوسان شدیدی دیده میشه! عدد یک بصورت ثابت نوشته میشه و بقیه LED ها همگی با سرعت بالا چشمک میزنند.

                          ممنون میشم دوباره تنظیم بفرمایید. :smile:
                          1- در این مورد باید ترتیب اتصالات بین PORTD و درایور کاتد 7segment ها را به نحو مطلوب عوض کنید ونیازی به برنامه نویسی نیست.

                          2- احتمالاً سرعت تغییرات دیتای ورودی زیاد است. برای حل این مشکل میتوانید یک تاخیر مناسب (حدود 1S ) در انتهای برنامه اصلی و درست قبل از دستور loop قرار دهید. با توجه به اینکه عمل Refresh داخل وقفه تایمر انجام میشود در سرعت تازه سازی 7Segment ها خللی ایجاد نمیکند.

                          دیدگاه


                            #14
                            پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

                            نوشته اصلی توسط perfect
                            1- در این مورد باید ترتیب اتصالات بین PORTD و درایور کاتد 7segment ها را به نحو مطلوب عوض کنید ونیازی به برنامه نویسی نیست.
                            2- احتمالاً سرعت تغییرات دیتای ورودی زیاد است. برای حل این مشکل میتوانید یک تاخیر مناسب (حدود 1S ) در انتهای برنامه اصلی و درست قبل از دستور loop قرار دهید. با توجه به اینکه عمل Refresh داخل وقفه تایمر انجام میشود در سرعت تازه سازی 7Segment ها خللی ایجاد نمیکند.
                            دقیقا فرمایشات شما درسته!
                            الان که مرور میکنم "طراح" محترم ، همین کارها رو توی برنامه دوم انجام داده اند.
                            نکنه مهندسی معکوس کردی و از روی برنامه "طراح" این راهنمایی ها رو کردی!

                            دیدگاه


                              #15
                              پاسخ : دماسنج با سون سگمنت (نمایش دمای منفی)

                              مهندس "طراح"
                              واقعا با این محبت خودتون من رو شرمنده کردید.
                              برنامه دوم عالی کار میکنه. تمام خواسته هام توش برآورده شده! :nice:
                              نور سون سگمنت ها ، عالی هست.
                              انگار نه انگار که با refresh روشن شده اند. هرچقدر زور زدم و از نزدیک هم بهشون زل زدم ، کوچکترین اثری از اون پرشها نمیبینم. آخه از صبح ، از بس با اون برنامه اصلی ور رفته ام که دیگه به این موضوع حساس شده ام. چقدر اعداد مربوط به وقفه refresh رو تغییر دادم و دوباره پروگرام و دوباره بررسی . . .

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


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

                              نوشته اصلی توسط طراح
                              سخت افزار مورد سوال در اختیار من قرار ندارد. بنابراین برنامه زیر را دوباره امتحان کنید و در صورت وجود مشکل باید صبر کنید تا در فرصتی اتصالات سخت افزاری را برقرار کنم و نتیجه را بصورت عملی آزمایش کنم.
                              شما وقتی محبت میکنید و با یه درخواست افرادی مثل من ، از وقت آزاد خودتون مایه میذارید و برام برنامه مینویسید ، چطور میتونم راضی بشم که بصورت سخت افزاری هم ، خودتون تستش کنید؟؟؟ :sad:
                              این کار واقعا بسیار دور از انصاف خواهد بود!!!
                              پس هیچ وقت در ، فکر اینکار هم نباشید. تست سخت افزاریش رو بسپارید به خود من ، لطفا!

                              سعی میکنم قدر دوستان شریفی مثل شما رو ، بیشتر بدونم!

                              دیدگاه

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