- Arduino Nano ESP32
- OLED Display Module
- Libraries used:
The sketch is not by me, it's reduced to a minimum and to document for myself how I connected the display 😅
The sketch is not by me, it's reduced to a minimum and to document for myself how I connected the display 😅
| /*************************************************** | |
| This is a example sketch demonstrating graphic drawing | |
| capabilities of the SSD1351 library for the 1.5" | |
| and 1.27" 16-bit Color OLEDs with SSD1351 driver chip | |
| Pick one up today in the adafruit shop! | |
| ------> http://www.adafruit.com/products/1431 | |
| ------> http://www.adafruit.com/products/1673 | |
| If you're using a 1.27" OLED, change SCREEN_HEIGHT to 96 instead of 128. | |
| These displays use SPI to communicate, 4 or 5 pins are required to | |
| interface | |
| Adafruit invests time and resources providing this open source code, | |
| please support Adafruit and open-source hardware by purchasing | |
| products from Adafruit! | |
| Written by Limor Fried/Ladyada for Adafruit Industries. | |
| BSD license, all text above must be included in any redistribution | |
| The Adafruit GFX Graphics core library is also required | |
| https://github.com/adafruit/Adafruit-GFX-Library | |
| Be sure to install it! | |
| ****************************************************/ | |
| // Screen dimensions | |
| #define SCREEN_WIDTH 128 | |
| #define SCREEN_HEIGHT 128 // Change this to 96 for 1.27" OLED. | |
| // You can use any (4 or) 5 pins | |
| #define SCLK_PIN 2 | |
| #define MOSI_PIN 3 | |
| #define DC_PIN 4 | |
| #define CS_PIN 5 | |
| #define RST_PIN 6 | |
| // Color definitions | |
| #define BLACK 0x0000 | |
| #define BLUE 0x001F | |
| #define RED 0xF800 | |
| #define GREEN 0x07E0 | |
| #define CYAN 0x07FF | |
| #define MAGENTA 0xF81F | |
| #define YELLOW 0xFFE0 | |
| #define WHITE 0xFFFF | |
| #include <Adafruit_GFX.h> | |
| #include <Adafruit_SSD1351.h> | |
| #include <SPI.h> | |
| // Option 1: use any pins but a little slower | |
| Adafruit_SSD1351 tft = Adafruit_SSD1351(SCREEN_WIDTH, SCREEN_HEIGHT, CS_PIN, DC_PIN, MOSI_PIN, SCLK_PIN, RST_PIN); | |
| // Option 2: must use the hardware SPI pins | |
| // (for UNO thats sclk = 13 and sid = 11) and pin 10 must be | |
| // an output. This is much faster - also required if you want | |
| // to use the microSD card (see the image drawing example) | |
| //Adafruit_SSD1351 tft = Adafruit_SSD1351(SCREEN_WIDTH, SCREEN_HEIGHT, &SPI, CS_PIN, DC_PIN, RST_PIN); | |
| float p = 3.1415926; | |
| void setup(void) { | |
| Serial.begin(9600); | |
| tft.begin(); | |
| // 0 = no rotation, 1 = 90 degrees clockwise, 2 = degrees 180, 3 = 270 degrees | |
| // tft.setRotation(1); | |
| tft.fillScreen(BLACK); | |
| testTriangles(); | |
| delay(1000); | |
| // tft print function! | |
| tftPrintTest(); | |
| delay(1000); | |
| } | |
| void loop() { | |
| } | |
| void testDrawText(char *text, uint16_t color) { | |
| tft.setCursor(0,0); | |
| tft.setTextColor(color); | |
| tft.print(text); | |
| } | |
| void testTriangles() { | |
| tft.fillScreen(BLACK); | |
| int color = 0xF800; | |
| int t; | |
| int w = tft.width()/2; | |
| int x = tft.height(); | |
| int y = 0; | |
| int z = tft.width(); | |
| for(t = 0 ; t <= 15; t+=1) { | |
| tft.drawTriangle(w, y, y, x, z, x, color); | |
| x-=4; | |
| y+=4; | |
| z-=4; | |
| color+=100; | |
| } | |
| } | |
| void tftPrintTest() { | |
| tft.setCursor(0, 5); | |
| tft.fillScreen(BLACK); | |
| tft.setTextColor(WHITE); | |
| tft.setTextSize(0); | |
| tft.println("Hello World!"); | |
| tft.setTextSize(1); | |
| tft.setTextColor(GREEN); | |
| tft.print(p, 6); | |
| tft.println(" Want pi?"); | |
| tft.println(" "); | |
| tft.print(8675309, HEX); // print 8,675,309 out in HEX! | |
| tft.println(" Print HEX!"); | |
| tft.println(" "); | |
| tft.setTextColor(WHITE); | |
| tft.println("Sketch has been"); | |
| tft.println("running for: "); | |
| tft.setTextColor(MAGENTA); | |
| tft.print(millis() / 1000); | |
| tft.setTextColor(WHITE); | |
| tft.print(" seconds."); | |
| } |