فهرست مطالب:

ماتریس صفحه نمایش LED 5x4 با استفاده از تمبر پایه 2 (bs2) و شارلی پلکسینگ: 7 مرحله
ماتریس صفحه نمایش LED 5x4 با استفاده از تمبر پایه 2 (bs2) و شارلی پلکسینگ: 7 مرحله

تصویری: ماتریس صفحه نمایش LED 5x4 با استفاده از تمبر پایه 2 (bs2) و شارلی پلکسینگ: 7 مرحله

تصویری: ماتریس صفحه نمایش LED 5x4 با استفاده از تمبر پایه 2 (bs2) و شارلی پلکسینگ: 7 مرحله
تصویری: معرفی ماژول صفحه نمایش ال ای دی دات ماتریکس هشت در هشت 2024, جولای
Anonim
ماتریس صفحه نمایش LED 5x4 با استفاده از تمبر پایه 2 (bs2) و شارلی پلکسینگ
ماتریس صفحه نمایش LED 5x4 با استفاده از تمبر پایه 2 (bs2) و شارلی پلکسینگ

آیا یک Stamp Basic 2 و چند LED اضافی در اطراف شما نشسته اند؟ چرا با مفهوم شارلی پلکس بازی نکنید و فقط با 5 پین خروجی ایجاد کنید.

برای این دستورالعمل من از BS2e استفاده می کنم اما هر یک از اعضای خانواده BS2 باید کار کنند.

مرحله 1: شارلی پلکس: چه ، چرا و چگونه

بیایید ابتدا دلیل را از بین ببریم. چرا از charlieplexing با Basic Stamp 2 استفاده می کنیم؟ --- اثبات مفهوم: نحوه عملکرد شارلی پلکسینگ را بیاموزید و در مورد BS2 اطلاعاتی کسب کنید. این ممکن است بعداً با استفاده از تراشه های سریعتر 8 پینی (فقط 5 مورد از آنها ورودی/خروجی) مفید باشد.--- دلیل مفید: اساساً هیچ کدام وجود ندارد. BS2 بسیار کند برای نمایش بدون لرزش قابل توجه است. شارلی پلکس چیست؟ --- شارلی پلکس یک روش رانندگی تعداد زیادی LED با تعداد کمی پین های ورودی/خروجی ریزپردازنده است. من در مورد charlieplexing از www.instructables.com آموختم و شما نیز می توانید: LED های شارلیپلکس- نظریه نحوه رانندگی تعداد زیادی LED از چند پین میکروکنترلر. همچنین در ویکی پدیا: Charlieplexing چگونه می توانم 20 led با 5 پین i/o رانندگی کنم؟ --- لطفاً سه پیوند زیر "Charlieplexing چیست؟" را بخوانید. این موضوع را بهتر از همیشه توضیح می دهد. Charlieplexing با مالتی پلکس سنتی متفاوت است که برای هر سطر و هر ستون به یک پین ورودی/خروجی نیاز دارد (که در مجموع 9 پین ورودی/خروجی برای صفحه 5/4 است).

مرحله 2: سخت افزاری و شماتیک

سخت افزاری و شماتیک
سخت افزاری و شماتیک

فهرست مواد: 1x - تمبر اصلی 220x - دیودهای ساطع کننده نور (LED) از همان نوع (افت رنگ و افت ولتاژ) 5x - مقاومتها (در مورد مقدار مقاومت به پایین مراجعه کنید) کمکی/اختیاری: روش برنامه نویسی BS2 شما دکمه فوری فشار به عنوان یک کلید بازنشانی 6v منبع تغذیه -9 ولت بسته به نسخه BS2 شما (دفترچه راهنمای خود را بخوانید) شماتیک: این شماتیک همراه با طرح مکانیکی در نظر گرفته شده است. شبکه LED ها را در سمت چپ خواهید دید ، این جهت جهت کد BS2 است. توجه داشته باشید که هر جفت LED دارای آند به کاتد دیگری است. سپس به یکی از پنج پین i/o متصل می شوند. مقادیر مقاومت: باید مقادیر مقاومت خود را محاسبه کنید. برگه اطلاعات LED های خود را بررسی کنید یا از تنظیمات LED در مولتی متر دیجیتال خود برای پیدا کردن افت ولتاژ LED های خود استفاده کنید. بیایید برخی محاسبات را انجام دهیم: ولتاژ منبع تغذیه - افت ولتاژ / جریان مطلوب = مقدار مقاومت از جریان چراغ های LED من 1.6 ولت افت می کنند و در 20ma.5v - 1.6v /.02amps = 155 اهم کار می کنند. برای محافظت از BS2 خود باید از مقدار مقاومت بعدی بالاتر از آنچه با محاسبه دریافت می کنید استفاده کنید ، در این صورت من معتقدم 180 اهم است. من از 220 اهم استفاده کردم زیرا روی برد توسعه من مقدار مقاومت برای هر پین ورودی/خروجی تعبیه شده است. توجه: من معتقدم از آنجا که روی هر پین یک مقاومت وجود دارد ، این امر به طور م theثر مقاومت در هر led را دو برابر می کند ، زیرا یک پین V+ و دیگری Gnd است. در این صورت باید مقادیر مقاومت را به نصف کاهش دهید. اثر نامطلوب مقدار مقاومت بسیار زیاد ، LED کم نور است. آیا کسی می تواند این موضوع را تأیید کند و PM یا نظری برای من بگذارد تا بتوانم این اطلاعات را به روز کنم؟ من همچنین از این تراشه در تخته نان بدون لحیم استفاده می کنم و یک سربرگ In Circuit Serial Programming (ICSP) را شامل می شود. سرصفحه 5 پین است ، پین های 2 تا 5 به پین های 2-5 در کابل سریال DB9 متصل می شوند (پین 1 استفاده نشده است). لطفاً توجه داشته باشید که برای استفاده از این سرصفحه ICSP پایه های 6 و 7 روی کابل DB9 باید به یکدیگر متصل شوند. بازنشانی: یک دکمه فشار مجدد فشار مجدد اختیاری است. این فقط با فشار دادن پین 22 به زمین می کشد.

مرحله 3: تخته نان

تخته نان
تخته نان
تخته نان
تخته نان

اکنون زمان ساخت ماتریس روی یک تخته نان است. من از یک نوار ترمینال برای اتصال یک پا از هر جفت led به یکدیگر و یک سیم جامپر کوچک برای اتصال پایه های دیگر استفاده کردم. این در عکس نزدیک به تفصیل آمده و در اینجا به طور عمیق توضیح داده شده است: 1. تخته نان را جهت مطابقت با تصویر بزرگتر جهت دهید 2. LED 1 را با آنود (+) به سمت خود و کاتد (-) دور از خود قرار دهید. LED 2 را در جهت مشابه با آند (+) در نوار ترمینال اتصال کاتد LED 1 قرار دهید. برای اتصال آند LED 1 با کاتد LED 2.5 از یک سیم جامپر کوچک استفاده کنید. این کار را تکرار کنید تا هر جفت چراغ LED به برد اضافه شود. من معمولاً از نوارهای برقی تخته نان به عنوان نوارهای گذرگاه برای پین های ورودی/خروجی BS2 استفاده می کنم. از آنجا که فقط 4 نوار گذرگاه وجود دارد ، من از یک نوار پایانه برای P4 (پنجمین اتصال I/O) استفاده می کنم. این را می توانید در تصویر بزرگتر زیر مشاهده کنید. نوار پایانه کاتد LED 1 را به نوار گذرگاه P0 وصل کنید. برای هر LED شماره فرد ، P* مناسب برای هر جفت را تکرار کنید (شماتیک را ببینید).7. نوار پایانه کاتد LED 2 را به نوار گذرگاه P1 وصل کنید. برای هر LED عددی فرد را جایگزین P* مناسب برای هر جفت تکرار کنید (شماتیک را ببینید).8. هر نوار گذرگاه را به پین ورودی/خروجی مناسب در BS2 (P0-P4) وصل کنید.9. همه اتصالات را بررسی کنید تا مطمئن شوید که با طرح کلی مطابقت دارند. توجه داشته باشید: در نمای نزدیک خواهید دید که به نظر نمی رسد که من مرحله 7 را دنبال کردم زیرا اتصال به پین ورودی/خروجی دوم در آند LED های شماره دار فرد است. به یاد داشته باشید که کاتد LED های شماره زوج به آند LED های شماره فرد وصل شده است بنابراین اتصال در هر دو حالت یکسان است. اگر این یادداشت شما را گیج می کند ، فقط آن را نادیده بگیرید.

مرحله 4: اصول برنامه نویسی

برای شارلیپلکس کردن ، فقط یک لامپ را در یک زمان روشن کنید. برای کار با BS2 ما به دو مرحله اساسی نیاز داریم: 1. با استفاده از دستور OUTS حالت های خروجی پین ها را تنظیم کنید. به BS2 بگویید که با استفاده از دستور DIRS کدام پین ها باید به عنوان خروجی استفاده شود. این کار می کند زیرا به BS2 می توان گفت که کدام پین ها باید بالا و پایین رانندگی کنند و منتظر انجام این کار است تا زمانی که مشخص کنید کدام پین ها خروجی هستند. فقط سعی کنید LED را چشمک بزنید. این بدان معناست که ما می خواهیم P0 پایین و P1 بالا رانندگی کنیم. این را می توان به این صورت انجام داد: "OUTS =٪ 11110" که P4-P1 را بالا و P0 را پایین می آورد. (٪ نشان می دهد که یک عدد دودویی باید دنبال شود. پایین ترین رقم باینری همیشه در سمت راست است. 0 = پایین ، 1 = بالا) BS2 این اطلاعات را ذخیره می کند اما تا زمانی که اعلام نکنیم کدام پین ها خروجی هستند ، به آن عمل نمی کند. این مرحله کلیدی است زیرا فقط دو پین باید به طور همزمان خروجی باشند. بقیه باید ورودی باشند ، که این پین ها را در حالت امپدانس بالا قرار می دهد تا هیچ جریانی را فرو نبرند. ما باید P0 و P1 را هدایت کنیم ، بنابراین آنها را روی خروجی و بقیه را روی ورودی ها تنظیم می کنیم: "DIRS =٪ 00011". = INPUT، 1 = OUTPUT) اجازه دهید آن را با هم در چند کد مفید قرار دهیم: '{$ STAMP BS2e}' {$ PBASIC 2.5} انجام دهید =٪ 11110 'Drive P0 low and P1-P4 high DIRS =٪ 00011' Set P0- P1 به عنوان خروجی و P2-P4 به عنوان ورودی PAUSE 250 'مکث برای ماندن LED روی DIRS = 0' همه پین ها را روی ورودی تنظیم کنید. با این کار LED PAUSE 250 'Pause را برای خاموش ماندن LED خاموش می کند

مرحله 5: چرخه توسعه

اکنون که ما یک زمان کار با پین را مشاهده کرده ایم تا مطمئن شویم همه آنها کار می کنند. 20led_Zig-Zag.bse این کد پیوست باید هر یک از 20 LEDS را به صورت زیگزاگ روشن کند. متوجه خواهید شد که پس از روشن شدن هر پین ، از "DIRS = 0" برای بازگشت همه پین ها به ورودی استفاده می کنم. اگر OUTS را بدون خاموش کردن پین های خروجی تغییر دهید ، ممکن است برخی از "ghosting" را مشاهده کنید که در آن یک led که نباید روشن باشد بین چرخه ها چشمک می زند. اگر متغیر W1 را در ابتدای این کد به "W1 = 1" در آنجا تغییر دهید بین هر چشمک زدن LED فقط 1 میلی ثانیه مکث خواهد شد. این باعث ایجاد ماندگاری بینایی (POV) می شود که به نظر می رسد همه LED ها روشن هستند. این کار باعث کم نورتر شدن LED ها می شود اما ماهیت نحوه نمایش کاراکترها بر روی این ماتریس است. LED ها به یک الگوی قابل استفاده تبدیل می شوند. این فایل اولین تلاش من است. خواهید دید که در پایین فایل کاراکترها در چهار خط باینری 5 رقمی ذخیره می شوند. هر خط باید خوانده شود ، تجزیه شود ، و هربار که یک led نیاز به روشن شدن دارد یک روال فرعی نامیده می شود. این کد کار می کند ، از طریق اعداد 1-0 می چرخد. اگر سعی می کنید آن را اجرا کنید ، توجه داشته باشید که با نرخ تازه سازی بسیار آهسته ای روبرو شده است که باعث می شود شخصیت ها تقریباً خیلی آهسته فلش شوند تا شناخته نشوند. این کد به دلایل زیادی بد است. در مرحله اول ، پنج رقم باینری به اندازه 8 رقم باینری در EEPROM فضا را اشغال می کند زیرا تمام اطلاعات در گروه های چهار بیت ذخیره می شود. در مرحله دوم ، SELECT CASE برای تصمیم گیری اینکه کدام پین باید روشن شود به 20 مورد نیاز دارد. BS2 در هر عملیات SELECT به 16 مورد محدود می شود. این بدان معناست که من مجبور شدم محدودیت را با یک عبارت IF-THEN-ELSE هک کنم. باید راه بهتری وجود داشته باشد. بعد از چند ساعت خاراندن سر ، آن را کشف کردم.

مرحله 6: مترجم بهتر

هر سطر ماتریس ما از 4 LED تشکیل شده است که هر کدام می توانند روشن یا خاموش باشند. BS2 اطلاعات را در EEPROM خود در گروه های چهار بیتی ذخیره می کند. این همبستگی باید کارها را برای ما بسیار آسان کند. علاوه بر این واقعیت ، چهار بیت با اعداد اعشاری 0-15 در مجموع 16 امکان مطابقت دارد. این امر باعث ساده تر شدن یا انتخاب CASE می شود. در اینجا عدد 7 موجود در EEPROM است: '7٪ 1111 ،٪ 1001 ،٪ 0010 ،٪ 0100 ،٪ 0100 ، هر سطر دارای یک عدد اعشاری برابر با 0-15 است ، بنابراین ما یک از حافظه ردیف کرده و مستقیماً آن را به عملکرد SELECT CASE وارد کنید. این بدان معناست که ماتریس دودویی قابل خواندن انسان برای ایجاد هر کاراکتر (1 = روشن ، 0 = خاموش) کلید مفسر است. به منظور استفاده از SELECT CASE یکسان برای هر 5 سطر ، از یک مورد انتخابی دیگر استفاده کردم برای تنظیم DIRS و OUTS به عنوان متغیر. من ابتدا در هر پنج خط از کاراکتر متغیرهای ROW1-ROW5 را خواندم. سپس برنامه اصلی برای نمایش کاراکتر زیر برنامه را فراخوانی می کند. این زیرروند ، ردیف اول را می گیرد و چهار ترکیب احتمالی OUTS را به متغیر outp1-outp4 و دو ترکیب احتمالی DIRS را به direc1 & direc2 اختصاص می دهد. LED ها چشمک می زنند ، شمارنده سطر افزایش می یابد و همین روند برای هر چهار ردیف دیگر اجرا می شود. این بسیار سریعتر از اولین برنامه مترجم است. گفته می شود ، هنوز سوسو زدن قابل توجهی وجود دارد. به ویدیو نگاه کنید ، دوربین باعث می شود که سوسو زدن بدتر به نظر برسد ، اما شما این ایده را دریافت می کنید. انتقال این مفهوم به یک تراشه بسیار سریعتر ، مانند picMicro یا تراشه AVR ، نمایش این کاراکترها را بدون چشمک زدن قابل توجه ، فعال می کند.

مرحله 7: از کجا به کجا بروید

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

سایر امکانات: 1. این را به تراشه دیگری منتقل کنید. این طرح ماتریسی را می توان با هر تراشه ای که دارای 5 پین ورودی/خروجی است که دارای قابلیت سه حالت هستند (پین هایی که می توانند زیاد ، پایین یا ورودی (امپدانس بالا)) باشند ، استفاده کرد. 2. با استفاده از تراشه سریعتر (شاید AVR یا picMicro) می توانید مقیاس را افزایش دهید. با استفاده از یک تراشه 20 پینی می توانید از 14 پین برای شارپلپلکس صفحه 8x22 استفاده کنید و از پین های باقی مانده برای دریافت دستورات سریال از رایانه یا کنترلر دیگر استفاده کنید. از سه تراشه 20 پین دیگر استفاده کنید و می توانید یک صفحه پیمایش 8x88 برای کل 11 کاراکتر به طور همزمان (بسته به عرض هر کاراکتر البته) داشته باشید. موفق باشی، خوش بگذره!

توصیه شده: