#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
//#define TFT_DC 9
//#define TFT_CS 10
//Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
#define TFT_DC 9
#define TFT_CS 10
#define TFT_MOSI 11
#define TFT_CLK 13
#define TFT_RST 10
#define TFT_MISO 12
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
#define JUMLAH_LED 16
class LED {
private:
int pin[JUMLAH_LED] = {2,3,4,5,6,7,8,22,23,25,27,29,31,33,35,37};
public:
void inisialisasi(){
for(unsigned int i=0; i<JUMLAH_LED; i++){
pinMode(pin[i], OUTPUT);
}
}
void on(){
for(unsigned int i=0; i<JUMLAH_LED; i++){
digitalWrite(pin[i], HIGH);
}
}
void on(int led_number){
digitalWrite(pin[led_number], HIGH);
}
void off(){
for(unsigned int i=0; i<JUMLAH_LED; i++){
digitalWrite(pin[i], LOW);
}
}
void off(int led_number){
digitalWrite(pin[led_number], LOW);
}
};
LED led;
void sequence1(unsigned int ms){
for(unsigned int i=0; i<JUMLAH_LED; i++){
led.on(i);
delay(ms);
}
for(unsigned int i=0; i<JUMLAH_LED; i++){
led.off(i);
delay(ms);
}
}
void sequence2(unsigned int ms){
// On Genap
for(unsigned int i=0; i<JUMLAH_LED; i++){
if(i%2==0){
led.on(i);
} else {
led.off(i);
}
}
delay(ms);
// Off Genap
for(unsigned int i=0; i<JUMLAH_LED; i++){
if(i%2==1){
led.on(i);
} else {
led.off(i);
}
}
delay(ms);
}
void sequence3(unsigned long ms){
long random_index = random(0, JUMLAH_LED);
for(int i=0; i<JUMLAH_LED; i++){
if(i==random_index){
led.on(i);
} else {
led.off(i);
}
}
delay(ms);
}
void setup() {
Serial.begin(9600);
/*
tft.begin();
tft.setCursor(26, 120);
tft.setTextColor(ILI9341_RED);
tft.setTextSize(3);
tft.println("Hello, TFT!");
tft.setCursor(20, 160);
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(2);
tft.println("I can has colors?");
*/
//Serial.println("TFT - Initialization");
tft.begin();
tft.fillScreen(ILI9341_BLACK);
// tft.setCursor(0, 0);
//tft.setTextColor(ILI9341_GREEN); tft.setTextSize(3);
//tft.println("Tes TFT");
tft.setTextSize(5);
const int offset_x = 40;
tft.setCursor(offset_x, 0); tft.setTextColor(ILI9341_RED); tft.println("Red");
tft.setCursor(offset_x, 60); tft.setTextColor(ILI9341_GREEN); tft.println("Green");
tft.setCursor(offset_x, 120); tft.setTextColor(ILI9341_BLUE); tft.println("Blue");
tft.setCursor(offset_x, 180); tft.setTextColor(ILI9341_WHITE); tft.println("White");
//
//tft.fillRoundRect(35, 260, 60, 60, 10, ILI9341_RED);
//Serial.println("TFT - Done");
// LED
led.inisialisasi();
led.on();
delay(1000); //tft.fillScreen(ILI9341_BLACK);
tft.setCursor(offset_x, 0); tft.setTextColor(ILI9341_BLACK); tft.println("Red");
tft.setCursor(offset_x, 60); tft.setTextColor(ILI9341_BLACK); tft.println("Green");
tft.setCursor(offset_x, 120); tft.setTextColor(ILI9341_BLACK); tft.println("Blue");
tft.setCursor(offset_x, 180); tft.setTextColor(ILI9341_BLACK); tft.println("White");
led.off();
delay(1000);
tft.setCursor(offset_x, 0); tft.setTextColor(ILI9341_WHITE); tft.println("Seq 1");
sequence1(100);
tft.setCursor(offset_x, 0); tft.setTextColor(ILI9341_BLACK); tft.println("Seq 1");
delay(500);
tft.setCursor(offset_x, 0); tft.setTextColor(ILI9341_WHITE); tft.println("Seq 2");
sequence2(500);
sequence2(500);
sequence2(500);
led.off();
tft.setCursor(offset_x, 0); tft.setTextColor(ILI9341_BLACK); tft.println("Seq 2");
delay(500);
tft.setCursor(offset_x, 0); tft.setTextColor(ILI9341_WHITE); tft.println("Seq 3");
tft.setCursor(30, 120); tft.setTextColor(ILI9341_WHITE); tft.println("Random");
}
void loop() {
sequence3(120);
}