نظرهای متفاوتی درباره اشتباه بودن شارژ کردن گوشی از شب تا صبح وجود دارد. حتی اگر در گوگل هم جستوجو کنید در بعضی از مقالهها این کار را بدون مشکل و بعضی این را کاری اشتباه میدانند. هرچند اکثر گوشیهای هوشمند جدید، قطعه محافظ داخلشان دارند که از شارژ شدن بیش از حد جلوگیری میکند. در این پروژه به ساخت یک شارژر گوشی تایمر دار میپردازیم که کاربردی مشابه مسئلهای که گفته شد دارد.
فهرست قطعههای مورد نیاز
- PCB Universal
- شارژر موبایل (ترجیحاً ارزانقیمت)
- سیم
- کیس آداپتور قدیمی
- دو سوکت مادگی 220v
- تفنگ چسب شیشهای
ماژولهای موردنیاز
- ATTINY85
- Arduino nano (خرید Arduino nano)
- 4 عدد LED
- دیود 1N4007
- ترانزیستور NPN2222
- 3 عدد مقاومت 100Ω
- 1 مقاومت 10Ω
- 1 مقاومت 10kΩ
- Push button
- هویه
- رله 5 ولت
مراحل ساخت شارژر تایمردار
در این پروژه قصد داریم از آی سی تایمر Attiny85 استفاده کنیم.
ویژگیهای Attiny85:
- خروجی آن 220v است. ( توانایی اتصال شارژر)
- تنظیم تایمر را بر روی 1 تا 4 ساعت
- Auto cut-off
- یک LED برای نشاندادن پروسه
- ابعاد مناسب
توجه: اگر تجربه کار با ولتاژ 220v را ندارید، ترجیحاً این پروژه را انجام ندهید!
برای بستن LEDها به دلیل محدودیت تعداد پایه باید از تکنیک Charlieplexing استفاده کنیم که در ادامه آن را به طور خلاصه توضیح دادیم.
مفهوم Charlieplexing
Charlieplexing یک تکنیک اجرای نمایش مولتی پلکسبرای زمانی است که از تعداد کمی پین ورودی/خروجی استفاده میکنیم. این متد از تواناییهای منطق سهحالته (Tri-state) میکروکنترلرها که از مولتی پلکسهای قدیمی پربازدهتر است، استفاده میکند.
بر اساس شمارهگذاریهای شکل بالا در جدول زیر حالتهای مختلف پینهای 0،1،2 را بررسی کردیم که هرکدام از LEDها زمانی که روشن میشوند نشاندهنده یکی از حالتهای زیر است.
گام 1: نحوه اتصال پینهای ATTINY85
مطابق شکل زیر اتصالات پینهای ATTINY را به فرم زیر انجام میدهیم:
- پین شماره 3 به پوش باتن
- پین شماره 2 به ترانزیستور NPN2222
- پینهای 5،6،7 به مجموعه دیودهای Charlieplexing
- پین Vcc (پین 8) به 5v
نکته: شماره پینهای ATTINY داخل شکل صرفاً برای راهنمایی قرار داده شدهاند و روی خود قطعه نوشته نشدهاند، بنابراین سعی کنید از روی نیمدایره بالای قطعه، نحوه قرارگیری آن را درک کنید تا اتصالات را متوجه شوید. همچنین سیمهای قرمزرنگ داخل شکل، سیمهای 220v هستند.
برای درک بهتر، در شکل زیر مشخصات پینهای ATTINY85، رله و ترانزیستور NPN2222 را مشاهده میکنید.
گام 2: مدار نمونه اولیه
ابتدا مدار نمونه اولیه را مطابق شکل زیر میبندیم و برنامه نوشته شده در گام بعدی را اجرا میکنیم. بعد از نوشتن و دیباگ آن، کد را روی ATTINY85 بهوسیله Arduino Nano پروگرام میکنیم.
مدار پروگرام کردن بهصورت زیر است:
کد پروگرام کردن ATTINY85 را در این لینک برایتان قرار دادهایم.
سپس با استفاده از قطعات، مطابق شکل زیر روی PCB Universal قطعات را قرار داده و آنها را لحیم میکنیم. مراحل ساخت این بخش را به ترتیب در شکلهای زیر مشخص کردهایم که ابتدا محل قرارگیری هرکدام را ترسیم نمایید، آنها را روی برد قرار دهید و پس از جاگیری درست آنها را لحیم نمایید.
گام 3: کدنویسی
از هر میکروکنترلر آردوینو میتوان استفاده کرد. در این پروژه ما برای ساخت بهتر نمونه اولیه از آردوینو نانو استفاده کردیم. ابتدا کتابخانه ATTINY85 را دانلود و بر روی IDE نصب کنید.
توضیحات کد
1- ابتدا شماره پینهای متصل به ATTINY85 را مشخص میکنیم، سپس وضعیت اولیه دکمه، میزان تأخیر، فلگ، تعداد ساعات را مشخص میکنیم.
2- در بخش بعدی، توابعی را تعریف میکنیم که حالتهای مختلفی که در جدول بالاتر بررسی کردیم را برای ما پیادهسازی کند. در اولین تابع، همه LEDها روشن و در توابع بعدی، فقط یکی از LEDها روشن خواهد بود. دلیل این کار را در تابع بعدی میبینیم که با تعریف یک flag، حالتبندیهای منظمی را تشکیل میدهیم.
3- تابع select_hrs()، وضعیت دکمه را میخواند و آن را داخل یک متغیر میریزد. در این صورت، با هر بار فشار دادن دکمه، وضعیت LEDها تغییر پیدا میکند و اگر بیش از 4 بار دکمه فشار داده شود، به حالت اول برمیگردد. سپس بر اساس فلگ مشخص شده، تابع تعیین وضعیت LED اجرا میشود.
4- تابع قبلی برای حالتی بود که دکمه را (بیش از 5 ثانیه) نگه نداشته باشید. درصورتیکه بیش از 5 ثانیه دکمه را نگه دارید، فلگ دیگری (select_hrs) را تغییر میدهد که حالتبندی دیگری را در استفاده از آن در تابع loop() مشخص میکند.
5- در تابع setup()، پینهای متصل به پوش باتن و رله را بهعنوان ورودی انتخاب میکنیم.
6- در تابع loop()، تا زمانی که فلگ select_hrs برابر مقدار پیشفرض (صفر) باشد تابع select_hrs() را فراخوانی میکنیم و این تابع همانطور که گفته شد با دکمه وضعیت LEDها را تغییر میدهد. زمانی که فلگ select_hrs مقدارش تغییر کند، از حلقه بیرونآمده و با صفر نبودن فلگ، رله را HIGH میکند.
7- درصورتیکه تعداد ساعات کمتر از یک ساعت باشد، تابع وضعیت LEDها را فعال میکند، سپس همه را خاموش میکند و به تعداد ساعات یکی اضافه میکند. سپس (در صورت صفر نبودن) مقدار فلگ را یکی کاهش میدهد و در آخر اگر فلگ صفر باشد، رله را LOW میکند و فلگ select_hrs را به حالت اول برمیگرداند.
محل قرارگیری کد Nano_ATTINY85
نکته: برای تست کدهای پرینت متغیرها در سریال مانیتور قرار گرفته است. در فایل کد بهصورت کامنت درآمدهاند؛ اما برای تست آنها را از حالت کامنت درآوردید و بررسیهای لازم را انجام دهید، سپس در آخر آن بخشها را دوباره به فرم کامنت درآورید.
1- ابتدا برای تست تایمر را بر روی 10Secs تنظیم کنید.
2- سپس وقتی بهدرستی کار کرد، متغیر را بر روی 3600secs و فرکانس داخلی را روی 1MHz تنظیم کنید.
گام 4: کیس بیرونی
برای ساخت کیس از کیس یک آداپتور قدیمی خراب استفاده کنید.
همانطور که در شکل زیر مشاهده میکنید یک شکاف در کیس آداپتور ایجاد کنید و به فرم نشاندادهشده، فضای خالی را پر کنید و با چسب حرارتی آن را بچسبانید.
نکته: اگر اولینبار است که این کار را انجام میدهید، طرف دیگر کیس را چسب نزنید تا برای تست و تغییر ساختار و همچنین کد، راحتتر تغییرات را اعمال کنید.
ابتدا 4 تا LED را به فرم Charlieplex روی PCB لحیم کنید.
بر اساس فاصله بین هر LED، 4 سوراخ بر روی کیس با استفاده از هویه ایجاد کنید.
سپس مطابق شکل زیر 4 تا LED را با چسب حرارتی بچسبانید.
برای پوش باتن سوراخ ایجاد کنید و آن را سر جایش بهطوریکه سر پینهایش بیرون باشد با چسب حرارتی بچسبانید. دقت کنید که 4 عدد LED و پوش باتن باید جلوی کیس قرار بگیرند.
گام 5: سرهم کردن مدار DC
پینهای ATTINY85 را به LED ها،ترانزیستور و رله را به مقاومتها و دیودها مطابق دیاگرام مدار متصل کنید.
دقت کنید که در این مرحله سیمهای 220v را متصل نکنید!
برای تغذیه رسانی به مدار از یک شارژر ارزان قدیمی موبایل کوچک استفاده کنید که بتوانید همه وسایل را در کیس قرار دهید.
از تمامی اتصالات DC مطمئن شوید تا بتوانیم همه قطعات را داخل کیس قرار دهید.
از مولتی متر برای بررسی صحیح بودن همه اتصالات استفاده کنید تا از نبود اتصال کوتاه مطمئن شوید.
در تصاویر زیر، نحوه سرهم کردن مرحلهبهمرحله نمایشدادهشده است.
گام 6: پیادهسازی مدار ac
اتصالات را به فرم زیر انجام دهید:
- دو سیم 220v به ورودی آداپتور 5v
- سیم آبیرنگ ac به خروجی
- سیم قرمزرنگ ac به پایه مشترک رله
- سیم قرمز دیگر رله به سوکت خروجی
گام 7: بستن کیس آداپتور
قبل از بستهشدن کیس، همه چیز را تست کرده و متغیر را روی 3600secs تنظیم کنید و کیس را ببندید.
تبریک میگویم، شارژر تایمر دار شما آماده استفاده است!
جمعبندی
در این مقاله صفر تا صد ساخت یک شارژر تایمردار را برای گوشی شرح دادیم. درست است که در نسل جدید گوشیهای هوشمند، شارژرهای هوشمندی وجود دارند که به صورت خودکار جریان ورودی به گوشی را پس از شارژ شدن کامل قطع میکند، اما درست کردن صفر تا صدی یکی از این شارژرها برای عاشقان الکترونیک خالی از لطف نیست و میتوانید از تجربهای که در این پروژه به دست آوردهاید در سایر پروژههای مشابه استفاده کنید. اکثر قطعههای مورد نیاز این پروژه را میتوانید از فروشگاه جم ترونیک تهیه کنید.
اگر سوالی درباره این پروژه دارید زیر همین پست از ما بپرسید.
سایر مقالههای آموزشی ما را میتوانید در مجله جم ترونیک مطالعه کنید.