Arduino Nano - Tastenanzahl - OLED

Detaillierte Anleitungen, Code, Schaltungsdiagramm, Video-Tutorial und eine zeilenweise Code-Erklärung werden bereitgestellt, um Ihnen den schnellen Einstieg in das Arduino Nano zu erleichtern.

Diese und weitere Arduino Nano-Tutorials finden Sie auf Newbiely.com.

Dieses Tutorial zeigt Ihnen, wie Sie einen Arduino Nano und einen Taster verwenden, um Tastendrücke zu zählen und anschließend den Wert auf dem OLED anzuzeigen. Im Detail:

In diesem Tutorial werden wir den Button entprellen, ohne die delay()-Funktion zu verwenden. Für weitere Informationen verweisen Sie bitte auf Warum brauchen wir eine Entprellung?

Sie können dies so ändern, dass es mit verschiedenen Sensoren statt des Buttons funktioniert.

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×Breadboard-Taster mit Kappe
1×Breadboard-Taster-Kit
1×Panel-Drucktaster
1×Taster-Modul
1×SSD1306 I2C OLED-Display 128x64
1×SSD1306 I2C OLED-Display 128x32
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über OLED und Schaltfläche

Wenn Sie mit OLED und Taster (Pinbelegung, Funktionalität, Programmierung usw.) nicht vertraut sind, können Ihnen die folgenden Tutorials helfen:

Verdrahtungsdiagramm

Arduino Nano Taster OLED Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Arduino Nano-Code - Anzeige der Anzahl der Tasten auf dem OLED-Display

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-button-count-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <ezButton.h> #define OLED_WIDTH 128 // OLED display width, in pixels #define OLED_HEIGHT 64 // OLED display height, in pixels Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C ezButton button(2); // create ezButton object for pin D2 unsigned long prev_count = 0; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display button.setDebounceTime(50); // set debounce time to 50 milliseconds button.setCountMode(COUNT_FALLING); } void loop() { button.loop(); // MUST call the loop() function first unsigned long count = button.getCount(); if (prev_count != count) { Serial.println(count); // print count to Serial Monitor oled.clearDisplay(); // clear display oled.println(count); // display count oled.display(); // show on OLED prev_count != count; } }

Schnelle Schritte

  • Klicken Sie auf das Bibliotheken-Symbol in der linken Seitenleiste der Arduino IDE.
  • Suchen Sie nach “ezButton”, und finden Sie dann die Button-Bibliothek von ArduinoGetStarted.
  • Drücken Sie die Installieren-Schaltfläche, um die ezButton-Bibliothek zu installieren.
Arduino Nano Taster-Bibliothek
  • Suchen Sie nach “SSD1306” und finden Sie die von Adafruit erstellte SSD1306-Bibliothek.
  • Drücken Sie dann auf die Schaltfläche Install, um die Installation abzuschließen.
Arduino Nano OLED-Bibliothek
  • Sie werden aufgefordert, zusätzliche Bibliotheksabhängigkeiten zu installieren.
  • Um alle von ihnen zu installieren, klicken Sie auf die Schaltfläche Alle installieren.
Arduino Nano Adafruit GFX Sensorbibliothek
  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie dann auf die Upload-Schaltfläche, um den Code auf den Arduino Nano zu übertragen.
  • Drücken Sie anschließend mehrmals den Knopf.
  • Beobachten Sie schließlich den sich ändernden Zählerwert auf dem OLED.

Der obige Code zeigt die Anzahl der Knopfdrucke in der oberen linken Ecke. Ändern wir ihn so, dass er in der Mitte erscheint!

Arduino Nano Code - Vertikale und Horizontale Zentrierung auf dem OLED-Display

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-button-count-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <ezButton.h> #define OLED_WIDTH 128 // OLED display width, in pixels #define OLED_HEIGHT 64 // OLED display height, in pixels Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C ezButton button(2); // create ezButton object for pin D2 unsigned long prev_count = 0; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display button.setDebounceTime(50); // set debounce time to 50 milliseconds button.setCountMode(COUNT_FALLING); } void loop() { button.loop(); // MUST call the loop() function first unsigned long count = button.getCount(); if (prev_count != count) { Serial.println(count); // print count to Serial Monitor String text = String(count); oled_display_center(text); prev_count != count; } } void oled_display_center(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // center the display both horizontally and vertically oled.clearDisplay(); // clear display oled.setCursor((OLED_WIDTH - width) / 2, (OLED_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

※ Notiz:

Der folgende Code zentriert den Text horizontal und vertikal auf einem OLED-Display. Weitere Informationen finden Sie unter Wie man Text und Zahlen auf OLED vertikal und horizontal zentriert.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!