#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "Keypad.h"
const byte ROWS = 4; // number of rows
const byte COLS = 4; // number of columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'#','0','*','D'}
};
byte rowPins[ROWS] = {13, 12 , 11, 10}; // row pinouts of the keypad R1 = D8, R2 = D7, R3 = D6, R4 = D5
byte colPins[COLS] = {9, 8, 7, 6}; // column pinouts of the keypad C1 = D4, C2 = D3, C3 = D2
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const int SCREEN_WIDTH = 128;
const int SCREEN_HEIGT = 64;
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGT, &Wire, -1);
//determinamos los pines de entrada
void setup(){
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A2, OUTPUT);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
while(true);
}
display.clearDisplay();
//determinamos que en el cursor (1,0) apararezca el numero 1
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
//determinamos que al inicio en el cursor aparezca la palabra "HOLA"
display.println("HOLA");
display.setCursor(0, 32);
//determinamos que al inicio en el cursor aparezca la palabra "PROGRAMA"
display.println("PROGRAMA");
display.display();
delay(2000);
}
void loop() {
// put your main code here, to run repeatedly:
char key = keypad. getKey();
if (key != NO_KEY)
{
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
//Mostramos la palabra letra en nuestra pantalla
display.println("Letra");
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 32);
//
display.println(key);
display.display();
}
///Determinamos la secuencia para que al pulsar cada numero, se refleje en la pantalla y se refleje en numero binario.
//Para el 0 deben estar todos apagados
if (key == '0')
{
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(2, LOW);
digitalWrite(5, LOW);
}
//Para el 1 debe encender el pin 2 y mantener los demas apagados
if (key == '1')
{
digitalWrite(2, HIGH);
}
//Para el 2 debe apagar el 2 y encender el pin 3
if (key == '2')
{
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
}
//Para el 3 debe encender el 2 y el 3 pin permanecer encendido
if (key == '3')
{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
// Para el 4 deben apagar el (2,3) y encender el pin 4
if (key == '4')
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
//para el 5 deben encender los pines (2,4)
if (key == '5')
{
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
}
//Para el 6 debe apagar el pin 2 y encender el pin 3
if (key == '6')
{
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
}
//Para el 7 debe encender el los pines(3,4,2)
if (key == '7')
{
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(2, HIGH);
}
//Para el 8 Debe apagar todos y encender el pin 5
if (key == '8')
{
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
}
//Para el 9 deben encender solo los pines (2,5)
if (key == '9')
{
digitalWrite(2, HIGH);
digitalWrite(5, HIGH);
}
//Determinamos para que al presionar la letra A, active una bombilla en AC
if (key == 'A')
{
digitalWrite(A3, HIGH);
}
//Determianamos que al presionar la letra B, apague la bombilla
if (key == 'B')
{
digitalWrite(A3, LOW);
}
//Determianamos que al presionar la letra C, encienda un motor DC
if (key == 'C')
{
digitalWrite(A2, HIGH);
}
//Determianamos que al presionar la letra D, apague el motor
if (key == 'D')
{
digitalWrite(A2, LOW);
}
}