آموزش ساخت تابلو روان با میکروکنترلر AVR در اتمل استودیو

محتویات
پروژه تابلو روان با کامپایلر اتمل استودیو را آماده کردیم ! فیلم عملکرد مدار را از دست ندهید !
پروژه تابلو روان با میکروکنترلر AVR در Atmel Studio
در این آموزش میخواهیم یک تابلو روان 8*8 را با استفاده از میکروکنترلر Atmega 32 (دیتاشیت مگا 32) طراحی کنیم .تابلو روان دارای 64 عدد ال ای دی می باشد و در قالب ماتریس مرتب شده است، این 64 عدد ال ای دی را بر روی فیبر نقطه ای لحیم میکنیم. LED ها میتوانند هر رنگی باشند، هر رنگی که در دسترس باشد را انتخاب کنید .یک برنامه به زبان C برای میکروکنترلر می نویسیم، میکروکنترلر با توجه به برنامه قدرت مناسب را برای نمایش کاراکتر ها در حالت روشن فراهم میکند. همچنین با مولتی پلکس آشنا میشیوید. این برنامه فقط برای اسکرول حروف انگلیسی است.
مالتی پلکس چیست ؟
چشم انسان نمیتواند فرکانس بیشتر از 30hz را ضبط کند، این یعنی اگر یک چراغ به طور مداوم و با سرعت 30hz یا بیشتر روشن و خاموش شود، چشم انسان آن را به طور مداوم روشن میبیند. به این کار مولتی پلکس میگویند. پیشنهاد میکنم مقاله نمایشگر سون سگمنت و آموزش مالتی پلکس را بخوانید زیرا به این پروژه ما بسیار مرتبط است.
به عنوان مثال یخواهیم LED های 57 و 50 رو بدون روشن کردن 58 و 49 روشن کنیم . ترفند ما این است که ابتدا ردیف اول ال ای دی 57 را روشن کنیم و 1ms منتظر میمانیم و آن را خاموش میکنیم. این چرخه به طور مداوم با فرکانس بالا ادامه پیدا میکند و ال ای دی 50 و 57 به سرعت روشن میشوند و هر دو ال ای دی به طور مداوم روشن به چشم می آیند. به این معنی که فقط یک بار در یک ردیف قرار میدهیم و احتمال روشن شدن بقیه ال ای دی ها را حذف میکنیم. از این تکنیک برای نشان دادن تمامی کاراکتر ها استفاده میکنیم.
ما برای هر کاراکتر مقدار دهی کردیم و این مقادیر را به میکروکنترلرمان می دهیم این برنامه این مقدار ها را از چپ به راست به طور مداوم نشان میدهد.
شماتیک پروژه تابلو روان با اتمل استودیو
64 عدد ال ای دی در تصویر زیر مرتب شده اند ، بنابراین ما 8 ستون و 8 ردیف داریم ، تمام ترمینال های مثبت در یک ردیف جمع شده اند. برای هر ردیف ، یک ترمینال مثبت مشترک برای همه 8 ال ای دی آن ردیف وجود دارهد. شکل زیر را ببینید :

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

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

قطعات مورد نیاز پروژه تابلو روان
- میکروکنترلر مگا 32
- منبع تغذیه 5V
- 64 عدد LED
- 8 عدد مقاومت 1 کیلو اهم
- برد نقطه ای و ابزار لحیم کاری
- کامپایلر اتمل استودیو ورژن 6.1 به بالا (دانلود اتمل استودیو)
برنامه نویسی پروژه تابلو روان با AVR
کد کامل را میتوانید از فایل دانلود کنید ، این فایل مقدار آماده حروف است ! برای مقدار دهی فقط مقدار حرف مورد نظرتان را در این آرایه جایگزین کنید : [] 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
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};
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
تشکر میکنم بسیار عالی بود
سلام عزیز
خوشحالم که براتون مفید بوده