اطلاعیه

Collapse
No announcement yet.

کمک در مورد ای سی ساعت ds1307

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

    #16
    پاسخ : کمک در مورد ای سی ساعت ds1307

    نوشته اصلی توسط morteza borji
    راستی یه سوال در مورد اینا چون قراره این ساعت با سنسور دما و ...با هم کار کنند نمیشه برای هیچ کدوم دستورwaitقرار داد

    مثلا من چون سنسور lm35مشکل داشت و مقدارش تغییر میکرد با دستورwait هر500 میلی ثانیه یک نمونه میگرفتم اما چون حالا نمیشه دیگه waitنوشت مدام دما تغییر میکنه...

    من تنها راه حل که به ذهنم میرسه اینه که از یک چند تا میکرو برای این کار باید استفاده کرد... ایا راه بهتر و منطقی تری هست؟؟

    الان توی یه لینکی دیدم اینو درسته این؟؟؟از وقفه ها میشه استفاده کرد برای این کار؟؟
    اینم لینک:
    http://electrobot.org/post-396.html
    سلام
    دوست عزیز این روش خوبیه، اما بازم در خوندن درست مقدار از lm35 کمکی نمیکنه و اعدادت مدام نوسان میکنن.
    بهترین راه اینه که شما میانگین 10 بار (یا هرچند بار که خودت دوست داری) خوندن مقدار lm35 رو بگیری و اونو به عنوان مقدار دما استفاده کنی، اینطوری هم نوسانت کمتره و هم دمای نمایش داده شده قابل اعتمادتره :nerd: نیازی هم به وقفه نداری، تداخلی هم با برنامه های دیگه بوجود نمیاد :applause:
    برای اینکار هم یه حلقه for بذار و برای مقادیر مثلا 1 تا 10 دما رو بگیر و با جمع دماهای قبلی جمع کن، بعد از اتمام حلقه for هم جمع کل دماها رو تقسیم بر 10 بکن (تا مقدار میانگین دما بدست بیاد) و دوباره تقسیم بر 2 یا 4 بکن (برحسب نوع سنسورت و تنظیمات adcت و برای نمایش مقدار دما. اینو از دیتاشیت سنسورت و تنظیمات adc پیدا کن) و نهایتا دما بصورت یک عدد خروجی میده بهت بدون نوسان. اگه امروز فرصت کنم برات کدشو هم میذارم.
    یا علی
    تشکر نکن، صلوات بفرست:

    [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

    دیدگاه


      #17
      پاسخ : کمک در مورد ای سی ساعت ds1307

      امروز به یکی از معلما گفتم مشکلمو گفتlm35همینجوریه اما میدونم که نباید این مشکلش باشه شاید خیلی دقیق نباشه اما اینجوری اصلا درست نیست{هر ثانیه شاید 100 بار دما چند درجه اینور اونور میشه }

      منظور شما این بود که مثلا به پایه میکرو وصل بشه و هر موقع پایه یک شد نمونه بگیره درسته ؟؟اینم فکر خیلی خوبیه به نظر شما چون مثلا این سنسور رو میخوام بزارم روی ماشین یا مثلا موتور از چه سنسوری استفاده کنم خوبه یا همین ال ام35 هم جواب مبده؟

      دیدگاه


        #18
        پاسخ : کمک در مورد ای سی ساعت ds1307

        نوشته اصلی توسط morteza borji
        امروز به یکی از معلما گفتم مشکلمو گفتlm35همینجوریه اما میدونم که نباید این مشکلش باشه شاید خیلی دقیق نباشه اما اینجوری اصلا درست نیست{هر ثانیه شاید 100 بار دما چند درجه اینور اونور میشه }

        منظور شما این بود که مثلا به پایه میکرو وصل بشه و هر موقع پایه یک شد نمونه بگیره درسته ؟؟اینم فکر خیلی خوبیه به نظر شما چون مثلا این سنسور رو میخوام بزارم روی ماشین یا مثلا موتور از چه سنسوری استفاده کنم خوبه یا همین ال ام35 هم جواب مبده؟
        اون معلمتون حوصله نداشته، وگرنه خیلی راهها هست که بشه با سنسورها اطلاعات متفاوت گرفت.
        نمیدونم منظورتون جواب من بود یا دوستمون silicon؟ من صحبتی از یک شدن پایه نزدم، من گفتم اطلاعات lm35 رو با adc میکرو بگیر و به جای اینکه مقدار ورودی یکبار نمونه برداری رو نمایش بدی، 10 بار نمونه برداری کن و میانگین این 10 بار رو نمایش بده، اینطوری داده هم دقیقتره و هم بدون نوسان.
        تا جایی که من میدونم lm35 سنسور راحت، بدون دردسر و سرراستیه، خیلیم کم پیش میاد اشتباه کنه (البته اگه اصلشو بخری). واسه هر کاری هم بدرد میخوره، یه نگاهی به datasheetش بکنی مدارهای مختلفشم هست توش که بتونی با دقت اعشاری و دمای بالا و پایین صفر و غیره رو اندازه بگیری. اما اگه اصرار داری به استفاده از سنسورهای دیگه، انواع خیلی زیادی دارن، یه سرچی تو نت بکن.
        مرسی
        تشکر نکن، صلوات بفرست:

        [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

        دیدگاه


          #19
          پاسخ : کمک در مورد ای سی ساعت ds1307

          اره معلمه رو فهمیدم الکی داره میگه داشت میپیچوند

          تونستم با همون برنامه ای که شما کذاشتی یه ال ای دی اسم ام دی رو چشمک زن کنم با ای سی جالب بود کلا اما میکرو تشخیص نمیداد 1 یا صفر شدنو!!!! خلاصه من الان یه نمونه برنامه اونجوری که شما گفتین بجای 10 بار. با 20 بار نمونه گیری نوشتم اما انگار نه انگار که اینهمه متغییر و نمونه گیری نوشتم !!!! :angry:
          این یکی فکر کنم مشکل از سخت افزار باشه تا نرم افزار!!!
          اینم برنامه
          $regfile = "m32def.dat"
          $crystal = 10000000
          Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.3 , Db6 = Pind.1 , Db7 = Pind.2 , Rs = Pind.6 , E = Pind.5
          Cursor Off
          Config Portc = Output
          Portc = 0
          Config Adc = Single , Prescaler = Auto , Reference = Avcc
          Dim H As Word
          Dim I As Word
          Dim J As Word
          Dim K As Word
          Dim L As Word
          Dim M As Word
          Dim N As Word
          Dim o As Word
          Dim P As Word
          Dim Q As Word
          Dim Hh As Word
          Dim Ii As Word
          Dim Jj As Word
          Dim Kk As Word
          Dim Ll As Word
          Dim Mm As Word
          Dim Nn As Word
          Dim Oo As Word
          Dim Pp As Word
          Dim Qq As Word
          Dim Hi As Word
          Start Adc
          Do
          H = Getadc(6)
          I = Getadc(6)
          J = Getadc(6)
          K = Getadc(6)
          L = Getadc(6)
          M = Getadc(6)
          N = Getadc(6)
          O = Getadc(6)
          P = Getadc(6)
          Q = Getadc(6)
          Hi = Getadc(6)
          Ii = Getadc(6)
          Jj = Getadc(6)
          Kk = Getadc(6)
          Ll = Getadc(6)
          Mm = Getadc(6)
          Nn = Getadc(6)
          Oo = Getadc(6)
          Pp = Getadc(6)
          Qq = Getadc(6)
          Hh = H + I
          Hh = J + Hh
          Hh = K + Hh
          Hh = L + Hh
          Hh = M + Hh
          Hh = N + Hh
          Hh = O + Hh
          Hh = P + Hh
          Hh = Q + Hh
          Hh = Hi + Hh
          Hh = Ii + Hh
          Hh = Jj + Hh
          Hh = Kk + Hh
          Hh = Ll + Hh
          Hh = Mm + Hh
          Hh = Nn + Hh
          Hh = Oo + Hh
          Hh = Pp + Hh
          Hh = Qq + Hh
          Hh = Hh / 20
          Hh = Hh / 13
          Cls
          Locate 1 , 1
          Lcd "temp:" ; Hh


          Loop

          دیدگاه


            #20
            پاسخ : کمک در مورد ای سی ساعت ds1307

            بله مشکل از منبع تغزیه بود انگار الان با برنامه بالا که مخلوط برنامه ی ساعت شما کردم همه چیز بخوبی داره کار میکنه با باتری{منبع که میزنم باز هی تغییر میکنه} :nice:
            الان دقیق دقیق نیست دما ولی حداقل حدودا ثابته دما
            {فقط نمیدونم که ایا ای سی ds1307با باتری هم کار میکنه یا نه؟؟فردا باتری بکاپ میگیرم ببینم چجوری میشه...}
            از شما ها ممنونم چون اگر کمکم نمیکردید نمیدونم چطور و چقدر طول میکشید اینا درست شند :agree: و بهترین ارزویی که میتونم براتون بکنم اینه که هر موقع مثل من هر جایی گیر افتادید کسی کار خودتون رو جبران کنه و به شما کمک کنه

            دیدگاه


              #21
              پاسخ : کمک در مورد ای سی ساعت ds1307

              نوشته اصلی توسط morteza borji
              بله مشکل از منبع تغزیه بود انگار الان با برنامه بالا که مخلوط برنامه ی ساعت شما کردم همه چیز بخوبی داره کار میکنه با باتری{منبع که میزنم باز هی تغییر میکنه} :nice:
              الان دقیق دقیق نیست دما ولی حداقل حدودا ثابته دما
              {فقط نمیدونم که ایا ای سی ds1307با باتری هم کار میکنه یا نه؟؟فردا باتری بکاپ میگیرم ببینم چجوری میشه...}
              از شما ها ممنونم چون اگر کمکم نمیکردید نمیدونم چطور و چقدر طول میکشید اینا درست شند :agree: و بهترین ارزویی که میتونم براتون بکنم اینه که هر موقع مثل من هر جایی گیر افتادید کسی کار خودتون رو جبران کنه و به شما کمک کنه
              سلام
              دوست عزیز راجع به پست قبلیتون عرض کنم که نیازی به تعریف 20 تا متغیر نبود، میتونستی با یه حلقه For (راجبش یه تحقیق بکن، چیز باحالیه) و تعریف نهایتا دوتا متغیر و جمع مکرر اون با مقدار قبلی (به این صورت که متغیر اولت مقدار adc رو بگیره و متغیر دوم هم جمعشون کنه) مثلا اینطوری:
              motaghayer1 = getadc(6)
              motaghayer2 = motaghayer2 + motaghayer1
              البته حتما داخل حلقه for باشه
              بعد از خروج از حلقه 10 تا یا همون 20 تایی، motaghayer2 رو تقسیم بر 10 یا 20 بکنه.
              نمیدونم منظورت از اینکه گفتی میکرو تشخیص نمیداد 1 شدنشو چیه، اما میشه حالیش کرد، کار سختی نیست
              البته من خودمم هم همین مشکل رو داشتم اولش (البته من اصلا رشتم و کارمم برق نیست!) و بهترین راه حلم برای این مشکل اینبود که هر کاری میخواستم بکنم، چه ساعت، چه دما و چه چیزای دیگه هرکدومو تو یه میکروی جدا و به عنوان یه پروژه جدا انجام میدادم، اینطوری بهتر جواب میگرفتم :nice:
              باتری ds1307 که سکه ای 3 ولته، چیز دیگه ای نزنی بهش، خرابش میکنه.
              ارادت داریم داداش، من که کاری نکردم، چیزی که دست و پا شکسته تجربی و با کمک بعضی از دوستان همین انجمن یاد گرفته بودم رو یادت دادم، امیدوارم مشکلت حل بشه. از آرزوت هم ممنونم، قشنگ بود، منم خیلی وقتا واسه خیلیا این آرزو رو داشتم :smile:
              موفق باشی
              تشکر نکن، صلوات بفرست:

              [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

              دیدگاه


                #22
                پاسخ : کمک در مورد ای سی ساعت ds1307

                نه اصلا شما و دستمون سیلیکن{اسشمون رو نمیدونم}واقعا کمک کردید...و ممنون{در ضمن داداش شما استادین این چه حرفیه!}

                امروز رفتم از کامپیوتری ها یه باتری سکه ای گرفتم بخوبی و خوشی کار کرد با دی اس1307
                {من چون هم میخوام تجربه برای برق صنعتی بشه و هم یاد بگیرم و الان هم میخوام یه کیلمتر دیجیتال برای موتورم درست کنم اینا رو با هم بستم :nice:}

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

                دیدگاه

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