#include #include #include #include // Knihovna grafickeho jadra #include // Knihovna specifickeho hardware //#include #include "TouchScreen.h" #define LCD_CS A3 // #define LCD_CD A2 // #define LCD_WR A1 // #define LCD_RD A0 // #define LCD_RESET A4 // #define YP A2 // Musi byt vzdy pouzit analogovy pin! #define XM A3 // Musi byt vzdy pouzit analogovy pin! #define YM 8 // Muze byt pouzit digit. pin #define XP 9 // Muze byt pouzit digit. pin // Definice max a min tlaku na TouchScreen #define MINPRESSURE 10 //Analogova kalibrace dotyk.vrstvy #define MAXPRESSURE 1000 //Analogova kalibrace dotyk.vrstvy #define TS_MINX 150 #define TS_MINY 120 #define TS_MAXX 920 #define TS_MAXY 940 #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); // Inicializace TouchScreen Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Inicializace LCD double cislo=1; int x, y = 0; TSPoint p; int NASTAVENAteplota; // Datový kabel je pripojen k portu 2 na zarizeni Arduino #define ONE_WIRE_BUS SCL // Nastaveni oneWire instance pro komunikaci se vsemi OneWire zarizeni (ne jen ICs teplotni Maxim / Dallas) OneWire oneWire(ONE_WIRE_BUS); // Prejit na oneWire knihovnu pro Dallas Temperature DallasTemperature sensors(&oneWire); // Pole pro ulozeni adresy zarizeni DeviceAddress insideThermometer; void setup(void) { NASTAVENAteplota= EEPROM.read(0); pinMode(13, OUTPUT); // Nastaveni vystupu digitalWrite(13, HIGH); // 0=off tft.reset(); tft.begin(0x9341); // Inicializace LCD shieldu tft.fillScreen(WHITE); sensors.begin(); if (!sensors.getAddress(insideThermometer, 0)) //tft.println("Nepodarilo se najít adresu zarizeni 0"); delay(2); sensors.setResolution(insideThermometer, 9); tft.fillScreen(WHITE); } float temp=0; void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); if (tempC!=temp) { temp=tempC; tft.fillScreen(BLUE); tft.print(temp); tft.setTextColor(RED); tft.setTextSize(4); tft.setRotation(1); tft.print((char)9); tft.setTextSize(6); tft.setRotation(1); tft.print("C"); } } void loop(void) { //digitalWrite(13, HIGH); TSPoint p = ts.getPoint(); //digitalWrite(13, LOW); pinMode(XM, OUTPUT); pinMode(YP, OUTPUT); if (p.z > MINPRESSURE && p.z < MAXPRESSURE) { p.x = tft.width()-(map(p.x, TS_MINX, TS_MAXX, tft.width(), 0)); p.y = tft.height()-(map(p.y, TS_MINY, TS_MAXY, tft.height(), 0)); if((75 MINPRESSURE && p.z < MAXPRESSURE) { p.x = tft.width()-(map(p.x, TS_MINX, TS_MAXX, tft.width(), 0)); p.y = tft.height()-(map(p.y, TS_MINY, TS_MAXY, tft.height(), 0)); if((140=NASTAVENAteplota) //digitalWrite(13, LOW); //0=on digitalWrite(13, HIGH);// Opacna logika //else // digitalWrite(13, HIGH); // 1=off if (temp