As a quasi-nostalgic relic of an almost extinct generation of cell phones we use today, the Nokia 5110 LCD screen from the cellular phone with the same name, kindly as a breakout board for a small budget. Because the display operates at 3.3V, we use it together with a 8MHz clocked Arduino Pro Mini, which also runs at 3.3V.
Instead of the Arduino Pro Mini, of course, you can also use a Olimexino-32U4, however the voltage jumper must then be set to 3.3V and the display must powered by the 3.3V pin.
The display should not be used with 5V Arduinos.
Schematic (Arduino and the Nokia 5110 LCD display wiring):
Arduino Pro Mini 3.3V Olimexino-32U4 (Jumper 3.3V!) |
Nokia 5110 display |
D3 | RST |
D4 | CE |
D5 | DC |
D6 | DIN |
D7 | CLK |
VCC (3.3V) | VCC |
GND | LIGHT |
GND | GND |
The LED lights (LIGHT pin on the LCD) can of course be omitted, at least on a bright day.
Again we use two Adadfruit libraries, this time the [SIMTRONYX_LIBRARY src=”Adafruit_PCD8544.zip” name=”PCD8544 library”], which deals with the control of the display and a [SIMTRONYX_LIBRARY src=”Adafruit_GFX.zip” name=”graphics library”], both of which we add to the Arduino libraries. Then we put the following code in a sketch and upload it to the Arduino …
Source code (sketch):
// Nokia 5110 LCD-Display (84x48 Bildpunkte) #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> // D7 - Serial clock out (CLK oder SCLK) // D6 - Serial data out (DIN) // D5 - Data/Command select (DC oder D/C) // D4 - LCD chip select (CE oder CS) // D3 - LCD reset (RST) Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); void setup() { // Display initialisieren display.begin(); // Kontrast setzen display.setContrast(60); display.clearDisplay(); // clears the screen and buffer } void loop() { display.setTextSize(1); set_text(11,0,"Hallo Welt!",BLACK); delay(500); display.drawLine(7,11,77,11,BLACK); display.display(); delay(500); display.drawCircle(8,23,5,BLACK); display.display(); delay(500); display.fillCircle(11,26,5,BLACK); display.display(); delay(500); display.drawRect(25,18,10,10,BLACK); display.display(); delay(500); display.fillRect(28,21,10,10,BLACK); display.display(); delay(500); display.drawRoundRect(47,18,10,10,2,BLACK); display.display(); delay(500); display.fillRoundRect(50,21,10,10,2,BLACK); display.display(); delay(500); display.drawTriangle(68,18,68,28,78,23,BLACK); display.display(); delay(500); display.fillTriangle(71,21,71,31,81,26,BLACK); display.display(); delay(500); // Ein kleines bisschen Scroll-Text-Magie int x=0; for(int i=0;i<(5.6*8);i++){ set_text(x,40,"blog.simtronyx.de",BLACK); delay(i==0?1000:100); if(i<(5.6*8)-1)set_text(x,40,"blog.simtronyx.de",WHITE); if((i)<(2.74*8))x-=1;else x+=1; } delay(250); display.clearDisplay(); // Display wieder löschen } void set_text(int x,int y,String text,int color){ display.setTextColor(color); // Textfarbe setzen, also Schwarz oder Weiss display.setCursor(x,y); // Startpunkt-Position des Textes display.println(text); // Textzeile ausgeben display.display(); // Display aktualisieren }
… and now:
we are back in the good old days.
Components:
eBay: | Breadboard Breadboard jumper wires Nokia 5110 Display |
Amazon: | Breadboard Breadboard jumper wires Nokia 5110 Display |
Good?