#include <Adafruit_ILI9341.h>
#define CS 10
#define DC 9
#define RST 8
#define MOSI 11
#define MISO 12
#define CLK 13
Adafruit_ILI9341 display = Adafruit_ILI9341(CS, DC, MOSI, CLK, RST, MISO);
#define TFT_WIDTH display.width() // 320
#define TFT_HEIGHT display.height() // 240
#define PADDING 5
#define GRID_START_X 5
#define GRID_START_Y 20
#define GRID_WIDTH TFT_WIDTH - 2*PADDING // 310
#define GRID_HEIGHT TFT_HEIGHT - PADDING - GRID_START_Y // 215
typedef struct {
float x_min, x_max, x_step;
float y_min, y_max, y_step;
String x_label, y_label;
uint16_t grid_color;
} Graph;
#define BACK_CLR ILI9341_BLACK
#define GRID_CLR ILI9341_RED
void render(Graph* g) {
display.fillScreen(BACK_CLR);
display.drawRect(GRID_START_X, GRID_START_Y, GRID_WIDTH, GRID_HEIGHT, GRID_CLR);
display.drawRect(GRID_START_X+1, GRID_START_Y+1, GRID_WIDTH-2, GRID_HEIGHT-2, GRID_CLR);
display.setCursor(GRID_START_X, 1);
display.setTextSize(2);
display.print("y = 2x + 1");
}
void setup() {
display.begin();
display.setRotation(1);
display.fillScreen(BACK_CLR);
Graph graph = {-2, 2, 1, -2, 2, 1, "x", "y", GRID_CLR};
render(&graph);
}
void loop() {
// put your main code here, to run repeatedly:
}