maty247:
Serial.begin(9600,SERIAL_8N1);
Serial.println("CONTMOD");//CONTMOD
Serial.println(F("Using Adafruit 2.4\" TFT Arduino Shield Pinout"));
Das wird nix.
Das sind doch Konfigeinstellungen.
Wenn Du die jedes mal neu schreibst, könnte das ertmal ein anhalten und neu initialisieren des Kontrollers auslösen.
Dann bekomm ich ne Warnung:
/tmp/arduino_modified_sketch_706352/sketch_apr02c.ino: In function 'void setupscreen()':
/tmp/arduino_modified_sketch_706352/sketch_apr02c.ino:162:8: warning: unused variable 'showSymbol1' [-Wunused-variable]
bool showSymbol1 = true; // Flag für das Symbol
^~~~~~~~~~~
Das ist Mist. Der Grund ist, dass das eine neu definierte Variable ist.
Die ist jetzt bitte an die Pin 6 (RX) und 7 (TX) des Arduino zu hängen.
#include <SPI.h>
//TFT
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;
#include <TouchScreen.h>
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_TFTLCD.h> // Hardware-specific library
#define MINPRESSURE 200
#define MAXPRESSURE 1000
//#include <Interval.h>
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin
///////////
#include <SoftwareSerial.h>
const byte RX = 6;
const byte TX = 7;
SoftwareSerial mySerial (RX, TX);
char CRPM[18] ;// für eine 5 stellige Zahl
// Variablen
int drehzahl = 0; // Startdrehzahl
const int drehzahlSchritt = 5; // Schrittgröße für die Drehzahl
const int maxDrehzahl = 500; // Maximale Drehzahl
const int minDrehzahl = -500; // Minimale Drehzahl
int VSpeed;
bool showSymbol1 = true; // Flag für das Symbol
bool Sperre = true;
/////Touchdisplay
// ALL Touch panels and wiring is DIFFERENT
// copy-paste results from TouchScreen_Calibr_native.ino
//const int XP = 8, XM = A2, YP = A3, YM = 9; //ID=0x9341 Hochformat
const int XP = 9, XM = A3, YP = A2, YM = 8; //ID=0x9341 Querformat
//const int TS_LEFT = 907, TS_RT = 136, TS_TOP = 942, TS_BOT = 139; //Hochformat
const int TS_LEFT = 92, TS_RT = 870, TS_TOP = 860, TS_BOT = 140; //Querformat
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
Adafruit_GFX_Button minus_btn, plus_btn, lock_btn, unlock_btn, plus50_btn, minus50_btn, plus25_btn, minus25_btn;
int pixel_x, pixel_y; //Touch_getXY() updates global vars
bool Touch_getXY(void)
{
TSPoint p = ts.getPoint();
pinMode(YP, OUTPUT); //restore shared pins
pinMode(XM, OUTPUT);
digitalWrite(YP, HIGH); //because TFT control pins
digitalWrite(XM, HIGH);
bool pressed = (p.z > MINPRESSURE && p.z < MAXPRESSURE);
if (pressed)
{
pixel_x = map(p.x, TS_LEFT, TS_RT, 0, tft.width()); //.kbv makes sense to me
pixel_y = map(p.y, TS_TOP, TS_BOT, 0, tft.height());
}
return pressed;
}
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600, SERIAL_8N1);
mySerial.begin(9600);
faulhaber();
setupscreen();
displayWelcomeMessage();
tft.fillScreen(BLACK);
initializeButtons();
}
void loop()
{
updateTouch();
handleButtonActions();
displayDrehzahl();
speed();
}
void setupscreen()
{
/////Touchdisplay
#ifdef USE_ADAFRUIT_SHIELD_PINOUT
Serial.println(F("Using Adafruit 2.4\" TFT Arduino Shield Pinout"));
#else
Serial.println(F("Using Adafruit 2.4\" TFT Breakout Board Pinout"));
#endif
Serial.print("TFT size is ");
Serial.print(tft.width());
Serial.print("x");
Serial.println(tft.height());
tft.reset();
uint16_t identifier = tft.readID();
if (identifier == 0x9325)
{
Serial.println(F("Found ILI9325 LCD driver"));
}
else if (identifier == 0x9328)
{
Serial.println(F("Found ILI9328 LCD driver"));
}
else if (identifier == 0x4535)
{
Serial.println(F("Found LGDP4535 LCD driver"));
}
else if (identifier == 0x7575)
{
Serial.println(F("Found HX8347G LCD driver"));
}
else if (identifier == 0x9341)
{
Serial.println(F("Found ILI9341 LCD driver"));
}
else if (identifier == 0x7783)
{
Serial.println(F("Found ST7781 LCD driver"));
}
else if (identifier == 0x8230)
{
Serial.println(F("Found UC8230 LCD driver"));
}
else if (identifier == 0x8357)
{
Serial.println(F("Found HX8357D LCD driver"));
}
else if (identifier == 0x0101)
{
identifier = 0x9341;
Serial.println(F("Found 0x9341 LCD driver"));
}
else
{
Serial.print(F("Unknown LCD driver chip: "));
Serial.println(identifier, HEX);
Serial.println(F("If using the Adafruit 2.8\" TFT Arduino shield, the line:"));
Serial.println(F(" #define USE_ADAFRUIT_SHIELD_PINOUT"));
Serial.println(F("should appear in the library header (Adafruit_TFT.h)."));
Serial.println(F("If using the breakout board, it should NOT be #defined!"));
Serial.println(F("Also if using the breakout, double-check that all wiring"));
Serial.println(F("matches the tutorial."));
identifier = 0x9341;
}
tft.begin(identifier);
tft.setRotation(1); //PORTRAIT
tft.fillScreen(BLACK);
showSymbol1 = true; // Flag für das Symbol
}
void faulhaber()
{
mySerial.println("CONTMOD");//CONTMOD
mySerial.println("SOR 0");//SOR0
mySerial.println("ADR");//APL0
mySerial.println("MV 0");//MOTTYP0
mySerial.println("MAV 25");//KN366
mySerial.println("STW 1");//RM7100
mySerial.println("STN 1000");//POHOSEQ0
mySerial.println("LL 1800000000");//HP7
mySerial.println("LL -1800000000");//HB0
mySerial.println("APL 0");//HD0
mySerial.println("SIN1");//HD0
mySerial.println("SETPLC");//HOSP100
mySerial.println("ERROUT");//HA0
mySerial.println("DCE 200");//HL0
mySerial.println("LPN 16");//HL0
mySerial.println("C O");//HN0
mySerial.println("HB 0");//CAHOSEQ
mySerial.println("HP 7");//ADR
mySerial.println("HD 0");//LPC5000
mySerial.println("SHA 0");//LCC2000
mySerial.println("SHN 0");//AC30000
mySerial.println("SHL 0");//I3
mySerial.println("POHOSEQ 0");//POR3
mySerial.println("HOSP 100");//SP10000
mySerial.println("ENCRES 64");//MV0
mySerial.println("KN 220");//MAV25
mySerial.println("RM 1470");//LL2000000000
mySerial.println("KOEFFI 2534");//LL-2000000000
mySerial.println("POLNUM 4");//LPN16
mySerial.println("SP 15000");//STW1
mySerial.println("AC 30000");//STN1000
mySerial.println("DEC 30000");//ENCRES64
mySerial.println("SR 1");//DEV30000
mySerial.println("POR 4");//DCE200
mySerial.println("I 33");//V295
mySerial.println("PP 64");//
mySerial.println("PD 2");//ENPROG
mySerial.println("CI 16");//ANSW1
mySerial.println("LPC 6000");//NODEADR0
mySerial.println("LCC 2000");
mySerial.println("DEV 30000");
mySerial.println("CORRIDOR 20");
mySerial.println("EN");
mySerial.println("V 100");
mySerial.println("ENPROG");
mySerial.println("ANSW 2");
mySerial.println("NET 0");
mySerial.println("NODEADR 0");
}
void initializeButtons()
{
minus_btn.initButton(&tft, 30, 210, 60, 60, WHITE, CYAN, BLACK, "-", 4);
plus_btn.initButton(&tft, 291, 210, 60, 60, WHITE, CYAN, BLACK, "+", 4);
lock_btn.initButton(&tft, 160, 220, 160, 40, RED, RED, BLACK, "Gesperrt", 2);
minus25_btn.initButton(&tft, 30, 150, 60, 50, WHITE, CYAN, BLACK, "-25", 3);
plus25_btn.initButton(&tft, 291, 150, 60, 50, WHITE, CYAN, BLACK, "+25", 3);
minus50_btn.initButton(&tft, 105, 160, 60, 50, WHITE, CYAN, BLACK, "-50", 3);
plus50_btn.initButton(&tft, 216, 160, 60, 50, WHITE, CYAN, BLACK, "+50", 3);
//unlock_btn.initButton(&tft, 140, 230, 160, 20, WHITE, CYAN, BLACK, "gesppert", 2);
// unlock_btn.initButton(&tft, 200, 210, 60, 60, WHITE, CYAN, BLACK, "e", 4);
minus_btn.drawButton(false);
plus_btn.drawButton(false);
lock_btn.drawButton(false);
minus25_btn.drawButton(false);
plus25_btn.drawButton(false);
minus50_btn.drawButton(false);
plus50_btn.drawButton(false);
//unlock_btn.drawButton(false);
}
void displayWelcomeMessage()
{
tft.setCursor(60, 0);
tft.setTextSize(3);
tft.setTextColor(WHITE, BLACK);
tft.print("");
tft.setCursor(70, 30);
tft.print("");
tft.setCursor(90, 60);
tft.print("Apparatur");
tft.setCursor(0, 100);
tft.setTextSize(2);
tft.print("");
tft.setCursor(0, 140);
tft.print("");
tft.setCursor(0, 160);
tft.print("Halle/Saale");
delay(10000);
tft.fillScreen(BLACK);
}
void updateTouch()
{
bool down = Touch_getXY();
// Button-Status aktualisieren
minus_btn.press(down && minus_btn.contains(pixel_x, pixel_y));
plus_btn.press(down && plus_btn.contains(pixel_x, pixel_y));
lock_btn.press(down && lock_btn.contains(pixel_x, pixel_y));
minus25_btn.press(down && minus25_btn.contains(pixel_x, pixel_y));
plus25_btn.press(down && plus25_btn.contains(pixel_x, pixel_y));
minus50_btn.press(down && minus50_btn.contains(pixel_x, pixel_y));
plus50_btn.press(down && plus50_btn.contains(pixel_x, pixel_y));
if (minus_btn.justReleased())
{ minus_btn.drawButton(); }
if (plus_btn.justReleased())
{ plus_btn.drawButton(); }
if (lock_btn.justReleased())
{ lock_btn.drawButton(); }
if (unlock_btn.justReleased())
{ unlock_btn.drawButton(); }
if (plus25_btn.justReleased())
{ plus25_btn.drawButton(); }
if (minus25_btn.justReleased())
{ minus25_btn.drawButton(); }
if (plus50_btn.justReleased())
{ plus50_btn.drawButton(); }
if (minus50_btn.justReleased())
{ minus50_btn.drawButton(); }
}
void handleButtonActions()
{
if (!Sperre && plus25_btn.justPressed())
{
plus25_btn.drawButton(true);
drehzahl = drehzahl + 25;
if (drehzahl > maxDrehzahl)
{
drehzahl = maxDrehzahl; // Begrenzung auf minimale Drehzahl
}
delay(200); // Entprellzeit
}
if (!Sperre && plus50_btn.justPressed())
{
plus50_btn.drawButton(true);
drehzahl = drehzahl + 50;
if (drehzahl > maxDrehzahl)
{
drehzahl = maxDrehzahl; // Begrenzung auf minimale Drehzahl
}
delay(200); // Entprellzeit
}
if (!Sperre && minus25_btn.justPressed())
{
minus25_btn.drawButton(true);
drehzahl = drehzahl - 25;
if (drehzahl < minDrehzahl)
{
drehzahl = minDrehzahl; // Begrenzung auf minimale Drehzahl
}
delay(200); // Entprellzeit
}
if (!Sperre && minus50_btn.justPressed())
{
minus50_btn.drawButton(true);
drehzahl = drehzahl - 50;
if (drehzahl < minDrehzahl)
{
drehzahl = minDrehzahl; // Begrenzung auf minimale Drehzahl
}
delay(200); // Entprellzeit
}
if (lock_btn.justPressed())
{
showSymbol1 = !showSymbol1; // Symbol wechseln
drawButton(); // Taste neu zeichnen
delay(200); // Entprellen
}
if (!Sperre && minus_btn.justPressed())
{
minus_btn.drawButton(true);
drehzahl -= drehzahlSchritt; // Drehzahl verringern
if (drehzahl < minDrehzahl)
{
drehzahl = minDrehzahl; // Begrenzung auf minimale Drehzahl
}
delay(200); // Entprellzeit
}
if (!Sperre && plus_btn.justPressed())
{
plus_btn.drawButton(true);
drehzahl += drehzahlSchritt; // Drehzahl erhöhen
if (drehzahl > maxDrehzahl)
{
drehzahl = maxDrehzahl; // Begrenzung auf maximale Drehzahl
}
delay(200); // Entprellzeit
}
}
void displayDrehzahl()
{
VSpeed = drehzahl;
snprintf(CRPM, sizeof(CRPM), "%" "18d", VSpeed); // 5 stellig
tft.setCursor(100, 0);
tft.setTextSize(3);
tft.setTextColor(WHITE, BLACK);
tft.print("Drehzahl");
tft.setCursor(40, 30);
tft.setTextSize(3);
tft.setTextColor(WHITE, BLACK);
tft.print("des Kegels RPM");
tft.setCursor(100, 80);
tft.setTextSize(5);
tft.setTextColor(WHITE, BLACK);
if (VSpeed <= 9)
{
tft.print(" ");
tft.print(VSpeed);
tft.print(' ');
}
else if (VSpeed <= 99)
{
tft.print(' ');
tft.print( VSpeed);
tft.print(' ');
}
else
{
tft.print(VSpeed);
tft.print("");
}
}
void speed()
{
updateTouch();
mySerial.println("encres 64");//encres64
mySerial.println("sor 0");//sor0
mySerial.println("a 1");//a1
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
/*
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v29
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
mySerial.print("V");//a1
mySerial.println(VSpeed);//v295
mySerial.println("delay 4");//delay4
*/
//mySerial.println("jmp 1");//jmp1
}
void drawButton()
{
bool down = Touch_getXY();
if (showSymbol1)
{
lock_btn.initButton(&tft, 160, 220, 160, 40, RED, RED, BLACK, "Gesperrt", 2);
Sperre = true;
}
else
{
lock_btn.initButton(&tft, 160, 220, 160, 40, GREEN, GREEN, BLACK, "Entsperrt", 2);
Sperre = false;
}
}
Und wenn Du Dich bemühst, dann kann man aus dem Code auch noch was machen.