کوڈ تلاش کریں

نوکیا 5110 LCD اسکرین کے لیے آرڈوینو کوڈ

نوکیا 5110 LCD اسکرین کے لیے آرڈوینو کوڈ


اس ٹیوٹوریل میں، ہم دریافت کریں گے کہ نوکیا 5110 LCD اسکرین کو Arduino کے ساتھ کیسے استعمال کیا جائے تاکہ مختلف گرافکس اور متن دکھایا جا سکے۔ یہ پروجیکٹ ظاہر کرے گا کہ لکیریں، دائرے، مستطیل کیسے بنائیں، اور ان شکلوں کے اندر متن بھی کیسے دکھائیں۔ آخر تک، آپ کو بہتر سمجھ آئے گی کہ Arduino کوڈ کا استعمال کرتے ہوئے اس LCD کے ساتھ کیسے تعامل کیا جائے۔

Nokia 5110_LCD

واضح رہنمائی فراہم کرنے کے لیے، میں آپ کو مشورہ دیتا ہوں کہ وائرنگ اور کوڈ کے نفاذ کی بصری نمائش کے لیے متعلقہ ویڈیو دیکھیں (ویڈیو میں 00:00 پر)۔

ہارڈویئر کی وضاحت

نوکیا 5110 LCD ایک کمپیکٹ گرافیکل ڈسپلے ہے جو SPI پروٹوکول پر کام کرتا ہے، جس سے Arduino کے ساتھ موثر مواصلت ممکن ہوتی ہے۔ اس کی ریزولوشن 84x48 پکسلز ہے، جو بنیادی گرافکس اور متن دکھانے کے لیے کافی ہے۔ ڈسپلے کو چلانے کے لیے صرف چند پنز درکار ہیں، جو اسے محدود I/O اختیارات والے پروجیکٹس کے لیے بہترین انتخاب بناتا ہے۔

LCD کے علاوہ، آپ کو ایک Arduino بورڈ، عام طور پر Arduino Uno یا اس جیسا، ایک بریڈ بورڈ، اور کچھ جمپر تاروں کی ضرورت ہوگی۔ وائرنگ سیدھی ہے، اور LCD کو اس کے VCC پن کو Arduino کے 5V آؤٹ پٹ سے جوڑ کر پاور کیا جاتا ہے۔

ڈیٹاشیٹ کی تفصیلات

مینوفیکچررفلپس
پارٹ نمبرPCD8544
لاجک/آئی او وولٹیج3.3 V
سپلائی وولٹیج3.3 – 5.0 V
زیادہ سے زیادہ کرنٹ200 µA
اسکرین ریزولوشن84 x 48 پکسلز
انٹرفیسسیریل (SPI)
پیکیجماجیول

  • LED پن کے لیے کرنٹ محدود کرنے والا ریزسٹر استعمال کریں تاکہ نقصان سے بچا جا سکے۔
  • ڈسپلے کے مسائل سے بچنے کے لیے VCC اور GND کے کنکشن محفوظ یقینی بنائیں۔
  • SPI پن کنکشنز کو دو بار چیک کریں: SCE، RST، D/C، DN، اور SCLK۔
  • کنٹراسٹ سیٹنگ کو تجویز کردہ حد (40-60) کے اندر رکھیں۔
  • گرافکس بنانے کے بعد تبدیلیاں دیکھنے کے لیے ڈسپلے کو اپڈیٹ کریں۔

وائرنگ ہدایات

Arduino wiring for Nokia 5110 LCD
Arduino wiring for Nokia 5110 LCD

نوکیا 5110 LCD کو اپنے Arduino سے جوڑنے کے لیے، ان کنکشنز پر عمل کریں:

  • LCD کے VCC پن کو Arduino کے 5V پن سے جوڑیں۔
  • LCD پر GND پن کو Arduino کے کسی ایک GND پن سے جوڑیں۔
  • LCD پر SCE پن کو Arduino کے پن 7 سے جوڑیں۔
  • RST پن کو پن 6 سے جوڑیں۔
  • D/C پن کو پن 5 سے جوڑیں۔
  • DN (MOSI) پن کو پن 11 سے جوڑیں۔
  • SCLK پن کو پن 13 سے جوڑیں۔
  • آخر میں، LED پن کو 330-اوہم ریزسٹر کے ذریعے پن 9 سے جوڑیں۔

یہ کنکشن Arduino کو LCD کے ساتھ مؤثر طریقے سے مواصلت کرنے کی اجازت دیں گے۔ اگر آپ کو اپنے مخصوص سیٹ اپ کے لیے وائرنگ ایڈجسٹ کرنے کی ضرورت ہو، تو یقینی بنائیں کہ SPI پنز مستقل رہیں۔

کوڈ مثالیں اور واک تھرو

درج ذیل کوڈ سنیپٹ LCD کو ابتدائی کرتا ہے اور کنٹراسٹ سیٹ کرتا ہے:


void setup() {
  Serial.begin(9600);
  lcdBegin(); // LCD کو ابتدائی کریں
  setContrast(40); // کنٹراسٹ لیول سیٹ کریں
  delay(2000);
  clearDisplay(BLACK); // ڈسپلے صاف کریں
  updateDisplay(); // ڈسپلے اپڈیٹ کریں
}

اس سنیپٹ میں، lcdBegin() فنکشن LCD کے لیے ضروری پنز سیٹ کرتا ہے، جبکہ setContrast(40) ڈسپلے کے کنٹراسٹ کو ایڈجسٹ کرتا ہے۔ مختصر تاخیر کے بعد، نئے مواد کے لیے ڈسپلے صاف کیا جاتا ہے۔

Nokia 5110_LCD back view

اگلا، ہم ڈسپلے پر ایک لکیر کھینچ سکتے ہیں:


setLine(1, 4, 70, 4, BLACK); // افقی لکیر کھینچیں
updateDisplay(); // لکیر کو ظاہر کریں

یہ کوڈ لائن setLine() فنکشن استعمال کرتی ہے، جو شروع اور اختتامی نقاط کے ساتھ رنگ پیرامیٹر لیتا ہے۔ کھینچنے کے بعد، تبدیلیوں کو اسکرین پر ظاہر کرنے کے لیے updateDisplay() کال کرنا ضروری ہے۔

آخر میں، ہم ایک مستطیل کے اندر متن دکھا سکتے ہیں:


setRect(10, 10, 70, 40, 1, BLACK); // بھرا ہوا مستطیل بنائیں
setStr("Robojax ", 15, 20, WHITE); // اندر متن دکھائیں
updateDisplay(); // تبدیلیاں دکھانے کے لیے اپڈیٹ کریں

یہاں، setRect() ایک مستطیل بناتا ہے، جبکہ setStr() اس کے اندر متن رکھتا ہے۔ رنگ پیرامیٹرز وضاحت کرتے ہیں کہ مستطیل اور متن اسکرین پر کیسے ظاہر ہوں گے۔

مظاہرہ / کیا توقع کریں

کوڈ چلانے پر، آپ کو نوکیا 5110 LCD پر متعدد گرافکس دکھائی دیں گے، جن میں لکیریں، دائرے، مستطیل اور متن شامل ہیں۔ یقینی بنائیں کہ آپ کی وائرنگ درست ہے تاکہ ریورس پولرٹی یا فلوٹنگ انپٹس جیسے مسائل سے بچا جا سکے، جو ڈسپلے کو کام کرنے سے روک سکتے ہیں (ویڈیو میں 02:30 پر)۔

ویڈیو ٹائم اسٹیمپس

  • 00:00 - پروجیکٹ کا تعارف
  • 01:30 - وائرنگ ہدایات
  • 03:00 - کوڈ سیٹ اپ اور وضاحت
  • 05:00 - گرافکس اور متن دکھانا
  • 07:30 - نتیجہ اور مزید تبدیلیاں

تصاویر

Nokia 5110_LCD back view
Nokia 5110_LCD back view
Arduino wiring for Nokia 5110 LCD
Arduino wiring for Nokia 5110 LCD
Nokia 5110_LCD
Nokia 5110_LCD
82-Arduino code: Dual-axis joystick with Nokia 5110 screen to display dots.
زبان: C++
/* 
 * This is Arduino code to use a dual-axis XY joystick with a Nokia 5110 LCD.
 * It also reads a switch.
 * Other Arduino libraries and videos: https://robojax.com
 
 * Watch the video for this code to learn it fully.
  * Watch the video here: https://youtu.be/Pk5Wig5EO0s

 * 
 * Get this code and other Arduino codes from Robojax.com.
 Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
 all in one place. Purchase my course on Udemy.com: http://robojax.com/L/?id=62

If you found this tutorial helpful, please support me so I can continue creating 
content like this. You can support me on Patreon: http://robojax.com/L/?id=63

or make a donation using PayPal: http://robojax.com/L/?id=64

 *  * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact. * 
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

 
Nokia 5110 LCD Example Code
   Graphics driver and PCD8544 interface code for SparkFun's
   84x48 Graphic LCD.
   https://www.sparkfun.com/products/10168
   Original source code:
https://github.com/sparkfun/GraphicLCD_Nokia_5110

  This stuff could all be put into a library, but we wanted to
  leave it all in one sketch to keep it as transparent as possible.

  Hardware: (Note: most of these pins can be swapped)
    Graphic LCD Pin ---------- Arduino Pin
       1-VCC       ----------------  5V
       2-GND       ----------------  GND
       3-SCE       ----------------  7
       4-RST       ----------------  6
       5-D/C       ----------------  5
       6-DN(MOSI)  ----------------  11
       7-SCLK      ----------------  13
       8-LED       - 330 Ohm res --  9
   The SCLK, DN(MOSI), must remain where they are, but the other 
   pins can be swapped. The LED pin should remain a PWM-capable
   pin. Don't forget to stick a current-limiting resistor in line
   between the LCD's LED pin and Arduino pin 9!
   Modified by Ahmad S. for Robojax.com
   on Mar 11, 2018 at 20:49 in Ajax, Ontario, Canada
*/
#include <SPI.h>
#include "robojax-nokia5110.h"

void setup()
{
  Serial.begin(9600);

  lcdBegin(); // This will setup our pins, and initialize the LCD
  //updateDisplay(); // with displayMap untouched, SFE logo
  setContrast(40); // Good values range from 40-60
  delay(2000);

  clearDisplay(BLACK);
  updateDisplay();
}


void loop()
{
 
    // setPixel takes 2 to 3 parameters. The first two parameters
    // are x and y variables. The third optional parameter is
    // a "color" boolean. 1 for black, 0 for white.
    // setPixel() with two variables will set the pixel with
    // the color set to black.
    // clearPixel() will call setPixel with the color set to
    // white.
   // setPixel(random(0, LCD_WIDTH), random(0, LCD_HEIGHT));
    // After drawing something, we must call updateDisplay()
    // to actually make the display draw something new.

    //invertDisplay(); // This will swap all bits in our display

    // setLine(x0, y0, x1, y1, bw) takes five parameters. The
    // first four are coordinates for the start and end of the 
    // line. The last parameter is the color (1=black, 0=white).
    setLine(1, 4, 70, 4, BLACK);
    updateDisplay();
delay(2000);
    //analogWrite(blPin, i); // blPin is connected to BL LED

  /* setRect Example */
  clearDisplay(WHITE); // Start fresh

  // setCircle takes 5 parameters -- x0, y0, radius, bw, and
  // lineThickness. x0 and y0 are the center coordinates of the circle.
  // radius is the...radius. bw is the color (0=white, 1=black)
  // lineThickness is the line width of the circle, 1 = smallest
  // thickness moves in towards the center.
   setCircle(20, 30, 20, BLACK, 2);
  updateDisplay();
  delay(2000);
clearDisplay(WHITE);

  setStr("Welcome to ", 0, 0, BLACK);
      updateDisplay();
    delay(100);
  setLine(0, 9, 70, 9, BLACK);
    updateDisplay();
    delay(100);
   setStr("Robojax ", 20, 20, BLACK);
  updateDisplay();
  delay(2000);
  clearDisplay(WHITE);

  
  // setRect takes six parameters (x0, y0, x1, y0, fill, bw)
  // x0, y0, x1, and y0 are the two diagonal corner coordinates
  // fill is a boolean, which determines if the rectangle is
  // filled in. bw determines the color 0=white, 1=black.
    setRect(10, 10, 70, 40, 1, BLACK);
    setStr("Robojax ", 15, 20, WHITE);
    updateDisplay();
  delay(2000);

  /* setCircle Example */
  clearDisplay(WHITE);  
 
}

آپ کو جن چیزوں کی ضرورت ہو سکتی ہے

وسائل اور حوالہ جات

ابھی تک کوئی وسائل نہیں۔

فائلیں📁

ضروری فائل (.h)

فریٹزنگ فائل