پرش به محتوا

راه اندازی حرفه ای نمایشگر OLED با آردوینو

نمایشگر OLED

نمایشگرهای OLED نسل جدید از نمایشگرها در حوزه الکترونیک و کامپیوتر هستند. نمایشگر هایی با کانتراست و رزولوشن بالا ، از این رو قابلیت خوانایی زیادی را برای کاربر فراهم می‌کند.
این نوع ماژول‌ها فاقد Backlight  می‌باشند و نور پس‌زمینه را خودشان ایجاد می‌کنند از این رو نسبت به LCD ها باریک‌تر ، شفاف‌تر و شکیل تر به نظر می‌رسند. این نوع ماژول یک نوع نمایشگر تک رنگ  با رزولوشن 128*64 می‌باشد که برای کنترل آن از درایور SSD1306 استفاده شده است.  
ماژول OLED با پروتکل ارتباطی I2C
 قابلیت ارتباط با میکروکنترلر و آردوینو توسط پروتکل I2C را دارد. زاویه دید حداکثر 160 درجه و همچنین کنتراست بالای این نوع نمایشگر‌ها از ویژگی‌هایی است که باعث برتری این نوع نمایشگر می شود.
از این نمایشگر ها در ساعت های هوشمند، گجت های پوشیدنی و… به وفور استفاده می گردد. اگر در راه اندازی نمایشگر oled با آردوینو به مشکل برخوردید این آموزش قطعا براتون مفید هست.

آموزش مقدماتی آشنایی با آردوینو را ببینید

ماژول نمایشگر Oled 1306

کتابخانه های راه انداز OLED

برای راه اندازی ارتباط با نمایشگر OLED با پردازنده آردوینو کتابخانه های بسیاری وجود دارند. برخی از آنها عبارت اند از:

چرا کتابخانه Adafruit_SSD1306

برای راه اندازی نمایشگر OLED با آردوینو نیاز به درایور داریم که ماژول های داخل بازار با درایور ssd1306 طراحی شده است. اگر از این ماژول ها استفاده میکنید باید کتابخانه ای انتخاب کنید که از این درایور پشتیبانی کند. از میان تمامی کتابخانه های این درایور، Adafruit_SSD1306 از همه استاندارد تر و کامل تر هست. به شخصه تجربه کردم که برخی از کتابخانه ها داخل پروژه اختلال ایجاد میکنند مخصوصا زمانی که غیر از نمایشگر المان دیگری به پورت I2C  متصل باشد.

پس برای کم شدن دردسرمان مستقیم به سراغ Adafruit_SSD1306 میرویم.

کتابخانه های مورد نیاز برای Adafruit_SSD1306

				
					#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
				
			

داخل برنامه باید علاوه بر Adafruit_SSD1306.h کتابخانه Adafruit_GFX.h را هم نصب کنید.
اگر نمایشگر I2C دارید کتابخانه Wire.h و اگر نمایشگر شما از نوع SPI است، کتابخانه SPI.h را نصب کنید.

توابع کتابخانه Adafruit_SSD1306.h و Adafruit_GFX.h

;()Adafruit_SSD1306 display

در ابتدا برنامه باید یک شئ از کتابخانه را برای نمایشگر تعریف کنیم. به فرم کد زیر این کار را انجام دهید.

در بخش اول تابع، تعداد پیکسل عرض نمایشگر را مشخص کنید.
در بخش دوم تابع، تعداد پیکسل طول نمایشگر را مشخص کنید.
در بخش سوم تابع، پایه های I2C را مشخص کنید. (&Wire به معنی اتصال به پایه های اصلی این پورت از پردازنده است)
در بخش چهارم تابع، پایه متصل به ریست نمایشگر را مشخص کنید. (-1 به معنی متصل نبودن که معمولا از همین مقدار استفاده میکنیم)

				
					#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET    -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
				
			

;()Begin

تابع معروف Begin که در اکثر کتابخانه ها برای شروع به کار استفاده میشود. برای نمایشگر OLED باید در حلقه setup تعریف شود. این تابع دو پارامتر دارد، پارامتر اول برای تعریف نوع نمایشگر و پارامتر دوم آدرس I2C نمایشگر است.

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

				
					display.begin(SSD1306_SWITCHCAPVCC, 0x3D); //نمایشگر 128*64
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //نمایشگر 128*32
				
			

;()display

این تابع برای نمایش محتوای اولیه بافر نمایشگر روی صفحه مورد استفاده قرار می‌گیرد. با فراخوانی هر تابع برای نمایش ، مقدار داده در بافر ذخیره می شود و با این تابع مقدار بر روی نمایشگر ارسال شده و نمایش داده میشود.

				
					display.display();
				
			

;()clearDisplay

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

				
					display.clearDisplay();
				
			

;()drawPixel

این تابع یک پیکسل را تنظیم ، پاک یا معکوس می‌کند. این تابع سه پارامتر برای تنظیم دارد که شامل مقدار x, مقدار y و همچنین رنگ پیکسل است.

				
					display.drawPixel(10, 10, WHITE);
				
			

;()invertDisplay

این تابع حالت پیکسل ها را معکوس خواهد کرد، که برای مقدار دهی به این تابع از دو مورد true / false استفاده می‌شود

				
					  display.invertDisplay(true);
  delay(1000);
  display.invertDisplay(false);
  delay(1000);
				
			

;()dim

این مورد برای استفاده از روشنایی متوسط و کامل نمایشگر استفاده می شود، که به صورت ۰ و ۱ یا true / false مقدار دهی می‌شود. که در صورت true بودن مقدار نور صفحه کم خواهد شد و در صورت false بودن، از تمام قدرت نور صفحه استفاده خواهید کرد.

				
					display.dim	(true);  //نور صفحه کم
display.dim	(false); //نور صفحه زیاد 
				
			

;()print

از این تابع برای نمایش متن یا مقادیر مورد نظر در نمایشگر استفاده می‌شود.

همچنین میتوانید از تابع ;()println استفاده کنید، پس از نمایش متن به خط بعدی فرستاده میشود تا برای دریافت متن بعدی آماده باشد.

				
					display.print("Hello World");
display.println("Hello World");
				
			

همچنین این دو تابع چاپ متن، توانایی نمایش اعداد باینری، اکتان، دسیمال، هگز و تایین ارزش اعشار را دارند. برای درک بهتر به نمونه کد های زیر و توضیحات توجه کنید.

				
					display.print(78, BIN);       //“1001110” روی نمایشگر نوشته میشود 
display.print(78, OCT);       //“116” روی نمایشگر نوشته میشود 
display.print(78, DEC);       //“78” روی نمایشگر نوشته میشود 
display.print(78, HEX);       //“4E” روی نمایشگر نوشته میشود 
display.println(1.23456, 0);  //“1” روی نمایشگر نوشته میشود 
display.println(1.23456, 2);  //“1.23” روی نمایشگر نوشته میشود 
display.println(1.23456, 4);  //“1.2346” روی نمایشگر نوشته میشود 
				
			

;()setTextSize

این تابع برای مشخص کردن سایز فونت نوشتاری است. برای مثال با وارد کردن مقدار ۱، سایز در نظر گرفته شده برای فونت ۱:۱ پیکسل خواهد بود.برای تایین سایز نوشته از عدد 1 تا 5 میتوانید استفاده کنید.

				
					display.setTextSize(1); //کوچک ترین
display.setTextSize(2); 
display.setTextSize(3); 
display.setTextSize(4); 
display.setTextSize(5); //بزرگ ترین
				
			

;()setTextColor

از این تابع برای مشخص کردن رنگ نوشته ها استفاده می‌شود برای مثال WHITE رنگ نوشته را سفید در نظر خواهد گرفت. (این مورد به نوع نمایشگر نیز وابسته است).

				
					display.setTextColor(WHITE);  //نوشته سفید
display.setTextColor(BLACK);  //نوشته مشکی
display.setTextColor(INVERSE);//نوشته معکوس
				
			

;()setFont

				
					display.setFont(&FreeMonoBoldOblique12pt7b);
				
			

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

				
					#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeMonoBoldOblique12pt7b.h>
#include <Fonts/FreeSerif9pt7b.h>
				
			
  • FreeMono9pt7b.h
  • FreeMono12pt7b.h
  • FreeMono18pt7b.h
  • FreeMono24pt7b.h
  • FreeMonoBold9pt7b.h
  • FreeMonoBold12pt7b.h
  • FreeMonoBold18pt7b.h
  • FreeMonoBold24pt7b.h
  • FreeMonoBoldOblique9pt7b.h
  • FreeMonoBoldOblique12pt7b.h
  • FreeMonoBoldOblique18pt7b.h
  • FreeMonoBoldOblique24pt7b.h
  • FreeMonoOblique9pt7b.h
  • FreeMonoOblique12pt7b.h
  • FreeMonoOblique18pt7b.h
  • FreeMonoOblique24pt7b.h
  • FreeSans9pt7b.h
  • FreeSans12pt7b.h
  • FreeSans18pt7b.h
  • FreeSans24pt7b.h
  • FreeSansBold9pt7b.h
  • FreeSansBold12pt7b.h
  • FreeSansBold18pt7b.h
  • FreeSansBold24pt7b.h
  • FreeSansBoldOblique9pt7b.h
  • FreeSansBoldOblique12pt7b.h
  • FreeSansBoldOblique18pt7b.h
  • FreeSansBoldOblique24pt7b.h
  • FreeSansOblique9pt7b.h
  • FreeSansOblique12pt7b.h
  • FreeSansOblique18pt7b.h
  • FreeSansOblique24pt7b.h
  • FreeSerif9pt7b.h
  • FreeSerif12pt7b.h
  • FreeSerif18pt7b.h
  • FreeSerif24pt7b.h
  • FreeSerifBold9pt7b.h
  • FreeSerifBold12pt7b.h
  • FreeSerifBold18pt7b.h
  • FreeSerifBold24pt7b.h
  • FreeSerifBoldItalic9pt7b.h
  • FreeSerifBoldItalic12pt7b.h
  • FreeSerifBoldItalic18pt7b.h
  • FreeSerifBoldItalic24pt7b.h
  • FreeSerifItalic9pt7b.h
  • FreeSerifItalic12pt7b.h
  • FreeSerifItalic18pt7b.h
  • FreeSerifItalic24pt7b.h
  • Org_01.h
  • Picopixel.h
  • Tiny3x3a2pt7b.h
  • TomThumb.h

;()setCursor

این تابع برای مشخص کردن محل قرار گیری متن مورد نظر استفاده می‌شود، که با مقدار دهی دو عددی x و y شروع به کار می‌کند.

				
					display.setCursor( 16, 5);
				
			

;()scroll

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

راه اندازی oled آردوینو scroll
				
					// Scroll full screen
display.clearDisplay();
display.setCursor(0,0);
display.setTextSize(1);
display.println("Full");
display.println("screen");
display.println("scrolling!");
display.display();
display.startscrollright(0x00, 0x07);
delay(2000);
display.stopscroll();
delay(1000);
display.startscrollleft(0x00, 0x07);
delay(2000);
display.stopscroll();
delay(1000);    
display.startscrolldiagright(0x00, 0x07);
delay(2000);
display.startscrolldiagleft(0x00, 0x07);
delay(2000);
display.stopscroll();
				
			

همچنین میتوانید از میان متن های چاپ شده فقط یک خط را اسلایدی کنید ، به کد زیر توجه کنید!

راه اندازی oled آردوینو
				
					// Scroll part of the screen
display.setCursor(0,0);
display.setTextSize(1);
display.println("Scroll");
display.println("some part");
display.println("of the screen.");
display.display();
display.startscrollright(0x00, 0x00);
				
			

;()drawLine

از این تابع برای رسم خطوط در نمایشگر های Oled استفاده می‌شود که برای مقدار دهی باید x , y ابتدا خط و x , y انتهای خط و رنگ خط را در تابع تعریف کنید.

				
					display.drawLine(10,20,10,50 ,WHITE);
				
			

;()drawRect

از این تابع برای رسم اشکالی مانند مربع تو خالی در نمایشگر استفاده می‌شود، که می‌توانیم از این مورد برای ساخت UI استفاده کرد. که در مقدار دهی x , y مختصات شروع مربع، عرض ، ارتفاع و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.drawRect(0, 15, 60, 10, WHITE);
				
			

;()fillRect

از این تابع برای رسم اشکالی مانند مربع تو پر در نمایشگر استفاده می‌شود، که می‌توانیم از این مورد برای ساخت UI استفاده کرد. که در مقدار دهی x , y مختصات شروع مربع، عرض ، ارتفاع و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.fillRect(0, 15, 60, 10, WHITE);
				
			

;()drawRoundRect

از این تابع برای رسم اشکالی مانند مربع تو خالی با گوشه های گرد در نمایشگر استفاده می‌شود، که می‌توانیم از این مورد برای ساخت UI استفاده کرد. که در مقدار دهی x , y مختصات شروع مربع، عرض ، ارتفاع ، شعاع گوشه مربع و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.drawRoundRect(0, 15, 60, 40, 10, WHITE);
				
			

;()fillRoundRect

از این تابع برای رسم اشکالی مانند مربع تو پر با گوشه های گرد در نمایشگر استفاده می‌شود، که می‌توانیم از این مورد برای ساخت UI استفاده کرد. که در مقدار دهی x , y مختصات شروع مربع، عرض ، ارتفاع ، شعاع گوشه مربع و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.fillRoundRect(0, 15, 60, 40, 10, WHITE);
				
			

;()drawCircle

از این تابع برای رسم اشکال دایره تو خالی در نمایشگر استفاده می‌شود. که در مقدار دهی x , y مختصات مرکز دایره،شعاع و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.drawCircle(20, 35, 20, WHITE);
				
			

;()fillCircle

از این تابع برای رسم اشکال دایره تو پر در نمایشگر استفاده می‌شود. که در مقدار دهی x , y مختصات مرکز دایره،شعاع و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.fillCircle(20, 35, 20, WHITE);
				
			

;()drawTriangle

از این تابع برای رسم اشکال مثلثی تو خالی در نمایشگر استفاده می‌شود. که در مقدار دهی x , y راس اول، x , y راس دوم، x , y راس سوم و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.drawTriangle(30, 15, 0, 60, 60, 60, WHITE);
				
			

;()fillTriangle

از این تابع برای رسم اشکال مثلثی تو پر در نمایشگر استفاده می‌شود. که در مقدار دهی x , y راس اول، x , y راس دوم، x , y راس سوم و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.fillTriangle(30, 15, 0, 60, 60, 60, WHITE);
				
			

;()drawBitmap

از این تابع برای نمایش تصویر در نمایشگر استفاده می‌شود. که در مقدار دهی x , y مختصات شروع تصویر ، متغییر حاوی کد های تصویر ، عرض و ارتفاع تصویر و رنگ آن را مشخص می کنیم.

راه اندازی oled آردوینو
				
					display.drawBitmap( 70, 16, test_bits, 50, 50, WHITE);
				
			

برای استفاده از کد نمونه بالا باید متغییر زیر را در ابتدا برنامه تعریف کنید.

				
					static const unsigned char test_bits[] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff,
  0xe0, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1f, 0x07, 0xf8, 0x3c, 0x00,
  0x00, 0x00, 0x3c, 0x3f, 0xfe, 0x1e, 0x00, 0x00, 0x00, 0x78, 0xff, 0xff, 0x87, 0x00, 0x00, 0x00,
  0x73, 0xe0, 0x03, 0xf0, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x0f, 0x0f,
  0xf8, 0x78, 0x00, 0x00, 0x00, 0x1c, 0x7f, 0xff, 0x8e, 0x00, 0x00, 0x00, 0x38, 0xf8, 0x07, 0x87,
  0x00, 0x00, 0x00, 0x71, 0xe0, 0x03, 0xc7, 0x00, 0x00, 0x00, 0x73, 0xc1, 0xc0, 0xe3, 0x80, 0x00,
  0x00, 0xe7, 0x1f, 0xfc, 0x78, 0x00, 0x00, 0x01, 0xcf, 0x3e, 0x3e, 0x38, 0x00, 0x00, 0x00, 0x8e,
  0x78, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x0e, 0xf0, 0x03, 0x9c, 0x80, 0x00, 0x00, 0x18, 0xe7, 0xf1,
  0x8c, 0xc0, 0x00, 0x00, 0x39, 0xcf, 0xf9, 0xce, 0xc0, 0x00, 0x00, 0x71, 0x9e, 0x3c, 0xc6, 0xc0,
  0x00, 0x01, 0xe3, 0x1c, 0x1c, 0xc6, 0xe0, 0x00, 0x01, 0xc7, 0x18, 0x8c, 0xc6, 0xe0, 0x00, 0x01,
  0x8f, 0x39, 0xcc, 0xc6, 0xe0, 0x00, 0x00, 0x0e, 0x71, 0xcc, 0xcc, 0xe0, 0x00, 0x00, 0x3c, 0xe3,
  0x8c, 0xcc, 0xe0, 0x00, 0x00, 0x78, 0xe3, 0x1c, 0xcc, 0xe0, 0x00, 0x00, 0xf1, 0xc7, 0x1d, 0xcc,
  0xe0, 0x00, 0x01, 0xc7, 0x9e, 0x39, 0x9c, 0xc0, 0x00, 0x01, 0x8f, 0x1e, 0x31, 0x98, 0xc0, 0x00,
  0x00, 0x0f, 0x1c, 0x71, 0x98, 0xc0, 0x00, 0x00, 0x3e, 0x38, 0xe1, 0x9c, 0xc0, 0x00, 0x00, 0x70,
  0xe1, 0xdd, 0x8c, 0x00, 0x00, 0x01, 0xf0, 0xe3, 0xdd, 0x8e, 0x00, 0x00, 0x01, 0xc3, 0xc7, 0x9d,
  0x87, 0x00, 0x00, 0x00, 0x0f, 0x1e, 0x38, 0xc7, 0x80, 0x00, 0x00, 0x0f, 0x1e, 0x38, 0xe3, 0x80,
  0x00, 0x00, 0x3c, 0x38, 0x38, 0x70, 0x00, 0x00, 0x00, 0x78, 0x70, 0x1c, 0x78, 0x00, 0x00, 0x00,
  0x61, 0xe7, 0x9c, 0x1e, 0x00, 0x00, 0x00, 0x03, 0xdf, 0xce, 0x04, 0x00, 0x00, 0x00, 0x07, 0x9f,
  0xc7, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x3c, 0xe3, 0x80, 0x00, 0x00, 0x00, 0x00, 0x30, 0x61, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
				
			

برای دریافت کد هگز تصویر مورد نظرتون ابتدا باید عکس را به کمک یک ویرایشگر تصویر مانند paint به ابعاد مورد نظر برای نمایش در نمایشگر تغییر بدهید و در آخر با پسوند bmp ذخیره کنید. با این کار عکس شما سیاه و سفید می شود؛ در واقع از دو رنگ سفید و مشکی ساخته می شود. برای مثال تصویر زیر را در ابعاد 50*50 با پسوند bmp ذخیره می کنیم.

راه اندازی oled آردوینو
راه اندازی oled آردوینو

سپس به کمک ابزار آنلاین زیر که فارسی سازی شده تصویر مورد نظرتان را آپلود کنید. با انجام تنظیمات دلخواه، کد تصویر را ایجاد کنید و به فرم برنامه بالا که گفتیم در ابتدا برنامه خود وارد کنید.

ابزار آنلاین تبدیل تصویر به کد

در راه اندازی انواع نمایشگر گرافیکی مثل OLED با آردوینو، یکی از جذابیت های پروژه نمایش تصاویر هست که به کمک ابزار آنلاین زیر که کاملا فارسی سازی شده میتوانید تصویر دلخواه خود را به کد هگز تبدیل کنید. در بالا تابع مربوط به نمایش تصویر را توضیح دادیم.


1. انتخاب تصویر


2. تنظیمات تصویر

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

    با افزایش روشنایی پیکسل ها سفید می شوند. (0 تا 255)
    توجه: قرار دادن تصویر در مرکز فقط زمانی کار می کند که از نمایشگر بزرگتر از تصویر انتخاب شده استفاده کنید.

    3. پیش نمایش

    4. خروجی


    برای کپی پیست آسان، مقداری کد آردوینو اضافی در اطراف خروجی اضافه می کند. اگر چندین تصویر بارگذاری شود، برای هر کدام یک آرایه بایت تولید می کند و یک شمارنده به شناسه اضافه می کند.
    برای کپی پیست آسان، مقداری کد آردوینو اضافی در اطراف خروجی اضافه می کند. اگر چندین تصویر بارگذاری شود، یک آرایه بایتی تولید می کند.
    یک خروجی با فرمت GFXbitmapFont ایجاد می کند. توسط نسخه اصلاح شده کتابخانه Adafruit GFX استفاده می شود.
    First ASCII characterاین مقدار فقط در صورتی استفاده می شود که برای هر تصویر یک شناسه علامت با طول برابر با 1 ارائه نشده باشد. مقدار خود به ازای هر علامت 1 افزایش می یابد.

    در این آموزش تمامی توابع مربوط به راه اندازی نمایشگر های جذاب oled با چیپ ssd1306 را برسی کردیم. در صورتی که برای راه اندازی نمایشگر خود به مشکل برخورد کردید بدون نگرانی از طریق دیدگاه های همین صفحه مشکل خود را بیان کنید تا در اصرع وقت برسی و برطرف کنیم.

    میلاد نیک پندار

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

    نشانی ایمیل شما منتشر نخواهد شد.

    ورود

    عضو سایت نیستید؟ برای ثبت نام کلیک کنید

    عضویت

    عضو سایت هستید؟ برای ورود کلیک کنید

    تماس با ما

    این پیام توسط مدیریت سایت دریافت میشود.