دست نوشته

سایت شخصی محمد مزارعی

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

  1. دو مود شارژی FAST و FLOAT
  2. کنترل گر جریان با قابلیت غیر فعال سازی
  3. نشانگر وظعیت شارژ و بیان به درصد
  4. دو کانال نمایش سیگنال جهت موارد خاص

این شارژر از دو مود شارژی FAST , FLOAT استفاده میکند . مود FAST جهت شارژ آرام باطری تا ۹۸ درصد شارژ ظرفیت باطری میباشد که با جریان ۴ آمپر (در صورت فعال بودن کنترلر جریان)به شارژ باطری اقدام میکند و بعد از تکمیل شدن فرایند شارژ تا ۹۸ درصد شارژر به صورت اوتوماتیک به مود Float میرود و با جریان کم ادامه شارژ را دنبال میکند این روش شارژ باعث نگه داری بهتر شارژ باطری شده و از تخلیه آن جلوگیری میکند.

این شارژر همچنین قابلیت نمایش ولتاژ خالص باطری و میزان شارژ آن را دارا میباشد که میتواند در فرایند شارژ مورد استفاده قرار گیرد و از صحت باطری اطمینان حاصل کرد:

 

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

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

دانلود سورس + فایل شبیح ساز:

Full Battry Charger (397)

سلام به تمام دوستان ، بعد از مدت ها بلاخره با مطلب جدیدی خدمت میرسم ، حتما همه شما با نمایشگر های گرافیکی کار کرده اید نمایشگر های چون T6963, T6963C  ,Ks0108 و کنترلرهای مختلف دیگر ، اما راه انداری این نمایشگر ها با پردازنده های ARM چندان ملموس و رواج یافته نیست. در این پست مثالی از راه اندازی نمایشگر T6963 و LPC2138 که ARM فیلیپس هست قرار میدم امیدوارم که مورد توجه شما عزیزان قرار گیرد.

کتابخانه راه انداز این نمایشگر توسط این جانب نوشته شده است و کاملا رایگان و متن باز میباشد!

LPC2138 And T9663 LCD (294)

سلام به تمام دوستان گرامی

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

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

ادامه مطلب…

همانطور که میدانیم چیپست های ks0108 برای راه اندازی ال سی دی های گرافیکی به کار برده میشود. هر چیپست ks0108 قابلیت پشتیبانی ۶۴*۶۴ پیکسل را دارد. که مرسوم ترین نوع السیدی های موجود ۱۲۸*۶۴ می باشد که از دو چیپست ks0108 استفاده می کند. این کتابخانه که به صورت کاملا دینامیک نوشته شده قابلیت پشتیبانی تا ۴ چیپست را دارا می باشد که می توان تعداد آن را در فایل کانفیگ، پیکر بندی کرد.

ادامه مطلب

کتابخانه AVR-WIN

۷ comments

سلام به تمام دوستان گرامی

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

اگر تا به حال با زبان های سطح بالا کار کرده باشید حتما میدانید که جدیدا تمام این زیان ها شیء گرا شده و کار برنامه نویسی را خیلی سهل و آسان نموده اند. مثلا زبان ویژوال بیسیک، یا سی شارپ، تا قبل از پیدایش این زبان ها اگر کسی قصد داشت برنامه ای برای ویندوز بنویسد مجبور بود هزاران خط کد بنویسد تا پنجره ای در ویندوز ظاهر گردد و بعد چند صد خط کد بنویسد تا مثلا دکمه ای روی پنجره ظاهر شده قرار بگیرد. ولی در زبان های مورد استفاده امروزی با چند کلیک خیلی ساده کار هزاران خط کد را به راحتی انجام میدهیم و این یک مزیت برنامه نویسی است که روند انجام یک پروژه سرعت می بخشد.

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

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

page=get_page();
set_page_optionf(page,”EXECUTION”,exe_page);
page_add_buttomf(page,0,51,”Cancel”,exe_cancel_but);
page_add_lablef(page,6,10,”Select File”,exe_lable_1);
page_add_text(page,6,20,12,exe_file_text);
page_add_buttomf(page,83,20,”Browse”,exe_browse_but);
page_add_lablef(page,6,35,”Count:”,exe_lable);
page_add_text(page,42,33,6,exe_count_text);
page_add_buttomf(page,85,51,”Start”,exe_start_but);

در واقع این توابع جزیی از توابع سطح بالا میباشند که توسط کتابخانه AVR-WIN در دسترس قرار میگیرد و به راحتی قادر خواهید بود هر چیدمانی از المان های شیء گرا را در صفحه خود به وجود بیاوید

این کتابخانه حاوی ۵۰۰۰۰ خط کد است که کار شما را برای طراحی و برنامه نویسی راحت می کند.و دیگر دغدغه رابط کاربر را نخواهید داشت و به راحتی هر صفحه ای که لازم داشتید را ایجاد می کنید.

البته کتابخانه نوشته شده هنوز کامل نمیباشد و در حال تصحیح و رفع عیب آن هستم، این کتابخامه را طی ۴ ماه کار مداوم  برنامه نویسی به این مرحله(مرحله قابل استفاده) رسانده ام.

لیست برخی از توابع سطح بالای آن :

struct page *get_last_page();
struct object *get_page_last_obj(struct page *ptr);
struct page *get_last_active_page();
struct object *get_page_last_active_obj(struct page *ptr);
void active_next_page(void);
void active_prev_page(void);
struct page *get_page();
void add_obj(struct page *ptr, struct object *obj_);
void del_page(struct page *ptr);
void drow_pages(void);
void set_page_option(struct page *ptr,char *name,char handel);
void set_page_optionf(struct page *ptr,flash char *name,char handel);
struct page *get_page_whandel(char handel);
void active_page_whandel(char handel);
void key_process(char key);
struct object *page_add_text(struct page *ptr,char x,char y,char length,char handel);
struct object *page_add_lable(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_lablef(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_buttom(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_buttomf(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_listbox(struct page *ptr,char x,char y,char len_x,char len_y,char handel);
void send_key(char key);

نمونه عکس ها:

فورم ورود:

تغییر پسورد:

منو :

و در آخر فایل شبیح سازی شده :

در این فایل نحوی کار این کتابخانه رو به صورت عملی مشاهده خواهید کرد، برای گردش بین المان های یک فورم از دکمه TAB استفاده کنید و برای انتخاب المان(مثلا فشار دادن دکمه) از کلید Space و برای بالا و پایین شدن منو به ترتیب از کلید های A,D استفاده کند.

لازم به ذکر است که رندر شدن صفحه به دلیل سرعت پایین شبیح سازی است و در عمل مشکلی نخواهد داشت.

دانلود مثال : AVR-WIN (357)

struct page *get_last_page();
struct object *get_page_last_obj(struct page *ptr);
struct page *get_last_active_page();
struct object *get_page_last_active_obj(struct page *ptr);
void active_next_page(void);
void active_prev_page(void);
struct page *get_page();
void add_obj(struct page *ptr, struct object *obj_);
void del_page(struct page *ptr);
void drow_pages(void);
void set_page_option(struct page *ptr,char *name,char handel);
void set_page_optionf(struct page *ptr,flash char *name,char handel);
struct page *get_page_whandel(char handel);
void active_page_whandel(char handel);
void key_process(char key);
struct object *page_add_text(struct page *ptr,char x,char y,char length,char handel);
struct object *page_add_lable(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_lablef(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_buttom(struct page *ptr,char x,char y,char *st,char handel);
struct object *page_add_buttomf(struct page *ptr,char x,char y,flash char *st,char handel);
struct object *page_add_listbox(struct page *ptr,char x,char y,char len_x,char len_y,char handel);
void send_key(char key);

FabISP :

این پروگرامر که نسخه تغییر یافته TinyUsb میباشد داری حجم بسیار پایینی است و می توان آن را همراه خود حمل کرد.

دانلود Firmware : دانلود fabisp (264)

دانلود پرد مدار چاپی : برد مدار چاپی fab (285)

سایت منبع

میلی اهم متر

No comments

زبان برنامه : C

کامپایلر برنامه : Codevision

فایل شبیح سازی : prtuse 6.4

توضیحات : با استفاده از این مدار قادر خواهدید بود مقاومت های بسیار کوچک رو با دقت مناسب اندازه گیری کنید. دقت مورد نظر دقتی معادل دو هزارم اهم میباشد(۰٫۰۰۲). و حد اکثر میتوان مقاومت هایی به بزرگی یک اهم رو اندازه گرفت.

دانلود : دانلود میلی اهم متر (262)

کتابخانه GBUF

No comments

این کتاب خانه با مقصود  پردازش گرافیکی برای میکرو کنترلر های AVR  طراحی و پیاده سازی شده است ، با استفاده از این کتابخانه شما به راحتی قادر خواهید بود که متون و اشکال خود را در LCD  های گرافیکی به نمایش بگذارید، درواقع این کتابخانه مثل کارت گرافیک عمل میکنید و تمام پردازش های خود را در RAM  گرافیکی سیستم انجام میدهد که به آنها فریم های تصویر میگوییم، هرچه تعداد فریم های تصویر بیشتر باشد سرعت پردازش ها هم افزایش میابد(در واقع هرچه RAM گرافیکی بیشتر باشد یعنی سرعت بیشتر). در این کتابخانه به دلیل محدودیت در حافظه سیستم فقط یک فریم گرافیکی در اختیار کتابخانه قرار میگیرد با این حال سرعت به صورت فزاینده ای بالا خواهد رفت. یک فریم عبارت است از تعداد پیکسل های طول در عرض تقسیم بر ۸، که برای نمایشگر ۱۲۸*۶۴ نیاز به ۱۰۲۴ یا یک کیلو بایت RAM  میباشد.

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

ادامه مطلب