Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Rotary-Encoder-Menü auf Nokia 5110 LCD mit Arduino UNO

Komponenten und Zubehör

Arduino UNO 1
Drehgeber (Rotary Encoder mit Taster) 1
Nokia 5110 LCD (PCD8544) 1

Software und Online-Dienste

Projektbeschreibung

In diesem Tutorial bauen wir ein eigenes Menü für das beliebte Nokia 5110 LCD-Display, um Projekte benutzerfreundlicher und leistungsfähiger zu machen.

Das Menü zeigt sechs Einträge an. Mit dem Drehgeber navigiert man hoch/runter, ein Druck auf den Encoder-Taster wählt einen Eintrag aus. Bei Auswahl öffnet sich ein Unterbildschirm, in dem sich ein Parameterwert ändern lässt. Ein weiterer Tastendruck kehrt zum Hauptmenü zurück. Der Bildschirm zeigt jeweils drei Einträge; beim Scrollen verschiebt sich der sichtbare Ausschnitt („Frame“).

Schritt 1: Teile beschaffen

Gesamtkosten unter 10 €.

Schritt 2: Nokia 5110 LCD

Der Nokia 5110 war ursprünglich ein Handy-Display mit PCD8544-Controller (Low-Power CMOS). Verbrauch: nur 0,4 mA bei aktiver Anzeige ohne Hintergrundbeleuchtung, < 0,06 mA im Sleep-Modus. Anbindung über serielle Bus-Schnittstelle (8 Drähte). Kosten ca. 4 €.

Schritt 3: Drehgeber

Ein Drehgeber wandelt Winkelposition in digitale Signale. Unser günstiges Modell hat einen integrierten Taster und benötigt 5 Anschlüsse. Kosten ca. 1,50 €.

Schritt 4: Aufbau

Display-Verdrahtung:

Drehgeber-Verdrahtung:

Schritt 5: Der Code

Verwendete Bibliotheken:

Kernvariablen:

int menuitem = 1;   // gewählter Menüeintrag (1–6)
int frame = 1;      // angezeigter Block (1=Einträge 1–3, 2=2–4, …)
int page = 1;       // 1=Hauptmenü, 2=Parameterbearbeitung
int lastMenuItem = 1;

Menüeinträge und Parameter als globale Variablen (leicht anpassbar):

String menuItem1 = "Contrast";
String menuItem2 = "Volume";
String menuItem3 = "Language";
String menuItem4 = "Difficulty";
String menuItem5 = "Light: ON";
String menuItem6 = "Reset";

boolean backlight = true;
int contrast = 60;
int volume = 50;
String language[3] = { "EN", "ES", "EL" };
int selectedLanguage = 0;
String difficulty[2] = { "EASY", "HARD" };
int selectedDifficulty = 0;

Im loop() wird zyklisch drawMenu() aufgerufen, dann der Encoder ausgelesen und Taster geprüft. Je nach page und menuitem werden Werte geändert oder Bildschirme gewechselt. Der Code ist ca. 400 Zeilen lang, aber modular und erweiterbar.

Schritt 6: Test

Nach dem Hochladen funktioniert das Menü: Navigation per Drehgeber, Auswahl per Taster, Parameteränderung im Untermenü. Verbesserungspotenzial: Nutzung von Interrupts statt Polling für geringeren Stromverbrauch und saubereren Code.

Code

Der vollständige Sketch (Nokia5110MenuRotary.ino) ist im Originalprojekt angehängt. Wichtige Ausschnitte oben.

Herstellungsprozess

  1. Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
  2. 20-kHz-Arduino-Oszilloskop mit Nokia 5110 LCD – Einfacher DIY-Bau
  3. LCD-Animationen & Spiele mit Arduino UNO erstellen
  4. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  5. Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
  6. Arduino UNO WiFi Webserver: LED per Browser steuern
  7. DIY-Voltmeter mit Arduino und Nokia 5110 Display – Schritt-für-Schritt-Anleitung
  8. Präzises DIY-Messrad mit Arduino Nano und Drehgeber
  9. Arduino-gesteuertes automatisiertes Chrome Dino-Spiel bauen
  10. Kompaktes FM-Radio mit Arduino Nano und RDA5807M selbst bauen