سلام من می خوام شارژِ باتری رو ی lcd به وسیله avr نمایش بدم مثل نشانگر شارژ موبایل شرکت atmel برای باطری های قابل شارژ جهت قطع ووصل جریان یک مدار ارائه داده که توسط یک مدار واسط باطری رو به پورت adc متصل کرده میشه بامقدار ولتاژِ ی که به adc می رسه مقدار شارژ هم نمایش داد ؟
اطلاعیه
Collapse
No announcement yet.
نمایش شارژ باتری روی lcd توسط avr
Collapse
X
-
پاسخ : نمایش شارژ باتری روی lcd توسط avr
نوشته اصلی توسط mahoor86سلام من می خوام شارژِ باتری رو ی lcd به وسیله avr نمایش بدم مثل نشانگر شارژ موبایل شرکت atmel برای باطری های قابل شارژ جهت قطع ووصل جریان یک مدار ارائه داده که توسط یک مدار واسط باطری رو به پورت adc متصل کرده میشه بامقدار ولتاژِ ی که به adc می رسه مقدار شارژ هم نمایش داد ؟
به کمک تقسیم مقاومتی
یه نمونه از جریانت بگیر و با Adc میکرو اندازه گیری کن
دقت کن نمونه ای که از دو سر مقاومت میگیری نباید بیش از 5 ولت باشهعلم چندانکه بيشتر خواني چون عمل در تو نيست ناداني
دیدگاه
-
پاسخ : نمایش شارژ باتری روی lcd توسط avr
متاسفانه با اتصال مستقیم باطری به ADCآ میکرو دقت اندازه گیری شما پایین میاد. چون رنج تغییرات ولتاژ باطری بسیار کمه. یعنی اگه یه باطری با شارژ کامل 4.8 ولت داشته باشه وقتی تخلیه ی کامل میشه ممکنه 4 ولت داشته باشه و رنج 0.8 ولت رو اگه بخواهید مستقیم به میکرو وصل کنید دقت کافی نخواهید داشت.
تمامی باطری ها منحنی شارژ و دشارژ دارند که از روی اون دقیقا میشه مشخص کرد در چه ولتاژ و جریانی باطری کاملا شارژ یا دشارژه. بدبختانه این منحنی تابعی از دما هستند.
بنابراین برای اینکه یکی مدار اصولی برای تشخیص وضعیت باطری بسازید باید ولتاژ، جریان، و دمای باطری را اندازه بگیرید.
اگه از میکروهای مگا استفاده می کنید می تونید از تقویت کننده ی دیفرانسیلی که در ورودی ADCآ اونها قرار داده شده برای اندازه گیری ولتاژ و جریان بصورت فول رنج استفاده کنید. برای این منظور باید دو مقاومت سری با هم را به باطری و زمین مدار، و دو مقاومت سری با هم را به Vref میکرو و زمین مدار وصل کنید. هر 4 مقاومت می تونند 1 کلیو اهم باشند اگر ولتاژ رفرنس مساوی با ولتاژ باطری در حالت فول باشه. وگرنه باید تقسیم مقاومتی تغییر کنه.
این چهار مقاومت یک پل وتسون تشکیل میدن که سر وسط دوتای اولی و دومی رو میشه به ورودی دیفرانسیلی ADC وصل کرد و با بکار انداختن تقویت کننده ی داخلی میکرو دقت فوق العاده ای در خواندن ولتاژ داشت.
برای خواندن جریان هم دقیقا به همین روش میشه عمل کرد با این تفاوت که سر های بالایی مقاومت ها باید به دو سر مقاومت نمونه گیر جریان وصل بشه. مقاومت نمونه گیر جریان یک مقاومت کوچک است که بین باطری و مدار وصل میشه.
مدار زیر می تونه کمک کنه:
اگه سنسور دما هم داشه باشید(باطری های موبایل دارند) می تونید اونو به کانال دیگه ی میکرو وصل کنید.
با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
دیدگاه
-
پاسخ : نمایش شارژ باتری روی lcd توسط avr
دیود نبود بلکه رفرنس ولتاژ بود مثل LM336آ
مقاومت ها هم باعث میشن ما ولتاژهامون حول و حوش 2.5 ولت یعنی نصف ولتاژ تغذیه بشه. این باعث حذف خطاهای مد مشترک در تقویت ککنده های ورودی میکرو میشه.با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
دیدگاه
-
پاسخ : نمایش شارژ باتری روی lcd توسط avr
:nerd: به بخشید ما می پریم تو بحث بزرگترا من یه سوال برام پیش اومد با این تفاصیر اگه منحنی شارژ دشاژ باطری رو نداشته باشیم که نمیشه این کارو کرد درسته . تازه آقا احمد اگه اینجوری که من فهمیده باشم نباید باطری استفاده کنیم که بیشتر از 5 ولت باشه ؟معجزه پس از معجزه می آید و شگفتی ها از تجلی باز نمی مانند.
دیدگاه
-
پاسخ : نمایش شارژ باتری روی lcd توسط avr
نوشته اصلی توسط majid.4206سلام
احمد جان یه سوال از خدمتتون داشتم ... :nerd:
میشه برای حذف offset از این دستور استفاده کرد
(12)value=read
کلا اگه بخوایم به صورت نرم افزاری off set رو حذف کنیم ایا راحی هست؟با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
دیدگاه
-
پاسخ : نمایش شارژ باتری روی lcd توسط avr
نوشته اصلی توسط john lock:nerd: به بخشید ما می پریم تو بحث بزرگترا من یه سوال برام پیش اومد با این تفاصیر اگه منحنی شارژ دشاژ باطری رو نداشته باشیم که نمیشه این کارو کرد درسته . تازه آقا احمد اگه اینجوری که من فهمیده باشم نباید باطری استفاده کنیم که بیشتر از 5 ولت باشه ؟
معلومه که میشه از هر باطری که بخواهید استفاده کنید. کافیه مقاومت ها را طوری انتخاب کنید که ولتاژ رسیده به میکرو حول و حوش 2.5 ولت بشهبا عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
دیدگاه
-
پاسخ : نمایش شارژ باتری روی 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:
ذكات علم ياد دادنه ....
دیدگاه
دیدگاه