ESP32 C3 mit 0.42 inch LCD – Hello World!

Vor ein paar Wochen habe ich den im Titel genannten Mikrocontroller bei Banggood entdeckt. Im ersten Moment dachte ich, es handelt sich wieder um einen ESP32 mit zwei Kernen, aber diesmal war es der neue Typ C3, der nur einen Kern auf RISC-V Basis besitzt. Er soll der Nachfolger des ESP8266 sein und es durch seinen RISC-V Maschinencode ermöglichen, Verbesserungen am Compiler leichter zur Verfügung zu stellen. Eine gute Beschreibung findet sich hier.

Was mich an diesem neuen Produkt bei Banggood am meisten fasziniert hat, ist das winzige Display, welches sie auf dem ohnehin schon winzigen Board auch noch untergebracht haben. Und eine RGB LED.

Größenvergleich

Ganz links ist der neue ESP32 C3 Mikrocontroller mit Mini-Display. Daneben mein Lieblingscontroller, der TTGO T-Display. Und eine AA Zelle zum Vergleich.

Der ist schon winzig!

Vorbereitung

Flugs bestellt und schon ist er hier. Um ihn mit der Arduino IDE zu programmieren, muss die nachfolgende URL unter ‚Voreinstellungen→Zusätzliche Boardverwalter-URLs:‘ eingetragen werden.

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json

Anschließend kann ich unter ‚Werkzeuge→Board →Boardverwalter‘ nach ‚ESP32‘ suchen und das dann erscheinende ‚esp32‘ in der neuesten Version installieren, oder wie bei mir, auf 2.03 updaten. Jetzt lässt sich ‚ESP32C3 Dev Module‘ fürs Kompilieren auswählen.

RGB LED

Die RGB LED lässt sich mit der schon vor Jahren von Adafruit entwickelten Neopixel Bibliothek ganz leicht programmieren. Ihr findet sie über ‚Bibliotheken verwalten…‘. Hier der Adafruit Überguide dazu.

Display

Für das Display musste ich mir eine für mich neue Bibliothek installieren. Auch diese lässt sich über ‚Bibliotheken verwalten…‘ installieren. Sucht einfach nach ‚u8g2‘.

Hier findet Ihr alle zur Verwendung möglichen Zeichensätze:

https://github.com/olikraus/u8g2/blob/master/doc/u8g2fntlistall.pdf

Eine Taste verwenden

Interessant wäre es auch eine oder beide der Tasten verwenden zu können. Da der eine Taster für den Reset zuständig ist geht dieser leider nicht. Aber der ‚Boot‘-Key ist an IO 9 angeschlossen, wie man auf diesem Schema sehen kann. Um das zu testen habe ich noch eine einfache Abfrage programmiert. Für richtige Anwendungen empfehle ich aber den Verzicht auf die ‚Delays‘ und den Einsatz von Lennart Hennigs ‚Button2‘ Bibliothek.

Fazit

Während das TTGO T-Display mittlerweile mein absoluter Lieblings ESP32 Mikrocontroller ist, weiß ich noch nicht so genau was ich mit dem kleinen C3 anstellen soll. Aber mir wird schon noch etwas einfallen.

Es sei noch erwähnt, dass das Display nach kurzer Zeit einen Wackelkontakt zeigte und mittlerweile gar nicht mehr funktioniert.

Nachfolgend findet Ihr meinen Code für den ESP32 C3 mit Display:

#include <Adafruit_NeoPixel.h>
#include <U8g2lib.h>
#include <Wire.h>

#define RGB_PIN 2
#define SDA_PIN 5
#define SCL_PIN 6

#define BUTTON 9

Adafruit_NeoPixel strip = Adafruit_NeoPixel(1, RGB_PIN, NEO_GRB + NEO_KHZ800);

U8G2_SSD1306_72X40_ER_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

void setup() {
  //RGB Initialisierung
  strip.begin();
  strip.setBrightness(50);
  strip.show();

  //Display Initialisierung
  Wire.begin(SDA_PIN, SCL_PIN);
  u8g2.begin();
}

void loop() {
  // Rot
  strip.setPixelColor(0, 255, 0, 0);
  strip.show();
  delay (1000);
  // Grün
  strip.setPixelColor(0, 0, 255, 0);
  strip.show();
  delay (1000);
  // Blau
  strip.setPixelColor(0, 0, 0, 255);
  strip.show();
  delay (1000);

  // 'Hello World' auf Display schreiben
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_6x10_tf);
  u8g2.drawStr(0, 10, "Hello World!");
  u8g2.sendBuffer();
  delay(1000);

  // Den 'Boot'-Key abfragen
  if (digitalRead(BUTTON) == LOW) {
    strip.setPixelColor(0, 255, 255, 255);
    strip.show();
    delay (1000);
  }

}

Ein Kommentar

  1. Hallo ,
    Ich sehe Ihre Website http://www.steinlaus.de und sie ist beeindruckend. Ich frage mich, ob auf Ihrer Website Werbeoptionen wie Gastbeiträge oder Anzeigeninhalte verfügbar sind?
    Was ist der Preis, wenn wir auf Ihrer Website werben möchten?
    Hinweis: Artikel darf nicht als gesponsert oder Werbung gekennzeichnet sein.
    Danke schön
    Mary com

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.