#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define X 128 // OLED display width, in pixels
#define Y 64 // OLED display height, in pixels
int de=2000; //delay
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(X, Y, &Wire, -1);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(500);
display.clearDisplay();
display.display();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
//================================================================
display.drawLine(0, 0, 0, Y, SSD1306_WHITE);
display.drawLine(X / 2, 0, X / 2, Y, X);
display.drawLine(X - 1, 0, X - 1, Y, SSD1306_WHITE);
display.drawLine(0, 0, X, 0, SSD1306_WHITE);
display.drawLine(0, (Y / 2) , X, (Y / 2), SSD1306_WHITE);
display.drawLine(0, Y - 1, X, Y - 1, SSD1306_WHITE);
//================================================================
display.setCursor(35,2);
display.print("Data Type");
display.setCursor(3,13);
display.print("1. voide");
display.setCursor(3,23);
display.print("2. int");
display.setCursor(3,33);
display.print("3. boolean");
display.setCursor(3,43);
display.print("4. char");
display.setCursor(3,53);
display.print("5. float");
display.display();
delay(de);
//==================================================================
display.clearDisplay();
display.setCursor(35,0);
display.print("Data Type");
display.setCursor(1,12);
display.print("1. void");
display.setCursor(5,25);
display.print("Ex: void setup");
display.setCursor(17,40);
display.print(": void loop");
display.setCursor(17,55);
display.print(": void blinking");
display.display();
delay(de);
//============================================================
display.clearDisplay();
display.setCursor(35,0);
display.print("Data Type");
display.setCursor(1,12);
display.print("2. int");
display.setCursor(5,25);
display.print("Ex: int a;");
display.setCursor(17,40);
display.print(": int a,b=2;");
display.display();
delay(de);
drawTable();
display.setCursor(1,1);
display.print("+Data Type of int");
display.setCursor(12, (Y / 2) + 12);
display.print("int");
display.setCursor(X / 3 + 4, (Y / 2) +5 );
display.print("2-");
display.setCursor(X / 3 + 2, (Y / 2) +17 );
display.print("bys");
display.setCursor(X / 3 + 24, (Y / 2) +5 );
display.print("16-");
display.setCursor(X / 3 + 25, (Y / 2) +17 );
display.print("bit");
display.setCursor((X * 2) / 3 + 2, (Y / 2) + 5);
display.print("-32768");
display.setCursor((X * 2) / 3 + 2, (Y / 2) + 17);
display.print("+32767");
display.display();
delay(de);
//===========================================================
display.clearDisplay();
display.setCursor(35,0);
display.print("Data Type");
display.setCursor(1,12);
display.print("3. boolearn");
display.setCursor(5,25);
display.print("Ex: bool a = true;");
display.setCursor(17,40);
display.print(": bool b = false;");
display.display();
delay(de);
drawTable();
display.setCursor(1,1);
display.print("+Data Type of bool");
display.setCursor(10, (Y / 2) + 12);
display.print("bool");
display.setCursor(X / 3 + 4, (Y / 2) +5 );
display.print("1-");
display.setCursor(X / 3 + 2, (Y / 2) +17 );
display.print("bys");
display.setCursor(X / 3 + 26, (Y / 2) +5 );
display.print("8-");
display.setCursor(X / 3 + 25, (Y / 2) +17 );
display.print("bit");
display.setCursor((X * 2) / 3 + 5, (Y / 2) + 5);
display.print("True &");
display.setCursor((X * 2) / 3 + 7, (Y / 2) + 17);
display.print("False");
display.display();
delay(de);
//===========================================================
display.clearDisplay();
display.setCursor(35,0);
display.print("Data Type");
display.setCursor(1,12);
display.print("4. char");
display.setCursor(5,25);
display.print("Ex: char me;");
display.setCursor(17,40);
display.print(": char love = 'U';");
display.display();
delay(de);
drawTable();
display.setCursor(1,1);
display.print("+Data Type of char");
display.setCursor(10, (Y / 2) + 12);
display.print("char");
display.setCursor(X / 3 + 4, (Y / 2) +5 );
display.print("1-");
display.setCursor(X / 3 + 2, (Y / 2) +17 );
display.print("bys");
display.setCursor(X / 3 + 26, (Y / 2) +5 );
display.print("8-");
display.setCursor(X / 3 + 25, (Y / 2) +17 );
display.print("bit");
display.setCursor((X * 2) / 3 + 10, (Y / 2) + 5);
display.print("-127");
display.setCursor((X * 2) / 3 + 4, (Y / 2) + 17);
display.print("to 128");
display.display();
delay(de);
//=========================================================
display.clearDisplay();
display.setCursor(35,0);
display.print("Data Type");
display.setCursor(1,12);
display.print("5. float");
display.setCursor(5,25);
display.print("Ex: float a = -1.4;");
display.setCursor(17,40);
display.print(": float b = 3.4;");
display.display();
delay(de);
drawTable();
display.setCursor(1,1);
display.print("+Data Type of float");
display.setCursor(8, (Y / 2) + 12);
display.print("float");
display.setCursor(X / 3 + 4, (Y / 2) +5 );
display.print("4-");
display.setCursor(X / 3 + 2, (Y / 2) +17 );
display.print("bys");
display.setCursor(X / 3 + 24, (Y / 2) +5 );
display.print("32-");
display.setCursor(X / 3 + 25, (Y / 2) +17 );
display.print("bit");
display.setCursor((X * 2) / 3 + 2, (Y / 2) + 5);
display.print("-3.4..");
display.setCursor((X * 2) / 3 + 4, (Y / 2) + 17);
display.print("3.4...");
display.display();
delay(de);
}
void drawTable() {
display.clearDisplay();
// Draw vertical lines
display.drawLine(0, 15, 0, Y, SSD1306_WHITE);
display.drawLine(X / 3, 15, X / 3, Y, X);
display.drawLine((X * 2) / 3, 15, (X * 2) / 3,Y,X);
display.drawLine((X/2), (Y/2)+2, (X/2), Y,SSD1306_WHITE);
display.drawLine(X - 1, 15, X - 1, Y, SSD1306_WHITE);
// Draw horizontal lines
display.drawLine(0, 15, X, 15, SSD1306_WHITE);
display.drawLine(0, (Y / 2)+2 , X, (Y / 2) +2, SSD1306_WHITE);
display.drawLine(0, Y - 1, X, Y - 1, SSD1306_WHITE);
//Print headers
display.setCursor(4, 20);
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.print("Data.T");
display.setCursor(X / 3 + 10, 20);
display.print("SIZE");
display.setCursor((X * 2) / 3 + 12, 20);
display.print("L.M");
display.display();
}
void loop() {
// put your main code here, to run repeatedly:
}