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

تابلو روان اتمل استودیو (پروژه تابلو روان با کامپایلر Atmel Studio)

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

سلام.
براتون پروژه تابلو روان با کامپایلر اتمل استودیو رو آماده کردیم !

تابلو روان اتمل استودیو (پروژه تابلو روان با کامپایلر Atmel Studio)

توضیحات پروژه تابلو روان اتمل استودیو

توی این آموزش ما میخوام یه تابلو روان 8*8 رو با استفاده از میکروکنترلر Atmega 32 (دیتاشیت مگا 32) طراحی کنیم .تابلو روان ما دارای 64 ال ای دی هستش و توی قالب ماتریس مرتب شدند ، ما این 64 ال ای دی رو روی فیبر نقطه ای لحیم میکنیم . LED ها میتونن هر رنگی باشن ، هر رنگی که در دسترس دارید رو انتخاب کنید . ما یک برنامه به زبان C برای میکروکنترلر می نویسیم ، میکروکنترلر با توجه به برنامه قدرت مناسب رو برای نمایش کاراکتر ها در حالت روشن فراهم میکنه . و با مولتی پلکس آشنای میشیم !

قطعات مورد نیاز پروژه اتمل استودیو

شماتیک و توضیح تابلو روان اتمل استودیو

64 عدد ال ای دی در تصویر زیر مرتب شده اند ، بنابراین ما 8 ستون و 8 ردیف داریم ، تمام ترمینال های مثبت در یک ردیف جمع شده اند. برای هر ردیف ، یک ترمینال مثبت مشترک برای همه 8 ال ای دی اون ردیف وجود داره ، شکل زیر رو ببینید :

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

بنابراین برای 8 ردیف ، ما 8 ترمینال مثبت داریم و ردیف اول ، همونطور که توی تصویر میبینید ، ال ای دی های 57 تا 64 دارای یک ترمینال مثبت مشترک هستند و توسط POSITIVE0 مشخص میشن ! حالا اگه ما بخوایم یکی ها همه ال ای دی ها رو در اولین ردیف ماتریسمون روشن کنیم ، باید A0 رو توی ال ای دی ماتریکسمون فعال کنیم ، به همین ترتیب اگه ما میخوایم هر LED یا همه رو در هر ردیف روشن کنیم ، باید پین مربوط به پین ترمینال مشترک اون ردیف رو فعال کنیم !

مشاهده همه پروژه اتمل استودیو کلیک کنید!

این پایانش نیست و فقط اینکار کافی نیست ، ما باید ترمینال های منفی رو با هم متصل کنیم ، مثل تصویر زیر !

ترمینال های منفی
ترمینال های منفی

وقتی دارید لحیم کاری میکنین ، به پین ها توجه کنین !

حالا میخوایم هر ال ای دی رو توی ستون اول قرار بدیم ، سپس PIN-C7 (NEGATIVE7) MATRIX رو به منفی متصل میکنیم . و تمام ال ای دی هارو در ستون اول قرار میدیم ، و همین کار رو برای همه هفت ستون انجام میدیم !

فیلم عملکرد مدار : کلیک کنید !
(کیفیت فیلم رو پایین بخاطر حجم بالاش پایین آوردیم تا بتونیم توی سایت بزاریمش)

اشتراک پروژه ها

برای مشاهده بقیه آموزش و دریافت لینک پروژه باید اشتراک پروژه رو داشته باشید …
موارد موجود در فایل ( پروژه ولت متر اتمل استودیو ) : شماتیک ، فایل C ، فایل Hex ، فایل اتمل استودیو ، و ….
 [post_shop]
حالا که اثرات مثبت و منفی رو فهمیدیم ، باید مدار رو کلا طراحی کنیم ، برای طراحی از عکس زیر استفاده کنید !
شماتیک پروژه
شماتیک پروژه

درایو کردن ماتریکس 8*8 :
مثلا ما میخوایم ال ای دی 57 رو روشن کنیم و سپس پورت A0 میکروکنترلر رو خاموش کنیم و پورت C0 رو هم خاموش کنیم . حالا برای روشنشدن ال ای دی 57 و 50 ما باید پین A1 , A0 و پین C0 , C1 رو به برق وصل کنیم . این کار باعث میشه ال ای دی های 57-50-49-58 روشن بشن ، برای جلوگیری از تکنیکی به نام مولتی پلکس استفاده میکنیم.

مولتی پلکس چیه ؟

چشم انسان نمیتونه فرکانس بیشتر از 30hz رو ضبط کنه ، این یعنی اگر یک چراغ به طور مداوم و با سرعت 30hz یا بیشتر روشن و خاموش شود ، چشم اون رو به طور مداوم روشن میبینه ! به این کار مولتی پلکس میگن !

 به عنوان مثال ما میخوایم LED های 57 و 50 رو بدون روشن کرد 58 و 49 روشن کنیم . ترفند ما اینه که ابتدا ردیف اول ال ای دی 57 رو روشن میکنیم و 1ms منتظر میشیم و اون رو خاموش میکنیم . این چرخه به طور مداوم با فرکانس بالا ادامه پیدا میکنه و ال ای دی 50 و 57 به سرعت روشن میشن و هر دو ال ای دی به طور مداوم به چشم ما میان ! به این معنی که ما فقط یک بار در یک ردیف قرار میدیم و احتمال روشن شدن بقیه ال ای دی هارو حذف میکنیمو ما از این تکنیک برای نشون دادن تمامی کاراکتر ها استفاده میکنیم !
ما برای هر کاراکتر مقدار دهی کردیم و این مقادیر رو به میکروکنترلرمون میدیم . این برنامه این مقدار ها رو از چپ به راست به طور مداوم نشون میده !

توضیح برنامه نویسی

کد کامل رو میتونید از فایل دانلود کنید ، این فایل مقدار آماده حروف هاست ! برای مقدار دهی فقط مقدار حرف مورد نظرتون رو در این آرایه جایگزین کنید : [] char ALPHA

{0,0b01111111,0b11111111,0b11001100,0b11001100,0b11001100,0b11111111,0b01111111}, //A
{0,0b00111100,0b01111110,0b11011011,0b11011011,0b11011011,0b11111111,0b11111111}, //B
{0,0b11000011,0b11000011,0b11000011,0b11000011,0b11100111,0b01111110,0b00111100}, //C
{0,0b01111110,0b10111101,0b11000011,0b11000011,0b11000011,0b11111111,0b11111111}, //D
{0,0b11011011,0b11011011,0b11011011,0b11011011,0b11011011,0b11111111,0b11111111}, //E
{0,0b11011000,0b11011000,0b11011000,0b11011000,0b11011000,0b11111111,0b11111111}, //F
{0b00011111,0b11011111,0b11011000,0b11011011,0b11011011,0b11011011,0b11111111,0b11111111}, //G
{0,0b11111111,0b11111111,0b00011000,0b00011000,0b00011000,0b11111111,0b11111111}, //H
{0b11000011,0b11000011,0b11000011,0b11111111,0b11111111,0b11000011,0b11000011,0b11000011}, //I
{0b11000000,0b11000000,0b11000000,0b11111111,0b11111111,0b11000011,0b11001111,0b11001111}, //J
{0,0b11000011,0b11100111,0b01111110,0b00111100,0b00011000,0b11111111,0b11111111}, //K
{0b00000011,0b00000011,0b00000011,0b00000011,0b00000011,0b00000011,0b11111111,0b11111111}, //L
{0b11111111,0b11111111,0b01100000,0b01110000,0b01110000,0b01100000,0b11111111,0b11111111}, //M
{0b11111111,0b11111111,0b00011100,0b00111000,0b01110000,0b11100000,0b11111111,0b11111111}, //N
{0b01111110,0b11111111,0b11000011,0b11000011,0b11000011,0b11000011,0b11111111,0b01111110}, //O
{0,0b01110000,0b11111000,0b11001100,0b11001100,0b11001100,0b11111111,0b11111111}, //P
{0b01111110,0b11111111,0b11001111,0b11011111,0b11011011,0b11000011,0b11111111,0b01111110}, //Q
{0b01111001,0b11111011,0b11011111,0b11011110,0b11011100,0b11011000,0b11111111,0b11111111}, //R
{0b11001110,0b11011111,0b11011011,0b11011011,0b11011011,0b11011011,0b11111011,0b01110011}, //S
{0b11000000,0b11000000,0b11000000,0b11111111,0b11111111,0b11000000,0b11000000,0b11000000}, //T
{0b11111110,0b11111111,0b00000011,0b00000011,0b00000011,0b00000011,0b11111111,0b11111110}, //U
{0b11100000,0b11111100,0b00011110,0b00000011,0b00000011,0b00011110,0b11111100,0b11100000}, //V
{0b11111110,0b11111111,0b00000011,0b11111111,0b11111111,0b00000011,0b11111111,0b11111110}, //W
{0b01000010,0b11100111,0b01111110,0b00111100,0b00111100,0b01111110,0b11100111,0b01000010}, //X
{0b01000000,0b11100000,0b01110000,0b00111111,0b00111111,0b01110000,0b11100000,0b01000000}, //Y
{0b11000011,0b11100011,0b11110011,0b11111011,0b11011111,0b11001111,0b11000111,0b11000011} //Z

مثلا اگه میخواید DAD رو در ال ای دی ماتریکسی نشون بدید ، باید این مقدار هارو در آرایه [] char ALPHA قرار بدیم ! مقدار های حروف D,A,D رو از مقدار های بالا بردارید و قرار بدید ! مثل :
char ALPHA[] = {0,0,0,0,0,0,0,0,0,0,0,
0,0b01111110,0b10111101,0b11000011,0b11000011,0b11000011,0b11111111,0b11111111,
0,0b01111111,0b11111111,0b11001100,0b11001100,0b11001100,0b11111111,0b01111111,
0,0b01111110,0b10111101,0b11000011,0b11000011,0b11000011,0b11111111,0b11111111,
0,0,0,0,0,0,0,0,0,0,0};
برای این که کد هارو به صورت درست ببینید کد هارو توی اتمل کپی کنید تا جایگذاریش درست بشه و متوجه بشید !

[/post_shop]

کپی رایت و پشتیبانی

ما برای قرار دادن هر پروژه زحمت زیادی میکشیم و خواهشمندیم مطالب VIP رو جایی منتشر نکنید ! مرسی ! هر سوالی که داشته باشید توی نظرات جواب میدیم !
درحال ارسال
امتیاز دهی کاربران
4 (1 رای)
برچسب ها
اشتراک ویژه رایگان میخوای ؟ کلیک کن !

محمد رحیمی

محمد رحیمی هستم مدیر وبسایت آیرنکس ! در سال 1394 سایت ای وی آر استودیو رو طراحی کردم (ای وی آر استودیو رو حذف کردیم) . و در تیر ماه 1396 سایت آیرنکس رو طراحی کردم و در خدمت شمام !

مطالب مرتبط

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

درحال ارسال

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

بستن