سلام و وقت بخیر، در این قسمت با آموزش راه اندازی ماژول تابلو LED P10 در خدمتتون هستیم.
این ماژولها که ابتدا چینی بودند و از زمان ورود به بازار، با اسم تابلو روان گسترش پیدا کردند، برای بسیاری از صاحبان مشاغل برای معرفی کسب و کارشون جذاب بوده و همچنین در برخی پروژههای الکترونیکی هم بسیار مفیده. (برای نمونه باسکول صنعتی و…) از این جهت، ما ابتدا یه اشاره کلی در رابطه با اینکه تابلو روان رو چجوری به سرعت آماده کنیم خواهیم داشت.
سپس ریز شده و نحوه کار و راه اندازی ماژول LED p10 با stm32f1 رو یاد میگیریم و با بلوتوث متن رو تغییر میدیم. پس تا انتها با ما همراه باشید.
اگر شما هم پروژهای با استفاده از این نمایشگرها ساختید، خوشحال میشیم در انتها، قسمت نظرات برای ما ارسال کنید.
بریم سراصل مطلب …
لوازم مورد نیاز
اگر شما هم دوست دارید سریع تابلو روان خودتونو بسازید، فقط کافیه لوازم زیر رو تهیه کنید:
1- ماژول ال ای دی (LED P10) به تعداد مورد نیاز
2- یک تغذیه 5 ولت
البته با توجه به اینکه هر ماژول هم بین 200-300 میلی آمپر مصرف داره، اون رو انتخاب کنید. که اغلب از پاورسویچینگ 5 ولت، 40 آمپر استفاده میکنند. (یا مثل خود من از تغذیه کامپیوتر و…)
3- یک برد کنترلر معروف a40 یا u6b
این ماژولهای ال ای دی سه دسته هستند:
1- تک رنگ
2- سه رنگ
3- تمام رنگی (فول کالر)
که تو خرید کنترلر باید به نوع ماژولتون دقت کنید!
4- نرم افزار hd
بعد کافیه نرم افزار hd رو نصب کنید و بهصورت زیر عمل کنید:
سپس تنظیمات ابعاد، مدل کنترلر و… مشخص کنید:
بعد از نوار ابزار بالا TEXT رو اضافه می کنید و از قسمت پایین متن، فونت، افکت و هر آنچه دوست دارید رو تغییر و تنظیم کنید و می تونید یک پیش نمایش هم ازش ببینید.
سپس، از نوار بالا UDisk رو زده:
خروجی تولید شده را بر روی برد کنترلرقرار دهید تا بهصورت خودکار بهروزرسانی محتوای نمایش انجام شود!
راه اندازی ماژول LED P10
خب! حالا بریم سراغ توضیحات فنیتر و کار اصلی خودمون:
همون طور که می دونید، این ماژولها ابعاد مختلفی دارند. مثلاً 20 در 20 یا 32 در 16
خب این به چه معناست؟
یعنی 16 ردیف ال ای دی داره و 32 ستون، که درهم ضرب بکنید میشود 512 عدد.
خب حالا چطوری این تعداد رو کنترل کنیم؟ اگه تعداد بیشتری از ماژول استفاده کردیم چی؟
خب قبلاً ما تو سیسوگ در مورد روش خلاقانه افزایش پورت، شیفت رجیستر ها رو مفصل توضیح دادیم ولی مجدد بهصورت ساده و خلاصه در ادامه خواهم گفت.
بر روی ماژول یک هاب ورودی قرار دارد که ترتیب پایهها به شکل زیر هست:
و کنار هاب یک آیسی با شماره 74hc245 در نقش بافر جهت تقویت سیگنال وجود داره که سیگنالهای ورودی را دریافت و به آیسی 74hc138 ارسال میکنه.
آیسی 74hc138 دیکدر 3 به 8 بوده که سیگنالهای A و B بعد از بافر شدن به این آیسی متصل میکنه. این دو سیگنال تعیین میکنن که کدام ماسفت ها روشن بشه. به عبارت دیگه، نقش اسکن کردن بر عهده این آیسی و ماسفت ها خواهد بود.
همچنین اگر به پشت ماژول دقت کنید، از 16 عدد آیسی 74hc595 که شیفت رجیستر هستند استفاده شده که هرشیفت ریجستر هشت ستون و 4 سطر رو میتونه خاموش/روشن کنه. (به عبارتی 16*8 *4=512)
نقش شیفت رجیستر تبدیل دیتای سریال به پارالل هسش.
حالا شاید براتون سؤال باشه که خروجی شیفت رجیستر هشت بیت بوده، به چه شکل 4 ردیف هشت تایی رو مقدار میده؟
برای این منظور اومدن از 4 تا ماسفت (که هر ماسفت چهار ردیف رو کنترل میکنه به عبارتی میشه 16 ردیف که فرمان لازم از آیسی 74hc138 و سیگنالهای A و B دریافت میشود به جدول زیر دقت کنید) با شماره tc4953 استفاده گردیده ، پیکج ماسفت ها بهصورت آیسی هشت پایه بوده که میتونید در ستونی که تغذیه ورودی قرار داره ببینید.
rows | A | B |
سطر اول | 0 | 0 |
سطر دوم | 1 | 0 |
سطر سوم | 0 | 1 |
سطر چهارم | 1 | 1 |
سطر اول: ردیفهای 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 دیتا در خروجی نمایش داده خواهد شد.
خب دوتا عکس که از گوگل که برای شماتیک ماژول وجود داشت رو براتون به اشتراک میذارم:
اما یک سؤال مهم همچنان باقیست!
ما چگونه به تمامی شیفت رجیستر ها دسترسی داشته و مقادیر خود را برای آن ارسال کنیم؟
پایه 9 هر شیفت رجیستر بیت نهم بوده که به پایه 14 یا همان data شیفت رجیستر بعدی متصل شده است (سری شدن).
اما اگر هنوز دغدغه کنترل این تعداد شیفت رجیستر رو دارید، نگران نباشید! ما همین کار رو نیز ساده کرده و به SPI سخت افزاری خواهیم سپرد.
برای انتقال متن هم از بلوتوث وپریفرال UART استفاده میکنیم که به مطلب ماژول بلوتوث hc05 مراجعه کنید.
یک تایمر در مد نرمال برای اسکن کردن تنظیم میکنیم تا اثر فیلکر رو نداشته باشیم.
من مراحل ایجاد پروژه رو و حتی نوشتن برنامه رو به شما واگذار میکنم تا ابتدا خودتون تلاش کنید اما فایل کامل پروژه که در stm32cubeide ایجاد شده رو در انتها براتون آپلود میکنم تا در صورت نیاز بتونید الگو بگیرید.
نکته اول: در فایل dmd.c، تنظیمات spi انجام شده که لازم است شما تابع MX_SPI1_Init تولید شده خودتون رو کامنت کنید.
نکته دوم: پرتوتایپ تابع را به extern void MX_SPI1_Init(void) تغییر بدید.
منبع:سیسوگ