مقدمه
یکی از ابزارهای نمایش در پروژهها و دستگاههای الکترونیکی OLED ها هستند. این نمایشگرها به ازای هر پیکسل از یک LED استفاده کرده و شفافیت و کیفیت بهتری نسبت به LCD ها دارا میباشند. در این مقاله OLED رنگی SSD1331 را با کامپایلر بسکام (BASCOM) و میکروکنترلر AVR راه اندازی مینماییم.
سخت افزار
برای راه اندازی OLED فول کالر SSD1331 که اندازه آن 0.95 اینچ بوده و دارای ابعاد 96 در 64 پیکسل میباشد مداری را مطابق شکل زیر میبندیم. ولتاژ کاری این نمایشگر 5 ولت بوده و پایههای دیتا نیز به طور مستقیم به میکروکنترلر AVR به شماره ATmega328 متصل میشود. (آپدیت 14010826 پایههای دیتای این نمایشگر حداکثر تا 3.3 ولت را تحمل میکنند و در صورت اتصال به میکروی 5 ولتی ممکن است چیپ نمایشگر یا حتی پیکسلها آسیب ببینند، اگر میکروی شما 5 ولت است باید از level shifter استفاده کنید یا با تمام پایهها مقاومت 1 کیلو سری کنید و یا کلا از میکروی 3.3 ولتی استفاده کنید و تغذیه OLED را نیز 3.3 بدهید) بسته به شرکت سازنده OLED ممکن است پایهها نامگزاری متفاوتی داشته باشند که در شماتیک نامهای متفاوت هر پایه درج شده است.
نرم افزار
برای راه اندازی OLED رنگی SSD1331 از یک کتابخانه شخص ثالث استفاده شده است. این کتابخانه با نام glcd-SSD1331-SPI.lib در پوشه LIB در فولدر سورس قرار داده شده که حتما باید آنرا در پوشه LIB محل نصب BASCOM کپی کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
'SSD1331 Bascom 'from: cxem.net/mc/mc407.php 'Edit by Behnam Zakizadeh @ 1401/07/02 [2022-09-24] 'AVR64.com $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 64 $swstack = 64 $framesize = 64 $PROG &HFF,&HE2,&HDD,&HFD '------------------------------- Setup ----------------------------------------- $lib "glcd-SSD1331-SPI.lib" Config Graphlcd = Color , Sclk = Portb.1 , Si = Portb.2 ,Rst = Portb.3, _ A0 = Portb.4 , Cs1 = Portb.5 '------------------- Variables & Constants ------------------------------------- Const Blue = &B00000011 Const Yellow = &B11111100 Const Red = &B11100000 Const Green = &B00011100 Const Black = &B00000000 Const White = &B11111111 Const Brightgreen = &B00111110 Const Darkgreen = &B00010100 Const Darkred = &B10100000 Const Darkblue = &B00000010 Const Brightblue = &B00011111 Const Orange = &B11111000 Const Violet = &B11100011 '============================ Main prog ======================================== Initlcd Cls Lcdcontrast 15 '0..15 Showpic 0 , 0 , agha wait 2 Cls Setfont Color8x8 Lcdat 0 , 0 , "SSD1331" , Blue , Black Lcdat 8 , 0 , "AVR64.com" , yellow , Black Lcdat 16 , 0 , "White On Blu" , White , blue Lcdat 24 , 0 , "Violet On wh" , Violet , white Lcdat 32 , 0 , "0123456789" , black , Brightgreen Lcdat 40 , 0 , "NovinKit.com" , green , black Lcdat 48 , 0 , "NovinKit.ir" , orange , black Lcdat 56 , 0 , "Last Line" , black , Brightblue Wait 5 cls Pset 15 , 15 , green Wait 2 cls Line(0 , 0) -(95 , 63) , Red waitms 500 Line(0 , 63) -(95 , 0) , Blue Wait 2 cls Box(0 , 0) -(95 , 63) , Red Wait 2 cls Boxfill(0 , 0) -(95 , 63) , Green Wait 2 cls Circle(48 , 32) , 20 , Green End '------------------------------------------------------------------------------- $include "color8x8.font" agha: $bgf "agha.bgc" |
توضیحات سورس بسکام
دستورات ترسیم در OLED ها و LCD های گرافیکی در بسکام تقریباً مشابه یکدیگر میباشد و کاربر را از کار با رجیسترها بینیاز میکند تا با تمرکز بیشتری به طراحی برنامه اصلی بپردازد و یکی از دلایل محبوبیت بسکام نیز همین است. در این برنامه در ابتدا نوع میکرو، فرکانس کاری و سایز پشتهها تعیین شده و سپس دستور Prog برای تنظیم فیوزبیتها بصورت خودکار نوشته شده است. در قسمت بعدی کتابخانه مورد نیاز اضافه شده و به پیکرهبندی پایههای OLED و نحوه اتصال آنها به میکرو پرداخته شده است. در بخش بعدی ثابتهایی برای کار با رنگها تعریف شده و سپس نمایشگر init و درنهایت پاک شده است.
یک دستور جدید در این نمایشگر دستور Lcdcontrast است که اعداد 0 تا 15 را دریافت کرده و برای کنترل روشنایی SSD1331 بکار میرود. در قسمت بعد با دستور Showpic یک تصویر در مختصات 0 و 0 نمایشگر نشان داده شده است. این تصویر توسط نرم افزار LCDconverter ایجاد و فایل آن با پسوند bgc در انتهای کد پیوست شده. در خط بعدی با دستور Setfont یک فونت رنگی که در انتهای کد پیوست شده انتخاب شده است. در خطوط بعدی با دستور Lcdat عبارتهایی روی نمایشگر درج شده. این دستور پنج آرگومان ورودی دارد. اولین آرگومان شماره پیکسل بالای سطر میباشد که برای خط بعدی به اندازه ارتفاع فونت (8 پیکسل) به آن اضافه میشود. یعنی خط دوم باید از پیکسل شماره 8 شروع شود. آرگومان دوم ستون آغاز متن است. آرگومان سوم خودِ متن، آرگومان چهارم رنگ متن و آرگومان آخر نیز رنگ زمینه متن میباشد.
سایر دستورات گرافیکی عبارتند از: Pset که برای روشن کردن یک پیکسل رنگی در مختصات مشخص بکار میرود. دستور Line برای ترسیم یک خط رنگی بین دو نقطه، دستور Box برای ترسیم یک جعبه خالی رنگی بین دو نقطه، دستور Boxfill برای رسم یک جعبه توپر رنگی بین دو نقطه و درنهایت دستور Circle برای رسم یک دایره رنگی در مختصات مشخص با شعاع معین یه کار میرود.
ویدیو
ویدیوی عملکرد OLED فول کالر SSD1331 را در فیلم زیر مشاهده می فرمایید:
سخن آخر
نکتهای که در خصوص این OLED باید یادآور شویم کیفیت بالای آن در نمایش عکس میباشد. این OLED قادر به تولید 16 هزار رنگ بوده و تصاویر را بدرستی نشان میدهد اما مشکلی که در بسکام وجود دارد اینست که نرم افزار LCDconverter برای کاهش حجم کد عکسها را بصورت 8 بیتی فشرده میکند و از کیفیت تصویر میکاهد. با این حال این نمایشگر برای نمایش متنها و تصاویر ساده بسیار عالی بوده و تنها عیب آن قیمت بالای این مدل نمایشگرهای OLED است که استفاده از آن را محدود می نماید.
منبع: https://cxem.net/mc/mc407.php
دانلود سورس و شماتیک راه اندازی OLED رنگی SSD1331 با BASCOM-AVR
بازدیدها: 1167
لبیک یا خامنه ای،،، و تشکر از شما بابت این مطالب مفید.
درود بر شما.
اللهم احفظ قائدنا الامام الخامنه ای
سایه رهبر مستدام
درود خدا بر شما دوست عزیز، فرهیخته و انقلابی،
لبیک یا خامنهای لبیک یا حسین است