دانلود مقاله آموزش گام به گام ساخت تابلو روان

Word 342 KB 30915 53
مشخص نشده مشخص نشده الکترونیک - برق - مخابرات
قیمت قدیم:۲۴,۰۰۰ تومان
قیمت: ۱۹,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • در این مجموعه مقالات تصمیم به آموزش اصول و ساخت تابلو های روان (دیجیتال) را دارم.

    شما گام به گام با اصول کار تابلو‌های دیجیتالی آشنا شده و در پایان یک نمونه عملی آن را بررسی و خواهید ساخت.

    لازم به ذکر است که مطالب موجود حاصل تجربیات این جانب در این زمینه بوده.

    و تمامی مطالب و حتی تصاویر و نقشه‌ها مربوط به تجارب خودم است.

    دوست عزیز هر گونه کپی برداری از مطالب در صورت ذکر منبع بلامانع است.

     مطالبی که طی این دوره خواهید آموخت عبارتند از :

     -  سیستم تابلو های نمایشگر دیجیتالی

     - اجزاء تصویر

     - جاروب ساده

     - اثر فلیکر

     - جاروب یک در میان

     - جدول گلایف

     - بررسی یک مدار عملی

     - نرم افزارهای تبدیل متن و طراحی فونت جهت تابلو روان

    بلوک دیاگرام یک تابلو دیجیتال

     

    همانطور که در تصویر مشاهده میکنید، این تابلوها از بلوکهای :

     - ماتریس LED

     - درایورهای سطر و ستون

     - پردازنده

     - تجهیزات ورود اطلاعات

     - حافظه

    تشکیل شده‌اند.

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

    و این اطلاعات را در اختیار پردازنده قرار میدهد.

    سپس پردازنده پس از آنالیز اطلاعات آن را در حافظه تابلو ذخیره نموده.

    علاوه بر آن حافظه موجود در تابلو میتواند کدهای برنامه را در خود نگهداری نماید.

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

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

    این درایورها با توجه به فرامین دریافتی از سوی پردازنده، با روشن و خاموش نگاه داشتن LED های موجود در ماتریس، باعث به نمایش در آمدن مطالب (اعم از متن و یا تصویر) بر روی ماتریس خواهند شد.

    اجزای تصویر

    (تصاویر در فایل اصلی موجود است)

    به این تصویر نگاه کنید، تصویر صورتک خندان !

    در نگاه اول تصویر فوق به صورت یک تصویر کامل و یکپارچه به نظر می‌رسد.

    اما اگر کمی با دقت بیشتر به آن دقت کنید و تا حد امکان آنرا بزرگ نمایید متوجه خواهید شد که در واقع آن تصویر از نقاط ( pixel ) متعددی تشکیل شده.

    پس تصویر فوق را میتوان مجموعه نقاطی دانست که دارای رنگهای متفاوتی‌اند.

    هر یک از این نقاط را یک جزء تصویر (Picture Element) و این خاصیت را خاصیت موزائیکی تصویر می‌نامند.

    من جهت کمک به درک مطلب تصویر فوق را با بزرگ نمایی بیشتر در زیر قرار داده‌ام.

    به آن دقت کنید.

    هرچه تعداد اجزاء تصویر در واحد سطح بیشتر باشد، وضوح تصویر بیشتر می‌باشد.

    به عبارت دیگر تصویر به واقعیت نزدیکتر بوده، جزئیات آن بهتر دیده میشود.

    در تابلو‌های دیجیتالی نیز خاصیت موزائیکی وجود دارد.

    تصویر تابلو توسط ماتریسی از LED ها ایجاد میگردد.

    در اینجا ابعاد یک جزء تصویر به اندازه قطر یک LED است.

    که از یک فاصله معین چشم بیننده

    قادر به تمایز نقاط تصویر ایجاد شده نبوده و یک تصویر را یکپارچه احساس میکند.

    جهت تشکیل تصویر بر روی پانل تابلو، نیاز به روشن و خاموش نگه داشتن LED های موجود بر روی تابلو متناسب با تصویر مورد نظر است.

    بنابراین نیاز به کنترل تک تک LED

    های موجود در تابلو میباشد.

    از طرفی هر LED دارای دو پایه است ( با فرض تک رنگ بودن ) و در صورتی که ما یک پانل LED با ماتریس 10x10 داشته باشیم، دویست پایه و یا دویست سیم جهت کنترل داریم.

    مسلما استفاده از این تعداد سیم مقرون به صرفه نخواهد و باعث پیچیدگی مدار خواهد شد.

    جهت بر طرف کردن مشکل فوق می‌توان پایه های یکسان در LED ها را به صورت سطری و ستونی به یکدیگر متصل نمود.

    به تصویر زیر دقت کنید :

    همانطور که در تصویر مشاهده نمودید، در این آرایش آند تمامی LED های موجود در یک سطر یکسان به هم متصل شدند، همچنین کاتد LED های موجود در یک ستون نیز به هم اتصال داده شده‌اند.

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

    شما در این حالت جهت روشن کردن هر LED کافیست که سطری که آن LED  در آنجا قرار دارد را به سطح ولتاز مثبت اتصال داده و سپس ستون مربوط به همان LED  را به زمین مدار وصل کنید.

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

    نگران نباشید، در ادامه همین بحث خواهید دید که جهت نمایش نیازی هم به تمامی LED ها نبوده و میتوان توسط جاروب نمودن سطرها و یا ستون‌ها نیز به نمایش تصویر در تابلو روان پرداخت.

    به هر حال در صورت عدم استفاده از روش فوق شما مدار پیچیده‌ای خواهید داشت، مثلا برای کنترل LED ها موجود در تصویر روبرو شما حداقل باید از طریق 41 سیم ماتریس را کنترل میکردید.

    در حالی که با استفاده از روش ماتریسی شما فقط به 13 سیم نیاز دارید.

    فقط در این حالت برنامه شما کمی پیچیده خواهد شد.

    که البته به نظر من شما یک بار برنامه مینویسید از آن تا ابد استفاده میکنید ولی سخت افزار را باید تا ابد مونتاژ کنید و هزینه آن را پرداخت کنید.

    جاروب ساده

     

    روش جاروب ساده به دو صورت بکار برده میشود :

    - جاروب سطرها

    - جاروب ستون‌ها

    در جاروب سطرها شما LED های موجود در سطر اول را روشن میکنید، سپس LED های سطر دوم و .

    .

    تا به سطر آخر برسیم.

    دوباره همین کار را دوباره انجام میدهیم.

    در جاروب ستون‌ها شما LED های موجود در ستون اول را روشن میکنید، سپس LED های ستون دوم و .

    تا به ستون آخر برسیم.

    دوباره همین کار را دوباره انجام میدهیم.

    به یکبار جاروب کامل (خواه سطرها و خواه ستون‌ها) تازه سازی (Refresh) میگویند.

    جهت کمک به درک مطلب، به انیمیشنی از جاروب سطری که در زیر آورده شده نگاه کنید.

    انیمیشن فوق جهت ساخت تصویر زیر است.

    انیمیشن فوق جهت ساخت تصویر زیر است.

    توجه داشته باشین که جاروب کردن علاوه بر کاهش سیم بندی و کم شدن پیچیدگی آن میشود، باعث خواهد شد که شما در هر لحظه تعداد کمتری از LED های تابلو را روشن کنید و در نتیجه میزان مصرف جریان الکتریکی تابلو به میزان قابل توجه‌ای کاهش پیدا خواهد نمود اثر فلیکر اثر نور در چشم انسان برای مدت کوتاهی باقی می‌ماند.

    این خاصیت را اثر پس ماند نور (Flicker) می‌نامند.

    بر‌مبنای همین خاصیت است که در سینما و تلویزیون احساس پیوستگی تصویر بوجود می‌آید.

    چنانچه تصاویری که از یک حرکت مثلا راه رفتن انسان عکس برداری شود و سپس با سرعت 16 بار در ثانیه به نمایش درآید، چشم انسان منقطع بودن تصاویر را احساس نکرده و تصاویر را بطور پیوسته حس می‌کند.

    بر مبنای این خاصیت بود که صنعت سینما بوجود آمد.

    ترتیب کار به این صورت است که توسط یک دوربین فیلمبرداری مخصوص که قادر است در هر ثانیه 16 تصویر از یک صحنه عکس برداری نماید، تصاویر تهیه شده سپس با همان سرعت به نمایش در می‌آیند.

    البته به علت اینکه با 16 تصویر در ثانیه حرکات نرم و طبیعی نداریم، فرکانس مزبور بعدا به 24 تصویر در ثانیه افزایش داده شد.

    در این فرکانس برای بیش از 90 درصد حرکات، پیوستگی طبیعی بوجود می‌آید.

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

    مشکل دیگر مسئله چشمک زدن تصویر است.

    در فرکانس 24 تصویر در ثانیه اگر چه مسئله پیوستگی تصاویر حل میشود اما تصاویر چشمک می‌زنند و این بخاطر این است که چشم اگرچه در این فرکانس، تصاویر را پیوسته می‌بیند و حرکات را طبیعی احساس میکند اما خاموش شدن صحنه در حین تعویض یک تصویر به تصویر بعدی بوجود می‌آید را بصورت چشمک زدن تصویر احساس میکند.

    این پدیده بخصوص برای تصاویری با نور بیشتر محسوس‌تر است.

    برای رفع این مشکل باید حداقل 48 تصویر در ثانیه به نمایش درآید تا اثر چشمک زدن از بین رود.

    در سینما چون نمایش 48 تصویر در ثانیه، اشکالات عملی بوجود می‌آورد، مسئله را به طریق دیگری حل نموده‌اند.

    به این ترتیب که سرعت حرکت نوار فیلم از مقابل لامپ پروژکتور همان 24 تصویر در ثانیه است منتهی به کمک یک دیافراگم گردان به هنگام تعویض یک فریم به فریم بعدی و همچنین در زمان نمایش فریم و درست در وسط زمان مزبور نور لامپ پروژکتور به فیلم قطع میشود.

    با اینکار هر فریم دو بار روشن و خاموش میشود.

    با این تدبیر که هر تصویر دو بار روشن میشود و سرعت حرکت نوار 24 تصویر در هر ثانیه است، از نظر چشم 48 تصویر در ثانیه احساس میشود و مشکل چشمک زدن از بین میرود.

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

    جاروب یک در میان همانطور که گفته شد، جهت نمایش مناسب تصاویر متحرک باید حداقل 24 تصویر در ثانیه نمایش داده شود.

    حال فرض کنید شما یک تابلو با 32 سطر می‌خواهید طراحی کنید و از جاروب سطری هم استفاده می‌کنید در این حالت زمان نمایش هر فریم تصویر برابر با 41.6 میلی ثانیه خواهد بود و در هر فریم 32 سطر جهت جاروب داریم پس زمان روشن بودن هر سطر برابر با 1.3 میلی ثانیه خواهد بود.

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

    نکته اینجاست که شما هر LED را فقط به مدت 1.3 میلی ثانیه روشن نگاه میدارید و سپس به مدت 31 برابر این مدت خاموش نگاه میدارید( به خاطر جاروب 31 سطر بعدی ) یعنی 1.3 میلی ثانیه روشن و 40.3 میلی ثانیه خاموش است.

    ودر واقع اثر نور LED در چشم به میزان قابل توجه‌ای کاهش می‌یابد.

    جهت کم کردن این اثر و افزایش نور تابلو روان چند کار را می‌توان انجام داد : 1- افزایش ولتاژ اعمالی به LED ها که معمولا این کار خطر سوختن LED ها در اثر هنگ کردن تابلو افزایش داده و همچنین از عمر مفید آن نیز خواهد کاست.

    2- تقسیم تابلو به سگمنت های جداگانه مثلا برای مثال فوق تقسیم تابلو به 4 سگمنت 8 سطری.

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

    3- جاروب یک در میان، این روش راه حل مناسبی در بر طرف نمودن مشکل فوق است.

    در عین حال که به پیچیدگی مدار منجر نخواهد شد و همچنین با تغییر ساده‌ای در الگوریتم برنامه میتوان از آن بهره برد.

    ترتیب کار به این صورت است که ما هر فریم کامل را که در مثال فوق برابر با 32 سطر است به دو نیم فریم تقسیم میکنیم.

    فریم اول شامل سطرهای فرد (1،3،5،7،9،11،13،15،17،19،21،23،25،27،29،31) و فریم دوم شامل سطرهای زوج (2،4،6،8،10،12،14،16،18،20،22،24،26،28،30،32) است.

    حال در هر جاروب فقط یکی از دو نیم فریم زوج ویا فرد را جاروب میکنیم.

    بدین ترتیب که یکبار نیم فریم فرد و بار بعد نیم فریم زوج و دوباره نیم فریم فرد و ...

    در این حالت چون در هر بار فقط 16 سطر جاروب میشوند لذا زمان روشن بودن هر LED بیشتر خواهد شد.

    البته حتما شما خواننده تیز بین این مقاله متوجه شدید که در این حالت در ثانیه فقط ما 12 تصویر (فریم کامل) نمایش داده‌ایم پس احتمالا بخاطر این کاهش مجددا مشکل لرزش تصویر را داشته باشیم!

    البته شما کاملا حق دارید ولی نکته ظریفی هم این بین وجود دارد و آن هم این است که تعداد نیم فریم های نمایش داده شده در یک ثانیه همان 24 عدد است.

    در نتیجه لرزش تصویر منتفی خواهد بود.

    جهت کمک به درک بهتر این مطلب نحوه جاروب در یک تابلو روان 8 سری بصورت انیمیشن در زیر نمایش داده شده است.

    انیمیشن فوق با سرعت بالاتر : متن مورد نمایش : بررسی اولین مدار عملی تابلو روان - برنامه نویسی حال نوبت به توضیح برنامه هست.

    من برنامه این میکرو را به زبان بیسیک نوشتم و از نرم افزار BASCOM-AVR استفاده کردم.

    $regfile = "m8def.dat" $crystal = 8000000 همانطور که میدانید، دستوراتی که با علامت "$" در BASCOM آغاز میشوند، جزو دستورات کمپایلر به حساب می‌آیند.

    و در زمان کمپایل کدی را تولید نمیکنند.

    دو دستور فوق نیز همینگونه هستند.

    در دستور اول نوع میکرو برای کمپایلر تعریف میشود که در اینجا ATmega8 میباشد و در دستور بعدی فرکانس کریستال بر حسب هرتز مشخص میشود.در این برنامه مقدار فرکانس تعریفی هشت مگاهرتز است.

    توجه داشته باشید که من در مدار تابلو روان خود، از کریستال خارجی استفاده نکردم.

    لذا این دستور تعیین کننده فرکانس اسیلاتور داخلی میکروکنترلر میباشد.

    Config Portb = Output Config Portd = Output در دو دستور فوق پورت های B,D بعنوان خروجی پیکربندی گشته‌اند.

    من در این مدار تابلو روان از پورت B برای راه اندازی و کنترل سطرها و از پورت D جهت راه‌اندازی ستون‌ها استفاده کرده‌ام.

    Dim Row As Byte Dim Scan As Byte در این دو دستور من دو متغییر از نوع بایت تعریف کردم.

    متغییر Row جهت شمارش سطرها و متغییر Scan جهت تهیه سیگنال جاروب در سطرها استفاده میشود.

    بعد از موارد فوق در برنامه، به حلقه اصلی برنامه میرسیم.

    جهت ساخت این حلقه از دستور Do-Loop استفاده شده و بدلیل عدم ذکر هیچگونه شرطی در این دستور، دستورات موجود در بدنه این حلقه به تعداد بینهایت بار اجرا میگردند.

    Scan = &B11111110 در ابتدای حلقه Do-Loop متغییر Scan، مقدار دهی اولیه میشود تا سیگنال مورد نیاز جهت فعال نمودن سطر نخست تولید گردد.

    با توجه به ساختار ماتریس LED مورد استفاده در این تابلو روان ( اتصال کاتد LED های موجود در یک سطر به یکدیگر ) جهت فعال سازی یک سطر باید پین مربوط به آن سطر در میکرو صفر شود و سایر پین های مربوط به دیگر سطرها، یک شوند.

    همانطور نیز که مشاهده کردید در دستور فوق نیز بیت نخست متغییر Scan نیز صفر شده که مربوط به سطر اول ماتریس است و سایر بیت‌ها نیز یک شده‌اند.

    در نتیجه فقط سطر اول فعال خواهد شد و سایر سطرها غیر فعال هستند.

    در ادامه برنامه به حلقه For-Next میرسیم.

    متغییر Row در این حلقه با صفر مقدار دهی اولیه میشود و اجرای دستورات حلقه تا رسیدن این متغییر به عدد 6 تعریف شده.

    لذا تعداد دفعات اجرای دستورات درون حلقه 7 بار خواهد بود.

    درواقع ما در درون این حلقه یک بار کامل کل سطرهای ماتریس را که هفت عدد میباشد جاروب میکنیم.

    For Row = 0 To 6 Portb = Scan Rotate Scan , Left Portd = Lookup(row , Gelayof) Waitus 20 Portd = 0 Next Row در اولین دستور در حلقه For-Next مقدار متغییر Scan در پورت B میکروکنترلر قرار میگیرد.

    تا سطر مورد نظر در ماتریس فعال شود.

    در دستور بعدی متغییر Scan به اندازه یک بیت به سمت چپ شیفت چرخشی داده میشود.

    با این شیفت صفر موجود در این متغییر به سمت چپ منتقل شده و جای آنرا یک بیت یک پر میکند.

    بعنوان مثال در نخستین بار اجرای این دستور متغییر Scan از مقدار 11111110 به مقدار 11111101 تغییر میکند و در شیفت بعدی به 11111011 تا اینکه بعد از هفتمین شیفت بصورت 10111111 در می‌آید.

    که در هفتمین مرحله در واقع بیت هفتم، صفر شده است که باعث فعال گشتن سطر هفتم ماتریس خواهد شد.

    در این برنامه من قصد نمایش حرف A را داشتم، لذا جدولی با نام Gelayof در برنامه تعریف کردم .همانطور نیز که در زیر مشاهده میکنید، جهت ذخیره اطلاعات مربوط به حرف A من از هفت بایت استفاده نمودم و اطلاعات مربوط به هر سطر را در یک بایت قرار داده‌ام.

    از طرفی چون در این مدار پهنای ماتریس LED، پنج است فقط از پنج بیت اول هر بایت استفاده شده و سه بیت با ارزش آن صفر شده‌اند.

    شما بنابر نیاز خود میتوانید با تغییر دادن وضعیت بیتها به نمایش هر شکل و یا کاراکتری بپردازید.

    Gelayof: Data &B00000100 Data &B00001010 Data &B00010001 Data &B00010001 Data &B00011111 Data &B00010001 Data &B00010001 حال اطلاعات این جدول مرحله به مرحله و سطر به سطر خوانده شده و در پورت D قرار میگیرد.این عمل توسط دستور Lookup در برنامه صورت میگیرد.

    در این دستور بایت مورد نظر ( اطلاعات سطر مورد نظر ) توسط متغییر Row تعیین میشود.

    بعد از قرار دادن اطلاعات مربوط هر سطر در پورت D به اندازه 20 میکرو ثانیه این اطلاعات در پورت نگاه داشته میشود تا LED های موجود در آن سطر روشن بمانند و اثر آن در چشم بیننده باقی بماند.

    سپس پورت D صفر میشود و اعمال فوق مجددا جهت سطر بعدی تکرار میگردد.

    بعد از هر بار جاروب کامل تمامی سطرها، کنترل برنامه از حلقه For-Next خارج شده و مجددا متغییر Scan مقدار دهی اولیه شده تا برای جاروب مجدد آماده گردد.

    بله به همین سادگی شما یک نمونه ساده از تابلو روان را ساختید!

    متن کامل برنامه را بصورت یکجا در زیر آورده شده است.

    '********************************************* '* This Program Writing By : Hossein Lachini * '* This, Displyed "A" on the Signe Board * '* For to get more details visit : * '* www.HLachini.com * '* Contact to me by : eLachini@Gmail.com * '********************************************* $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output Config Portd = Output Dim Row As Byte Dim Scan As Byte Do Scan = &B11111110 For Row = 0 To 6 Portb = Scan Rotate Scan , Left Portd = Lookup(row , Gelayof) Waitus 20 Portd = 0 Next Row Loop End 'end program Gelayof: Data &B00000100 Data &B00001010 Data &B00010001 Data &B00010001 Data &B00011111 Data &B00010001 Data &B00010001 بررسی اولین مدار عملی تابلو روان - دانلود برنامه و شماتیک در این بخش من فایل های مورد نیاز شما را جهت، ساخت تابلو روان برای دانلود قرار دادم.

    این فایلها به صورت یک فایل واحد با فرمت Zip فشرده سازی شده‌اند و عبارتند از : - فایل شماتیک طراحی شده در نرم افزار Proteus : این شماتیک در دو برگه (Sheet) طراحی شده در برگه نخست شماتیک مربوط به مدار میکروکنترلر ATmega8 قرار دارد و در برگه دوم شماتیک ماتریس LED قرار گرفته است.

    در اینجا بررسی اولین طرح تابلوی روان به پایان رسید.

    دوستان عزیز در صورت داشتن هر گونه سئوال و پیشنهادی شما میتوانید از طریق آدرس ایمیل من eLachini@Gmail.Com و یا از طریق شماره موبایل 09123812060 با من تماس بگیرید.

    دوستانی که میخواهند از مطالب ارائه شده در اینجا در سایت، وبلاگ و یا نشریه خود استفاده نمایند در این مورد آزاد میباشند ولی حتما نشانی منبع را در مطلب خود ذکر نمایند.

    در ادامه بحث شما بااستفاده از این مدار روش جاروب ستونی را خواهید آموخت، در مداری که با هم بررسی کردیم.

    من از روش جاروب سطری استفاده نمودم.

    لذا از هم اکنون شما هم دست به کار شوید وسعی کنید با تغییر در کدهای برنامه قبل از ارائه مطلب توسط من، برنامه جاروب ستونی را بنویسید.

    و در صورت تمایل تصویر مدار و کد برنامه خود را به آدرس ایمیل من ارسال کنید تا با نام خودتان در سایت درج شود.

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

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

    و از همان مدار قبلی برای تست این روش استفاده میکنیم و فقط برنامه میکروکنترلر تغییر میکند.

    در جاروب ستونی ما ابتدا نخستین ستون را فعال میکنیم و سپس ستون دوم فعال میشود و این روال ادامه پیدا میکند تا به ستون آخر برسیم.

    اگر به مدار ماتریس LED دقت کنید می‌بینید که ما آند LED های هر ستون را به هم متصل نموده‌ایم، پس جهت فعال نمودن هر سطر باستی آنرا به سطح ولتاژ مثبت متصل کنیم، از طرفی بدلیل اینکه در ماتریس LED، کاتد LED های هر سطر به هم متصل هستند، جهت روشن نمودن هر LED سطر متناظر با آن LED بایستی به سطح ولتاژ صفر متصل گردد.

    از همین جا روشن میشود که در طراحی جدول گلایف بایستی بر خلاف برنامه قبلی به ازای نقاطی که میخواهیم LED در آنجا روشن باشد، بایستی عدد صفر را قرار دهیم.

    به تصویر زیر دقت کنید.

    در تصویر فوق من نحوه طراحی جدول گلایف را برای جاروب ستونی در تابلو روان نشان داده‌ام، که باعث به نمایش در آمدن کاراکتر A در ماتریس LED تابلو روان خواهد شد.

    همانطور که مشاهده میکنید به ازای نقاط فعال ( نقاطی که LED در آنجا روشن خواهد بود ) من مقدار بیت متانظر با آنرا صفر در نظر گرفتم و بالعکس در نقاط غیر فعال بیت متناظر را صفر در نظر گرفته‌ام.

    از طرفی اگر به یاد داشته باشد در برنامه قبلی تعداد بایت های مورد نیاز جهت نمایش کاراکتر A، هفت بایت بود ولی در اینجا ما فقط با استفاده از پنج بایت توانستیم همین کار را انجام دهیم!!!

    اما برنامه این روش، من برنامه را مجددا به زبان بیسیک نوشتم و از نرم افزار BASCOM-AVR استفاده کردم.

    جهت تهیه نرم افزار BASCOM-AVR، اینجا کلیک کنید.

    من در اینجا صرفا بخش هایی از برنامه را بررسی میکنم که با برنامه قبلی تفاوت کرده است.

    Dim As Byte Dim Scan As Byte در این دو دستور من دو متغییر از نوع بایت تعریف کردم.

    متغییر Col جهت شمارش ستونها و متغییر Scan جهت تهیه سیگنال جاروب در ستونها استفاده میشود.

    Scan = &B00000001 در ابتدای حلقه Do-Loop متغییر Scan، مقدار دهی اولیه میشود تا سیگنال مورد نیاز جهت فعال نمودن سطر نخست تولید گردد.

    با توجه به ساختار ماتریس LED مورد استفاده در این تابلو روان ( اتصال آند LED های موجود در یک ستون به یکدیگر ) جهت فعال سازی یک ستون باید پین مربوط به آن ستون در میکرو یک شود و سایر پین های مربوط به دیگر ستونها، صفر شوند.

    همانطور نیز که مشاهده کردید در دستور فوق نیز بیت نخست متغییر Scan نیز یک شده که مربوط به ستون اول ماتریس است و سایر بیت‌ها نیز صفر شده‌اند.

    در نتیجه فقط ستون اول فعال خواهد شد و سایر ستونها غیر فعال هستند.

    متغییر Col در این حلقه با صفر مقدار دهی اولیه میشود و اجرای دستورات حلقه تا رسیدن این متغییر به عدد 4 تعریف شده.

    لذا تعداد دفعات اجرای دستورات درون حلقه 5 بار خواهد بود.

    در واقع ما در درون این حلقه یک بار کامل کل ستونهای ماتریس را که پنج عدد میباشد جاروب میکنیم.

    For = 0 To 4 Portd = Scan Rotate Scan , Left Portb = Lookup(col , Gelayof) Waitus 20 Portb = &B11111111 Next در اولین دستور در حلقه For-Next مقدار متغییر Scan در پورت D میکروکنترلر قرار میگیرد.

    تا ستون مورد نظر در ماتریس فعال شود.

    با این شیفت بیت 1 موجود در این متغییر به سمت چپ منتقل شده و جای آنرا یک بیت صفر پر میکند.

    بعنوان مثال در نخستین بار اجرای این دستور متغییر Scan از مقدار 00000001 به مقدار 00000010 تغییر میکند و در شیفت بعدی به 00000100 تا اینکه بعد از پنجمین شیفت بصورت 00010000 در می‌آید.

    که در پنجمین مرحله در واقع بیت پنجم، یک شده است که باعث فعال گشتن ستون پنجم ماتریس خواهد شد.

    در این برنامه من قصد نمایش حرف A را داشتم، لذا جدولی با نام Gelayof در برنامه تعریف کردم .همانطور نیز که در زیر مشاهده میکنید، جهت ذخیره اطلاعات مربوط به حرف A من از پنج بایت استفاده نمودم و اطلاعات مربوط به هر ستون را در یک بایت قرار داده‌ام.

    از طرفی چون در این مدار ارتفاع ماتریس LED، هفت است فقط از هفت بیت اول هر بایت استفاده شده و بیت با ارزش آن یک شده.

    Gelayof: Data &B10000011 Data &B11110101 Data &B11110110 Data &B11110101 Data &B10000011 حال اطلاعات این جدول مرحله به مرحله و ستون به ستون خوانده شده و در پورت B قرار میگیرد.این عمل توسط دستور Lookup در برنامه صورت میگیرد.

    در این دستور بایت مورد نظر ( اطلاعات ستون مورد نظر ) توسط متغییر Col تعیین میشود.

    بعد از قرار دادن اطلاعات مربوط هر ستون در پورت B به اندازه 20 میکرو ثانیه این اطلاعات در پورت نگاه داشته میشود تا LED های موجود در آن ستون روشن بمانند و اثر آن در چشم بیننده باقی بماند.

    سپس تمامی پینهای پورت B یک میشود تا LED های این ستون خاموش شوند و اعمال فوق مجددا جهت ستون بعدی تکرار میگردد.

    بعد از هر بار جاروب کامل تمامی ستونها، کنترل برنامه از حلقه For-Next خارج شده و مجددا متغییر Scan مقدار دهی اولیه شده تا برای جاروب مجدد آماده گردد.

    بله به همین سادگی شما یک نمونه ساده از تابلو روان را با روش جاروب ستونی ساختید!

    '********************************************* '* This Program Writing By : Hossein Lachini * '* This, Displyed "A" on the Signe Board * '* For to get more details visit : * '* www.HLachini.com * '* Contact to me by : eLachini@Gmail.com * '********************************************* $regfile = "m8def.dat" $crystal = 8000000 Config Portb = Output Config Portd = Output Dim Col As Byte Dim Scan As Byte Do Scan = &B00000001 For Col = 0 To 4 Portd = Scan Rotate Scan , Left Portb = Lookup(col , Gelayof) Waitus 20 Portb = &B11111111 Next Col Loop End 'end program Gelayof: Data &B10000011 Data &B11110101 Data &B11110110 Data &B11110101 Data &B10000011 بررسی مدار عملی جاروب ستونی تابلو روان - دانلود برنامه و شماتیک در این بخش من فایل های مورد نیاز شما را جهت، ساخت تابلو روان برای دانلود قرار دادم.

    انیمیشن در تابلو روان انیمیشن یا متحرک سازی، فنی است که با استفاده از تعدادی تصویر ثابت به ایجاد یک تصویر متحرک می‌پردازند.

    در این روش تصاویر بصورت متوالی و با فاصله زمانی معین به نمایش در می‌آیند.

    هر تصویر با تصویر قبل و بعد خود اندکی اختلاف دارد، از طرفی بدلیل تاخیر چشم انسان در ثبت تصاویر، با نمایش هر تصویر جدید اثر آن تا نمایش تصویر بعدی در چشم باقی می‌ماند در نتیجه چشم متوجه ثابت بودن تصاویر نشده و آنها را به صورت متحرک احساس میکند.

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

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

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

    در این برنامه با نمایش متوالی کاراکترهای |،/،-،\ یک انیمیشن ساده درست کرده‌ام، که پس از نمایش به صورت حرکت دورانی یک خط حول مرکز خود دیده خواهد شد( همانگونه که قبلا در فیلم موجود در سایت از تابلو روان مشاهده نمودید).

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

    در ابتدا به توضیح هر یک از متغیرهای استفاده شده در برنامه میپردازم.

    در این برنامه از پنج متغییر استفاده شده.

    در زیر نحوه تعریف متغییر های مورد نیاز آورده شده.

    Dim Row As Byte Dim Scan As Byte Dim Refresh As Byte Dim Character As Byte Dim C As Byte Row : این متغییر شمارنده سطرهای ماتریس LED است.

    Scan : توسط این متغییر سیگنالهای فعال سازی سطرها جهت جاروب تولید میشود.

    Refresh : جهت تولید انیمیشن در این برنامه از نمایش متوالی چهار کارا کتر استفاده شده، که این متغییر تعداد دفعات نمایش یک کاراکتر ( جاروب کامل ) را قبل از نمایش کاراکتر بعدی تعیین میکند.

    Character : آدرس محل شروع اطلاعات ( سطر اول ) مربوط به هر کاراکتر، در این متغییر قرار میگیرد.

    C : آدرس محل اطلاعات مربوط به سطر کاراکتر مورد نمایش در جدول گلایف برنامه (Animation) در این متغییر نگهداری میشود.

    بعد از تعریف متغییرها در برنامه به حلقه اصلی برنامه (Do-Loop) میرسیم.

    این حلقه بدلیل آنکه شرطی برای اتمام آن ذکر نشده، به تعداد بینهایت بار اجرا میگردد که ما هم به آن نیاز داریم!

    درون این حلقه دستورات و کدهای برنامه قرار دارد.

    For Character = 0 To 27 Step 7 For Refresh = 0 To 10 Scan = &B11111110 For Row = 0 To 6 Portb = Scan C = Character + Row Portd = Lookup(c , Animation) Waitus 20 Portd = 0 Rotate Scan , Left Next Row Next Refresh Next Character در اولین دستور به حلقه For-Next میرسیم که متغییر Character به عنوان شمارنده این حلقه در نظر گرفته شده، همانطور که قبلا نیز اشاره شد این متغییر آدرس محل شروع اطلاعات مربوط به هر کارکتر را محاسبه میکند.

    که مسلما برای اولین کاراکتر مقدار آن صفر است و از طرفی چون ارتفاع هر کاراکتر 7 سطر میباشد لذا میزان افزایش( گامهای) آن هفت تایی تعریف شده.

    در حلقه مربوط به متغییر Character حلقه For-Next دیگری با متغییر Refresh قرار دارد.

    تعداد دفعات اجرای دستورات این حلقه ده بار می‌باشد.

    که تعیین کننده تعداد جاروب های کامل هر کاراکتر قبل از نمایش کاراکتر بعدی میباشد.

    در اولین دستور بعد از تعریف حلقه، متغییر Scan مقداردهی اولیه میشود.

    تا سیگنال مورد نیاز جهت فعال نمودن سطر نخست تولید گردد.

پيشگفتار يکي از مهمترين قطعات مورد تاکيد در استانداردهاي جهاني سيستم‌هاي آسانسوري، برد کنترل اضافه بار مي‌باشد. وظيفه اين برد اندازه‌گيري بار ورودي به کابين، مقايسه آن با ظرفيت مجاز و ارسال پيامهاي مناسب به برد کنترل مرکزي آسانسور مي‌باشد.

پیشگفتار یکی از مهمترین قطعات مورد تاکید در استانداردهای جهانی سیستم‌های آسانسوری، برد کنترل اضافه بار می‌باشد. وظیفه این برد اندازه‌گیری بار ورودی به کابین، مقایسه آن با ظرفیت مجاز و ارسال پیامهای مناسب به برد کنترل مرکزی آسانسور می‌باشد. مزیت استفاده از این سیستم در درجه اول تأمین امنیت جانی و جلوگیری از سقوط کابین و در درجه دوم کاهش هزینه‌های نگهداری و تعمیرات موتور در اثر ...

مقدمه: ديودها جريان الکتريکي را در يک جهت از خود عبور مي‌‌دهند و در جهت ديگر در مقابل عبور جريان از خود مقاومت بالايي نشان مي‌‌دهند. اين خاصيت آنها باعث شده بود تا در سالهاي اوليه ساخت اين وسيله الکترونيکي ، به آن دريچه يا Valve هم اطلاق شود. از ل

فصل اول: (( کاربردها و انواع نمايشگرها )) بنام خدا مقدمه: امروزه يکي از سيستمهايي که بيشتر در سازمانها و مراکز تجاري جهت نمايش تصاوير و حروف اعداد جهت مطلع ساختن عموم از وقايع و تغيرات مورد استفاده قرار مي گيرد نمايشگرهاي LED وي

مودم يکي از ابزارهاي رايانه‌اي است که براي اتصال دو کامپيوتر به يکديگر از طريق خطوط‌ مختلف مخابراتي استفاده مي‌‌شود. البته هريک از اين دو کامپيوتر مي‌‌توانند راهي به يک شبکه رايانه‌اي باشند. نام مودم (Modem) مخفف Modular-Demodular است. يعني وسيله‌اي

ميان ملل گوناگون يکي از معيارهاي پيشرفت زندگي و سطح رشد ميزان استفاده از کالا ويا خدمات مورد نياز افراد آن جامعه است بنابراين يکي از عوامل فوق العاده مهم در تمدن جديد تهيه و تبديل مواد به کالاهاي مصرفي از طريق فرآيند هاي مختلف توليد و مونتاژ است . ب

بيلبورد بيلبورد، (يا تابلوي تبليغاتي يا تخته? آگهي) به تابلو بزرگي گفته مي‌شود که فضاي مناسبي براي نصب آگهي را در اختيار دولت، صنعتگران و عرضه کنندگان کالا ميگذارد. و در اصل به هر فضاي خارجي که امکان نصب آگهي بر آن باشد اطلاق مي‌شود. اما امروزه، ب

اتوماسیون صنعتی با توجه به پیشرفت بسیار سریع تکنولوژی و وجود رقابت‌های شدید در بین صنعتگران دو مقوله دقت و زمان در انجام کارهای تولیدی و خدماتی بسیار مهم و سرنوشت ساز شده است. دیگر سیستم‌های قدیمی جوابگوی نیازهای صنعت توسعه یافته امروز نبوده و بکار بردن سیستمهایی که با دخالت مستقیم نیروی انسانی عمل می کنند، امری نامعقول می‌نمود. چرا که در این موارد دقت و سرعت عمل سیستم بسیار ...

مقدمه: مجموعه عملیات و روش هایی که برای کاهش عیوب و افزایش کیفیت ظاهری تصویر مورد استفاده قرار می گیرد، پردازش تصویر نامیده می شود.حوزه های مختلف پردازش تصویر را می توان شامل بهبود تصاویر مختلف پزشکی مانند آشکار سازی تومور های مغز یا پهنای رگ های خونی و ... ، افزایش کیفیت تصاویر حاصل از ادوات نمایشی مانند تصاویر تلویزیونی و ویدیویی، ارتقا متون و شکل های مخابره شده در رسانه های ...

علم الکترونيک و ديجيتال علم الکترونيک و ديجيتال در طول کمتر از 40 سال توانسته بجاي يک ترانزيستور روي يک قطعه، بيش از صدها ميليون ترانزيستور روي همان قطعه جاي دهد که خود بيانگر گوشه اي از شتاب رشد تکنولوژي آنها مي باشد. اين

ثبت سفارش
تعداد
عنوان محصول