#include "Adafruit_GFX.h"
#include <SPI.h>
#include "Adafruit_ILI9341.h"
#include <Arduino.h> // this is needed for FT6206
#include "AiEsp32RotaryEncoder.h"
#include <Fonts/FreeSans9pt7b.h>
#define M_FONT &FreeSans9pt7b
// ----------- Dokunmatik touchpad tanımlama
// The FT6206 uses hardware I2C (SCL/SDA)
#define SIZE(a) sizeof(a) / sizeof(a[0])
// The display also uses hardware SPI, plus #9 & #10
#define TFT_CS 5
#define TFT_DC 2
#define TFT_MOSI 23
#define TFT_SCLK 18
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
#define PIN_ENCA 39 //VN
#define PIN_ENCB 34
#define PIN_ENCSW 36 // VP
#define ENCODER_STEPS 4
#define TFT_ROTATION 1
//TFT MENU Colors
#define BG_MENU_COLOR ILI9341_BLACK
#define BG_BTN_COLOR ILI9341_BLUE
#define BORDER_BTN_COLOR ILI9341_DARKCYAN
#define TXT_COLOR_BTN ILI9341_WHITE
#define BG_BTN_COLOR_FADE ILI9341_DARKGREY
#define BORDER_BTN_COLOR_FADE ILI9341_DARKCYAN
#define TXT_COLOR_BTN_FADE ILI9341_LIGHTGREY
#define TXT_COLOR_MENU ILI9341_BLUE
#define SELECT_COLOR_MENU ILI9341_BLACK
#define MENU_BG_COLOR ILI9341_WHITE
#define ENC_SEL_CH 0
#define ENC_SEL_ENTRY 1
#define ENC_SEL_VAL 2
int8_t enc_mode = ENC_SEL_CH;
Adafruit_GFX_Button btn_ch[8];
Adafruit_GFX_Button btn_ch_fade[8] ;
struct channel {
char alias[30] = "TEST NAME\0";
bool chActive = true;
bool fbActive = true;
int16_t pwmDuty = 50; //system//user - 4095 to 4095 (= resolution 0,4% / inc.) (--> * 16 for 12 Bit Max)
uint8_t ctrlMode = 0;
float current =0.9;
float feedback =2.6;
};
channel ch[8];
channel ch_last[8];
char attrBuf[21]; //= '\0';
bool selChActive = true;
uint8_t menu_chSel = 0;
uint8_t menu_entrySel = 0;
AiEsp32RotaryEncoder enc = AiEsp32RotaryEncoder(PIN_ENCA, PIN_ENCB, PIN_ENCSW, -1, ENCODER_STEPS);
void IRAM_ATTR readEncoderISR(){ enc.readEncoder_ISR();}
void setup() {
Serial.begin(115200);
Serial.println(F("AGR Controller"));
setup_encoder();
setup_lcd() ;
}
void loop(){
main_encoder();
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
encoder1:CLK
encoder1:DT
encoder1:SW
encoder1:VCC
encoder1:GND
lcd2:VCC
lcd2:GND
lcd2:CS
lcd2:RST
lcd2:D/C
lcd2:MOSI
lcd2:SCK
lcd2:LED
lcd2:MISO
lcd2:SCL
lcd2:SDA