Magic 8 of Heart Code

From LVL1
Jump to navigation Jump to search
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <TFT_ILI9163C.h>

// Color definitions
#define	BLACK   0x0000
#define	BLUE    0x001F
#define	RED     0xF800
#define	GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0  
#define WHITE   0xFFFF

#define __CS 10
#define __DC 8
#define __RST 9

TFT_ILI9163C tft = TFT_ILI9163C(__CS, __DC, __RST);

//Messages
char* myStrings[]={"Be Mine","Be My Arduino","Love You","Hack Me","XOXO",
"You & Me","I Heart You","E=M(C^2)","(0.0)","#1","LVL1","AWESOME","Only You",
"Hug Me?","I'M Yours","WTF","LOL","YOLT","KISS ME","Raspberry PI","Legal Evil Forever"
};
//Row Position
int row[] = {50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50};
//Column Position
int col[] = {35,35,30,35,40,30,50,50,50,50,50,50,50,50,50,50,50,50,50,50,20};  
//Font Size
int font[] = {2,1,2,2,3,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};  

void setup() 
{
  tft.begin();
  randomSeed(analogRead(0));
  pinMode(5,OUTPUT);
  analogWrite(5,255);
  digitalWrite(5,LOW);
  pinMode(6,OUTPUT);
  analogWrite(5,255);
  digitalWrite(6,LOW);
  
}

void loop()
{
  int shook = 0;
  int slogan;

  digitalWrite(6,HIGH);
  delay(500);
  digitalWrite(6, LOW);

  tft.setRotation(3);

  while (1)
    {
      if ((analogRead(1) > 600) || (analogRead(1) < 400))
        shook = 1;
      if ((analogRead(2) > 600) || (analogRead(2) < 400))
        shook = 1;
      if ((analogRead(3) > 600) || (analogRead(3) < 400))
        shook = 1;

      if (shook == 1)
        {
          for(int x=0;x<5;++x)
            {
              digitalWrite(6,HIGH);
              delay(500);
              digitalWrite(6,LOW);
              delay(500);
            }
          slogan = random(0,21);
          testText(slogan);
          shook =0;
        }   
    }
}


void testText(int x) 
{
  digitalWrite(5, HIGH);
  tft.fillScreen();
  tft.setCursor(col[x],row[x]);
  tft.setTextColor(WHITE);  
  tft.setTextSize(font[x]);
  tft.println(myStrings[x]);
  delay(5000);
  tft.fillScreen();
  digitalWrite(5,LOW);
}