نمایش نتایج: از 21 به 30 از 53
Like Tree15 لایک

موضوع: نمایشگر nokia 5110 84mm x 84mm + برد کمکی

Threaded View

  1. #1
    Junior Member
    تاریخ عضویت
    Jul 2013
    نوشته ها
    13

    نمایشگر nokia 5110 84mm x 84mm + برد کمکی

    یک نمایشگر (LCD) کوچک، اما فوق العاده!
    کارایی بالا، قیمت مناسب و سازگاری کامل با برد آردوینو، باعث شده است نمایشگر نوکیا 5110 به سرعت به یک نمایشگر معروف و پرکاربرد در بسیاری از پروژه ها تبدیل گردد. این نمایشگر که در ابتدا ویژه گوشی های تلفن همراه تولید شده است، با قرار گرفتن بر روی برد کمکی، به شما این امکان را می دهد تا به سادگی در پروژه خود از آن استفاده نمایید.
    این نمایشگر از کنترلر PCD8544 استفاده می نماید که در نمایشگرهای Nokia 3310 نیز استفاده شده است. PCD8544 یک کنترلر کم مصرف می باشد که برای بکارگیری نمایشگرهای دارای 48 ردیف و 48 ستون طراحی گردیده است.
    ارتباط PCD8544 با میکروکنترلرها، از طریق یک رابط سریال باس انجام می پذیرد و برخلاف نمایشگرهای ماتریسی موجود در بازار ایران، برای اتصال نمایشگر به برد آردوینو، تعداد کمتری از پین ها (حداکثر 5 پین) اشغال می گردد، همچنین بک لایت نمایشگر باعث می شود استفاده از آن در محیط های کم نور و یا شب به راحتی امکان پذیر باشد.

    توجه: در نمایشگر های قرمز رنگ پین light باید به زمین GND وصل شود تا بک لایت ال سی دی روشن بشه ، اگر در کدنویسی قصد روشن کردنش رو دارید مقدار پین دیجیتال رو به LIGHT متصل کنید و مقدارش رو LOW قرار بدید

    شماتیک مدار:
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: nokia 5110.jpg
مشاهده: 1548
حجم: 47.4 کیلو بایت

    مثال آردوینو:
    کد:
    /*
     # Be Name Khoda!
     # Example code for the NOKIA 5110 LCD
     # Company    : AftabRayaneh
     # Website    : http://shop.aftabrayaneh.com
     # Editor     : Saleh Khademi
     # Date       : 28.08.2013
     # Version    : 1.0
    
     # Connect your LCD to the following Arduino pins:
    
     # pin 7 - Serial clock out (SCLK)
     # pin 6 - Serial data out (DIN)
     # pin 5 - Data/Command select (D/C)
     # pin 4 - LCD chip select (CS)
     # pin 3 - LCD reset (RST)
    */
    
    #include <LCD_GFX.h>
    #include <NOKIA5110.h>
    
    NOKIA5110 display = NOKIA5110(7, 6, 5, 4, 3);
    
    #define NUMFLAKES 10
    #define XPOS 0
    #define YPOS 1
    #define DELTAY 2
    
    
    #define LOGO16_GLCD_HEIGHT 16
    #define LOGO16_GLCD_WIDTH  16
    
    static unsigned char PROGMEM logo16_glcd_bmp[] =
    { B00000000, B11000000,
      B00000001, B11000000,
      B00000001, B11000000,
      B00000011, B11100000,
      B11110011, B11100000,
      B11111110, B11111000,
      B01111110, B11111111,
      B00110011, B10011111,
      B00011111, B11111100,
      B00001101, B01110000,
      B00011011, B10100000,
      B00111111, B11100000,
      B00111111, B11110000,
      B01111100, B11110000,
      B01110000, B01110000,
      B00000000, B00110000 };
    
    void setup()   {
      Serial.begin(9600);
    
      display.begin();
      // init done
    
      // you can change the contrast around to adapt the display
      // for the best viewing!
      display.setContrast(45);
    
      display.display(); // show splashscreen
      delay(2000);
      display.clearDisplay();   // clears the screen and buffer
      
      display.println("Aftab Rayaneh");   //Write a Text
      display.setTextSize(2);
      display.display();
      delay(2000);
      display.clearDisplay();
      
      // draw a single pixel
      display.drawPixel(10, 10, BLACK);
      display.display();
      delay(2000);
      display.clearDisplay();
    
       
      // draw many lines
      testdrawline();
      display.display();
      delay(2000);
      display.clearDisplay();
    
      // draw rectangles
      testdrawrect();
      display.display();
      delay(2000);
      display.clearDisplay();
    
      // draw multiple rectangles
      testfillrect();
      display.display();
      delay(2000);
      display.clearDisplay();
    
      // draw mulitple circles
      testdrawcircle();
      display.display();
      delay(2000);
      display.clearDisplay();
    
      // draw a circle, 10 pixel radius
      display.fillCircle(display.width()/2, display.height()/2, 10, BLACK);
      display.display();
      delay(2000);
      display.clearDisplay();
    
      testdrawroundrect();
      delay(2000);
      display.clearDisplay();
    
      testfillroundrect();
      delay(2000);
      display.clearDisplay();
    
      testdrawtriangle();
      delay(2000);
      display.clearDisplay();
       
      testfilltriangle();
      delay(2000);
      display.clearDisplay();
    
      // draw the first ~12 characters in the font
      testdrawchar();
      display.display();
      delay(2000);
      display.clearDisplay();
    
      // text display tests
      display.setTextSize(1);
      display.setTextColor(BLACK);
      display.setCursor(0,0);
      display.println("Hello, world!");
      display.setTextColor(WHITE, BLACK); // 'inverted' text
      display.println(3.141592);
      display.setTextSize(2);
      display.setTextColor(BLACK);
      display.print("0x"); display.println(0xDEADBEEF, HEX);
      display.display();
      delay(2000);
    
      // miniature bitmap display
      display.clearDisplay();
      display.drawBitmap(30, 16,  logo16_glcd_bmp, 16, 16, 1);
      display.display();
    
      // invert the display
      display.invertDisplay(true);
      delay(1000); 
      display.invertDisplay(false);
      delay(1000); 
    
      // draw a bitmap icon and 'animate' movement
      testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH);
    }
    
    
    void loop() {
      
    }
    
    
    void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) {
      uint8_t icons[NUMFLAKES][3];
      srandom(666);     // whatever seed
     
      // initialize
      for (uint8_t f=0; f< NUMFLAKES; f++) {
        icons[f][XPOS] = random() % display.width();
        icons[f][YPOS] = 0;
        icons[f][DELTAY] = random() % 5 + 1;
        
        Serial.print("x: ");
        Serial.print(icons[f][XPOS], DEC);
        Serial.print(" y: ");
        Serial.print(icons[f][YPOS], DEC);
        Serial.print(" dy: ");
        Serial.println(icons[f][DELTAY], DEC);
      }
    
      while (1) {
        // draw each icon
        for (uint8_t f=0; f< NUMFLAKES; f++) {
          display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK);
        }
        display.display();
        delay(200);
        
        // then erase it + move it
        for (uint8_t f=0; f< NUMFLAKES; f++) {
          display.drawBitmap(icons[f][XPOS], icons[f][YPOS],  logo16_glcd_bmp, w, h, WHITE);
          // move it
          icons[f][YPOS] += icons[f][DELTAY];
          // if its gone, reinit
          if (icons[f][YPOS] > display.height()) {
        icons[f][XPOS] = random() % display.width();
        icons[f][YPOS] = 0;
        icons[f][DELTAY] = random() % 5 + 1;
          }
        }
       }
    }
    
    
    void testdrawchar(void) {
      display.setTextSize(1);
      display.setTextColor(BLACK);
      display.setCursor(0,0);
    
      for (uint8_t i=0; i < 168; i++) {
        if (i == '\n') continue;
        display.write(i);
        //if ((i > 0) && (i % 14 == 0))
          //display.println();
      }    
      display.display();
    }
    
    void testdrawcircle(void) {
      for (int16_t i=0; i<display.height(); i+=2) {
        display.drawCircle(display.width()/2, display.height()/2, i, BLACK);
        display.display();
      }
    }
    
    void testfillrect(void) {
      uint8_t color = 1;
      for (int16_t i=0; i<display.height()/2; i+=3) {
        // alternate colors
        display.fillRect(i, i, display.width()-i*2, display.height()-i*2, color%2);
        display.display();
        color++;
      }
    }
    
    void testdrawtriangle(void) {
      for (int16_t i=0; i<min(display.width(),display.height())/2; i+=5) {
        display.drawTriangle(display.width()/2, display.height()/2-i,
                         display.width()/2-i, display.height()/2+i,
                         display.width()/2+i, display.height()/2+i, BLACK);
        display.display();
      }
    }
    
    void testfilltriangle(void) {
      uint8_t color = BLACK;
      for (int16_t i=min(display.width(),display.height())/2; i>0; i-=5) {
        display.fillTriangle(display.width()/2, display.height()/2-i,
                         display.width()/2-i, display.height()/2+i,
                         display.width()/2+i, display.height()/2+i, color);
        if (color == WHITE) color = BLACK;
        else color = WHITE;
        display.display();
      }
    }
    
    void testdrawroundrect(void) {
      for (int16_t i=0; i<display.height()/2-2; i+=2) {
        display.drawRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, BLACK);
        display.display();
      }
    }
    
    void testfillroundrect(void) {
      uint8_t color = BLACK;
      for (int16_t i=0; i<display.height()/2-2; i+=2) {
        display.fillRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, color);
        if (color == WHITE) color = BLACK;
        else color = WHITE;
        display.display();
      }
    }
       
    void testdrawrect(void) {
      for (int16_t i=0; i<display.height()/2; i+=2) {
        display.drawRect(i, i, display.width()-2*i, display.height()-2*i, BLACK);
        display.display();
      }
    }
    
    void testdrawline() {  
      for (int16_t i=0; i<display.width(); i+=4) {
        display.drawLine(0, 0, i, display.height()-1, BLACK);
        display.display();
      }
      for (int16_t i=0; i<display.height(); i+=4) {
        display.drawLine(0, 0, display.width()-1, i, BLACK);
        display.display();
      }
      delay(250);
      
      display.clearDisplay();
      for (int16_t i=0; i<display.width(); i+=4) {
        display.drawLine(0, display.height()-1, i, 0, BLACK);
        display.display();
      }
      for (int8_t i=display.height()-1; i>=0; i-=4) {
        display.drawLine(0, display.height()-1, display.width()-1, i, BLACK);
        display.display();
      }
      delay(250);
      
      display.clearDisplay();
      for (int16_t i=display.width()-1; i>=0; i-=4) {
        display.drawLine(display.width()-1, display.height()-1, i, 0, BLACK);
        display.display();
      }
      for (int16_t i=display.height()-1; i>=0; i-=4) {
        display.drawLine(display.width()-1, display.height()-1, 0, i, BLACK);
        display.display();
      }
      delay(250);
    
      display.clearDisplay();
      for (int16_t i=0; i<display.height(); i+=4) {
        display.drawLine(display.width()-1, 0, 0, i, BLACK);
        display.display();
      }
      for (int16_t i=0; i<display.width(); i+=4) {
        display.drawLine(display.width()-1, 0, i, display.height()-1, BLACK); 
        display.display();
      }
      delay(250);
    }
    یکی از قابلیت های کاربردی این نمایشگر، امکان نمایش لوگوی دلخواه شماست که با مراجعه به این لینک و پیروی از دستورات آن، می توانید تصویر موردنظر را به کد باینری تبدیل کنید.
    جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط e.rasekh : 09-11-2013 در ساعت 06:09 AM

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO