اطلاعیه

Collapse
No announcement yet.

نمایش شارژ باتری روی lcd توسط avr

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

    نمایش شارژ باتری روی lcd توسط avr

    سلام من می خوام شارژِ باتری رو ی lcd به وسیله avr نمایش بدم مثل نشانگر شارژ موبایل شرکت atmel برای باطری های قابل شارژ جهت قطع ووصل جریان یک مدار ارائه داده که توسط یک مدار واسط باطری رو به پورت adc متصل کرده میشه بامقدار ولتاژِ ی که به adc می رسه مقدار شارژ هم نمایش داد ؟

    #2
    پاسخ : نمایش شارژ باتری روی lcd توسط avr

    به نظرم مقدار جریان باتری رو باید اندازه بگیری

    دیدگاه


      #3
      پاسخ : نمایش شارژ باتری روی lcd توسط avr

      علی جان

      فکر کنم باید به :nice: adc :nice: وصل کنی البته اگه میکرو نسوزه


      نابرده رنج گنج پنج شش هفت .....................
      http://services.nexodyne.com/email/i...3D/0/image.png

      دیدگاه


        #4
        پاسخ : نمایش شارژ باتری روی lcd توسط avr

        نوشته اصلی توسط mahoor86
        سلام من می خوام شارژِ باتری رو ی lcd به وسیله avr نمایش بدم مثل نشانگر شارژ موبایل شرکت atmel برای باطری های قابل شارژ جهت قطع ووصل جریان یک مدار ارائه داده که توسط یک مدار واسط باطری رو به پورت adc متصل کرده میشه بامقدار ولتاژِ ی که به adc می رسه مقدار شارژ هم نمایش داد ؟
        باید

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

        دیدگاه


          #5
          پاسخ : نمایش شارژ باتری روی lcd توسط avr

          متاسفانه با اتصال مستقیم باطری به ADCآ‌ میکرو دقت اندازه گیری شما پایین میاد. چون رنج تغییرات ولتاژ باطری بسیار کمه. یعنی اگه یه باطری با شارژ کامل 4.8 ولت داشته باشه وقتی تخلیه ی کامل میشه ممکنه 4 ولت داشته باشه و رنج 0.8 ولت رو اگه بخواهید مستقیم به میکرو وصل کنید دقت کافی نخواهید داشت.

          تمامی باطری ها منحنی شارژ و دشارژ دارند که از روی اون دقیقا میشه مشخص کرد در چه ولتاژ و جریانی باطری کاملا شارژ یا دشارژه. بدبختانه این منحنی تابعی از دما هستند.

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

          اگه از میکروهای مگا استفاده می کنید می تونید از تقویت کننده ی دیفرانسیلی که در ورودی ADCآ‌ اونها قرار داده شده برای اندازه گیری ولتاژ و جریان بصورت فول رنج استفاده کنید. برای این منظور باید دو مقاومت سری با هم را به باطری و زمین مدار، و دو مقاومت سری با هم را به Vref میکرو و زمین مدار وصل کنید. هر 4 مقاومت می تونند 1 کلیو اهم باشند اگر ولتاژ رفرنس مساوی با ولتاژ باطری در حالت فول باشه. وگرنه باید تقسیم مقاومتی تغییر کنه.

          این چهار مقاومت یک پل وتسون تشکیل میدن که سر وسط دوتای اولی و دومی رو میشه به ورودی دیفرانسیلی ADC وصل کرد و با بکار انداختن تقویت کننده ی داخلی میکرو دقت فوق العاده ای در خواندن ولتاژ داشت.

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

          مدار زیر می تونه کمک کنه:


          اگه سنسور دما هم داشه باشید(باطری های موبایل دارند) می تونید اونو به کانال دیگه ی میکرو وصل کنید.

          با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

          دیدگاه


            #6
            پاسخ : نمایش شارژ باتری روی lcd توسط avr


            ممنون از توضیح شما آقای ahmadmn ولی من باید از این مدار استفاده کنم این مدار رو شرکت atmel برای شارژ باطری li-ion طراحی کرده میشه با همین مدار مقدار شارژ رو نمایش داد؟

            دیدگاه


              #7
              پاسخ : نمایش شارژ باتری روی lcd توسط avr

              :biggrin:
              خب اگه دقت کنی می بینی قسمت اندازه گیری این مدار با اونایی که من گفتم فرق چندانی نداره! فقط مال من دقت بیشتری داره
              با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

              دیدگاه


                #8
                پاسخ : نمایش شارژ باتری روی lcd توسط avr

                نوشته اصلی توسط ahmadmn
                :biggrin:
                خب اگه دقت کنی می بینی قسمت اندازه گیری این مدار با اونایی که من گفتم فرق چندانی نداره! فقط مال من دقت بیشتری داره
                به نظر می اید مقاومت های یک کیلو برای این کار مناسب نباشند چون جریان نسبتن زیادی را از خود عبور میدهند

                دیدگاه


                  #9
                  پاسخ : نمایش شارژ باتری روی lcd توسط avr

                  سلام
                  امکان داره آقای ahmadmn درباره این مدار و دلیل استفاده از دیود و مقاومتها و همچنین استفاده از تقویت کننده ی دیفرانسیلی بیشتر توضیح بدین؟

                  دیدگاه


                    #10
                    پاسخ : نمایش شارژ باتری روی lcd توسط avr

                    دیود نبود بلکه رفرنس ولتاژ بود مثل LM336آ‌

                    مقاومت ها هم باعث میشن ما ولتاژهامون حول و حوش 2.5 ولت یعنی نصف ولتاژ تغذیه بشه. این باعث حذف خطاهای مد مشترک در تقویت ککنده های ورودی میکرو میشه.
                    با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                    دیدگاه


                      #11
                      پاسخ : نمایش شارژ باتری روی lcd توسط avr

                      سلام
                      احمد جان یه سوال از خدمتتون داشتم ... :nerd:
                      میشه برای حذف offset از این دستور استفاده کرد
                      (12)value=read
                      کلا اگه بخوایم به صورت نرم افزاری off set رو حذف کنیم ایا راحی هست؟
                      ذكات علم ياد دادنه ....

                      دیدگاه


                        #12
                        پاسخ : نمایش شارژ باتری روی lcd توسط avr

                        :nerd: به بخشید ما می پریم تو بحث بزرگترا من یه سوال برام پیش اومد با این تفاصیر اگه منحنی شارژ دشاژ باطری رو نداشته باشیم که نمیشه این کارو کرد درسته . تازه آقا احمد اگه اینجوری که من فهمیده باشم نباید باطری استفاده کنیم که بیشتر از 5 ولت باشه ؟
                        معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.

                        دیدگاه


                          #13
                          پاسخ : نمایش شارژ باتری روی lcd توسط avr

                          نوشته اصلی توسط majid.4206
                          سلام
                          احمد جان یه سوال از خدمتتون داشتم ... :nerd:
                          میشه برای حذف offset از این دستور استفاده کرد
                          (12)value=read
                          کلا اگه بخوایم به صورت نرم افزاری off set رو حذف کنیم ایا راحی هست؟
                          حذف افست بصورت نرم افزاری ساده است. یک متغیر بنام offset تعریف کنید. هر مقداری که از adc می خوانید از offset کم کنید. هر گاه هم می خواهید صفر کنید باید offset را برابر با adc قرار دهید.
                          با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                          دیدگاه


                            #14
                            پاسخ : نمایش شارژ باتری روی lcd توسط avr

                            نوشته اصلی توسط john lock
                            :nerd: به بخشید ما می پریم تو بحث بزرگترا من یه سوال برام پیش اومد با این تفاصیر اگه منحنی شارژ دشاژ باطری رو نداشته باشیم که نمیشه این کارو کرد درسته . تازه آقا احمد اگه اینجوری که من فهمیده باشم نباید باطری استفاده کنیم که بیشتر از 5 ولت باشه ؟
                            بدست آوردن منحنی ولتاژ-جریان-دمای یک باطری چندان هم سخت نیست. این کمیت ها توسط میکرو خونده میشه و با RS232 به PCآ‌ فرستاده و ترسیم میشه.

                            معلومه که میشه از هر باطری که بخواهید استفاده کنید. کافیه مقاومت ها را طوری انتخاب کنید که ولتاژ رسیده به میکرو حول و حوش 2.5 ولت بشه
                            با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.

                            دیدگاه


                              #15
                              پاسخ : نمایش شارژ باتری روی lcd توسط avr

                              ممنون از پاسختون
                              تو کتاب اینجوری گفته من بعضی جاهاشو نفهمیدم

                              cbf=read_adc(12);
                              //changing two's complement to decimal integer
                              if (cbf & 0b1000000000) <<<---- این قسمتو اگه توضیح بدین ممنون میشم اصلا این شرطو واسه چی گذاشته؟ و چرا & شده ؟
                              adc_offset=cbf-1024;
                              else <<<----- پس else برای چیه؟
                              adc_offset=cbf;

                              توضیحات کتابم میزارم تا بهتر متوجه سوالم بشید البته ببخشید عکسه یکم بد افتاده :redface:





                              ذكات علم ياد دادنه ....

                              دیدگاه

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