#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define Ancho_De_Pantalla 128
#define Alto_De_Pantalla 64
/* //SDA,SCL,DC,RES,CS
Adafruit_SSD1306 display (Ancho_De_Pantalla, Alto_De_Pantalla, 22,23,19,21,18);
*/
Adafruit_SSD1306 display(Ancho_De_Pantalla, Alto_De_Pantalla, 22, 23);
#define boton 2
char N = 0;
/* #define Ancho_De_Logo 128
#define Alto_De_Logo 64
//Para imagen: javl.github.io/image2cpp/
static const unsigned char logo_bmp;
*/
void DibujarBMP()
{
display.display(); // iniciar la pantalla
display.clearDisplay(); //limpiar la pantalla
// display.drawBitmap(0, 0, logo_bmp, Ancho_De_Logo, Alto_De_Logo, 1);
display.display();
delay(1000);
}
void setup()
{
pinMode (boton,INPUT_PULLDOWN);
Serial.begin (115200);
if(display.begin (SSD1306_SWITCHCAPVCC))
{
Serial.println ("La pantalla ha fallado");
while (1);
}
else
Serial.println ("la pantalla ha iniciado correctamente");
Mensaje("hola", 24, 25);
DibujarBMP();
}
void Mensaje(String M, byte X, byte Y)
{
display.display(); // iniciar la pantalla
display.clearDisplay(); //limpiar la pantalla
display.setTextSize(1); //Ajuste del tamaño del texto
display.setTextColor(WHITE); //Ajuste del color de texto
display.setCursor(X, Y); //Coordenadas que va a iniciar el texto (X, Y)
display.println(M); //texto a escribir en pantalla
display.display();
}
void loop()
{
if(Serial.available())
{
N = Serial.println(N);
}
switch (N)
{
case '0':
display.display();
display.clearDisplay();
display.setTextSize(1); //definir que tamaño de texto tamaño 1 8x6 pixeles
display.setTextColor(WHITE);
display.setCursor(0,0); //coordenada para la pantalla oled
display.println("hola mundo"); //texto a escribir en pantalla
display.setCursor(0,10);
display.println("Inicia prueba de");
display.setCursor(0,20);
display.setTextColor(BLACK, WHITE);//ajustamos el color de texto para pantalla negra letras blancas
display.println("display");
display.display();//finaliza pantalla
break;
case '1':
display.display();
display.clearDisplay();
display.drawPixel(64, 32, WHITE);
display.display();
break;
case '2':
display.display();
display.clearDisplay();
display.drawLine(0, 0, 64, 32, WHITE); // Coordenadas (AX,AY,BX,BY,COLOR)
display.display();
break;
case '3':
display.display();
display.clearDisplay();
display.drawRect(10, 10, 40, 30, WHITE); //40 pixeles de ancho, 30 de alto; (AX,AY,ANCHO,ALTO,COLOR)
display.display();
break;
case '4':
display.display();
display.clearDisplay();
display.fillRect(10, 10, 40, 30, WHITE); //40 pixeles de ancho, 30 de alto; (AX,AY,ANCHO,ALTO,COLOR)
display.display();
break;
case '5':
for(byte i = 0; i < 64; i++)
{
display.display();
display.clearDisplay();
display.drawRoundRect(10, i, 40, 30, 6, WHITE); //40 pixeles de ancho, 30 de alto; (AX,AY,ANCHO,ALTO,RADIO,COLOR)
display.display();
delay(100);
}
for(byte i = 0; i < 64; i++)
{
display.display();
display.clearDisplay();
display.fillRoundRect(i, 10, 40, 30, 6, WHITE); //40 pixeles de ancho, 30 de alto; (AX,AY,ANCHO,ALTO,RADIO,COLOR)
display.display();
delay(100);
}
break;
case '6':
Mensaje("Dibujando Circulo", 10, 5);
for(byte i = 0; i < 64; i++)
{
display.display();
display.clearDisplay();
display.drawCircle(64, 32, i, WHITE); //(AX,AY, radio, color)
if(i >= 15)
{
display.fillCircle(64, 32, 15, WHITE); //(AX,AY, radio, color)
}
display.display();
delay(100);
}
break;
case '7':
for(byte i = 0; i < 64; i++)
{
display.display();
display.clearDisplay();
display.drawTriangle(10, i, 60, i, 100, 40, WHITE); //Coordenadas de vertices (AX,AY, BX, BY, CX, CY, color)
display.display();
delay(100);
}
break;
}
}
Loading
ssd1306
ssd1306