1.8 TFT SPI Display mit Samsung Treiber und Uno funktioniert nicht

Hallo HotSystems

danke für Deine schnelle Antwort es hat funktioniert , bekomme das Display zum laufen und es zeigt alles korrekt an.

könntest Du mir noch zeigen wie man ein Thermometer mit innen u. außen Temp. einfügt und was man am besten für welche nimmt ich denke da an DS18B20 und mit was kann ich eine drahtlose verbindung herstellen

also sozusagen eine kleine Wetterstation mit Zeit , Datum und Innen u. Außentemperatur.

Danke Reiner

Entschuldige aber, warum liest du meine Posts nicht? Mehrfach bat ich darum den Sketch in Code-Tags zu setzen, warum machst du es nicht?

Der wird dadurch besser lesbar.

Hi der Sketch ist nicht von mir der ist vom Sly und er hat ihn nur so als Zip angeboten ich hab nur für mich das eingetragen soweit ich das kann.Ich habe Sly angeschrieben aber er antwortet nicht.

#define Echtzeituhr 0x68
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8

//***************** Farbdefinitionen ***************************************
#define schwarz 0x0000
#define weiss 0xffff
#define rot 0xf800
#define gelb 0xffc0
#define gruen 0x07e0
#define blau 0x001f
#define magenta 0x07ff
#define silber 0xdefb
#define grau 0x8410
#define orange 0xfc00
//***************************** Symbole ****************************************

define note 14

#define sonne 15

#include “Adafruit_GFX.h”
#include “Adafruit_ST7735.h”
#include “SPI.h”
#include “Wire.h”
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

int aktSekunde;
int altSekunde=-1;
int aktMinute;
int altMinute=-1;
int aktStunde;
int altStunde=-1;
int aktWochentag;
int aktTag;
int altTag=-10;
int aktMonat;
int aktJahr;
char* tagKlartext[7] = {“Sonntag”,“Montag”,“Dienstag”,“Mittwoch”,“Donnerstag”,“Freitag”,“Sonnabend”}; //Wochentage
char* monatKlartext = {“Januar”,“Februar”,“Maerz”,“April”,“Mai”,“Juni”,“Juli”,“August”,“September”,“Oktober”,“November”,“Dezember”};
float tempCelsius;
int buttonPin=A2;
int piezoPin=3;
int alarmModus; // 0= alle aus, 1=Stundengong,…
int buttonWert;
int i;

void setup()
{
pinMode(buttonPin,INPUT_PULLUP); //Pin für die Buttons
Wire.begin(); // I2C starten
// Serial.begin(9600); // serielle Konsole
tone(piezoPin, 1500);
delay(200);
noTone(piezoPin);
delay(100);
tone(piezoPin,2000);
delay(200);
noTone(piezoPin);
tft.initR(INITR_BLACKTAB); // Display starten
tft.fillScreen(schwarz);// Display löschen
alarmModus=0;
zeichneAnzeigeUhr();
zeichneInfoleiste();
delay(10);
}

void loop(){
leseZeit();
aktualisiereUhr();
aktualisiereTemperatur();
frageTastenAb();
}

void aktualisiereTemperatur()// ****** Temperatur auslesen, umrechnen und anzeigen **********
{
byte tempMSB, tempLSB, temp;
Wire.beginTransmission(Echtzeituhr);
Wire.write(0x11); // Registerzeiger auf erstes Temperaturregister stellen
Wire.endTransmission();
Wire.requestFrom(Echtzeituhr, 2); // Temperatur abfragen
tempMSB = Wire.read();
tempLSB = Wire.read() >> 6;
tempCelsius = tempMSB + (0.25*tempLSB); // und ausrechnen

tft.setCursor(10,90); // Temperatur ausgeben
tft.setTextSize(0);
tft.setTextColor(blau,schwarz);
tft.print(“Temperatur:”);
if(tempCelsius<17) // wenns zu kalt ist
{tft.setTextColor(magenta,schwarz);}
if(tempCelsius>24) // wenns zu warm ist
{tft.setTextColor(rot,schwarz);}
else
{tft.setTextColor(gruen,schwarz);} // normale Temperatur
tft.setCursor(12,105);
tft.setTextSize(2);
tft.print(tempCelsius,1);
tft.print(char(247));
tft.setCursor(68,112);
tft.setTextColor(blau,schwarz); // Textfarbe wieder zurückstellen
tft.setTextSize(1);
tft.print(" Celsius ");
}

void aktualisiereUhr()// ************** Uhr-und Datumsanzeige aktualisieren *******************************
{
tft.setTextSize(3); // Grosschrift an
tft.setTextColor(blau,schwarz);
if (aktStunde !=altStunde)// wenn Stunden geändert
{
if (alarmModus>0)
{
stundenAlarm();
}
tft.setTextColor(blau,schwarz);
tft.setCursor(8,25);
if(aktStunde<10)
{
tft.print(" “); //Leere Stelle damit die Anzeige nicht verrutscht
}
tft.print(aktStunde);
altStunde=aktStunde;
tft.setCursor(41,25);
tft.print(”:");
}

if(aktMinute !=altMinute)// wenn Minute geändert wurde
{
tft.setCursor(55,25);
if(aktMinute<10)
{
tft.print(“0”);
}
tft.print(aktMinute);
altMinute=aktMinute;
}
if(aktSekunde !=altSekunde)//wenn Sekunden geändert wurden
{
tft.setTextSize(2);
tft.setCursor(88,33);
tft.print(":");
tft.setCursor(99,32);
if(aktSekunde<10)
{
tft.print(“0”);
}
tft.print(aktSekunde);
altSekunde=aktSekunde;
}
tft.setTextSize(0);
if (aktTag !=altTag) // wenn das Datum sich ändert…
{
tft.setCursor(10,55);
tft.setTextColor(magenta,schwarz);
tft.print(aktTag);
altTag=aktTag;
tft.print(".");
tft.print(monatKlartext[aktMonat-1]);
tft.print(" “);
tft.print(aktJahr);
rechneWochentag();
tft.setCursor(10,68);
tft.setTextSize(1);
if(aktWochentag==0)
{
tft.setTextColor(orange,schwarz);
}
else
{
tft.setTextColor(magenta,schwarz);
}
tft.print(tagKlartext[aktWochentag]);
tft.print(” ");
}
}

void zeichneAnzeigeUhr()// ************* Grundgerüst der Anzeige ****************************
{
tft.setTextColor(weiss,schwarz);
tft.setCursor(50,5);
tft.setTextSize(1);
tft.print(“Reiniuhr”);

zeichneButtons();
}
void frageTastenAb()// *************** Abfrage der Buttons **********************************+
{
int analogButtonWert=analogRead(buttonPin);
delay(5);
if (analogButtonWert<50)
{
buttonWert=1;
alarmModus++;
delay(100);
if(alarmModus>2)
{
alarmModus=0;
}
zeichneInfoleiste();
}
else if(analogButtonWert>80 && analogButtonWert<130)
{
buttonWert=2;
zeichneInfoleiste();
}
else if(analogButtonWert>150 && analogButtonWert<200)
{
buttonWert=3;
zeichneInfoleiste();
}
else{ buttonWert=0;}
}

void zeichneButtons()// ************* Buttons aktualisieren ***************************************
{

tft.fillRoundRect(10,140,30,14,3,grau);
tft.drawRoundRect(10,140,30,14,3,silber);
tft.setCursor(13,143);
tft.setTextSize(1);
tft.setTextColor(silber,grau);
tft.print(“Gong”);
tft.fillRoundRect(48,140,34,14,3,grau);
tft.drawRoundRect(48,140,34,14,3,silber);
tft.setCursor(51,143);
tft.setTextSize(1);
tft.print(“Modus”);
tft.setTextColor(silber,grau);
tft.fillRoundRect(90,140,30,14,3,grau);
tft.drawRoundRect(90,140,30,14,3,silber);
tft.setCursor(94,143);
tft.setTextSize(1);
tft.print(“Set.”);
}

void zeichneInfoleiste()//********* Infoleiste aktualisieren ******************************
{
switch(alarmModus)
{
case 1: // Stundengong an
tft.setTextColor(gelb,schwarz);
tft.setCursor(16,130);
tft.print(char(14));
tft.setCursor(29,130);
tft.setTextColor(silber,schwarz);
tft.print(char(15));
break;
case 2: // Stundengong und Wecker an
tft.setTextColor(gelb,schwarz);
tft.setCursor(16,130);
tft.print(char(14));
tft.setCursor(29,130);
tft.setTextColor(gelb,schwarz);
tft.print(char(15));
break;
case 0:// keine Alarme aktiv
tft.setTextColor(silber,schwarz);
tft.setCursor(16,130);
tft.print(char(14));
tft.setCursor(29,130);
tft.setTextColor(silber,schwarz);
tft.print(char(15));
break;
}
}

void leseZeit() // ************** Uhrzeit und Datum auslesen *****************************
{
Wire.beginTransmission(Echtzeituhr); //Registerzeiger auf Uhr stellen
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(Echtzeituhr, 7);

aktSekunde = bcdToDec(Wire.read());
aktMinute = bcdToDec(Wire.read());
aktStunde = bcdToDec(Wire.read() & 0b111111); //24 Stunden
aktWochentag = bcdToDec(Wire.read()); //funktioniert nicht
aktTag = bcdToDec(Wire.read());
aktMonat = bcdToDec(Wire.read());
aktJahr = bcdToDec(Wire.read())+2000;
}

void rechneWochentag() // ********** Wochentag berechnen ************************
{
int nT;
int nM;
int mZ[13]= {0,0,3,3,6,1,4,6,2,5,0,3,5};//Monatsziffern
int nJZ;
int nJH;
int nSJ;
nT= aktTag%7; // Tagesziffer berechnen
nM=mZ[aktMonat]; //Monatsziffr zuweisen
nJZ= aktJahr-2000; // Jahreszahl auf Zehner kürzen
nJZ=(nJZ+(nJZ/4))%7; // JahresZehnerZiffer berechnen
int jH= (aktJahr/100); // Jahreszahl auf Hunderter kürzen
nJH=(3-(jH%4))*2; // Jahrhundertziffer berechnen
if(aktMonat<3) // Schaltjahreskorrektur
{nSJ= 6; }
else {nSJ=0; }
aktWochentag= (nT + nM + nJH + nJZ + nSJ)%7;
}
void stundenAlarm()// ************ stündlicher Piepser ********************************
{
for (i=0;i<2;i++)
{
tone(piezoPin, 700);
delay(50);
noTone(piezoPin);
delay(100);
}
}

byte bcdToDec(byte val) // ************ Hilfsfunktion fürs Umwandeln Binär->Dezimal *****************
{
return ( (val/16*10) + (val%16) );
}

Hot Systems

ich bin EU Rentner und nicht mehr ganz "neu" und übe und lese mich ein , denn dümmer davon kann man nicht werden,

der Sketch ist von Sly und nicht von mir und ich habe Ihn schon angeschrieben aber er reagiert nicht , darum frage ich Dich Du bist einer von wenigen die mir im momment helfen.

Danke

Hallo,

hier kocht gleich einer. Ich höre schon das Wasser verdampfen.

Was versteht du an dem “Button Code Tags verwenden” nicht? Bei der Länge ist es vielleicht auch sinnvoll gleich den gesamten Sketch als .ino Datei ranzuhängen.

Für den Dallas Sensor nimmste die Dallas Library und probierst damit rum. Willst ja was lernen. Dann bauste das in dein Projekt ein

https://milesburton.com/Dallas_Temperature_Control_Library

v3.7.2

Nö, ich bin ganz ruhig.....ganz ruhig.

Hallo Doc_Arduino

ich sagte doch schon das ich bei null anfange und Ihr denkt ich nerve Euch weil es mir Spaß macht.

Ich lese ja schon sehr viel aber wenn man es selber macht kommen die Probleme und ich komme rein garnicht aus der Elektronik oder dergleichen.

Ich möchte mich in meiner Freizeit und da hab ich in den Wintermonaten viel gerne etwas neues lernen das man nicht verblödet wenn das Gehirn nicht gefordert wird.

Könnt Ihr das verstehen ?

das was ich Euch frage werdet Ihr denken das mus der doch kapieren manchmal ja meistens nein (noch)

Aber Danke für Euere Geduld

Reiner

Hallo Reiner,

ich versuche es noch einmal.

  1. Der Sketch ist so schwer lesbar. Hatte ich schon geschrieben.

  2. Du sollst den Sketch in Code-Tags hier einstellen. Hatte ich schon geschrieben. Das kannst du auch noch nachträglich erledigen.

  3. Benutze dazu die Schaltfläche “</>”. Hatte ich schon geschrieben.

  4. Wenn du nicht weißt wie es geht, lies bitte die “How to use this forum” durch.

  5. Bei einem aus dem Web kopierten Sketch müssen wir uns auch einarbeiten, da wir den nicht kennen.

Daher muss der vernünftig lesbar sein, siehe oben.
Dennoch solltest du unbedingt Kontakt zum Autor aufnehmen. Der kennt seinen Sketch am besten. Das geht auch per “PM”.

Wir alle helfen hier sehr gern.
Da es in unserer Freizeit statt findet, solltest du dich doch bitte auch an die “How to use…” halten und uns es nicht unnötig schwer machen.

Danke für dein Verständnis.

reinersbg:
Ich lese ja schon sehr viel aber wenn man es selber macht kommen die Probleme und ich komme rein garnicht aus der Elektronik oder dergleichen.

Ich möchte mich in meiner Freizeit und da hab ich in den Wintermonaten viel gerne etwas neues lernen das man nicht verblödet wenn das Gehirn nicht gefordert wird.

Könnt Ihr das verstehen ?

Kannst Du verstehen, dass es die Regulars im Forum bevorzugen, wenn Code innerhalb eines Beitrags in Code-Tags gepostet wird, so dass

  • der Code im Browser einwandfrei dargestellt wird
  • ohne Smilies, ohne weggeschnittene Teile, die die Forumssoftware als Forumscode interpretiert
  • mit korrekten Einrückungen durch Verwendung einer Schrift mit fester Laufweite
    ?

How to use this forum
Dort dann Runterscrollen bis Punkt “7. If you are posting code or error messages, use “code” tags” und das dann bitte mal verinnerlichen.

Wenn es funktioniert, wird eingefügter Code in einer Code-Box im Browser dargestellt, die z.B. so aussieht und aus der der Code auch leicht wieder herauskopiert werden kann:

a = b [i];
Hallo

ich werde es mal versuchen so darzustellen wie Ihr das gernne hättet:

#define Echtzeituhr 0x68
#define sclk 13
#define mosi 11
#define cs   10
#define dc   9
#define rst  8

//***************** Farbdefinitionen ***************************************
#define schwarz 0x0000
#define weiss 0xffff
#define rot 0xf800
#define gelb 0xffc0
#define gruen 0x07e0
#define blau 0x001f
#define magenta 0x07ff
#define silber 0xdefb
#define grau 0x8410
#define orange 0xfc00
//***************************** Symbole ****************************************
# define note 14
#define sonne 15

#include "Adafruit_GFX.h"
#include "Adafruit_ST7735.h"
#include "SPI.h"
#include "Wire.h"
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

int aktSekunde;
 int altSekunde=-1;
int aktMinute;
 int altMinute=-1;
int aktStunde;
 int altStunde=-1;
int aktWochentag;
int aktTag;
int altTag=-10;
int aktMonat;
int aktJahr;
char* tagKlartext[7] = {"Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Sonnabend"}; //Wochentage
char* monatKlartext[] = {"Januar","Februar","Maerz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"};  
float tempCelsius;
 int buttonPin=A2;
 int piezoPin=3;
 int alarmModus; // 0= alle aus, 1=Stundengong,....
int buttonWert;
int i;

void setup()
{
pinMode(buttonPin,INPUT_PULLUP); //Pin für die Buttons
Wire.begin(); // I2C starten
// Serial.begin(9600); // serielle Konsole
 tone(piezoPin, 1500);
  delay(200);
 noTone(piezoPin);
  delay(100);
 tone(piezoPin,2000);
  delay(200);
 noTone(piezoPin);
tft.initR(INITR_BLACKTAB); // Display starten
tft.fillScreen(schwarz);// Display löschen
 alarmModus=0;
zeichneAnzeigeUhr();
zeichneInfoleiste();
 delay(10);
}

void loop(){
 leseZeit();
 aktualisiereUhr();
 aktualisiereTemperatur();
frageTastenAb();
}

void aktualisiereTemperatur()// ****** Temperatur auslesen, umrechnen und anzeigen **********
{
 byte tempMSB, tempLSB, temp;
 Wire.beginTransmission(Echtzeituhr);  
 Wire.write(0x11);                                             // Registerzeiger auf erstes Temperaturregister stellen
 Wire.endTransmission();
  Wire.requestFrom(Echtzeituhr, 2);                    // Temperatur abfragen
 tempMSB = Wire.read();
 tempLSB = Wire.read() >> 6;
 tempCelsius = tempMSB + (0.25*tempLSB);          // und ausrechnen
     
tft.setCursor(10,90);                                        // Temperatur ausgeben
tft.setTextSize(0);
tft.setTextColor(blau,schwarz);
tft.print("Temperatur:");
if(tempCelsius<17)                                            // wenns zu kalt ist
{tft.setTextColor(magenta,schwarz);}
if(tempCelsius>24)                                            // wenns zu warm ist
{tft.setTextColor(rot,schwarz);}
else
{tft.setTextColor(gruen,schwarz);}                     // normale Temperatur
tft.setCursor(12,105);
tft.setTextSize(2);
 tft.print(tempCelsius,1);
 tft.print(char(247));
 tft.setCursor(68,112);
 tft.setTextColor(blau,schwarz);                    // Textfarbe wieder zurückstellen
 tft.setTextSize(1);
tft.print(" Celsius ");
}

void aktualisiereUhr()// ************** Uhr-und Datumsanzeige aktualisieren *******************************
{
 tft.setTextSize(3); // Grosschrift an
 tft.setTextColor(blau,schwarz);
if (aktStunde !=altStunde)// wenn Stunden geändert
 {
   if  (alarmModus>0)
   {
     stundenAlarm();
   }
   tft.setTextColor(blau,schwarz);
  tft.setCursor(8,25);
 if(aktStunde<10)
  {
    tft.print(" ");  //Leere Stelle damit die Anzeige nicht verrutscht
  }
  tft.print(aktStunde);
  altStunde=aktStunde;
   tft.setCursor(41,25);
  tft.print(":");
}
 
if(aktMinute !=altMinute)// wenn Minute geändert wurde
 {
   tft.setCursor(55,25);
  if(aktMinute<10)
   {
     tft.print("0");
   }
   tft.print(aktMinute);
   altMinute=aktMinute;
 }
if(aktSekunde !=altSekunde)//wenn Sekunden geändert wurden
 {
   tft.setTextSize(2);
   tft.setCursor(88,33);
   tft.print(":");
   tft.setCursor(99,32);
   if(aktSekunde<10)
   {
     tft.print("0");
   }
   tft.print(aktSekunde);
   altSekunde=aktSekunde;
}
tft.setTextSize(0);
if (aktTag !=altTag) // wenn das Datum sich ändert....
  {
    tft.setCursor(10,55);
    tft.setTextColor(magenta,schwarz);
    tft.print(aktTag);
    altTag=aktTag;
    tft.print(".");
    tft.print(monatKlartext[aktMonat-1]);
     tft.print(" ");
     tft.print(aktJahr);
     rechneWochentag();
     tft.setCursor(10,68);
     tft.setTextSize(1);
    if(aktWochentag==0)
     {
       tft.setTextColor(orange,schwarz);
     }
   else
     {
       tft.setTextColor(magenta,schwarz);
     }
    tft.print(tagKlartext[aktWochentag]);
    tft.print("    ");
  }
}

void zeichneAnzeigeUhr()// ************* Grundgerüst der Anzeige ****************************
{
 tft.setTextColor(weiss,schwarz);
    tft.setCursor(50,5);
 tft.setTextSize(1);
 tft.print("Reiniuhr");
 
 zeichneButtons();
}
void frageTastenAb()// *************** Abfrage der Buttons **********************************+
{
 int analogButtonWert=analogRead(buttonPin);
 delay(5);
 if (analogButtonWert<50)
   {
     buttonWert=1;
     alarmModus++;
     delay(100);
     if(alarmModus>2)
     {
       alarmModus=0;
     }
     zeichneInfoleiste();
   }
   else if(analogButtonWert>80 && analogButtonWert<130)
     {
       buttonWert=2;
       zeichneInfoleiste();
     }
    else if(analogButtonWert>150 && analogButtonWert<200)
      {
        buttonWert=3;
        zeichneInfoleiste();
      }
    else{ buttonWert=0;}
}

void zeichneButtons()// ************* Buttons aktualisieren ***************************************
{
 
tft.fillRoundRect(10,140,30,14,3,grau);
tft.drawRoundRect(10,140,30,14,3,silber);
tft.setCursor(13,143);
tft.setTextSize(1);
tft.setTextColor(silber,grau);
tft.print("Gong");
 tft.fillRoundRect(48,140,34,14,3,grau);
tft.drawRoundRect(48,140,34,14,3,silber);
tft.setCursor(51,143);
tft.setTextSize(1);
tft.print("Modus");
tft.setTextColor(silber,grau);
tft.fillRoundRect(90,140,30,14,3,grau);
tft.drawRoundRect(90,140,30,14,3,silber);
tft.setCursor(94,143);
tft.setTextSize(1);
tft.print("Set.");
}

void zeichneInfoleiste()//********* Infoleiste aktualisieren ******************************
{
switch(alarmModus)
 {
   case 1: // Stundengong an
   tft.setTextColor(gelb,schwarz);
   tft.setCursor(16,130);
   tft.print(char(14));
   tft.setCursor(29,130);
   tft.setTextColor(silber,schwarz);
   tft.print(char(15));
   break;
  case 2: // Stundengong und Wecker an
    tft.setTextColor(gelb,schwarz);
     tft.setCursor(16,130);
     tft.print(char(14));
     tft.setCursor(29,130);
     tft.setTextColor(gelb,schwarz);
     tft.print(char(15));
 break;
 case  0:// keine Alarme aktiv
   tft.setTextColor(silber,schwarz);
   tft.setCursor(16,130);
   tft.print(char(14));
   tft.setCursor(29,130);
   tft.setTextColor(silber,schwarz);
   tft.print(char(15));
   break;
 }
}

void leseZeit() // ************** Uhrzeit und Datum auslesen *****************************
{
 Wire.beginTransmission(Echtzeituhr); //Registerzeiger auf Uhr stellen
 Wire.write(0);
 Wire.endTransmission();
 Wire.requestFrom(Echtzeituhr, 7);

aktSekunde = bcdToDec(Wire.read());
aktMinute = bcdToDec(Wire.read());
aktStunde = bcdToDec(Wire.read() & 0b111111); //24 Stunden
aktWochentag = bcdToDec(Wire.read()); //funktioniert nicht
aktTag = bcdToDec(Wire.read());
aktMonat = bcdToDec(Wire.read());
aktJahr = bcdToDec(Wire.read())+2000;
}

void rechneWochentag() // ********** Wochentag berechnen ************************
{
 int nT;
 int nM;
 int mZ[13]= {0,0,3,3,6,1,4,6,2,5,0,3,5};//Monatsziffern
 int nJZ;
 int nJH;
 int nSJ;
 nT= aktTag%7;                          // Tagesziffer berechnen
 nM=mZ[aktMonat];                    //Monatsziffr zuweisen
 nJZ= aktJahr-2000;                 // Jahreszahl auf Zehner kürzen
  nJZ=(nJZ+(nJZ/4))%7;               // JahresZehnerZiffer berechnen
   int jH= (aktJahr/100);             // Jahreszahl auf Hunderter kürzen
  nJH=(3-(jH%4))*2;                      // Jahrhundertziffer berechnen
  if(aktMonat<3)                         // Schaltjahreskorrektur  
  {nSJ= 6; }
  else {nSJ=0; }
   aktWochentag= (nT + nM + nJH + nJZ + nSJ)%7;
}
void stundenAlarm()// ************ stündlicher Piepser ********************************
{
 for (i=0;i<2;i++)
 {
 tone(piezoPin, 700);
 delay(50);
 noTone(piezoPin);
 delay(100);
 }
}

byte bcdToDec(byte val) // ************ Hilfsfunktion fürs Umwandeln Binär->Dezimal *****************
{
 return ( (val/16*10) + (val%16) );



ist das so richtig wie ich es gemacht habe?

Hallo

ich bemühe mich alles richtig zu machen , aber entschuldigt bitte die Fehler eines Anfängers.

Hallo

ich werde es mal versuchen so darzustellen wie Ihr das gernne hättet:

#define Echtzeituhr 0x68
#define sclk 13
#define mosi 11
#define cs 10
#define dc 9
#define rst 8

//***************** Farbdefinitionen ***************************************
#define schwarz 0x0000
#define weiss 0xffff
#define rot 0xf800
#define gelb 0xffc0
#define gruen 0x07e0
#define blau 0x001f
#define magenta 0x07ff
#define silber 0xdefb
#define grau 0x8410
#define orange 0xfc00
//***************************** Symbole ****************************************

define note 14

#define sonne 15

#include “Adafruit_GFX.h”
#include “Adafruit_ST7735.h”
#include “SPI.h”
#include “Wire.h”
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

int aktSekunde;
int altSekunde=-1;
int aktMinute;
int altMinute=-1;
int aktStunde;
int altStunde=-1;
int aktWochentag;
int aktTag;
int altTag=-10;
int aktMonat;
int aktJahr;
char* tagKlartext[7] = {“Sonntag”,“Montag”,“Dienstag”,“Mittwoch”,“Donnerstag”,“Freitag”,“Sonnabend”}; //Wochentage
char* monatKlartext = {“Januar”,“Februar”,“Maerz”,“April”,“Mai”,“Juni”,“Juli”,“August”,“September”,“Oktober”,“November”,“Dezember”};
float tempCelsius;
int buttonPin=A2;
int piezoPin=3;
int alarmModus; // 0= alle aus, 1=Stundengong,…
int buttonWert;
int i;

void setup()
{
pinMode(buttonPin,INPUT_PULLUP); //Pin für die Buttons
Wire.begin(); // I2C starten
// Serial.begin(9600); // serielle Konsole
tone(piezoPin, 1500);
delay(200);
noTone(piezoPin);
delay(100);
tone(piezoPin,2000);
delay(200);
noTone(piezoPin);
tft.initR(INITR_BLACKTAB); // Display starten
tft.fillScreen(schwarz);// Display löschen
alarmModus=0;
zeichneAnzeigeUhr();
zeichneInfoleiste();
delay(10);
}

void loop(){
leseZeit();
aktualisiereUhr();
aktualisiereTemperatur();
frageTastenAb();
}

void aktualisiereTemperatur()// ****** Temperatur auslesen, umrechnen und anzeigen **********
{
byte tempMSB, tempLSB, temp;
Wire.beginTransmission(Echtzeituhr);
Wire.write(0x11); // Registerzeiger auf erstes Temperaturregister stellen
Wire.endTransmission();
Wire.requestFrom(Echtzeituhr, 2); // Temperatur abfragen
tempMSB = Wire.read();
tempLSB = Wire.read() >> 6;
tempCelsius = tempMSB + (0.25*tempLSB); // und ausrechnen

tft.setCursor(10,90); // Temperatur ausgeben
tft.setTextSize(0);
tft.setTextColor(blau,schwarz);
tft.print(“Temperatur:”);
if(tempCelsius<17) // wenns zu kalt ist
{tft.setTextColor(magenta,schwarz);}
if(tempCelsius>24) // wenns zu warm ist
{tft.setTextColor(rot,schwarz);}
else
{tft.setTextColor(gruen,schwarz);} // normale Temperatur
tft.setCursor(12,105);
tft.setTextSize(2);
tft.print(tempCelsius,1);
tft.print(char(247));
tft.setCursor(68,112);
tft.setTextColor(blau,schwarz); // Textfarbe wieder zurückstellen
tft.setTextSize(1);
tft.print(" Celsius ");
}

void aktualisiereUhr()// ************** Uhr-und Datumsanzeige aktualisieren *******************************
{
tft.setTextSize(3); // Grosschrift an
tft.setTextColor(blau,schwarz);
if (aktStunde !=altStunde)// wenn Stunden geändert
{
if (alarmModus>0)
{
stundenAlarm();
}
tft.setTextColor(blau,schwarz);
tft.setCursor(8,25);
if(aktStunde<10)
{
tft.print(" “); //Leere Stelle damit die Anzeige nicht verrutscht
}
tft.print(aktStunde);
altStunde=aktStunde;
tft.setCursor(41,25);
tft.print(”:");
}

if(aktMinute !=altMinute)// wenn Minute geändert wurde
{
tft.setCursor(55,25);
if(aktMinute<10)
{
tft.print(“0”);
}
tft.print(aktMinute);
altMinute=aktMinute;
}
if(aktSekunde !=altSekunde)//wenn Sekunden geändert wurden
{
tft.setTextSize(2);
tft.setCursor(88,33);
tft.print(":");
tft.setCursor(99,32);
if(aktSekunde<10)
{
tft.print(“0”);
}
tft.print(aktSekunde);
altSekunde=aktSekunde;
}
tft.setTextSize(0);
if (aktTag !=altTag) // wenn das Datum sich ändert…
{
tft.setCursor(10,55);
tft.setTextColor(magenta,schwarz);
tft.print(aktTag);
altTag=aktTag;
tft.print(".");
tft.print(monatKlartext[aktMonat-1]);
tft.print(" “);
tft.print(aktJahr);
rechneWochentag();
tft.setCursor(10,68);
tft.setTextSize(1);
if(aktWochentag==0)
{
tft.setTextColor(orange,schwarz);
}
else
{
tft.setTextColor(magenta,schwarz);
}
tft.print(tagKlartext[aktWochentag]);
tft.print(” ");
}
}

void zeichneAnzeigeUhr()// ************* Grundgerüst der Anzeige ****************************
{
tft.setTextColor(weiss,schwarz);
tft.setCursor(50,5);
tft.setTextSize(1);
tft.print(“Reiniuhr”);

zeichneButtons();
}
void frageTastenAb()// *************** Abfrage der Buttons **********************************+
{
int analogButtonWert=analogRead(buttonPin);
delay(5);
if (analogButtonWert<50)
{
buttonWert=1;
alarmModus++;
delay(100);
if(alarmModus>2)
{
alarmModus=0;
}
zeichneInfoleiste();
}
else if(analogButtonWert>80 && analogButtonWert<130)
{
buttonWert=2;
zeichneInfoleiste();
}
else if(analogButtonWert>150 && analogButtonWert<200)
{
buttonWert=3;
zeichneInfoleiste();
}
else{ buttonWert=0;}
}

void zeichneButtons()// ************* Buttons aktualisieren ***************************************
{

tft.fillRoundRect(10,140,30,14,3,grau);
tft.drawRoundRect(10,140,30,14,3,silber);
tft.setCursor(13,143);
tft.setTextSize(1);
tft.setTextColor(silber,grau);
tft.print(“Gong”);
tft.fillRoundRect(48,140,34,14,3,grau);
tft.drawRoundRect(48,140,34,14,3,silber);
tft.setCursor(51,143);
tft.setTextSize(1);
tft.print(“Modus”);
tft.setTextColor(silber,grau);
tft.fillRoundRect(90,140,30,14,3,grau);
tft.drawRoundRect(90,140,30,14,3,silber);
tft.setCursor(94,143);
tft.setTextSize(1);
tft.print(“Set.”);
}

void zeichneInfoleiste()//********* Infoleiste aktualisieren ******************************
{
switch(alarmModus)
{
case 1: // Stundengong an
tft.setTextColor(gelb,schwarz);
tft.setCursor(16,130);
tft.print(char(14));
tft.setCursor(29,130);
tft.setTextColor(silber,schwarz);
tft.print(char(15));
break;
case 2: // Stundengong und Wecker an
tft.setTextColor(gelb,schwarz);
tft.setCursor(16,130);
tft.print(char(14));
tft.setCursor(29,130);
tft.setTextColor(gelb,schwarz);
tft.print(char(15));
break;
case 0:// keine Alarme aktiv
tft.setTextColor(silber,schwarz);
tft.setCursor(16,130);
tft.print(char(14));
tft.setCursor(29,130);
tft.setTextColor(silber,schwarz);
tft.print(char(15));
break;
}
}

void leseZeit() // ************** Uhrzeit und Datum auslesen *****************************
{
Wire.beginTransmission(Echtzeituhr); //Registerzeiger auf Uhr stellen
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom(Echtzeituhr, 7);

aktSekunde = bcdToDec(Wire.read());
aktMinute = bcdToDec(Wire.read());
aktStunde = bcdToDec(Wire.read() & 0b111111); //24 Stunden
aktWochentag = bcdToDec(Wire.read()); //funktioniert nicht
aktTag = bcdToDec(Wire.read());
aktMonat = bcdToDec(Wire.read());
aktJahr = bcdToDec(Wire.read())+2000;
}

void rechneWochentag() // ********** Wochentag berechnen ************************
{
int nT;
int nM;
int mZ[13]= {0,0,3,3,6,1,4,6,2,5,0,3,5};//Monatsziffern
int nJZ;
int nJH;
int nSJ;
nT= aktTag%7; // Tagesziffer berechnen
nM=mZ[aktMonat]; //Monatsziffr zuweisen
nJZ= aktJahr-2000; // Jahreszahl auf Zehner kürzen
nJZ=(nJZ+(nJZ/4))%7; // JahresZehnerZiffer berechnen
int jH= (aktJahr/100); // Jahreszahl auf Hunderter kürzen
nJH=(3-(jH%4))*2; // Jahrhundertziffer berechnen
if(aktMonat<3) // Schaltjahreskorrektur
{nSJ= 6; }
else {nSJ=0; }
aktWochentag= (nT + nM + nJH + nJZ + nSJ)%7;
}
void stundenAlarm()// ************ stündlicher Piepser ********************************
{
for (i=0;i<2;i++)
{
tone(piezoPin, 700);
delay(50);
noTone(piezoPin);
delay(100);
}
}

byte bcdToDec(byte val) // ************ Hilfsfunktion fürs Umwandeln Binär->Dezimal *****************
{
return ( (val/16*10) + (val%16) );

ist es so richtig?

Hallo jetzt hab ich es geschnallt wie das geht :

#define Echtzeituhr 0x68
#define sclk 13
#define mosi 11
#define cs   10
#define dc   9
#define rst  8

//***************** Farbdefinitionen ***************************************
#define schwarz 0x0000
#define weiss 0xffff
#define rot 0xf800
#define gelb 0xffc0
#define gruen 0x07e0
#define blau 0x001f
#define magenta 0x07ff
#define silber 0xdefb
#define grau 0x8410
#define orange 0xfc00
//***************************** Symbole ****************************************
# define note 14
#define sonne 15

#include "Adafruit_GFX.h"
#include "Adafruit_ST7735.h"
#include "SPI.h"
#include "Wire.h"
Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, rst);

int aktSekunde;
 int altSekunde=-1;
int aktMinute;
 int altMinute=-1;
int aktStunde;
 int altStunde=-1;
int aktWochentag;
int aktTag;
int altTag=-10;
int aktMonat;
int aktJahr;
char* tagKlartext[7] = {"Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Sonnabend"}; //Wochentage
char* monatKlartext[] = {"Januar","Februar","Maerz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"};
float tempCelsius;
 int buttonPin=A2;
 int piezoPin=3;
 int alarmModus; // 0= alle aus, 1=Stundengong,....
int buttonWert;
int i;

void setup()
{
pinMode(buttonPin,INPUT_PULLUP); //Pin für die Buttons
Wire.begin(); // I2C starten
// Serial.begin(9600); // serielle Konsole
 tone(piezoPin, 1500);
  delay(200);
 noTone(piezoPin);
  delay(100);
 tone(piezoPin,2000);
  delay(200);
 noTone(piezoPin);
tft.initR(INITR_BLACKTAB); // Display starten
tft.fillScreen(schwarz);// Display löschen
 alarmModus=0;
zeichneAnzeigeUhr();
zeichneInfoleiste();
 delay(10);
}

void loop(){
 leseZeit();
 aktualisiereUhr();
 aktualisiereTemperatur();
frageTastenAb();
}

void aktualisiereTemperatur()// ****** Temperatur auslesen, umrechnen und anzeigen **********
{
 byte tempMSB, tempLSB, temp;
 Wire.beginTransmission(Echtzeituhr);
 Wire.write(0x11);                                             // Registerzeiger auf erstes Temperaturregister stellen
 Wire.endTransmission();
  Wire.requestFrom(Echtzeituhr, 2);                    // Temperatur abfragen
 tempMSB = Wire.read();
 tempLSB = Wire.read() >> 6;
 tempCelsius = tempMSB + (0.25*tempLSB);          // und ausrechnen
     
tft.setCursor(10,90);                                        // Temperatur ausgeben
tft.setTextSize(0);
tft.setTextColor(blau,schwarz);
tft.print("Temperatur:");
if(tempCelsius<17)                                            // wenns zu kalt ist
{tft.setTextColor(magenta,schwarz);}
if(tempCelsius>24)                                            // wenns zu warm ist
{tft.setTextColor(rot,schwarz);}
else
{tft.setTextColor(gruen,schwarz);}                     // normale Temperatur
tft.setCursor(12,105);
tft.setTextSize(2);
 tft.print(tempCelsius,1);
 tft.print(char(247));
 tft.setCursor(68,112);
 tft.setTextColor(blau,schwarz);                    // Textfarbe wieder zurückstellen
 tft.setTextSize(1);
tft.print(" Celsius ");
}

void aktualisiereUhr()// ************** Uhr-und Datumsanzeige aktualisieren *******************************
{
 tft.setTextSize(3); // Grosschrift an
 tft.setTextColor(blau,schwarz);
if (aktStunde !=altStunde)// wenn Stunden geändert
 {
   if  (alarmModus>0)
   {
     stundenAlarm();
   }
   tft.setTextColor(blau,schwarz);
  tft.setCursor(8,25);
 if(aktStunde<10)
  {
    tft.print(" ");  //Leere Stelle damit die Anzeige nicht verrutscht
  }
  tft.print(aktStunde);
  altStunde=aktStunde;
   tft.setCursor(41,25);
  tft.print(":");
}
 
if(aktMinute !=altMinute)// wenn Minute geändert wurde
 {
   tft.setCursor(55,25);
  if(aktMinute<10)
   {
     tft.print("0");
   }
   tft.print(aktMinute);
   altMinute=aktMinute;
 }
if(aktSekunde !=altSekunde)//wenn Sekunden geändert wurden
 {
   tft.setTextSize(2);
   tft.setCursor(88,33);
   tft.print(":");
   tft.setCursor(99,32);
   if(aktSekunde<10)
   {
     tft.print("0");
   }
   tft.print(aktSekunde);
   altSekunde=aktSekunde;
}
tft.setTextSize(0);
if (aktTag !=altTag) // wenn das Datum sich ändert....
  {
    tft.setCursor(10,55);
    tft.setTextColor(magenta,schwarz);
    tft.print(aktTag);
    altTag=aktTag;
    tft.print(".");
    tft.print(monatKlartext[aktMonat-1]);
     tft.print(" ");
     tft.print(aktJahr);
     rechneWochentag();
     tft.setCursor(10,68);
     tft.setTextSize(1);
    if(aktWochentag==0)
     {
       tft.setTextColor(orange,schwarz);
     }
   else
     {
       tft.setTextColor(magenta,schwarz);
     }
    tft.print(tagKlartext[aktWochentag]);
    tft.print("    ");
  }
}

void zeichneAnzeigeUhr()// ************* Grundgerüst der Anzeige ****************************
{
 tft.setTextColor(weiss,schwarz);
    tft.setCursor(50,5);
 tft.setTextSize(1);
 tft.print("Reiniuhr");
 
 zeichneButtons();
}
void frageTastenAb()// *************** Abfrage der Buttons **********************************+
{
 int analogButtonWert=analogRead(buttonPin);
 delay(5);
 if (analogButtonWert<50)
   {
     buttonWert=1;
     alarmModus++;
     delay(100);
     if(alarmModus>2)
     {
       alarmModus=0;
     }
     zeichneInfoleiste();
   }
   else if(analogButtonWert>80 && analogButtonWert<130)
     {
       buttonWert=2;
       zeichneInfoleiste();
     }
    else if(analogButtonWert>150 && analogButtonWert<200)
      {
        buttonWert=3;
        zeichneInfoleiste();
      }
    else{ buttonWert=0;}
}

void zeichneButtons()// ************* Buttons aktualisieren ***************************************
{
 
tft.fillRoundRect(10,140,30,14,3,grau);
tft.drawRoundRect(10,140,30,14,3,silber);
tft.setCursor(13,143);
tft.setTextSize(1);
tft.setTextColor(silber,grau);
tft.print("Gong");
 tft.fillRoundRect(48,140,34,14,3,grau);
tft.drawRoundRect(48,140,34,14,3,silber);
tft.setCursor(51,143);
tft.setTextSize(1);
tft.print("Modus");
tft.setTextColor(silber,grau);
tft.fillRoundRect(90,140,30,14,3,grau);
tft.drawRoundRect(90,140,30,14,3,silber);
tft.setCursor(94,143);
tft.setTextSize(1);
tft.print("Set.");
}

void zeichneInfoleiste()//********* Infoleiste aktualisieren ******************************
{
switch(alarmModus)
 {
   case 1: // Stundengong an
   tft.setTextColor(gelb,schwarz);
   tft.setCursor(16,130);
   tft.print(char(14));
   tft.setCursor(29,130);
   tft.setTextColor(silber,schwarz);
   tft.print(char(15));
   break;
  case 2: // Stundengong und Wecker an
    tft.setTextColor(gelb,schwarz);
     tft.setCursor(16,130);
     tft.print(char(14));
     tft.setCursor(29,130);
     tft.setTextColor(gelb,schwarz);
     tft.print(char(15));
 break;
 case  0:// keine Alarme aktiv
   tft.setTextColor(silber,schwarz);
   tft.setCursor(16,130);
   tft.print(char(14));
   tft.setCursor(29,130);
   tft.setTextColor(silber,schwarz);
   tft.print(char(15));
   break;
 }
}

void leseZeit() // ************** Uhrzeit und Datum auslesen *****************************
{
 Wire.beginTransmission(Echtzeituhr); //Registerzeiger auf Uhr stellen
 Wire.write(0);
 Wire.endTransmission();
 Wire.requestFrom(Echtzeituhr, 7);

aktSekunde = bcdToDec(Wire.read());
aktMinute = bcdToDec(Wire.read());
aktStunde = bcdToDec(Wire.read() & 0b111111); //24 Stunden
aktWochentag = bcdToDec(Wire.read()); //funktioniert nicht
aktTag = bcdToDec(Wire.read());
aktMonat = bcdToDec(Wire.read());
aktJahr = bcdToDec(Wire.read())+2000;
}

void rechneWochentag() // ********** Wochentag berechnen ************************
{
 int nT;
 int nM;
 int mZ[13]= {0,0,3,3,6,1,4,6,2,5,0,3,5};//Monatsziffern
 int nJZ;
 int nJH;
 int nSJ;
 nT= aktTag%7;                          // Tagesziffer berechnen
 nM=mZ[aktMonat];                    //Monatsziffr zuweisen
 nJZ= aktJahr-2000;                 // Jahreszahl auf Zehner kürzen
  nJZ=(nJZ+(nJZ/4))%7;               // JahresZehnerZiffer berechnen
   int jH= (aktJahr/100);             // Jahreszahl auf Hunderter kürzen
  nJH=(3-(jH%4))*2;                      // Jahrhundertziffer berechnen
  if(aktMonat<3)                         // Schaltjahreskorrektur
  {nSJ= 6; }
  else {nSJ=0; }
   aktWochentag= (nT + nM + nJH + nJZ + nSJ)%7;
}
void stundenAlarm()// ************ stündlicher Piepser ********************************
{
 for (i=0;i<2;i++)
 {
 tone(piezoPin, 700);
 delay(50);
 noTone(piezoPin);
 delay(100);
 }
}

byte bcdToDec(byte val) // ************ Hilfsfunktion fürs Umwandeln Binär->Dezimal *****************
{
 return ( (val/16*10) + (val%16) );

ich denke so wollt Ihr das haben?

Hallo jurs und HotSystems

Ich denke ich hab das geschnallt , danke für Euer Verständnis gegenüber eines Anfängers.

Ich bin bemüht mich ständig weiterzubilden aber es werden immer wieder Fragen von meiner Seite aus auf Euch

zukommen und möchte mich bedanken für Euere Freizeit die Ihr hier dazu benutzt um solche Anfänger wie ich

einer bin gut zu unterstützen.Danke nochmals dafür.

Reiner

Du könntest sogar deine eigenen Fehlversuche (16:20 und 15:57) löschen :wink:

Oder den Sketch in der Arduino Software mit Strg-T richtig einrücken, bevor du ihn hier postest.

Kannst auch eigene Einträge editieren. ( Quick Edit oder More-Modify )

Aber, was ist jetzt genau dein Problem mit diesem Sketch?

danke für Deine schnelle Antwort es hat funktioniert , bekomme das Display zum laufen und es zeigt alles korrekt an.

könntest Du mir noch zeigen wie man ein Thermometer mit innen u. außen Temp. einfügt und was man am besten für welche nimmt ich denke da an DS18B20 und mit was kann ich eine drahtlose verbindung herstellen

also sozusagen eine kleine Wetterstation mit Zeit , Datum und Innen u. Außentemperatur.

Es ist toll, was man alles fix und fertig findet.
Noch toller, wenn man es sogar nachbauen kann.
Super, wenn man sogar kleinere Änderungen hinkriegt.

Wenn man dann aber was anderes will, muss man entweder weitersuchen, oder lernen es selbst zu machen.

DS18B20 und drahtlose Verbindung sind erstmal zwei unabhängige Probleme: dann brauchst du noch was, das die Aussentemperatur liest und den Sender spielt. Und möglichst noch mit einer Batterie ein Jahr lang auskommt.

Gibt auch Hacker, die einen fertigen Aussentemperatursender empfangen und auswerten können.
Ist aber kein Anfänger-Projekt.

Hallo michael_x

ich möchte gerne wissen wie man in den fertigen Sketch (der letzte ) noch andere Sensoren USW. einbinden kann , denn ich möchte ja gerne mal eigene Sketch schreiben aber da muß ich mich noch sehr anstrengen u mich einlesen.

Dann würde ich gerne wissen wie man mit einen Arduino pro 3.3V drei Vrebraucher mit je 1W und 12V schalten kann.

Wenn ich mich nicht irre kann man das mit Relais oder Optokoppler realisieren aber ich bin mir da nicht sicher.

Zu deinen Fragen was ich machen will zur drahtlosen Übertragung , ich möchte mir gerne eine einfache Wetterstation bauen , die gibt es zwar fertig aber ich möchte eine selber bauen denn man lernt nie aus und das macht mir sehr viel freude was zu bauen.

Danke für Deine Hilfe

Reiner

ich möchte ja gerne mal eigene Sketch schreiben aber da muß ich mich noch sehr anstrengen u mich einlesen.

Ja, das würde ich dir auch empfehlen ;)

Ist eigentlich nicht meine Art, anderen Leuten "bereits fertige Sketche", die sie nicht verstehen, zu erweitern. Hier im Forum nennt man dieses "Hilfe zur Selbsthilfe"

In jeden Sketch kann man zusätzliche #include Anweisungen, globale Variable, weitere Funktionen eifügen und die Funktionen setup() und loop() beliebig erweitern. Das Abenteuer ist deutlich größer als nur Texte zu ändern oder andere kleine Anpassungen 8)

Dann würde ich gerne wissen wie man mit einen Arduino pro 3.3V drei Vrebraucher mit je 1W und 12V schalten kann. Wenn ich mich nicht irre kann man das mit Relais oder Optokoppler realisieren aber ich bin mir da nicht sicher.

Es gibt meines wissens keine Relais für 3.3V, die dann auch noch mit 20mA auskommen. Es gibt aber Relais-Shields, die ausser dem Relais noch einen Transistor und einen Optokoppler zu dessen Ansteuerung drauf haben.

12V * 100 mA (reine Neugierde: was sind das für 1W Verbraucher?) kann man per Arduino mit jedem npn Transistor schalten. Da könntest du zusätzlich zum Programmieren auch Basis-Elektronikkenntnisse erwerben/vertiefen/anwenden. Für größere Ströme muss man sich etwas mehr Gedanken machen.

Hallo Reiner,

ich glaube du verstehst uns alle nicht. Du schreibst immer "Du willst etwas lernen", nimmst unsere Beispiele und Vorschläge aber nicht an.

Du wirst es nie schaffen, einen fertigen, funktionierenden Sketch nach deinen Wünschen umzuschreiben und dass er dann auch noch funktioniert, da du diesen Sketch nicht verstehst. Und wenn wir den ändern, verstehst du noch weniger.

Damit du das schaffst, musst du mit kleinen Dingen anfangen und nicht irgendwelche Sketche aus dem Web, die dir gefallen, hier posten und wir sollen die Änderungen durchführen.

Das hatte ich alles schon geschrieben.

Also baue deine eigenen Sketche auf, lerne daran. Anders wird es nie etwas.

Es wird auch nichts, wenn du immer neue Fragen hast, die du eigentlich, selber testen solltest.

Wie "michael_x" schon geschrieben hat: Wir werden keine fertigen, kopierten Sketche für dich ändern. Davon lernst du nichts.

Und warum löscht du nicht deine alten, doppelten Posts nicht endlich. Darum wurdest du auch schon öfters gebeten.

Hi HotSystems

wie kann ich die alten Posts löschen?

Ich seh bei meinen eigenen Einträgen more…
und dort Remove