/* ESP32 WiFi Scanning example */
#include <Arduino_GFX_Library.h>
#define TFT_SCK 18
#define TFT_MOSI 23
#define TFT_MISO 19
#define TFT_CS 22
#define TFT_DC 21
#define TFT_RESET 17
#define BLACK 0x0000 //Paleta de colores aparte de la qie ya tiene la libreria
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
Arduino_ESP32SPI bus = Arduino_ESP32SPI(TFT_DC, TFT_CS, TFT_SCK, TFT_MOSI, TFT_MISO);
Arduino_ILI9341 tft = Arduino_ILI9341(&bus, TFT_RESET);
int P1=5;
int P2=16;
int Velocidad;
int velocidad_anterior;
long randomNumber;
int contador;
void IRAM_ATTR Parar(){
tft.fillScreen(WHITE);
randomNumber = random(1,120);
tft.fillCircle(randomNumber, randomNumber, 10, CYAN); // Diana
delay(100);
}
void IRAM_ATTR velocidad(){
if(Velocidad =! velocidad_anterior){
velocidad_anterior=Velocidad--;
Serial.print(velocidad_anterior);
}
}
void setup() {
attachInterrupt(digitalPinToInterrupt(P1),Parar,FALLING);
attachInterrupt(digitalPinToInterrupt(P2),velocidad,FALLING);
Serial.begin(115200); // Inicializamos el puerto serie
tft.begin();
//tft.init(240, 240, SPI_MODE3); // Inicializamos la pantalla
tft.fillScreen(WHITE); // La pintamos de negro
tft.fillCircle(120, 120, 10, MAGENTA); // Diana
delay(1000);
Velocidad=500;
}
void loop() {
for (contador = 0; contador <= 1; contador++) {
tft.fillCircle(120, 120, 10, WHITE); // Diana
tft.fillCircle(115, 115, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(115, 115, 10, WHITE); // Diana
tft.fillCircle(110, 110, 10, BLACK); // Diana
delay(Velocidad);
tft.fillCircle(110, 110, 10, WHITE); // Diana
tft.fillCircle(100, 100, 10, BLUE); // Diana
delay(Velocidad);
tft.fillCircle(100, 100, 10, WHITE); // Diana
tft.fillCircle(95, 95, 10, RED); // Diana
delay(Velocidad);
tft.fillCircle(95, 95, 10, WHITE); // Diana
tft.fillCircle(90, 90, 10, GREEN); // Diana
delay(Velocidad);
tft.fillCircle(90, 90, 10, WHITE); // Diana
tft.fillCircle(85, 85, 10, CYAN); // Diana
delay(Velocidad);
tft.fillCircle(85, 85, 10, WHITE); // Diana
tft.fillCircle(80, 80, 10, YELLOW); // Diana
delay(Velocidad);
tft.fillCircle(80, 80, 10, WHITE); // Diana
tft.fillCircle(75, 75, 10, RED); // Diana
delay(Velocidad);
tft.fillCircle(75, 75, 10, WHITE); // Diana
tft.fillCircle(60, 60, 10, GREEN); // Diana
delay(Velocidad);
tft.fillCircle(60, 60, 10, WHITE); // Diana
tft.fillCircle(55, 55, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(55, 55, 10, WHITE); // Diana
tft.fillCircle(50, 50, 10, YELLOW); // Diana
delay(Velocidad);
tft.fillCircle(50, 50, 10, WHITE); // Diana
tft.fillCircle(45, 45, 10, BLUE); // Diana
delay(Velocidad);
tft.fillCircle(45, 45, 10, WHITE); // Diana
tft.fillCircle(40, 40, 10, BLACK); // Diana
delay(Velocidad);
tft.fillCircle(40, 40, 10, WHITE); // Diana
tft.fillCircle(35, 35, 10, RED); // Diana
delay(Velocidad);
tft.fillCircle(35, 35, 10, WHITE); // Diana
tft.fillCircle(30, 30, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(30, 30, 10, WHITE); // Diana
tft.fillCircle(25, 25, 10, YELLOW); // Diana
delay(Velocidad);
tft.fillCircle(20, 20, 10, WHITE); // Diana
tft.fillCircle(15, 15, 10, GREEN); // Diana
delay(Velocidad);
tft.fillCircle(15, 15, 10, WHITE); // Diana
tft.fillCircle(10, 10, 10, CYAN); // Diana
delay(Velocidad);
}
for (contador = 1; contador <= 2; contador++) {
tft.fillCircle(10, 10, 10, WHITE); //Giro a derecha
tft.fillCircle(15, 16, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(15, 16, 10, WHITE); //Giro a derecha
tft.fillCircle(20, 17, 10, RED); // Diana
delay(Velocidad);
tft.fillCircle(20, 17, 10, WHITE); //Giro a derecha
tft.fillCircle(25, 18, 10, BLACK); // Diana
delay(Velocidad);
tft.fillCircle(25, 18, 10, WHITE); //Giro a derecha
tft.fillCircle(30, 19, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(30, 19, 10, WHITE); //Giro a derecha
tft.fillCircle(35, 20, 10, YELLOW); // Diana
delay(Velocidad);
tft.fillCircle(35, 20, 10, WHITE); //Giro a derecha
tft.fillCircle(40, 21, 10, GREEN); // Diana
delay(Velocidad);
tft.fillCircle(40, 21, 10, WHITE); //Giro a derecha
tft.fillCircle(45, 22, 10, CYAN); // Diana
delay(Velocidad);
tft.fillCircle(45, 22, 10, WHITE); //Giro a derecha
tft.fillCircle(50, 23, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(50, 23, 10, WHITE); //Giro a derecha
tft.fillCircle(55, 24, 10, GREEN); // Diana
delay(Velocidad);
tft.fillCircle(55, 23, 10, WHITE); //Giro a derecha
tft.fillCircle(60, 24, 10, RED); // Diana
delay(Velocidad);
tft.fillCircle(60, 24, 10, WHITE); //Giro a derecha
tft.fillCircle(65, 25, 10, YELLOW); // Diana
delay(Velocidad);
tft.fillCircle(65, 25, 10, WHITE); //Giro a derecha
tft.fillCircle(70, 26, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(70, 26, 10, WHITE); //Giro a derecha
tft.fillCircle(75, 27, 10, BLACK); // Diana
delay(Velocidad);
tft.fillCircle(75, 27, 10, WHITE); //Giro a derecha
tft.fillCircle(80, 28, 10, RED); // Diana
delay(Velocidad);
tft.fillCircle(80, 28, 10, WHITE); //Giro a derecha
tft.fillCircle(85, 29, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(85, 29, 10, WHITE); //Giro a derecha
tft.fillCircle(90, 30, 10, YELLOW); // Diana
delay(Velocidad);
tft.fillCircle(90, 30, 10, WHITE); //Giro a derecha
tft.fillCircle(95, 31, 10, GREEN); // Diana
delay(Velocidad);
tft.fillCircle(95, 31, 10, WHITE); //Giro a derecha
tft.fillCircle(100, 32, 10, CYAN); // Diana
delay(Velocidad);
tft.fillCircle(100, 32, 10, WHITE); //Giro a derecha
tft.fillCircle(105, 33, 10, MAGENTA); // Diana
delay(Velocidad);
tft.fillCircle(105, 33, 10, WHITE); //Giro a derecha
tft.fillCircle(110, 34, 10, RED); // Diana
delay(Velocidad);
tft.fillCircle(110, 34, 10, WHITE); //Giro a derecha
tft.fillCircle(115, 35, 10, YELLOW); // Diana
delay(Velocidad);
tft.fillCircle(115, 35, 10, WHITE); //Giro a derecha
tft.fillCircle(120, 36, 10, GREEN); // Diana
delay(Velocidad);
}
tft.fillScreen(WHITE);
}