Bastelseite Display + Antriebe Sensoren C++ | |
Da es ein IIC - oder auch I2C - Display ist, verläuft die Verkabelung mit nur zwei Anschlüssen recht einfach, neben 5 Volt und Ground. Die beiden Anschlüsse sind SCL und SDA.
Am UNO R3 kommt SCL an Pin A5 und SDA an Pin A4 .
GND +5V A5 A4
Kleine Werbetafel in der Modellbahn-Stadt mit Informationen: öffnet den Sketch in einem eigenen TAB:
werbung-1.ino
Viele Sonderzeichen und die deutsche Umlaute: öffnet den Sketch in einem eigenen TAB:
oled-sonderzeichen.ino
Mit diesen Zeilen vor Setup und der Zeile in Setup selbst habe ich bisher die besten Erfolge erzielen können. Einfach kopieren, Display am Uno anschließen und den Sketch in die IDE einfügen. START!
Öffnet den Sketch in einem eigenen TAB: oled-sonderzeichen.ino Und hier der Sketch dazu:
/* oled-sonderzeichen.ino OLED_I2C_128X64_Adafruit mit I2C-Anschluss: Display -> Arduino Uno GND an GND, VCC an 5V, SCL an A5 und SDA an A4 ASCII-Tabelle gefunden unter: https://lubasch.ch/wp-content/uploads/2015/01/ascii_tabelle.pdf */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_ADDRESS 0x3C /// See datasheet for Address; 0x3c for 128x64, 0x3C for 128x32 Adafruit_SSD1306 display(128, 64, &Wire, 4); int i; void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // 0x3C ist die Adresse des Displays } void loop() { display.clearDisplay(); bildaufbau(); display.setCursor(1, 0); display.println("Die deutschen Umlaute"); display.display(); delay(2000); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(8, 12); display.print("ae = "); display.write(132); display.print(" und AE = "); display.write(142); display.println(); display.display(); delay(3000); display.setCursor(8, 22); display.print("oe = "); display.write(148); display.print(" und OE = "); display.write(153); display.println(); display.display(); delay(3000); display.setCursor(8, 32); display.print("ue = "); display.write(129); display.print(" und UE = "); display.write(154); display.println(); display.display(); delay(3000); display.setCursor(8, 42); display.print("Scharfes S = "); display.write(224); display.println(); display.display(); delay(3000); block_ab_weg(); // Ab hier in Schriftgrösse 2 ---------- display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(15, 15); display.write(132); // ae display.print(" "); display.write(142); // AE display.println(); display.display(); delay(3000); display.setCursor(70, 15); display.write(148); // oe display.print(" "); display.write(153); // OE display.println(); display.display(); delay(3000); display.setCursor(15, 33); display.write(129); // ue display.print(" "); display.write(154); // UE display.println(); display.display(); delay(3000); display.setCursor(80, 33); display.write(224); // scharfes S display.println(); display.display(); delay(3000); block_ab_weg(); // und sonstige Zeichen 1 .... display.clearDisplay(); bildaufbau(); display.setCursor(1, 0); display.println(" Und sonstige Zeichen"); display.display(); delay(2000); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(8, 12); display.print("Smiley: "); display.write(1); display.print(" und "); display.write(2); display.println(); display.display(); delay(3000); display.setCursor(8, 22); display.print("Karten: "); display.write(3); display.write(4); display.write(5); display.write(6); display.println(); display.display(); delay(3000); display.setCursor(8, 32); display.print("Pfeile: "); display.write(17); display.write(30); display.write(31); display.write(16); display.println(); display.display(); delay(3000); display.setCursor(8, 42); display.print("Pfeile: "); display.write(27); display.write(24); display.write(25); display.write(26); display.print(" "); display.write(29); display.write(18); display.println(); display.display(); delay(3000); block_ab_weg(); // und sonstige Zeichen 2 .... display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(8, 12); display.print("W und M: "); display.write(12); display.print(" und "); display.write(11); display.println(); display.display(); delay(3000); display.setCursor(8, 22); display.print("Noten: "); display.write(14); display.print(" "); display.write(14); display.print(" "); display.write(14); display.println(); display.display(); delay(3000); display.setCursor(8, 32); display.print("sowie: "); display.write(126); display.print(" und "); display.write(171); display.print(" "); display.write(172); display.println(); display.display(); delay(3000); display.setCursor(8, 42); display.print("und "); display.write(127); display.print(" "); display.write(15); display.print(" "); display.write(19); display.print(" "); display.write(20); display.println(); display.display(); delay(5000); display.clearDisplay(); zeichensatz(); delay(8000); display.clearDisplay(); } // ENDE void loop // Aufbau der Anzeige void bildaufbau() { display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(13, 56); display.println("www.brixelweb.de"); display.drawLine(0, 9, 127, 9, WHITE); display.drawLine(0, 53, 127, 53, WHITE); display.display(); } // Darstellung des Zeichensatzes von 0 bis 168 void zeichensatz() { display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); for (uint8_t i = 0; i < 168; i++) { if (i == '\n') continue; display.write(i); if ((i > 0) && (i % 21 == 0)) display.println(); } display.display(); delay(1); } // Löschfunktion der inneren Seite void block_ab_weg() { for (int16_t i = 11; i <= 53; i++) { display.drawLine(0, i, 127, i, WHITE); display.drawLine(0, i - 1, 127, i - 1, BLACK); display.display(); } }