اطلاعیه

Collapse
No announcement yet.

ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

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

    #16
    پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

    نوشته اصلی توسط ry.mohammad نمایش پست ها
    چون سون سگمنتا به روش مالتی پلکس راه اندازی میشن ممکنه با کمبود نور مواجه بشین لذا حتما از درایور که می تونه بافر یا ترانزیستور باشه استفاده کنید
    ترانزیستور مثل bc547 یا bc107 یا bd139 و یا ...

    شما میخوان یه دیتایی رو روی ال سی دی نمایش بدین اگر ال ای دی های سون سگمنت رو از A تا G نام گذاری کنیم با روشن شدن ال ای دی های D و E و F حرف L بر روی سون سگمنت نمایش داده خواهد شد
    اگر پایه های A تا G یک سون سگمنت رو به پورت مثلا B0 تا B6 وصل کنیم
    دیتای شما به صورت باینری به صورت زیر خواهد بود
    GFEDCBA
    ال ای دی A به پورت B0 و ال ای دی G به پورت B6 متصل است
    پس برای نمایش حروف L ال ای دی هایی که گفتیم رو باید روشن کنیم
    که میشه

    PORTB=&b00111000


    توی برنامتون هم این اعداد رو در یک دیتا جمع کردید که با هر بار نیاز به این دیتا مراجعه می کنید و ازش کدها رو می خونید همینم به همون دیتا اضاف کنید و در صورت لزوم صدا کنید تا حروف نشون داده بشه...
    ممنون عالی توضیح دادید
    فقط اینکه چون سون سگمنتی که استفاده کردم کاتد مشترک هست و برای روشن شدنش پایه هر کدومش رو صفر میکنم الان برای روشن کردنشون باید پایه هارو یک کنم تا ترانزیستور راه بیافته؟درسته؟
    جدیدترین ویرایش توسط امیر اقا; ۰۲:۴۵ ۱۳۹۸/۰۱/۰۲.

    دیدگاه


      #17
      پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

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

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


      مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

      دانلود

      توجه:
      این برد نیمه صنعتی و خانگی هست...
      برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

      آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

      دیدگاه


        #18
        پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

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

        اگر از ترانزیستور در بخش دیتا استفاده کنید با نوسان نور نسبت به عدد ارقام هم مواجه نمیشید و این بهتره
        در قسمت دیتا هم که برای روشن شدن ال ای دی های سون سگمنت نیاز به سطح ولتاژ یک منطقی هست و می تونید با ترانزیستور جریان رو تقویت کنید...
        سلام ببخشید که بازم مزاحم میشم
        الان کار برنامه تموم شده و میخوام که pcb رو بکشم و خواستم که این کارو با پروتئوس انجام بدم ولی سون سگمنت مولتی پلکس رو نداره و هر چی گشتم کتابخانشو پیدا نکردم نمیدونم باید چی کار کنم
        با ایگل هم میخواستم بکشم که اونم atmega 8 رو نداشت و نتونستم بهش اضافه کنم

        دیدگاه


          #19
          پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

          نوشته اصلی توسط امیر اقا نمایش پست ها
          سلام ببخشید که بازم مزاحم میشم
          الان کار برنامه تموم شده و میخوام که pcb رو بکشم و خواستم که این کارو با پروتئوس انجام بدم ولی سون سگمنت مولتی پلکس رو نداره و هر چی گشتم کتابخانشو پیدا نکردم نمیدونم باید چی کار کنم
          با ایگل هم میخواستم بکشم که اونم atmega 8 رو نداشت و نتونستم بهش اضافه کنم
          سلام
          بنده فقط با التیوم کار کردم
          شما در مورد نحوه ی اضافه یا طراحی قطعه در پروتیوس توی گوگل سرچ کنید
          اطلاعات در این رابطه زیاد است
          برد جوجه کشی:
          مطالعه پست 1 (حتما مطالعه کنید)


          مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

          دانلود

          توجه:
          این برد نیمه صنعتی و خانگی هست...
          برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

          آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

          دیدگاه


            #20
            پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

            دلیل: ادغام دو پست برای جلوگیری از اسپم

            نوشته اصلی توسط ry.mohammad نمایش پست ها
            سلام
            بنده فقط با التیوم کار کردم
            شما در مورد نحوه ی اضافه یا طراحی قطعه در پروتیوس توی گوگل سرچ کنید
            اطلاعات در این رابطه زیاد است
            سلام
            مشکل pcb حل شد فقط یه سوال مونده که اگه اینم لطف کنید دیگه انشالله تمومه
            و مقدار مقاومت هایی هست که تو مدار استفاده کردم میخواستم ببینم که درسته یا نه؟ هر چی مقاومت بود ده کیلو گذاشتم(اون 10m هایی که نوشته ده کیلو هست یادم رفته ویرایش کنم)
            جدیدترین ویرایش توسط امیر اقا; ۰۱:۱۸ ۱۳۹۸/۰۱/۱۶.

            دیدگاه


              #21
              پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

              سلام
              مشکلی در برنامه نویسی با کدویژن برای نمایش دمای سنسور ds18b20 روی 4 عدد سون سگمنت دارم.
              مهمه که دمای نشون داده شده به هیچ وجه نباید چشمک بزنه
              همونطور که می دونید سنسور فوق برای کل مراحل عملکردش در حالت 12 بیتی از خوندن دما تا تبدیل اون و دادن خروجی به ما به 750 میلی ثانیه زمان نیاز دارد.
              من به طور کلی در سه مرحله کار را انجام داده ام
              1- خوندن صفحه کلید که در اینتراپت 0 اونو می خونم که این قسمت مشکلی در کارم نیست
              2 خوندن دما که در حلقه while تابع main اونو می خونم ولی در پروتئوس که اجرا می کنم فقط در لحظه اول روشن کردن پروتئوس می ره تو این حلقه و دما رو می خونه و دیگه بعد از این ظاهرا از تایمر1(که برای نمایش 7segment هااز اون استفاده کردم) نمیاد تو تابع main تا دوباره پروتئوس رو خاموش و روشن کنم
              3- تایمر 1 که در اون دماهای خوانده شده و تفکیک شده ارقام و اعشار برای سون سگمنت را نمایش می دهد.
              الان در این برنامه که با پروتئوس شبیه سازی کردم فقط بار اول میره تو تابع main و دما رو میگیره و میده به زیرروال وقفه تایمر1 برای نمایش و دیگه تو تابع main نمیره تغییر دما رو نشون نمیده.
              اما مشکل بزرگتر من اینه که اونچه که من متوجه میشم برای خوندن و تبدیل دما تا گرفتن خروجی از سنسور ds18b20 نیاز به 750 میلی ثانیه زمان داریم و در این زمان اگر سون سگمنتها رفرش نشوند قطعا چشمک می زنند و این مسئله رو جوری میشه رفع کرد.
              مشکل اینه که این 750 میلی ثانیه cpu میکرو مشغول دریافت دما از سنسور ds18b20 است ونمی تواند کار دیگه ای مثل نمایش دما حتی در زیر روال یک وقفه ای مثل وقفه تایمر انجام دهد.
              زیرا اگر در این زمانی که میکرو در حال دریافت دما از سنسور است وقفه ای فعال شود و بخواهد به زیرروال اون وقفه برای نمایش دماهای دریافتی برود اونوقت دریافت دما را ناقص و معطل نگه داشته به عبارتی دما را نمی تواند دریافت کند
              درضمن از سخت افزار و میکروی واقعی هم نمی تونم برای تست مراحل برنامه نویسی استفاده کنم چون هر بار میکرو روپروگرم میکنم و به سخت افزار می دهم به دلایلی قابلیت پروگرم مجدد خود را از دست می دهد و دیگر دوباره قابل استفاده نیست

              دیدگاه


                #22
                پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

                این 750 میلی ثانیه را من در عمل 2میلی ثانیه کردم و مشکلی پیش نیومد
                بذار2میلی ثانیه مشکلت حل میشه

                دیدگاه


                  #23
                  پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

                  این 750 میلی ثانیه تاخیری نیست که ما در برنامه میگذاریم بلکه زمانیست که خود سنسور نیاز دارد تا برنامه را خوانده و تبدیل کند و تحویل ما بدهد.
                  اگر از سون سگمنت برای نمایش دمای خوانده شده استفاده کنید اثر این زمان رو در چشمک زدن می بینید

                  دیدگاه


                    #24
                    پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

                    نوشته اصلی توسط احمد5 نمایش پست ها
                    این 750 میلی ثانیه تاخیری نیست که ما در برنامه میگذاریم بلکه زمانیست که خود سنسور نیاز دارد تا برنامه را خوانده و تبدیل کند و تحویل ما بدهد.
                    اگر از سون سگمنت برای نمایش دمای خوانده شده استفاده کنید اثر این زمان رو در چشمک زدن می بینید
                    گفتم که
                    منم از همین سنسور و از سون سگمنت برای نمایش دما استفاده کردم
                    مشکلی نبود

                    دیدگاه


                      #25
                      پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

                      سلام
                      برای رفع مشکل چشمک زدن سون سگمنت در هنگام خواندن دمای ds18b20 در دستورات کدویژن برای خواندن این سنسور تاخیر در کدام قسمت اتفاق می افتد و به چه دستوراتی می توان دستور خواندن دما به سنسور و دریافت دمای آماده شده در سنسور توسط میکرو را تفکیک کرد تا بتوان در زمان تاخیر 750 میلی ثانیه ای ما کار خودمان مثل رفرش سون سگمنت را انجام دهیم.
                      همانطور که می دانید در کدویژن دما را با دستورات زیر از سنسور دریافت می کنیم.
                      devices=w1_init();
                      temp = ds18b20_temperature(DS18B20_Rom_Codes);
                      یک موضوعی هم در دیتا شیت دیدم که وقتی پروسه خواندن و تبدیل و آماده ارسال شدن دما توسط سنسور پایان می یابد یک فلگ مثل s برابر یک می شود.آیا حرفه ای تر این نیست که ازاین فلگ برای تحریک یک وقفه استفاده کنیم و دقیقا زمانی که دما آماده شد توسط این زیرروال وقفه دمای آماده را در یک زمان بسیار کوتاه از سنسور ds18b20 دریافت نماییم و به این روش هیچ زمانی بیهوده ای جهت انتظار تکمیل فرایند دریافت و پردازش دما توسط سنسور در cpu میکرو تلف نشود.البته مشکل من این است که دستورات مناسب برای این عملکردها و استفاده از امکانات فوق از سنسور ds18b20 در کدویژن چگونه است. ممنون میشوم در صورت امکان دستورات فوق را در یک برنامه در کدویژن معرفی نمائید.

                      دیدگاه


                        #26
                        پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

                        نوشته اصلی توسط احمد5 نمایش پست ها
                        سلام
                        برای رفع مشکل چشمک زدن سون سگمنت در هنگام خواندن دمای ds18b20 در دستورات کدویژن برای خواندن این سنسور تاخیر در کدام قسمت اتفاق می افتد و به چه دستوراتی می توان دستور خواندن دما به سنسور و دریافت دمای آماده شده در سنسور توسط میکرو را تفکیک کرد تا بتوان در زمان تاخیر 750 میلی ثانیه ای ما کار خودمان مثل رفرش سون سگمنت را انجام دهیم.
                        همانطور که می دانید در کدویژن دما را با دستورات زیر از سنسور دریافت می کنیم.
                        devices=w1_init();
                        temp = ds18b20_temperature(DS18B20_Rom_Codes);
                        یک موضوعی هم در دیتا شیت دیدم که وقتی پروسه خواندن و تبدیل و آماده ارسال شدن دما توسط سنسور پایان می یابد یک فلگ مثل s برابر یک می شود.آیا حرفه ای تر این نیست که ازاین فلگ برای تحریک یک وقفه استفاده کنیم و دقیقا زمانی که دما آماده شد توسط این زیرروال وقفه دمای آماده را در یک زمان بسیار کوتاه از سنسور ds18b20 دریافت نماییم و به این روش هیچ زمانی بیهوده ای جهت انتظار تکمیل فرایند دریافت و پردازش دما توسط سنسور در cpu میکرو تلف نشود.البته مشکل من این است که دستورات مناسب برای این عملکردها و استفاده از امکانات فوق از سنسور ds18b20 در کدویژن چگونه است. ممنون میشوم در صورت امکان دستورات فوق را در یک برنامه در کدویژن معرفی نمائید.
                        چرا میشه در حلقه برای همین فلگ چک کرد.
                        یه راه دیگه استفاده از وقفه ی تایمر برای بروزرسانی سون سگمنته.
                        یه راه دیگه استفاده از تایم بیس با کمک یه تایمر، برای همه بخش های سیستمه. در مورد تایم بیس با تایمر، میتونید جستجو کنید.
                        Si vis pacem, para bellum

                        دیدگاه


                          #27
                          پاسخ : ساخت ترموستات با ds18b20 و سون سگمنت(بسکام)

                          رفرش سون سگمنتها رو با استفاده از وقفه تایمر1 انجام دادم که مشکلات خودشو داشت که به طور خلاصه در بعضی مواقع باعث خطا در دریافت دمای صحیح می شد.
                          ولی اگر بتونیم با دستورات خود سنسور فرمان شروع عملیات را به سنسور بدهیم و ما در میکرو به کار خودمان برسیم و بعد از تکمیل عملیات دریافت و تکمیل دما توسط سنسور و با اعلام سنسور مبنی بر آماده بودن دما بریم سراغ سنسور برای دریافت دما یک کار اصولی و بی نقص میشه انجام داد که من این دستورات و نحوه استفاده از اون در برنامه رو می خوام

                          دیدگاه

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