اطلاعیه

Collapse
No announcement yet.

ساعت دیجیتال با ATMEGA8

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

    ساعت دیجیتال با ATMEGA8

    با سلام خدمت اساتید محترم سایت .
    من یک ساعت دیجیتال با atmega8 و DS1307 و 6 عدد سون سگمنت میخوام بسازم که البته مدار این ساعت را با سرچ تو اینترنت پیدا کردم ولی چون مدار برای سون سگمنت های کوچک بود و من می خوام از سون سگمنت 5cm*7cm استفاده کنم چند تا ترانزیستور و مقاومت تو مدار اضافه کرد که فایل عکس مدار به همراه فایل bas را گذاشتم . مدار را روی برد بورد بستم . از دوستان چند تا سوال دارم :
    1- سون سگمنت ها کمی چشمک میزنن دلیلش چیه ؟
    2- چرا سگمنت هایی از سون سگمنت ها که در هر لحظه باید خاموش باشند کاملا خاموش نیستن ؟
    3- آیا یرای بیس ترانزیستورهای BC640 باید مقاومت بذارم یا به همین صورت مشکلی پیش نمیاد ؟
    https://rapidshare.com/files/443077535/New_Folder.zip[pre][/pre]

    #2
    پاسخ : ساعت دیجیتال با ATMEGA8

    دانلود نمیشه
    عکسو تو تاپیک قرار بدید
    *یادگیری علم زمانی مشکل است که قبل از یادگیری آن را پیچیده تصور کنیم.
    *چرا فکر میکنیم مباحث مهم و پیشرفته و سطح بالا باید پیچیده باشند.

    دیدگاه


      #3
      ساعت دیجیتال با ATMEGA8

      ببخشید لینک مشکل داره

      saat5.bas
      [img=http://dc387.4shared.com/img/1QnLGtmT/Saat5.bmp]



      دیدگاه


        #4
        پاسخ : ساعت دیجیتال با ATMEGA8

        دوستان لینک ها را اصلاح کردم . لطفا اگه کسی می تونه راهنمایی کنه . ممنون میشم .

        دیدگاه


          #5
          پاسخ : ساعت دیجیتال با ATMEGA8

          سلام نیازی به استفاده از این سنسور نیست چرا از تایمر داخل خود آی سی استفاده نمی کنی هم ساده تر هست هم بهتر :applause: :applause: :applause: :applause:

          دیدگاه


            #6
            پاسخ : ساعت دیجیتال با ATMEGA8

            نوشته اصلی توسط mmh1
            سلام نیازی به استفاده از این سنسور نیست چرا از تایمر داخل خود آی سی استفاده نمی کنی هم ساده تر هست هم بهتر :applause: :applause: :applause: :applause:
            mmh1 عزیز آیسی DS1307 با قطع برق شمارش را متوقف نمیکنه چون باتری بک پ داره . با این قسمت مشکلی ندارم . البته اگه ایسی DS1307 دقیق باشه که به مرور زمان ساعت عقب نیفته . ولی نمیدونم واسه این مشکالات مدار که تو پست اول گفتم چیکار کنم ؟

            دیدگاه


              #7
              پاسخ : ساعت دیجیتال با ATMEGA8

              سلام عکس ها بالا نمی یاد ولی جواب سوالاتت
              1-برای بیس ترانزیستور ها باید از یک مقاومت محدود کننده جریان استفاده کنی که فکر کنم 100 اهم تا 330 اهم هر کدوم را که استفاده کنی مناسب باشه .
              2- اگر مشکل نویز حل نشد باید کلیه پایه های سون سگمنت را با یک مقاومت 10 کیلو با زمین (در صورتی که دیتا هایت مثبت اند )متصل کنی که بهتر شه
              اگر حل نشد بگو چند راه دیگه بهت بگم
              :job: :job: :job: :job: :job: :job:

              دیدگاه


                #8
                پاسخ : ساعت دیجیتال با ATMEGA8

                سلام . سون سگمنت ها آند مشترک هستن . فکر می کنم اگه نقشه مدار را ببینین خیلی بهتر باشه . البته لینک ها دیروز کار می کرد ولی امروز مشکل داره . اگه امکان داره ایمیل بدین براتون می فرستم .

                دیدگاه


                  #9
                  پاسخ : ساعت دیجیتال با ATMEGA8

                  mohammadmehdi_hasani@yahoo.com
                  :surprised: :surprised: :surprised: :surprised: :surprised: :surprised:

                  دیدگاه


                    #10
                    پاسخ : ساعت دیجیتال با ATMEGA8

                    نوشته اصلی توسط mmh1
                    mohammadmehdi_hasani@yahoo.com
                    :surprised: :surprised: :surprised: :surprised: :surprised: :surprised:
                    فایل ها ارسال شد .ممنون

                    دیدگاه


                      #11
                      پاسخ : ساعت دیجیتال با ATMEGA8

                      نوشته اصلی توسط behzad2006
                      با سلام خدمت اساتید محترم سایت .
                      من یک ساعت دیجیتال با atmega8 و DS1307 و 6 عدد سون سگمنت میخوام بسازم که البته مدار این ساعت را با سرچ تو اینترنت پیدا کردم ولی چون مدار برای سون سگمنت های کوچک بود و من می خوام از سون سگمنت 5cm*7cm استفاده کنم چند تا ترانزیستور و مقاومت تو مدار اضافه کرد که فایل عکس مدار به همراه فایل bas را گذاشتم . مدار را روی برد بورد بستم . از دوستان چند تا سوال دارم :
                      1- سون سگمنت ها کمی چشمک میزنن دلیلش چیه ؟
                      2- چرا سگمنت هایی از سون سگمنت ها که در هر لحظه باید خاموش باشند کاملا خاموش نیستن ؟
                      3- آیا یرای بیس ترانزیستورهای BC640 باید مقاومت بذارم یا به همین صورت مشکلی پیش نمیاد ؟
                      $regfile = "m8def.dat"
                      $crystal = 1000000
                      '----------------------------------------------------------------------------------
                      Config Portb = Output
                      Config Portd = Output
                      '--------------------------- ds 1307 -----------------------------------------
                      $lib "ds1307clock.lib"
                      'configure the scl and sda pins
                      Config Sda = Portc.1
                      Config Scl = Portc.0

                      'address of ds1307
                      Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
                      Const Ds1307r = &HD1
                      '------------------------------ key --------------------------------------------
                      Config Pinc.2 = Input
                      Config Pinc.3 = Input
                      Config Pinc.4 = Input
                      Config Pinc.5 = Input
                      '------------------------------------------------------------------------------
                      Dim Seco As Byte , Seco1 As Byte , Seco2 As Byte
                      Dim Mine As Byte , Mine1 As Byte , Mine2 As Byte
                      Dim Hour As Byte , Hour1 As Byte , Hour2 As Byte
                      Dim I As Byte
                      Dim Flag As Byte
                      Dim 7seg As Byte
                      Dim M As Word
                      Dim _seco As Byte
                      Dim _mine As Byte
                      Dim _hour As Byte


                      Main:
                      Do
                      Incr M
                      For I = 0 To 5
                      If M > 50 Then : M = 0 : Gosub Ds1307 : End If
                      Gosub 24_12
                      Gosub Chekkey
                      Next
                      Loop
                      '-------------------------------------------------------------------------------
                      Ds1307:

                      I2cstart ' Generate start code
                      I2cwbyte Ds1307w ' send address
                      I2cwbyte 0 ' start address in 1307
                      I2cstart ' Generate start code
                      I2cwbyte Ds1307r ' send address
                      I2crbyte _seco , Ack 'sec
                      I2crbyte _mine , Ack ' MINUTES
                      I2crbyte _hour , Nack ' Hours
                      I2cstop

                      _seco = Makedec(_seco) : _mine = Makedec(_mine) : _hour = Makedec(_hour)

                      If _seco > 59 Then _seco = 0
                      If _seco < 10 Then : Seco2 = 0 : Seco1 = _seco : End If
                      If _seco = 10 Then : Seco2 = 1 : Seco1 = 0 : End If
                      If _seco > 10 Then :
                      Seco2 = _seco / 10
                      Seco1 = _seco Mod 10
                      End If


                      If _mine > 59 Then _mine = 0



                      If _mine < 10 Then : Mine2 = 0 : Mine1 = _mine : End If
                      If _mine = 10 Then : Mine2 = 1 : Mine1 = 0 : End If
                      If _mine > 10 Then :
                      Mine2 = _mine / 10
                      Mine1 = _mine Mod 10
                      End If



                      If _hour > 23 Then _hour = 0

                      Hour2 = _hour / 10
                      Hour1 = _hour Mod 10





                      Return
                      '-------------------------------------------------------------------------------
                      24_12:
                      If Pinc.5 = 1 Then Gosub Disply_24
                      If Pinc.5 = 0 Then Gosub Disply_24
                      Return
                      '-------------------------------------------------------------------------------
                      Disply_24:
                      Seco = Makebcd(_seco) : Mine = Makebcd(_mine) : Hour = Makebcd(_hour)
                      If Pinc.5 = 0 Then
                      If _hour = 0 Then _hour = 12
                      If _hour > 12 Then _hour = _hour - 12
                      Hour2 = _hour / 10
                      Hour1 = _hour Mod 10
                      End If
                      If I = 0 Then
                      Portd = 1
                      Flag = Seco1
                      Portb = Lookup(flag , 7seg)
                      Waitms 1
                      End If
                      If I = 1 Then
                      Portd = 2
                      Flag = Seco2
                      Portb = Lookup(flag , 7seg)
                      Waitms 1
                      End If
                      If I = 2 Then
                      Portd = 4
                      Flag = Mine1
                      Portb = Lookup(flag , 7seg)
                      Waitms 1
                      End If
                      If I = 3 Then
                      Portd = 8
                      Flag = Mine2
                      Portb = Lookup(flag , 7seg)
                      Waitms 1
                      End If
                      If I = 4 Then
                      Portd = 16
                      Flag = Hour1
                      Portb = Lookup(flag , 7seg)
                      Waitms 1
                      End If
                      If I = 5 Then
                      Portd = 32
                      Flag = Hour2
                      Portb = Lookup(flag , 7seg)
                      Waitms 1
                      End If
                      Return

                      '-------------------------------------------------------------------------------

                      Chekkey:

                      Debounce Pinc.2 , 0 , Pseco , Sub
                      Debounce Pinc.3 , 0 , Pmine , Sub
                      Debounce Pinc.4 , 0 , Phour , Sub


                      Return
                      '---------------------------------------------
                      Seco:

                      If _seco > 59 Then _seco = 0
                      _seco = Makebcd(_seco)
                      I2cstart ' Generate start code
                      I2cwbyte Ds1307w ' send address
                      I2cwbyte 0 ' starting address in 1307
                      I2cwbyte _seco
                      I2cstop
                      Return

                      '-------------------------------------
                      Mine:
                      'Incr _mine
                      If _mine > 59 Then _mine = 0
                      _mine = Makebcd(_mine)
                      I2cstart ' Generate start code
                      I2cwbyte Ds1307w ' send address
                      I2cwbyte 1 ' starting address in 1307
                      I2cwbyte _mine
                      I2cstop
                      Return
                      '-------------------------------------

                      Hour:
                      'Incr _hour
                      If _hour > 23 Then _hour = 0
                      _hour = Makebcd(_hour)
                      I2cstart ' Generate start code
                      I2cwbyte Ds1307w ' send address
                      I2cwbyte 2 ' starting address in 1307
                      I2cwbyte _hour
                      I2cstop

                      Return
                      '-------------------------------------
                      Pseco:
                      _seco = 0
                      Gosub Seco

                      Goto Main

                      Return

                      Pmine:
                      Incr _mine
                      Gosub Mine
                      Goto Main

                      Return

                      Phour:
                      Incr _hour
                      Gosub Hour
                      Goto Main


                      Return

                      End

                      7seg:
                      Data &B01111110
                      Data &B00110000
                      Data &B01101101
                      Data &B01111001
                      Data &B00110011
                      Data &B01011011
                      Data &B01011111
                      Data &B01110000
                      Data &B01111111
                      Data &B01111011

                      دیدگاه


                        #12
                        پاسخ : ساعت دیجیتال با ATMEGA8

                        سلام ایمیلم را دیدم
                        مدار خوبی بود
                        1-فکر کنم به این دلیل کاملا خاموش نمی شه که سگمنت های بقلی نویز میندازن فکر کنم اگر از طلق (جلد رنگی روی تحقیق ها ) استفاده کنی و چند تا همرنگ با سگمنت هات بزاری دیگه دیده نشه
                        2-یک توصیه دیگه همیشه قبل از بیس ترانزیستور هات یک مقاومت (100-330) بزار
                        3-در مورد اینکه چرا چشمک می زنه نمی دونم با سون سگمنت های کوچک تر امتحان کن ببین بازم چشمک می زنه شاید ایراد از سون سگمنت های بزرگ باشه (چند تای را که تو مترو تهران دیدم همین تور بود )
                        4-آی سی بافرت یک وقت مشکل ایجاد نمی کنه اگر جواب نگرفتی عوضش کن
                        در نهایت باید بهت بگم من زبان بسکام را خوب بلد نیستم ولی اگر بخواهی با زبن c یک برنامه برات می نویسم


                        دیدگاه


                          #13
                          پاسخ : ساعت دیجیتال با ATMEGA8

                          با سلام خدمت دوستان .
                          من هنوز مشکلم حل نشده . من برای نمایش ساعت روی 6 تا سون سگمنت آند مشترک بزرگ که لینک مدارش را به همراه فایل بسکام گذاشتم چند تا سوال دارم . آند و کاتد سون سگمنت ها را با ترانزیستور درایو کردم و از روش رفرش کردن برای نمایش استفاده کردم . و اما سوال هام :
                          1- عدد سون سگمنت قبلی با نور ضعیفی در عدد سون سگمنت بعدی دیده میشه . مثلا عدد یکان ثانیه شمار در دهگان آن به طور ضعیف روشن است و به همین صورت بقیه سون سگمنت ها . یعنی میشه از ایسی ULN2803 که تو کاتد سون سگمنت ها استفاده کردم باشه ؟ یا مشکل از زمان بندی رفرش تو میکرو هست ؟ البته من برنامه بسکام و مدار را از اینترنت گرفتم و ترانزیستور ها را اضافه کردم که ولتاا¾ا¾ژ تغذیه سون سگمنت ها از میکرو جدا بشه . اینم بگم این برنامه را با همین مقادیر تو سایتهای مختلف دیدم . فکر کنم به صورت عملی قبلا اجرا شده بوده .
                          2- چرا سون سگمنت ها چشمک میزنن ؟ البته خیلی زیاد نیست ولی دقت کنی متوجه چشمک زدن اون میشی .

                          http://www.4shared.com/file/a0slQ0L_/saat5.html
                          http://www.4shared.com/photo/1QnLGtmT/Saat5.html

                          دیدگاه


                            #14
                            پاسخ : ساعت دیجیتال با ATMEGA8

                            سلام
                            اصلا از چیزی که بالا نوشتی داره داد :wow: میزنه که یک مقدار کمی جریان همواره از ترانزیستور ها عبور می کنه و به طور ضعیف سون سگمنتت را روشن نگه می داره
                            شاید مشکل از آی سی بافرت باشه وقتی ترانزیستور گذاشتی دیگه آی سی با فر نمی خواد که دلبندم ؟؟؟؟؟؟؟
                            ضمنا باز هم پیشنهاد من اینه که بعد از هر کلکتور ترانزیستوری یک مقاومت 10 کیلو را به زمین سری کنی نویز کم می شه و پشت بیس هر ترانزیستور از مقاومت اهم پایین استفاده کنی
                            یک مقاومت کم هم سر راه مثبت سون سگمنت هات بذاری جریان های کم نمیتونه سون هات را روشن کنه
                            به امید اینکه موفق بشی :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

                            دیدگاه


                              #15
                              پاسخ : ساعت دیجیتال با ATMEGA8

                              آخه نمیتونم کاتد سون سگمنت ها را مستقیم به میکرو بدم .پورتهای میکرو وقتی یک میشه 5 ولت میده . آند سون ها 12 ولته . سون ها همشون روشن می مونن . واسه همین بافر (ULN2803) گذاشتم . یعنی اگه بجاش 7 تا ترانزیستور NPN بذارم حل میشه ؟ با مشکل چشمک زدنش چیکار کنم :angry:

                              دیدگاه

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