//Primero las librerías que se van a ocupar, entonces aja, todo esto es required.
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Keypad.h>
//Lo que esta abajo, es la resolución de la pantalla, obvio xd
#define width 128
#define height 64
#define T_Top 20
#define T_Mid 33
#define T_Bot 46
#define OLED_RESET -1
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys [ROWS] [COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
//Conections to board
byte rowPins[ROWS] ={2,3,4,5};
byte colPins[COLS] ={6,7,8,9};
//Create keypad Object
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
//Iniciate OLED Screen parameters
//Ok, no tengo ni idea de que putas con esto,
//creo que son los parametros que va a usar la pantalla para iniciarse??
Adafruit_SSD1306 display(width, height, &Wire, OLED_RESET);
//Ahora sí, iniciamos la pantalla y el serial para debuggear.
void setup(){
//Iniciamos la pantalla, diciendole como que aja, agarre 3.3v pa empezar a servir xd
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3c)){
// en caso de que la HDP no inice, pos ahí que me diga que xd
Serial.println(F("FALLO ESTA MIERDA"));
for(;;);
}
Serial.println("Welcome to the Serial Playground!");
//El display.display, es para "actualizar" la pantalla, como hacer un refresh para enseñar lo que quiero.
//Entonces sieeempre que la pantalla cambie algo, hay que recordar poner el comando al final.
display.display();
delay(0);
//clearDisplay, lo que hace es limpiar la pantalla, la deja todo en negro
display.clearDisplay();
}
//Imaginemos que esto es como un comando de minecraft, Primero va el texto que queremos, luego coords, y tamaño.
void OLEDText(String text, int x, int y,int size, boolean d) {
display.setTextSize(size);
display.setTextColor(WHITE);
display.setCursor(x,y);
display.println(text);
if(d){
display.display();
}
}
void loop() {
//OLED Text and Objects.
OLEDText("Dispositivos:", 1, 1, 1, false);
//Dibujamos triangulito de "Scroll"
display.drawTriangle(64, 10, 60, 14, 68, 14, WHITE);
display.drawTriangle(64, 63, 60, 59, 68, 59, WHITE);
display.display();
//Lista de dispositivos.
OLEDText("Caja Digital", 20, T_Top, 1, false);
OLEDText("LED Matias", 20, T_Mid, 1, false);
OLEDText("LED Sala",20 , T_Bot, 1, false);
//OLEDText("Logitech 5.1", 1, 50, 1, false);
//OLEDText("Parlantes Panasonic", 1, 50, 1, false);
//OLEDText("Samsung TV", 1, 60, 1, false);
//OLEDText("Ventilador Sala", 1, 70, 1, false);
//OLEDText("Ventilador Sankey", 1, 80, 1, true);
//Coso para seleccionar el dispositivo
OLEDText(">",10 ,T_Mid, 1, false);
//Keypad, debug serial.
{
char customKey = customKeypad.getKey();
if (customKey) {
Serial.println(customKey);
}
}
char customkey = 2;{
Serial.println("ES UN DOS");
}
}