/*  Title: Simple Marquesina en pantalla TFT
 *  Author: Rubén Lozano
*/
//Librerias
#include "SPI.h" //Libreria para uso de comunicación SPI 
#include "Adafruit_GFX.h" // Libreria de graficos
#include "Adafruit_ILI9341.h"//Libreria de Driver ILI9341

// Pines de conexion del LCD
#define TFT_DC 9
#define TFT_CS 10
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

//COLORES
#define BLACK 0x0000 // Definimos los colores para poder referirnos a ellos con su nombre
#define RED 0xF800 // en lugar de usar el código hexadecimal de cada uno.
#define GREEN 0x07E0
#define WHITE 0xFFFF
#define BLUE 0x001F
#define CYAN 0x07FF
#define YELLOW 0xFFE0
#define MAGENTA 0xF81F
int xPos = 0;

//SETUP
void setup(void)
{
 tft.begin(); // Iniciamos el LCD especificando el controlador de nuestro LC. En este caso el ILI9341.
 // Otros controladores: 0x9325, 0x9328,0x7575, 0x9341, 0x8357.
 tft.fillScreen(BLACK); // Colocamos el fondo del LCD en Negro 
 tft.setTextColor(BLUE,WHITE); // Definimos el color del texto 
 tft.setTextWrap(false);//large letters - si es true acomoda las letras mas a la izquierda
 tft.setTextSize(6); // Definimos tamaño del texto. (Probado tamaños del 1 al 10)
 tft.setRotation(1); // Establecemos la posición de la pantalla Vertical u Horizontal
} 

//LOOP
void loop(void)
{
  String text = "...ServiPCsolutionEC"; //Variable con el mensaje
  const int width = 18; //Ancho de mensaje visto

 for(int offset = 0; offset < text.length(); offset ++)
 {
  String t="";
  for(int i = 0; i < width; i ++)
  t += text.charAt((offset + i) % text.length());
  tft.setCursor(0, tft.height()/2-10); // Situamos el cursor en la posición del LCD deseada,
  tft.print(t); // Escribimos nuestro texto en el LCD. Realizará un salto de linea
 // automático si el texto es mayor que el tamaño del LCD
  delay(200);
 }

}