- 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."); | |
} |