نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه

led با قابلیت تغییر سرعت چشمک زدن

به نام خدا : led با قابلیت تغییر سرعت چشمک زدن – این جور پروژه ها شاید ساده باشن ولی از بعضیاشون میشه نکته های جالبی رو فهمید مثلا تو همین پروژه اونقدر که من اذیت  شدم تو پروژه ربات مسیر یاب اذیت  نشدم؛ البته این پروژه هیچی نداره ولی یه سری نکات کوچیک بود که من بهش توجه نمیکردم.که انشا الله در زیر بهشون اشاره میکنم.

۱) اگه روی کلید >>TIME=-1<< کلیک کنید زمان تابع  تاخیر ما -۱ میشود یعنی تابع delay_ms  در داخل پرانتزش -۱ قرار میگیرد که در این حالت برنامه قفل میکنه تا ….
انگار یه زمان بینهایت بهش دادی و وقتی برنامه ما به کد تابع تاخیر با زمان منفی میرسید روی این کد میماند و بقیه کد های برنامه رو بررسی نمیکنه. لذا باید برنامه رو دوباره اجرا کنی.
(روی این کلید کلیک کنید تا متوجه بشید>>>البته قبلش باید برنامه شبیه سازی و کد هاش رو که در ته همین مطلب میزارم دانلود کنید.) sarcastic
۲) اگه رو کلید های UP  و  DOWN کلیک کنید زمان چشمک زدن افزایش و کاهش می یابد.
۳) به این نکته توجه کنید که این دکمه ها فشاری هستن و مثل دکمه های موبایل هستن و وقتی روشون کلیک میکنی فعال میشن و وقتی دستت رو از دکمه برداری غیر فعال میش.
۴) یه نکته مهم که اصل همین پروژه هست بعد از کد ها میگمش. dash
۵) مقاومت ها هم برا جلو گیری از سوختن میکرو کنترلر هستش.
برای این که بدونید چرا مقاومت ها اینطوری وصل شدن میتونید قسمت مربو به انواع وصل کردن مقاومت در مدار ها
از مطلب مقابل رو بخونید>>>>انواع وصل کردن مقاومت در مدار ها

تو این کد ها تابع time  برا محاسبه i  یا همون زمان تاخیر هستش که این تابع بررسی میکنه که از بین پین های A.0 –   A.1 – A.2  کدومشون فعاله تا  i  رو محاسبه و ارسال کنه.

۶) اگه برنامه رو دانلود کرده باید و نگاه کرده باشید(البته با نگاه به کد ها هم میشه این موضوع رو فهمید) حتما متوجه این موضوع شدید که چراغ ها از بالا به پایین روشن میشوند و…
نکته ای که هست این هستش که وقتی روی یکی از کلید ها یه لحظه کلیک میکنی (و اون کلید به حالت اولیه خودش برمیگرده) و برنامه مثلا به کد

میرسه ؛ میره سراغ  تابع time  و بررسی میکنه ببینه که رو کدوم کلید لیک شده ، نکته ای که هست اینه که میکرو در حالت عادی بعد از این که رو دکمه ای یه لحظه کلیک شد و دکمه به حالت اولیه خودش برگشت  و اون پین یه لحظه فعال شد نمیتونه اینو تو خودش ذخیره کنه که در فلان زمان روی فلان دکمه کلیک شد و فلان پین فعال شد>>> البته میدونم متوجه نشدید الان بهتر میگم shout
مثلا ما در حین اجرای برنامه روی کلید UP  کلیک میکنیم ( و اون به حالت اوله خودش برمیگرده و پین مورد نظر یه لحظه فعال میشه) حالا برنامه به تابع i=time; میرسه وقتی میره سراغ این تابع میبینه که روی هیچ کدوم از دکمه ها کلیک  نشده (در حالی که ما چند لحظه پیش و قبل از این که برنامه به این کد برسد  روی دکمه ای کلیک کرده بودیم) و علتش هم اینه که نمیتونه این موضوع (که یه پین از پایه های میکرو چند لظه پیش فعال شده) رو تو حالت عادی درک کنه. cry
۷) اندازه مقامت و نحوه بستنش خیلی مهم هست مثلا تواین حالتی که من مقاومت ها رو بستم اگه مقدار مقاومت ها رو از یه مقداری معیین کم تر کنی میبینی که دیگه برنامه عمل نمیکنه و پین مورد نظر فعال نمیشه علتش هم اینه که پایه های میکرو برا فعال شدن به یه حداقل ولتاژی نیاز دارند.
(اگه اشتباه نکم یه چیزی حدود : برا حالت غیر فعال ۰ ولت تا ۲ ولت و برای این که پایه میکرو فعال بشه یه چیزی حدود ۲٫۵ ولت تا ۵ ولت لازمه>>>>>البته بسته به نوع میکرو این مقادیر متفاوت است که خودتون هم میتونید این موضوع رو بررسی کنید البته تو دیتاشیت هم نوشه اینا رو)
۸) با توجه به نکات بالا نباید رو دکمه ای کلیک کرد ؛ بلکه باید روی فلش های بالای دکمه ها کلیک کرد
(وقتی رو اینا کلیک میکنی دکمه یا بسته میشه یا باز و مثل حالت قبل این طور نیست که وقتی کلیک کردی دوباره به حالت اوله خودش برگرده)

چیزی نداشت ولی سعی کردم نکاتی که داشت به زبون ساده بگم ؛ حالا اگه جاییش رو متوجه نشدید یا من بد توضیح دادم ؛ در قسمت نظرات اعلام کنید heart

دانلود این پروژه | حجم: ۱۰۰ کیلوبایت!
پسورد فایل های سایت :
www.dmf313.ir
جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
9

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    سجاد

    فرکانس چنده؟

    1397/10/04
    09:55
    • نویسنده این مطلب

      مهدی دمیرچیلو

      مهم نی زیاد – فقط هر مقدار که از طریق فیوز بیت ها تنظیم کردی – تو کدویژن همون مقدار رو تنظیم کن تا تابع DELAY به مشکل نخوره.

      1397/10/05
      08:16
  2. مهمان

    یوسف لاوری

    سلام دوست عزیز. من یک کیت میخواستم یک ال ای دی چشمک زن که بشه سرعت خاموش روشنش رو تغیر داد . حتی در حد میلی ثانیه . میتونی کمکم کنی ؟ لطفا برای ارسال پاسخ با ایمیلم در ارتباط باش. مرسی

    1397/05/19
    09:07
  3. مهمان

    جواد

    سلام
    حالا این مشکل رو در واقعیت بای چجوری حل کرد ؟که هر لحظه که کلید رو فشار دادیم میکرو بفهمه و کار ما راه بیفته

    1395/06/13
    06:36
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      دقیق داستان رو توضیح بده – متوجه نشدم.

      1395/06/13
      08:15
      • مهمان

        جواد

        در انتهای متن گفتی که میکرو تا به اون خط از برنامه نرسه که بهش بگه ببین کلید در چه وضعیتیه متوجه ی فشرده شدن کلید نمیشه و در شبیه ساز باید کلید رو بسته نگه داریم تا میکرو بفهمه
        نکته ی 8 :
        “۸) با توجه به نکات بالا نباید رو دکمه ای کلیک کرد ؛ بلکه باید روی فلش های بالای دکمه ها کلیک کرد
        (وقتی رو اینا کلیک میکنی دکمه یا بسته میشه یا باز و مثل حالت قبل این طور نیست که وقتی کلیک کردی دوباره به حالت اوله خودش برگرده)”
        حالا سوال اینه که در عمل نمیشه که منتظر موند و کلید و نگه داشت تا این اتفاق بیفته راه حل واقعیش چیه ؟

        1395/06/15
        11:45
        • نویسنده این مطلب

          مهدی دمرچیلو

          خب ببین برنامه خطوط 18 تا 52 رو هی تکرار میکنه و اجرا میکنه.
          حالا ما 3 تا دکمه داریم که اون دکمه آخری هه به نظر میاد سرکاری باشه و کاری بهش ندارم.
          خب برنامه فقط در خط 21 میاد و دکمه ها رو بررسی میکنه که کلیک شدن یا نه و بعد میره بقیه کد ها رو اجرا میکنه
          حالا چون بعد این تابع(خط21) یه چندتایی DELAY داریم اجرا شدنشون بشته به مقدارشون یه چند ثانیه ای طول میکشه – خب حالا فرض کن برنامه داره این کدهای ست کردن پورت و دیلای رو اجرا میکنه(یعنی داره کد های خط 24 تا 53 رو اجرا میکنه حالا تو این حین اگه دکمه رو فشار بدی و بعد ولش کنی برنامه متوجه نمیشه – دلیلش هم معلومه…..راه حل اینه که یا به مقدار زمان مورد نیاز دکمه رو نگه داری مثلا 2-3 ثانیه دکمه رو نگه داری یا این که از وقفه خارجی استفاده کنی که دیگه نیاز نیست 2-3 ثانیه نگه داری – هر موقع رو دکمه کلیک کنی برنامه 3 سوته متوجه کلیک شدنش میشه حالا برنامه میخواد هر کاری کنه و هر جای پروژه باشه و …. مطلب آموزش وقفه خارجی تو سایت هستش – قسمت اموزش جامع AVR)

          1395/06/15
          07:28
  4. مهمان

    دانشجوی سخت افزار

    سلام،این پروژه رو روی بردبردبستم ولی نمی دونم آیاvccوAvccهردوروبایدبه 5ولت وصل کنم؟هردوgndمیکروربایدبه0ولت وصل کنم آخه وقتی این کارارومیکنم روشن نمیشه راستی پایه ریست میکروروچیکارکنم؟لطفاًراهنماییم کنین

    1395/03/25
    05:15
    • نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      پایه 10 به + و 11 به – >>>>> فقط همین
      avcc و aref و reset و… رو بیخیال شو.

      1395/03/25
      01:14