#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#define randomPin A2
int bt = 5;
bool btstate = 0;
//Loading Animations Characters
//Unloaded Characters
byte unloaded_1[8]={
B01111,
B11000,
B10000,
B10000,
B10000,
B10000,
B11000,
B01111
};
byte unloaded_2[8]={
B11111,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11111
};
byte unloaded_3[8]={
B11110,
B00011,
B00001,
B00001,
B00001,
B00001,
B00011,
B11110
};
//Loaded Characters
byte loaded_1[8]={
B01111,
B11000,
B10011,
B10111,
B10111,
B10011,
B11000,
B01111
};
byte loaded_2[8]={
B11111,
B00000,
B11111,
B11111,
B11111,
B11111,
B00000,
B11111
};
byte loaded_3[8]={
B11110,
B00011,
B11001,
B11101,
B11101,
B11001,
B00011,
B11110
};
byte first_half[8]={
B00011,
B00110,
B01101,
B01110,
B01101,
B01110,
B00111,
B00011
};
byte second_half[8]={
B11000,
B01100,
B10110,
B01110,
B10110,
B01110,
B11100,
B11000
};
String messages[20]={// All the messages possible from a Magic 8 Ball
"Ocupada no momento",
"Vc eh bicha",
"Bora por esse cu pra jogo?",
"Vc curte fio terra!",
"Vc eh corno",
"Ja foi a sua epoca",
"O pai e bom, mae e boa",
"O problema eh a guia anonima",
"Deposite 50 reais pra continuar",
"Nao eh nao",
"Se td der certo, vai dar errado",
"Escrevi e sai correndo, comi o cu de quem ta lendo",
"Sua mae sabe disso?",
"Nao vou responder",
"Estou cansada, tente mais tarde",
"Nao respondo vagabundo",
"Vc eh corno e nao sabe",
"Sua mae nasceu pelada",
"Tente de novo mais tarde, estou cagando",
"Vc buzina pra travesti no Villar"
};
LiquidCrystal_I2C lcd(0x27,16,2);
void setup(){
pinMode(bt, INPUT_PULLUP);
Wire.begin();
//Serial.begin(9600);
randomSeed(analogRead(randomPin));
//Creating all the custom characters
lcd.createChar(0,unloaded_1);
lcd.createChar(1,unloaded_2);
lcd.createChar(2,unloaded_3);
lcd.createChar(3,loaded_1);
lcd.createChar(4,loaded_2);
lcd.createChar(5,loaded_3);
lcd.createChar(6,first_half);
lcd.createChar(7,second_half);
lcd.init();
lcd.backlight();
}
void loop(){
lcd.setCursor(0,0);
lcd.write(byte(6));
lcd.setCursor(1,0);
lcd.write(byte(7));
lcd.setCursor(2,0);
lcd.print("Dona Sinara");
lcd.setCursor(14,0);
lcd.write(byte(6));
lcd.setCursor(15,0);
lcd.write(byte(7));
lcd.setCursor(1,1);
lcd.print("Aperte o botao");
btstate = digitalRead(bt);
if(btstate == (LOW)){
lcd.clear();
int randomNumber = random(0,20); //generating a Random number
delay(200);
lcd.setCursor(0,0);
lcd.print("Analizando...");
//Loading Animations
lcd.setCursor(0,1);
lcd.write(byte(0));
for(int i=1;i<=15;i++){
lcd.setCursor(i,1);
lcd.write(byte(1));
delay(20);
}
lcd.setCursor(15,1);
lcd.write(byte(2));
delay(2000);
lcd.setCursor(0,1);
lcd.write(byte(3));
delay(1000);
for(int i=1;i<=14;i++){
lcd.setCursor(i,1);
lcd.write(byte(4));
delay(500);
}
lcd.setCursor(15,1);
lcd.write(byte(5));
delay(1000);
lcd.clear();
delay(1000);
lcd.setCursor(0,0);
String message = messages[randomNumber];
int len = message.length();
lcd.print(messages[randomNumber]);
delay(500);
if(len > 16){
for(int i =0;i<len;i++){
lcd.scrollDisplayLeft();
delay(500);
}
}
else{
delay(1000);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Resetando");
delay(500);
lcd.setCursor(0,0);
lcd.print("Resetando.");
delay(500);
lcd.setCursor(0,0);
lcd.print("Resetando..");
delay(500);
lcd.setCursor(0,0);
lcd.print("Resetando...");
delay(500);
lcd.clear();
}
delay(500);
lcd.setCursor(1,1);
lcd.print(" ");
delay(500);
}