Als quasi nostalgisches Überbleibsel einer fast schon ausgestorbenen Handy-Generation verwenden wir heute das Nokia 5110 LCD-Display des gleichnamigen Funktelefons, netterweise als Breakoutboard für den schmalen Geldbeutel. Da das Display mit 3,3V arbeitet, benutzen wir es zusammen mit einem 8MHz getaktetem Arduino Pro Mini, welcher ebenfalls mit 3,3V läuft.
Statt des Arduino Pro Mini, kann natürlich auch ein Olimexino-32U4 verwendet werden, beachtet werden muss dabei allerdings, dass der Spannungs-Jumper auf 3,3V eingestellt und das Display vom 3,3V Pin versorgt wird.
Das Display sollte nicht mit 5V Arduinos verwendet werden.
Schaltplan (Arduino-Verdrahtung des Nokia 5110 LCD-Displays):
mit der Maus über Elemente fahren (oder im Touch-Modus: Elemente antippen)...
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 |
Die LED-Beleuchtung (LIGHT-Pin am LCD) kann natürlich weggelassen werden, zumindestens an einem hellen Tag.
Wie schon des Öfteren verwenden wir zwei Adafruit-Bibliotheken, diesmal die [SIMTRONYX_LIBRARY src=“Adafruit_PCD8544.zip“ name=“PCD8544-Bibliothek“], die sich um die Ansteuerung des Displays kümmert und eine [SIMTRONYX_LIBRARY src=“Adafruit_GFX.zip“ name=“Grafik-Bibliothek“], die wir beide den Arduino-Bibliotheken hinzufügen. Anschließen packen wir folgenden Code in einen Sketch, laden ihn auf den Arduino…
Programmcode (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 }
… und schon:
wurden wir zurückversetzt in die gute alte Zeit, als man mit Telefonen noch telefonieren konnte.
Bauteile (Bezugsquellen):
eBay: | Arduino Pro Mini 3.3V 8MHz Breadboard Breadboard Kabel Nokia 5110 Display |
Amazon: | Arduino Pro Mini 3.3V 8MHz Breadboard Breadboard Kabel Nokia 5110 Display |
Gut?