Suchcode

Arduino-Code für ein Nokia 5110 LCD-Display

Arduino-Code für ein Nokia 5110 LCD-Display


In diesem Tutorial werden wir erkunden, wie man das Nokia 5110 LCD-Display mit einem Arduino verwendet, um verschiedene Grafiken und Texte darzustellen. Das Projekt zeigt, wie man Linien, Kreise und Rechtecke zeichnet und sogar Text innerhalb dieser Formen anzeigt. Am Ende wirst du ein besseres Verständnis dafür haben, wie du mit diesem LCD mithilfe von Arduino-Code interagierst.

Nokia 5110_LCD

Um eine klarere Anleitung zu geben, empfehle ich Ihnen, sich das zugehörige Video anzusehen, das die Verdrahtung und die Implementierung des Codes visuell darstellt (im Video bei 00:00).

Hardware erklärt

Das Nokia 5110 LCD ist ein kompaktes grafisches Display, das über das SPI-Protokoll betrieben wird und eine effiziente Kommunikation mit dem Arduino ermöglicht. Es verfügt über eine Auflösung von 84×48 Pixeln, die ausreichend ist, um einfache Grafiken und Text anzuzeigen. Das Display benötigt nur wenige Pins zum Betrieb, was es zu einer ausgezeichneten Wahl für Projekte mit begrenzten I/O-Optionen macht.

Zusätzlich zum LCD benötigen Sie ein Arduino-Board, typischerweise ein Arduino Uno oder ein ähnliches, ein Steckbrett und einige Jumper-Kabel. Die Verkabelung ist unkompliziert, und das LCD wird mit Strom versorgt, indem sein VCC-Pin mit dem 5V-Ausgang des Arduino verbunden wird.

Datenblattdetails

HerstellerPhilips
TeilenummerPCD8544
Logik-/I/O-Spannung3,3 V
Versorgungsspannung3.3 - 5.0 V
Maximalstrom200 µA
Bildschirmauflösung84 x 48 Pixel
SchnittstelleSeriell (SPI)
PaketModul

  • Verwenden Sie einen strombegrenzenden Widerstand für den LED-Pin, um Schäden zu vermeiden.
  • Stellen Sie sicher, dass die Verbindungen zu VCC und GND fest sitzen, um Anzeigeprobleme zu vermeiden.
  • Überprüfen Sie nochmals die SPI-Pinverbindungen: SCE, RST, D/C, DN und SCLK.
  • Halten Sie die Kontrasteinstellung im empfohlenen Bereich (40-60).
  • Aktualisieren Sie die Anzeige nach dem Zeichnen von Grafiken, um die Änderungen zu sehen.

Verdrahtungsanleitung

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

Verbinden Sie das Nokia 5110 LCD mit Ihrem Arduino wie folgt:

  • Schließen Sie die LCDs an.VCCPin zum Arduino5VNadel.
  • Verbinden Sie dieGNDPin am LCD zu einem der Arduino-PinsGNDNadeln.
  • Verbinden Sie dasSCEpin am LCD an pin7auf dem Arduino.
  • Verbinden Sie dasRSTPin zu Pin6.
  • Verbinden Sie dieD/CPin zu Pin5.
  • Schließen Sie dasDN (MOSI)Pin zu Pin11.
  • Verbinden Sie dasSCLKPin zu Pin13.
  • Schließlich verbinden Sie dasLEDPin zu Pin9durch einen 330-Ohm-Widerstand.

Diese Verbindungen ermöglichen dem Arduino, effektiv mit dem LCD zu kommunizieren. Wenn Sie die Verkabelung für Ihre spezifische Konfiguration anpassen müssen, stellen Sie sicher, dass die SPI-Pins konsistent bleiben.

Codebeispiele und Schritt-für-Schritt-Anleitung

Der folgende Codeausschnitt initialisiert das LCD und stellt den Kontrast ein:


void setup() {
  Serial.begin(9600);
  lcdBegin(); // Initialize the LCD
  setContrast(40); // Set contrast level
  delay(2000);
  clearDisplay(BLACK); // Clear the display
  updateDisplay(); // Update the display
}

In diesem Ausschnitt, derlcdBegin()Die Funktion richtet die notwendigen Pins für das LCD ein, währendsetContrast(40)Passt den Kontrast des Displays an. Nach einer kurzen Verzögerung wird das Display gelöscht, um es für neue Inhalte vorzubereiten.

Nokia 5110_LCD back view

Als Nächstes können wir eine Linie auf dem Display zeichnen:


setLine(1, 4, 70, 4, BLACK); // Draw a horizontal line
updateDisplay(); // Make the line visible

Diese Codezeile verwendet dassetLine()Funktion, die die Start- und Endkoordinaten sowie einen Farbparameter entgegennimmt. Nach dem Zeichnen ist es wichtig, aufzurufenupdateDisplay()um die Änderungen auf dem Bildschirm anzuzeigen.

Schließlich können wir Text innerhalb eines Rechtecks anzeigen:


setRect(10, 10, 70, 40, 1, BLACK); // Draw a filled rectangle
setStr("Robojax ", 15, 20, WHITE); // Display text inside
updateDisplay(); // Update to show the changes

Hier,setRect()erstellt ein Rechteck, währendsetStr()Platziert Text darin. Die Farbparameter legen fest, wie das Rechteck und der Text auf dem Bildschirm dargestellt werden.

Demonstration / Was Sie erwartet

Nach dem Ausführen des Codes sollten Sie eine Reihe von Grafiken auf dem Nokia 5110 LCD sehen, darunter Linien, Kreise, Rechtecke und Text. Stellen Sie sicher, dass Ihre Verkabelung korrekt ist, um Probleme wie falsche Polung oder offene Eingänge zu vermeiden, die das Funktionieren des Displays verhindern könnten (im Video bei 02:30).

Video-Zeitstempel

  • 00:00- Einführung in das Projekt
  • 01:30 Uhr- Verdrahtungsanleitung
  • 03:00- Code-Einrichtung und Erklärung
  • 05:00- Anzeige von Grafiken und Text
  • 07:30- Fazit und weitere Änderungen

Bilder

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.
Sprache: 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);  
 
}

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Fritzing-Datei