// C++ code
//
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
//#include <Keyboard.h>
#define buzzer 10
int tone_duration = 50;
int freq = 3000;
int seconds = 0;
int val; // variable to read the value from the analog pin
LiquidCrystal_I2C lcd(0x27,20,4);
const byte numRows= 4; //number of rows on the keypad
const byte numCols= 4; //number of columns on the keypad
//keymap defines the key pressed according to the row and columns just as appears on the keypad
char keymap[numRows][numCols]=
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
//Code that shows the the keypad connections to the arduino terminals
byte rowPins[numRows] = {2,3,4,5}; //Rows 0 to 3
byte colPins[numCols]= {6,7,8,9}; //Columns 0 to 3
//initializes an instance of the Keypad class
Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
unsigned long millisTarefa1 = millis();
//Icons
byte Page1Char[] = {
B00100,
B01110,
B11111,
B00000,
B00100,
B01100,
B00100,
B01110
};
byte Page2Char[] = {
B01110,
B00010,
B01110,
B01000,
B01110,
B00000,
B01110,
B00100
};
void setup()
{
Serial.begin(8000);
lcd.init();
lcd.backlight();
pinMode(buzzer, OUTPUT);// buzzer Som
lcd.clear();
lcd.print(F(" Loading..."));
lcd.createChar(0, Page1Char);
lcd.createChar(1, Page2Char);
}
void loop()
{
val = analogRead(3);
val = map(val, 0, 1023, 0, 6);
lcd.setCursor(0, 0);
//
switch(val)
{
case 0:
lcd.print(F("[ Edicao ]"));
//lcd.print (val);
lcd.setCursor(0, 1);
lcd.print(F("(1)Cortar (4)Desfaz "));
lcd.setCursor(0, 2);
lcd.print(F("(2)Copiar (5)Salvar "));
lcd.setCursor(0, 3);
lcd.print(F("(3)Colar (6)S. Tudo"));
Edicao();
break;
case 1:
lcd.print(F("[ WebApps ]"));
//lcd.print (val);
lcd.setCursor(0, 1);
lcd.print(F("(1)Notepad (4)G.Docs"));
lcd.setCursor(0, 2);
lcd.print(F("(2)Photope (5)G.Plan"));
lcd.setCursor(0, 3);
lcd.print(F("(3)JSPaint (6)Tinker"));
WebApps();
break;
case 2: lcd.print(F("[ Minha Live ]"));
//lcd.print (val);
//lcd.print (val);
lcd.setCursor(0, 1);
lcd.print(F("(1)Inicio (4)Aguarde"));
lcd.setCursor(0, 2);
lcd.print(F("(2)Webcam (5)Live "));
lcd.setCursor(0, 3);
lcd.print(F("(3)Tela (6)Gravar "));
Live();
break;
case 3: lcd.print(F("[ Chromebook ]"));
if((millis() - millisTarefa1) < 5000){
//lcd.print (val);
lcd.setCursor(18,0);lcd.write(0);
lcd.setCursor(0, 1);
lcd.print(F("(1)Apagar (4)PrintSC"));
lcd.setCursor(0, 2);
lcd.print(F("(2)Rename (5) <- "));
lcd.setCursor(0, 3);
lcd.print(F("(3)Info (6) -> "));
}else{
lcd.setCursor(18,0);lcd.write(1);
lcd.setCursor(0, 1);
lcd.print(F("(7)ReLoad (*) Vol + "));
lcd.setCursor(0, 2);
lcd.print(F("(8)FullSc (0) Vol - "));
lcd.setCursor(0, 3);
lcd.print(F("(9)Telas (#) Mute "));
}
//Tela 2
// Verifica se já passou 5000 milisegundos
// Verifica se já passou 10000 milisegundos
if((millis() - millisTarefa1) > 10000){
millisTarefa1 = millis();
}
ChromeBook();
break;
case 4: lcd.print(F("[ MikuMikuDance ]"));
if((millis() - millisTarefa1) < 5000){
//lcd.print (val);
lcd.setCursor(18,0);lcd.write(0);
lcd.setCursor(0, 1);
lcd.print(F("(1)Play (4) << "));
lcd.setCursor(0, 2);
lcd.print(F("(2)Mod/Cam (5) >> "));
lcd.setCursor(0, 3);
lcd.print(F("(3)Regist (6)TikTok"));
}else{
lcd.setCursor(18,0);lcd.write(1);
lcd.setCursor(0, 1);
lcd.print(F("(7) <- (*)Info "));
lcd.setCursor(0, 2);
lcd.print(F("(8) -> (0)Salvar"));
lcd.setCursor(0, 3);
lcd.print(F("(9)VideoHD (#) "));
}
if((millis() - millisTarefa1) > 10000){
millisTarefa1 = millis();
}
MMD();
break;
case 5: lcd.print(F("[ MMD Camera ]"));
//lcd.print (val);
lcd.setCursor(0, 1);
lcd.print(F("(1)Topo (4)Direit"));
lcd.setCursor(0, 2);
lcd.print(F("(2)Esquer (5)Baixo "));
lcd.setCursor(0, 3);
lcd.print(F("(3)Frente (6)Tras "));
MMDCam();
break;
case 6: lcd.print(F("[ Teclado Numerico ]"));
lcd.setCursor(0, 1);
lcd.print(F("Use o numeros abaixo"));
lcd.setCursor(0, 2);
lcd.print(F("A - / B - * C - - "));
lcd.setCursor(0, 3);
lcd.print(F("D - + * - , # - Ent "));
TecNum();
break;
}
}
void Edicao(){
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
switch(keypressed){
case '1':
{
delay(500);
Serial.println(F("1 - Cortar (CTRL+X)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '2':
{
delay(500);Serial.println(F("2 - Copiar (CTRL+C)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '3':
{
delay(500);Serial.println(F("3 - Colar (CTRL+V)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '4':
{
delay(500);Serial.println(F("4 - Desfazer (CTRL+Z)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '5':
{
delay(500);Serial.println(F("5 - Salvar (CTRL+S)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '6':
{
delay(500);Serial.println(F("6 - Selecionar tudo (CTRL+A)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '7':
{
}
break;
case '8':
{
}
break;
case '9':
{
}
break;
case '*':
{
}
break;
}
}
}
void WebApps(){
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
switch(keypressed){
case '1':
{
delay(500);
Serial.println(F("1 - Notepad (https://onlinenotepad.org/notepad)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '2':
{
delay(500);Serial.println(F("2 - Photopea (https://www.photopea.com/)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '3':
{
delay(500);Serial.println(F("3 - JS Paint (https://jspaint.app/#local:e59e8baaa066f)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '4':
{
delay(500);Serial.println(F("4 - Google Docs (https://docs.google.com/document/?usp=docs_alc&authuser=0)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '5':
{
delay(500);Serial.println(F("5 - Google Planilhas (https://docs.google.com/spreadsheets/?usp=sheets_alc&authuser=0)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '6':
{
delay(500);Serial.println(F("6 - Tinkercad (https://www.tinkercad.com)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '7':
{
}
break;
case '8':
{
}
break;
case '9':
{
}
break;
case '*':
{
}
break;
}
}
}
void Live(){
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
switch(keypressed){
case '1':
{
delay(500);
Serial.println(F("1 - Inicio (F13)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '2':
{
delay(500);Serial.println(F("2 - Web Cam (F14)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '3':
{
delay(500);Serial.println(F("3 - Tela (F14)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '4':
{
delay(500);Serial.println(F("4 - Aguardar (F15)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '5':
{
delay(500);Serial.println(F("5 - Transmitir (F16)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '6':
{
delay(500);Serial.println(F("6 - Gravar (F17)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '7':
{
}
break;
case '8':
{
}
break;
case '9':
{
}
break;
case '*':
{
}
break;
}
}
}
void ChromeBook(){
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
switch(keypressed){
case '1':
{
delay(500);
Serial.println(F("1 - Apagar (Alt+BackSpace)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '2':
{
delay(500);Serial.println(F("2 - Renomear (Alt+Enter)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '3':
{
delay(500);Serial.println(F("3 - Ver Informações (Espaço)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '4':
{
delay(500);Serial.println(F("4 - Captura de tela (Print SCR)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '5':
{
delay(500);Serial.println(F("5 - Voltar Página (F1)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '6':
{
delay(500);Serial.println(F("6 - Avançar Página (F2)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '7':
{
delay(500);Serial.println(F("7 - Recarregar Página (F3)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '8':
{
delay(500);Serial.println(F("8 - Tela Cheia (F4)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '9':
{
delay(500);Serial.println(F("9 - Mudar Telas (F5)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '*':
{
delay(500);Serial.println(F("* - Vol + (F10)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '0':
{
delay(500);Serial.println(F("0 - Vol - (F9)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '#':
{
delay(500);Serial.println(F("# - Mudo (F8)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
}
}
}
void MMD(){
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
switch(keypressed){
case '1':
{
delay(500);
Serial.println(F("1 - Play (P)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '2':
{
delay(500);Serial.println(F("2 - Model/Camera (TAB)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '3':
{
delay(500);Serial.println(F("3 - Registrar (Enter)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '4':
{
delay(500);Serial.println(F("4 - Primeiro Quadro (CTRL+Left)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '5':
{
delay(500);Serial.println(F("5 - Último Quadro (CTRL+Right)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '6':
{
delay(500);Serial.println(F("6 - Video TikTok (Monte de atalhos)"));
//Menu de Resolução de tela, mudar pra 1080x1920, confirmar
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '7':
{
delay(500);Serial.println(F("7 - Voltar Frame (Left)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '8':
{
delay(500);Serial.println(F("8 - Avançar Frame (Right)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '9':
{
delay(500);Serial.println(F("9 - Video HD (Monte de atalhos)"));
//Menu de Resolução de tela, mudar pra 1920x1080, confirmar
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '*':
{
delay(500);Serial.println(F("* - Info ()"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '0':
{
delay(500);Serial.println(F("0 - Salvar (CTRL+S)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '#':
{
}
break;
}
}
}
void MMDCam(){
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
switch(keypressed){
case '1':
{
delay(500);
Serial.println(F("1 - Topo (Num 8)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '2':
{
delay(500);Serial.println(F("2 - Esquerda (Num 4)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '3':
{
delay(500);Serial.println(F("3 - Frente (Num 5)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '4':
{
delay(500);Serial.println(F("4 - Direita (Num 6)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '5':
{
delay(500);Serial.println(F("5 - Baixo (Num 2)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '6':
{
delay(500);Serial.println(F("6 - Tras (Num 0)"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '7':
{
}
break;
case '8':
{
}
break;
case '9':
{
}
break;
case '*':
{
}
break;
case '0':
{
}
break;
case '#':
{
}
break;
}
}
}
void TecNum(){
char keypressed = myKeypad.getKey();
if (keypressed != NO_KEY)
{
switch(keypressed){
case '1':
{
delay(500);
Serial.println(F("1"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '2':
{
delay(500);Serial.println(F("2"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '3':
{
delay(500);Serial.println(F("3"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '4':
{
delay(500);Serial.println(F("4"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '5':
{
delay(500);Serial.println(F("5"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '6':
{
delay(500);Serial.println(F("6"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '7':
{
delay(500);Serial.println(F("7"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '8':
{
delay(500);Serial.println(F("8"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '9':
{
delay(500);Serial.println(F("9"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '*':
{
delay(500);Serial.println(F(","));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '0':
{
delay(500);Serial.println(F("0"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case '#':
{
delay(500);Serial.println(F("Enter"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case 'A':
{
delay(500);Serial.println(F("/"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case 'B':
{
delay(500);Serial.println(F("*"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case 'C':
{
delay(500);Serial.println(F("-"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
case 'D':
{
delay(500);Serial.println(F("+"));
tone(buzzer, freq, tone_duration);
delay(100);
noTone(buzzer);
}
break;
}
}
}