سلام و وقت بخیر، در این قسمت با آموزش راه اندازی ماژول تابلو 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) تغییر بدید.
ویدئو
منبع : آردوینو
سلام. وقت بخیر.
ممنون از اطلاعات خوبتون و زحمتی که کشیدید، من مشکلی که دارم اینه که در نمایش کاراکترها همپوشانی پیدا میکنند
به نظر میاد این حالت اتفاق می افته و در اپدیت دیتاهای کاراکتری تو روتینهای مختلف بافر bDMDScreenRAM درست پر نمیشه و یا ایندکس ارایه مربوطه جایی شیفت پیدا میکنه و میپره.
ارتباط درسته چون من به کمک تابع memset و با چند خط برنامه صفحه رو میتونم 4 قسمت و یا شطرنجی کنم.
ولی وقتی کاراکتر نوشته میشه ستونهای مختلف یک کاراکتر جابجا میشن و در نوشتن string دیتاهای مربوط به کاراکتر قبلی در شیفت، جا میlونه و قاطی دیتای کاراکتر بعدی میشه.
توابع شما رو با کلا dmd نسخه 1 مقایسه کردم ولی چیزی پیدا نکردم که در تبدیل متدهای کلاس به تابع از قلم افتاده باشه.
میخواستم ببینم توصیه ای برای دیباگ و پیدا کردن ایراد دارید؟
سلام
چطور میشه یه تستر برای تست تک تک سطر یا ستون های ماژول p10 ساخت .
ممنون میشم راهنمایی کنید .
سلام
اگه قراره که مثلا توی یه ماژول دنبال led سوخته بگردید بهتر نیست که همه رو با هم روشن کنید و بعد با ماژیک اونایی که روشن نمیشه رو مارک کنید و بعد تعویض کنید /
خوب حالا برای هر سه کار یعنی (روشن کردن همه – سطر یا ستون) خیلی راحت میتونید از آردوینو استفاده کنید فکر کنم فقط لازم باشه چند خط برنامه بنویسید
سلام ، وقتتون بخیر
تشکر بابت آموزش خوبتون
توی بخش آخر مقاله که متن رو با بلوتوث عوض کردید ، از همون روشی که آموزش دادید (استفاده از شیفت رجیسترها) استفاده کردید یا اینکه میکرو رو به برد کنترلر وصل کرده بودید ؟
کاری که هدف ما هست اینه که میکرومون رو به برد کنترلر u60 متصل کنیم و از طریق درگاه rs232 که روی برد کنترلر وجود داره متون رو تغییر بدیم
سلام ممنون از توجهتون
خیر به برد کنترلر متصل نشده بود ومستقیما خود میکروکنترلر متن رو توسط بولوتوث دریافت و برروی ماژول نمایش میداد
سلام
ممنون از آموزش خوبتون
برای تغییر متن میشه از آردوینو هم استفاده کرد ؟
با سلام خیلی خوشحالم که این اموزش مورد توجهتون قرار گرفته بله شما با تغییر در تعریف پایه ها به راحتی میتونید در هر میکروکنترلری استفاده کنید . موفق باشید
با سلام و درود .
خیلی ممنون بابت این آموزش عالی و کاربردی . امیدوارم همیشه و همه جا موفق باشید.
سلام و درود خدمت شما دوست عزیز باعث افتخاره که این مطلب نظر شمارو جلب کرده وامیدواریم از مابقی مطالب نیز استفاده و لذت برده باشید.موفق و پیروز باشید
سلام مهندس. تشکر فراوان بابت این مقاله. من هر چی تو نت گشتم دیگه مثل این مطلب جایی ندیدم.
فقط چند تا سوال پیش اومده. اگه میشه در مورد اسکن سطرها یه توضیح بدید ک چجوری با دو تا پایه a وb کنترل میشن. هر ایسی ماسفت دو تا ماسفت داخلشه که هر کدوم یه سطرکه 32 تا led داره رو روشن میکنه. پس واسه 16 تا ردیف 8 تا ایسی ماسفت باید بزاریم؟
و یچیز دیگه این که واسه رفرش این تعداد led چه زمانی رو بین هر رفرش انتخاب میکنن که خاموشی نداشته باشه؟
و در کل تو هر مرحله رفرش چه تعداد led روشن میشه؟
ببخشید طولانی شد دیگه
سلام خواهش میکنم نظر لطف شماست امیدوارم مفید بوده باشه همچنین عذرخواهی من از بابت تاخیر در پاسخگویی رو پذیرا باشید.
ما بااستفاده از سیگنال های Aو B که به دیکدر 3 به 8 یا همان ایسی 74hc138 متصل هسش ( یکی از ورودی ها غیر فعال میباشد یعنی در عمل دیکدر بصورت 2به 4 عمل میکند یعنی شما با دوتا پایه میتونید چهار حالت مختلف رو انتخاب کنید ) ماسقت مورد نظر که در متن نیز اشاره شده را، انتخاب میکنیم.
همانطور که فرمودید 16 ردیف وجود داشته ولی 8عدد ترانزیستور و بی شک هر ترانزیستور نیز دو سطر رو کنترل خواهد کرد.
از یک تایمر درمد نرمال بصورت یک میلی ثانیه استفاده شده و هربار ردیفی مقدار دهی میشه ( اگر درست خاطرم مونده باشه ) جهت بررسی بیشتر به کد ها مراجعه کنید امیدوارم مشکلتون حل شده باشه. موفق باشید
ممنون بابت پاسخ گوییتون. کارمو خیلی جلو انداختید. واقعا لطف کردید. شما هم انشاا… موفق باشید
سلام
ممنون بابت مقاله کاربردی.
سلام متشکر از نگاه شما.