پروژه, توصیه شده, مقاله های سیسوگ

آموزش راه اندازی ماژول تابلو روان LED P10

آموزش راه اندازی ماژول تابلو روان LED P10

سلام و وقت بخیر، در این قسمت با آموزش راه اندازی ماژول تابلو LED P10 در خدمتتون هستیم.

ماژول تابلو LED P10

این ماژول‌ها که ابتدا چینی بودند و از زمان ورود به بازار، با اسم تابلو روان گسترش پیدا کردند، برای بسیاری از صاحبان مشاغل برای معرفی کسب و کارشون جذاب بوده و همچنین در برخی پروژه‌های الکترونیکی هم بسیار مفیده. (برای نمونه باسکول صنعتی و…) از این جهت، ما در سیسوگ ابتدا یه اشاره کلی در رابطه با اینکه تابلو روان رو چجوری به سرعت آماده کنیم خواهیم داشت.

سپس ریز شده و نحوه کار و راه اندازی ماژول LED p10 با stm32f1 رو یاد می‌گیریم و با بلوتوث متن رو تغییر میدیم. پس تا انتها با ما همراه باشید.

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

بریم سراصل مطلب …

 

لوازم مورد نیاز

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

1- ماژول ال ای دی (LED P10) به تعداد مورد نیاز

 

تعدادی ماژول تابلو LED P10

2- یک تغذیه 5 ولت

البته با توجه به اینکه هر ماژول هم بین 200-300 میلی آمپر مصرف داره، اون رو انتخاب کنید. که اغلب از پاورسویچینگ 5 ولت، 40 آمپر استفاده می‌کنند. (یا مثل خود من از تغذیه کامپیوتر و…)

تغذیه 5 ولت برای ماژول تابلو LED P10

3- یک برد کنترلر معروف a40 یا u6b

این ماژول‌های ال ای دی سه دسته هستند:

1- تک رنگ

2- سه رنگ

3- تمام رنگی (فول کالر)

که تو خرید کنترلر باید به نوع ماژولتون دقت کنید!

برد کنترلر معروف a40 یا u6b

4- نرم افزار hd

بعد کافیه نرم افزار hd رو نصب کنید و به‌صورت زیر عمل کنید:

نرم افزار hd

 

سپس تنظیمات ابعاد، مدل کنترلر و… مشخص کنید:

تنظیمات ابعاد، مدل کنترلر در hd

 

بعد از نوار ابزار بالا TEXT رو اضافه می کنید و از قسمت پایین متن، فونت، افکت و هر آنچه دوست دارید رو تغییر و تنظیم کنید و می تونید یک پیش نمایش هم ازش ببینید.

 

سپس، از نوار بالا UDisk رو زده:

 

خروجی تولید شده را بر روی برد کنترلرقرار دهید تا به‌صورت خودکار به‌روزرسانی محتوای نمایش انجام شود!

 

راه اندازی ماژول LED P10

خب! حالا بریم سراغ توضیحات فنی‌تر و کار اصلی خودمون:
همون طور که می دونید، این ماژول‌ها ابعاد مختلفی دارند. مثلاً 20 در 20 یا 32 در 16

خب این به چه معناست؟
یعنی 16 ردیف ال ای دی داره و 32 ستون، که درهم ضرب بکنید می‌شود 512 عدد.
خب حالا چطوری این تعداد رو کنترل کنیم؟ اگه تعداد بیشتری از ماژول استفاده کردیم چی؟
خب قبلاً ما تو سیسوگ در مورد روش خلاقانه افزایش پورت، شیفت رجیستر ها رو مفصل توضیح دادیم ولی مجدد به‌صورت ساده و خلاصه در ادامه خواهم گفت.

برد ماژول LED P10

 

بر روی ماژول یک هاب ورودی قرار دارد که ترتیب پایه‌ها به شکل زیر هست:

هاب ورودی ماژول LED P10

و کنار هاب یک آی‌سی با شماره 74hc245 در نقش بافر جهت تقویت سیگنال وجود داره که سیگنال‌های ورودی را دریافت و به آی‌سی 74hc138 ارسال می‌کنه.
آی‌سی 74hc138 دیکدر 3 به 8 بوده که سیگنال‌های A و B بعد از بافر شدن به این آی‌سی متصل می‌کنه. این دو سیگنال تعیین می‌کنن که کدام ماسفت ها روشن بشه. به عبارت دیگه، نقش اسکن کردن بر عهده این آی‌سی و ماسفت ها خواهد بود.
همچنین اگر به پشت ماژول دقت کنید، از 16 عدد آی‌سی 74hc595 که شیفت رجیستر هستند استفاده شده که هرشیفت ریجستر هشت ستون و 4 سطر رو میتونه خاموش/روشن کنه. (به عبارتی 16*8 *4=512)

نقش شیفت رجیستر تبدیل دیتای سریال به پارالل هسش.

شیفت رجیستر تبدیل دیتای سریال به پارالل

حالا شاید براتون سؤال باشه که خروجی شیفت رجیستر هشت بیت بوده، به چه شکل 4 ردیف هشت تایی رو مقدار می‌ده؟

برای این منظور اومدن از 4 تا ماسفت (که هر ماسفت چهار ردیف رو کنترل میکنه به عبارتی میشه 16 ردیف که فرمان لازم از آی‌سی 74hc138 و سیگنال‌های A و B دریافت می‌شود به جدول زیر دقت کنید) با شماره tc4953 استفاده گردیده ، پیکج ماسفت ها به‌صورت آی‌سی هشت پایه بوده که می‌تونید در ستونی که تغذیه ورودی قرار داره ببینید.

rowsAB
سطر اول00
سطر دوم10
سطر سوم01
سطر چهارم11

سطر اول: ردیف‌های 1، 3، 5، 9

سطر دوم: 2، 6،10، 14

سطر سوم:3، 7، 11، 15

سطر چهارم:4، 8، 12، 16

 

سه پین باقی مانده از هاب ورودی مربوط به شیفت رجیستر ها می‌باشد:

پایه data: گاها بر روی مدار چاپی نام R نوشته می‌شود به پایه 14 آی‌سی 595 (پایه serial data:ds) متصل است.

پایه sclk: به پایه 12 ایسی 595 (پایه st-cp که قابلیت استورج یا همان لچ می‌باشد)

پایه clk: به پایه 11 ایسی 595 (پایه sh-cp) که ورودی کلاک می‌باشد متصل شده است.

عملکرد شیفت رجیستر: دیتای مورد نظر را بر روی پایه R قرار داده و با هر پالس به sh-cp به سمت Qn حرکت داده می‌شود. و با اعمال پالس به ST-CP دیتا در خروجی نمایش داده خواهد شد.

خب دوتا عکس که از گوگل که برای شماتیک ماژول وجود داشت رو براتون به اشتراک میذارم:

شماتیک ماژول LED P10

شماتیک برد LED p10

اما یک سؤال مهم همچنان باقی‌ست!

ما چگونه به تمامی شیفت رجیستر ها دسترسی داشته و مقادیر خود را برای آن ارسال کنیم؟

پایه 9 هر شیفت رجیستر بیت نهم بوده که به پایه 14 یا همان data شیفت رجیستر بعدی متصل شده است (سری شدن).

اما اگر هنوز دغدغه کنترل این تعداد شیفت رجیستر رو دارید، نگران نباشید! ما همین کار رو نیز ساده کرده و به SPI سخت افزاری خواهیم سپرد.

برای انتقال متن هم از بلوتوث وپریفرال UART استفاده می‌کنیم که به مطلب ماژول بلوتوث hc05 مراجعه کنید.

یک تایمر در مد نرمال برای اسکن کردن تنظیم می‌کنیم تا اثر فیلکر رو نداشته باشیم.

من مراحل ایجاد پروژه رو و حتی نوشتن برنامه رو به شما واگذار می‌کنم تا ابتدا خودتون تلاش کنید اما فایل کامل پروژه که در stm32cubeide ایجاد شده رو در انتها براتون آپلود می‌کنم تا در صورت نیاز بتونید الگو بگیرید.

 

نکته اول: در فایل dmd.c، تنظیمات spi انجام شده که لازم است شما تابع MX_SPI1_Init تولید شده خودتون رو کامنت کنید.

نکته دوم: پرتوتایپ تابع را به extern void MX_SPI1_Init(void) تغییر بدید.

دانلود سورس

 

ویدئو

 

منبع : آردوینو

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

14 دیدگاه در “آموزش راه اندازی ماژول تابلو روان LED P10

  1. Avatar for امین امین گفت:

    سلام. وقت بخیر.
    ممنون از اطلاعات خوبتون و زحمتی که کشیدید، من مشکلی که دارم اینه که در نمایش کاراکترها همپوشانی پیدا میکنند
    به نظر میاد این حالت اتفاق می افته و در اپدیت دیتاهای کاراکتری تو روتینهای مختلف بافر bDMDScreenRAM درست پر نمیشه و یا ایندکس ارایه مربوطه جایی شیفت پیدا میکنه و میپره.
    ارتباط درسته چون من به کمک تابع memset و با چند خط برنامه صفحه رو میتونم 4 قسمت و یا شطرنجی کنم.
    ولی وقتی کاراکتر نوشته میشه ستونهای مختلف یک کاراکتر جابجا میشن و در نوشتن string دیتاهای مربوط به کاراکتر قبلی در شیفت، جا میlونه و قاطی دیتای کاراکتر بعدی میشه.
    توابع شما رو با کلا dmd نسخه 1 مقایسه کردم ولی چیزی پیدا نکردم که در تبدیل متدهای کلاس به تابع از قلم افتاده باشه.

    میخواستم ببینم توصیه ای برای دیباگ و پیدا کردن ایراد دارید؟

  2. Avatar for محمود محمود گفت:

    سلام
    چطور میشه یه تستر برای تست تک تک سطر یا ستون های ماژول p10 ساخت .
    ممنون میشم راهنمایی کنید .

    1. Avatar for zeus zeus گفت:

      سلام
      اگه قراره که مثلا توی یه ماژول دنبال led سوخته بگردید بهتر نیست که همه رو با هم روشن کنید و بعد با ماژیک اونایی که روشن نمیشه رو مارک کنید و بعد تعویض کنید /
      خوب حالا برای هر سه کار یعنی (روشن کردن همه – سطر یا ستون) خیلی راحت میتونید از آردوینو استفاده کنید فکر کنم فقط لازم باشه چند خط برنامه بنویسید

  3. Avatar for حسین غریب زاده حسین غریب زاده گفت:

    سلام ، وقتتون بخیر
    تشکر بابت آموزش خوبتون
    توی بخش آخر مقاله که متن رو با بلوتوث عوض کردید ، از همون روشی که آموزش دادید (استفاده از شیفت رجیسترها) استفاده کردید یا اینکه میکرو رو به برد کنترلر وصل کرده بودید ؟
    کاری که هدف ما هست اینه که میکرومون رو به برد کنترلر u60 متصل کنیم و از طریق درگاه rs232 که روی برد کنترلر وجود داره متون رو تغییر بدیم

    1. Avatar photo محمدرضا عابدینی گفت:

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

  4. Avatar for حسین حسین گفت:

    سلام
    ممنون از آموزش خوبتون
    برای تغییر متن میشه از آردوینو هم استفاده کرد ؟

    1. Avatar photo محمدرضا عابدینی گفت:

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

  5. Avatar for علیرضا عطاری علیرضا عطاری گفت:

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

    1. Avatar photo محمدرضا عابدینی گفت:

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

  6. Avatar for کاظم کاظم گفت:

    سلام مهندس. تشکر فراوان بابت این مقاله. من هر چی تو نت گشتم دیگه مثل این مطلب جایی ندیدم.
    فقط چند تا سوال پیش اومده. اگه میشه در مورد اسکن سطرها یه توضیح بدید ک چجوری با دو تا پایه a وb کنترل میشن. هر ایسی ماسفت دو تا ماسفت داخلشه که هر کدوم یه سطرکه 32 تا led داره رو روشن میکنه. پس واسه 16 تا ردیف 8 تا ایسی ماسفت باید بزاریم؟
    و یچیز دیگه این که واسه رفرش این تعداد led چه زمانی رو بین هر رفرش انتخاب میکنن که خاموشی نداشته باشه؟
    و در کل تو هر مرحله رفرش چه تعداد led روشن میشه؟
    ببخشید طولانی شد دیگه

    1. Avatar photo محمدرضا عابدینی گفت:

      سلام خواهش میکنم نظر لطف شماست امیدوارم مفید بوده باشه همچنین عذرخواهی من از بابت تاخیر در پاسخگویی رو پذیرا باشید.
      ما بااستفاده از سیگنال های Aو B که به دیکدر 3 به 8 یا همان ایسی 74hc138 متصل هسش ( یکی از ورودی ها غیر فعال میباشد یعنی در عمل دیکدر بصورت 2به 4 عمل میکند یعنی شما با دوتا پایه میتونید چهار حالت مختلف رو انتخاب کنید ) ماسقت مورد نظر که در متن نیز اشاره شده را، انتخاب میکنیم.
      همانطور که فرمودید 16 ردیف وجود داشته ولی 8عدد ترانزیستور و بی شک هر ترانزیستور نیز دو سطر رو کنترل خواهد کرد.
      از یک تایمر درمد نرمال بصورت یک میلی ثانیه استفاده شده و هربار ردیفی مقدار دهی میشه ( اگر درست خاطرم مونده باشه ) جهت بررسی بیشتر به کد ها مراجعه کنید امیدوارم مشکلتون حل شده باشه. موفق باشید

      1. Avatar for کاظم کاظم گفت:

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

  7. Avatar for رضا رضا گفت:

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

    1. Avatar photo محمدرضا عابدینی گفت:

      سلام متشکر از نگاه شما.

دیدگاهتان را بنویسید

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