نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

آموزش گام به گام ساخت تابلو روان-جلسه ۴

42

به نام خدا : آموزش گام به گام ساخت تابلو روان-جلسه ۴؛ انشا الله در این جلسه میخوام پروژه ای رو براتون توضیح بدم؛ کار این پروژه اینه که کلمه ی D رو تو ماتریس نشون میده.

انواع روش دادن اطلاعات به ماتریس

ما برا روشن کردن یه ماتریس و نمایش اطلاعات میتوانیم از دو روش زیر استفاده کنیم :
۱) روش سطری
۲) روش ستونی
روش سطری : در این روش ما
اول)  سطر اول رو روشن(فعال) کرده و اطلاعات رو بهش میدیم و یه تاخیر زمانی میدیم .
دوم) سطر دوم  رو روشن(فعال) کرده و اطلاعات رو بهش میدیم و یه تاخیر زمانی میدیم .
.
.
.
روش ستونی : این پروژه بر طبق همین روش میباشد ، (در این روش هم نحوه کار مثل روش قبلی میباشد)
اول)  ستون اول رو روشن(فعال) کرده و اطلاعات رو بهش میدیم و یه تاخیر زمانی میدیم .
دوم) ستون  دوم  رو روشن(فعال) کرده و اطلاعات رو بهش میدیم و یه تاخیر زمانی میدیم .
.
.
.
تذکر ۱ : وقتی این پروژه رو دانلود کردید داخلش یه نرم افزار هست که ابتدا اندازه ماتریستون رو انتخاب میکنید (در این پروژه اندازه ماتریس ۷*۵ میباشد) و بعد شکلتون رو رسم کرده و با توجه به روشی که انتخاب کردید (ستونی یا سطری-ما در این پروژه تز حالت ستونی استفاده کردیم )  یکی از گزینه های row  یا column رو انتخاب میکنید و بعد زبان مورد نظرتون رو انتخاب میکنید (در این پروژه ما از زبان برنامه نویسی سی استفاده کردیم) و بعد روی گزینه ی convert کلیک میکنید. و کد رو کپی و داخل پروژتون میزارید.
تذکر ۲ : در مورد نحوه کار با ماتریس همون طور که تو جلسه دوم  گفتم یه پایه به ۵ ولت(یا همون ۱ منطقی) و یه پایه به زمین (صفر منطقی) باید وصل شود.
ولی چون ما دوست نداریم برا روشن کردن و دادن ماتریس یه پایش رو یک و اون یکی رو صفر کنیم میاییم و تو پایه ای که باید به زمین وصل شود یه گیت not میزاریم تا ۰ ها رو ۱ و ۱ ها رو ۰ کنه. تا در برنامه نویسی اذیت نشیم و به مشکل برنخوریم.(مشکلی پیش نمیاد ولی احتمال قاطی کردن توسط شما در حین نوشتن کد ها میره بالا) pardon

مطالعه بیشتر :  آشنایی مختصر با گیت های منطقی

تو کد های بالا گفتم “یه واحد شیفت به سمت چپ” حالا این مربوط به کد نویسی هستش ولی ممکنه کسانی باهاش آشنای نداشته باشن.
ما مقدار اولیه ۰b00000001 رو به این متغیر یعنی scan میدیم. (مقدار دهی ها تو پرژه بر حسب هگزا دسیمال بوده ولی الان بر حسب باینری توضیح میدم تا قشنگ متوجه بشید)
یعنی الان متغییر اسکن برابر ۰b00000001 هست

حالا اگه ما بنویسیم

یعنی متغییر SCAN رو یه واحد به سمت چپ شیفت بده و بعد دوباره این مقدار جدید رو در متغییر SCAN ذخیره کن.
متغیر SCAN بعد از شیفت دادن :

یعنی اون عدد یک ، یه واحد به سمت چپ منتقل شد. حالا اگه بنویسیم

یعنی ۳ واحد به سمت چپ منتقل میشود. کد زیر هم خلاصه شده کد بالا (  scan=scan<<1;  )   هستش و فرقی باهاش نداره و فقط فقط خلاصه شده این کد هستش.

توجه :

اعداد باینری : اگه کد هاتون رو بر حسب باینری هست باید اول ۰b گزاشته و بعد مقدار هر ۸ بیت رو تعیین کرده(حالا یا صفر و یا یک) و جلوش قرار میدیم.
اعداد هگزادسیمال : اگه کد هاتون رو بر حسب هگزادسیمال هست باید اول ۰x گزاشته و بعد ممقدارهر ۸ بیت رو تعیین کرده(حالا یا صفر و یا یک) و ۴ تا ۴ تا جدا کرده ( که میشود دو تا ۴ تا یعنی ۸ بیت) و تبدیل به عدد در مبنای ۱۰ میکنیم.
نحوه  تبدیل به عدد در مبنای ۲ به عدد  مبنای ۱۰ :  وقتی ۴ رقم ۴ رقم جدا کردید یکی از این ۴ رقم رو انتخاب کنید و کار زیر رو انجام بدید.
(مقدار رقم اول * ۲ به توان صفر ) + (مقدار رقم دوم * ۲ به توان یک) + (مقدار رقم سوم * ۲ به توان دو ) + (مقدار رقم اول*۲ به توان صفر) + همین طور تا رقم یا همون بیت ۸ ام این کار رو کنید و همه رو با هم جمع کنید.

مثال : عدد باینری ۰b01010111
ابتدا ۴ رقم ۴ رقم جدا کرده>>> 0111    و   ۰۱۰۱   حالا عمل جمع و ضرب برا ۴ رقم اول
۱*۲به توان صفر + ۱*۲به توان یک + ۱*۲به توان دو+ ۰*۲به توان سه = ۷
حالا برا ۴ رقم دوم
۱*۲به توان صفر + ۰*۲به توان یک + ۱*۲به توان دو+ ۰*۲به توان سه = ۵
حالا عدد باینری ۰b01010111 رو میتوان به صورت (هگزادسیمال)   ۰x57  نوشت.
سوال : حالا مثلا در بالا ۴ روقم اول ۷ شد ولی اگه بیشتر از ۱۰ شد(مثلا ۱۲) آیا باید به صورت ۰x512 نوشت؟؟؟
جواب : خیر
از صفر تا ۹ خود عدد رو میزاریم ولی اگر ۱۰ شد بجاش A  و...
۱۰>>>A
۱۱>>>B
۱۲>>>C
۱۳>>>D
۱۴>>>E
۱۵>>>F
تو حالا ۸ بیتی مقدار از ۱۵ بیشتر نمیشه.

دانلود پروژه این جلسه+نرم افزار

سوالی بود در خدمتیم.
 راستی تمرین در خانه :  ما به روش اسکن سطری نوشتیم و توضیح دادیم حالا شما همین پروژه رو به روش اسکن سطری بنویسید-

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
ارسال دیدگاه
23
نظرات این مطلب بسته شده است.
  1. soheil

    مهمان

    soheil

    سلام
    آقا خیلی مطالبتون عالیه .
    فقط من هرچی فکر میکنم متوجه نمیشم این کد چیه؟ PORTD = column[i];
    میشه کمکم کنید ؟ negative

  2. فرناز

    مهمان

    فرناز

    سلام
    خسته نباشین
    ممنون از اطلاعات خوب و مفید و کاملتون
    یه سوال
    من پروژه رو با دات ماتریس کاتد مشترک تونستم راه اندازی کنم ولی با آند مشترک نمیشه و الآن توی بازار همه آند مشترک دارن. میشه راهنماییم کنین؟
    بعد یه چیز دیگه اینکه ماتریس من RG هست و قراره 2 تا علامت رو با رنگ سبز و 2 تا رو با قرمز نشون بده ولی قرمزا کامل روشن نمیشن (ماتریس هم سالمه همه ی LEDهاش) چرا اینجوری میشه؟ wacko
    ممنون میشم راهنماییم کنین. کارم خیلی گیره

  3. qq

    مهمان

    qq

    سلام در عمل به جای گیت نات باید چی بزاریم یا همینطوری وصل کنیم جواب میده

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – مطلب جلسه آخرو ببین.

  4. m

    مهمان

    m

    سلام خسته نباشید خط چهار تا ده را نفهمیدم میشه به صورت ساده توضیح بدید

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      اگه فرمت کد هگز و باینری رو بدونی – برا تجزیه و تحلیل اون ارایه میبینی که D انگلیسی بزرگ هستش.

  5. مهدی حسن پور

    مهمان

    مهدی حسن پور

    مهندس سلام مجدد . همین برنامه با همین سیم بندی اگر به جای atmega 8 آیسی رو عوض کنم و atmega 32 بزارم مشکلی نداره ؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      شما هر میکرویی میخوای استفاده کن ولی خب باید پروژه رو تغییر بدی – اگه برات سواله که چطور – باید بگم که مطالب آموزش avr رو مطالعه کنید.

  6. مهدی

    مهمان

    مهدی

    سلام
    بسیار سپاسگذارم برای انچه که به ما اموختی. سلامت سعادتمند باشید. در پناه حق.

  7. سهیدم

    مهمان

    سهیدم

    سلام خدا قوت. فایل های شبیه سازی پروتئوس رو نمیزارید؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      تو فایل ته مطلب فایل پروتئوس قرار داره – پوشه ISIS
      راستی یه سوال – “سهیدم” اسمه یا همینطوری یه چیزی نوشتی؟

  8. میترا

    مهمان

    میترا

    سلام
    من میخوام یه تابو روان بسازم,برای پروژه تخصصیم,و گفته شده که برای جلوی در اتاق اساتید میخوان, به نظرتون دات ماتریس میتونه کار ماژولو بکنه؟؟
    الان مصرف کار من تجاری میشه؟؟باید از ماژول استفاده کنم؟
    اینجوری تو شبیه سازیام چطوری میتونم ماژول بذارم؟؟اصلا گیج شدم میشه راهنماییم کنید؟؟؟
    لطفا از طریق ایمیلم ج بدین
    تشکر از لطفتون

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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

  9. رضا

    مهمان

    رضا

    سلام به شما…. یه سوال من دارم با اتمل استدیو کار میکنم….اون flash که در خط سوم تعریف شده اشکال میگره….باید چکار کرد؟؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      با اتمل کار نکردم – ببین تو اتمل برا ذخیره کردن متغییر ها تو حافظه فلش باید چیکار کرد

  10. مهندس

    مهمان

    مهندس

    سلام . سایت بسیار مفید و خوبی دارین
    واقعا ممنون
    خدا قوت

  11. hamed

    مهمان

    hamed

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      برنامه نویسی رو تغییر بده تا نیازی به not نداشته باشی

  12. MeysaM

    مهمان

    MeysaM

    دمت گرم.نه دمت گرمممممم.خلاصه دمت گرمB-)

  13. امین

    مهمان

    امین

    حرف شما درست پس اگه این خط رو حذف کنیم نباید روشن بودن LED هارو ببینیم ولی LED ها روشن می شن و ما میتونیم اونها رو ببینیم فقط بهم ریخته هستن. منظورم از بهم ریخته اینه که ترتیبی از LED ها روشن می شن که ما کلا تعریف نکردیم. اگه میشه اینو توضیح بدید که چرا این جوری روشن میشن.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      روشن شدن رو میبینی ولی چرت و پرت میبینی….
      ولی این که چرا این چرت و پرت ها رو نشون میده و چرت و پرت دیگه ای رو نشون نمیده رو نمیدونم

  14. امین

    مهمان

    امین

    سلام و خسته نباشید
    من قسمت delay آخرش رو نفهمیدم اگه میشه توضیح بدید.
    اگر این قسمت رو حذف کنیم حرف نمایش داده شده کلا بهم میریزه.
    با تشکر

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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