Codice Arduino per un display LCD Nokia 5110
In questo tutorial esploreremo come utilizzare lo schermo LCD Nokia 5110 con un Arduino per visualizzare vari elementi grafici e testo. Il progetto mostrerà come disegnare linee, cerchi, rettangoli e persino visualizzare testo all'interno di queste forme. Al termine, avrai una comprensione migliore di come interagire con questo LCD utilizzando il codice Arduino.

Per fornire indicazioni più chiare, ti incoraggio a guardare il video associato per una rappresentazione visiva del cablaggio e dell'implementazione del codice (nel video a 00:00).
Hardware spiegato
L'LCD Nokia 5110 è un display grafico compatto che funziona tramite il protocollo SPI, consentendo una comunicazione efficiente con l'Arduino. Presenta una risoluzione di 84x48 pixel, sufficiente per visualizzare grafica e testo di base. Il display richiede solo pochi pin per funzionare, rendendolo un'ottima scelta per progetti con opzioni di I/O limitate.
Oltre al display LCD, avrai bisogno di una scheda Arduino, tipicamente un Arduino Uno o un modello simile, di una breadboard e di alcuni cavi jumper. Il cablaggio è semplice e l'LCD viene alimentato collegando il suo pin VCC all'uscita 5V dell'Arduino.
Dettagli della scheda tecnica
| Produttore | Philips |
|---|---|
| Numero di parte | PCD8544 |
| Tensione logica/IO | 3,3 V |
| Tensione di alimentazione | 3,3 - 5,0 V |
| Corrente massima | 200 µA |
| Risoluzione dello schermo | 84 x 48 pixel |
| Interfaccia | Seriale (SPI) |
| Pacchetto | Modulo |
- Usare una resistenza limitatrice di corrente sul pin del LED per evitare danni.
- Assicurarsi che le connessioni a VCC e GND siano salde per evitare problemi di visualizzazione.
- Ricontrollare le connessioni dei pin SPI: SCE, RST, D/C, DN e SCLK.
- Mantieni l'impostazione del contrasto nell'intervallo consigliato (40-60).
- Aggiorna il display dopo aver disegnato la grafica per vedere le modifiche.
Istruzioni di cablaggio

Per collegare il display Nokia 5110 al tuo Arduino, segui queste connessioni:
- Collega gli LCD
VCCpin all'Arduino5Vspillo. - Collega il
GNDpin del display LCD a uno dei pin dell'ArduinoGNDspilli. - Collega il
SCEpin sul display LCD al pin7sull'Arduino. - Collega il
RSTda pin a pin6. - Collega il
D/Cda pin a pin5. - Collega il
DN (MOSI)pin per pin11. - Collega il
SCLKpin a pin13. - Infine, collega il
LEDpin a pin9attraverso un resistore da 330 ohm.
Queste connessioni permetteranno all'Arduino di comunicare efficacemente con l'LCD. Se devi adattare il cablaggio alla tua configurazione specifica, assicurati che i pin SPI rimangano coerenti.
Esempi di codice e guida passo passo
Il seguente frammento di codice inizializza l'LCD e imposta il contrasto:
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 questo snippet, illcdBegin()la funzione imposta i pin necessari per l'LCD, mentresetContrast(40)Regola il contrasto del display. Dopo una breve attesa, il display viene cancellato per prepararlo a nuovi contenuti.

Successivamente, possiamo disegnare una linea sul display:
setLine(1, 4, 70, 4, BLACK); // Draw a horizontal line
updateDisplay(); // Make the line visible
Questa riga di codice utilizza ilsetLine()funzione, che prende le coordinate iniziali e finali insieme a un parametro colore. Dopo aver disegnato, è essenziale chiamareupdateDisplay()per riflettere le modifiche sullo schermo.
Infine, possiamo visualizzare del testo all'interno di un rettangolo:
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
Qui,setRect()crea un rettangolo, mentresetStr()Posiziona il testo al suo interno. I parametri di colore definiscono come il rettangolo e il testo vengono visualizzati sullo schermo.
Dimostrazione / Cosa aspettarsi
Eseguendo il codice, dovresti vedere una serie di elementi grafici visualizzati sul display LCD Nokia 5110, inclusi linee, cerchi, rettangoli e testo. Assicurati che il cablaggio sia corretto per evitare problemi come polarità invertita o ingressi flottanti, che potrebbero impedire il funzionamento del display (nel video a 02:30).
Timestamp del video
- 00:00- Introduzione al progetto
- 01:30- Istruzioni di cablaggio
- 03:00- Configurazione del codice e spiegazione
- 05:00- Visualizzazione di grafica e testo
- 07:30- Conclusione e ulteriori modifiche
/*
* 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);
}
Cose di cui potresti avere bisogno
-
Amazon
-
Amazon
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
File richiesto (.h)
-
robojax-nokia5110.h header file for Arduino
robojax-nokia5110.zip0.01 MB
File Fritzing
-
Nokia 5110 LCD
Nokia_5110_LCD.fzpz0.03 MB -
Joystick Nero KY-023
Black Joystick KY-023.fzpz0.02 MB