/*
Simple "Hello World" for ILI9341 LCD
https://wokwi.com/arduino/projects/308024602434470466
*/
#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);
//ledit
const byte ledPins[] = {7};
const byte napit[] = {4, 2};
#define aika A0
//ajastus
int edtime = 0;
int viive;
char vari[30];
char rivi1[30];
char rivi2[30];
void setup() {
//napit ja ledit
for (byte i = 0; i < 2; i++) {
pinMode(ledPins[i], OUTPUT);
pinMode(napit[i], INPUT_PULLUP);
}
//säädin
pinMode(aika, INPUT);
while (!Serial); // used for leonardo debugging
Serial.begin(115200);
tft.begin();
tft.setCursor(26, 120);
tft.setTextColor(ILI9341_RED);
tft.setTextSize(3);
tft.println("Heater 1.0");
tft.setCursor(20, 160);
tft.setTextColor(ILI9341_GREEN);
tft.setTextSize(2);
tft.println("on or off");
// Meme reference: https://english.stackexchange.com/questions/20356/origin-of-i-can-haz
}
void piirranaytto() {
//piirrä näyttö
//rivi1
tft.fillScreen(ILI9341_BLACK);
tft.setTextSize(2);
tft.setTextColor("ILI9341_GREEN");
tft.setCursor(30, 100);
char aikarivi[30]="aika";
strcat(aikarivi, viive);
tft.println(aikarivi);
//rivi2
tft.setCursor(30, 160);
tft.setTextColor(vari);
tft.setTextSize(2);
tft.println(rivi2);
//debug
Serial.print(rivi1);
Serial.print(rivi2);
Serial.print(aikarivi);
Serial.print(viive);
return 0;
}
void loop() {
//nappien tila
int value = digitalRead((napit[0]));
int value2 = digitalRead((napit[1]));
int time = analogRead(aika);
if (edtime != time)
{
viive = time*10;
strcpy(rivi1, viive);
edtime = viive;
}
//päälle
if (value == LOW) {
Serial.print("led on");
digitalWrite(ledPins[0], HIGH);
strcpy(vari, "ILI9341_GREEN");
strcpy(rivi2, "heat_on");
piirranaytto();
delay(viive);
strcpy(vari, "ILI9341_RED");
strcpy(rivi2, "heat_off");
digitalWrite(ledPins[0], LOW);
piirranaytto();
}
//pois päältä
if (value2 == LOW) {
Serial.print("led off");
strcpy(vari, "ILI9341_RED");
strcpy (rivi2, "heat_off");
digitalWrite(ledPins[0], LOW);
piirranaytto();
}
delay(100);
}