Hilfe code arduino

Hallo. Ich verstehe den Fehler nicht. Kann mir jemand helfen.
Bild
Bild

Kleiner Tipp: Den Programmcode in der Arduino IDE markieren und hier im Forum über die Zwischenablage/das Clipboard einfügen. Dabei den Code zwischen die Codetags setzen, die erscheinen, wenn man hier in der Menüleiste im Editor auf die Zeichen </> klickt.

Alternativ schreibst Du vor den Programmcode hier im Editor

[code]

und am Ende

[/code]

Das sieht dann nach "Bearbeitung speichern" so aus (Beispiel):

void setup(){
 Serial.begin(9600);
}

So geht es auch, wenn man in der IDE den Programmcode markiert, mit rechter Maustaste bzw. im Menü "Bearbeite" mit der Option "für das Forum" kopiert und dann hier einfügt.

Das Objekt RTC ist an der Stelle, an der es verwendet wird (in setup()), nicht bekannt.
Mögliche Ursachen:

  • Es wurde gar nicht erzeugt
  • Die Sichtbarkeit reicht nicht in setup() hinein

Außerdem vermute ich, dass da noch Klammern fehlen: get ist doch wahrscheinlich eine Methode, kein (Daten-)Member:

setSyncProvider(RTC.get());

Wirklich beurteilen lässt sich das erst, wenn der ganze Sketch wie von "ec2021" beschrieben hier zugänglich ist.

Und ganz wichtig, wie man hier richtig postet steht hier:
Wie man dieses Forum benutzt - bitte lesen - International / Deutsch - Arduino Forum
Daher den Beitrag auch lesen !

Du vermutest falsch.

Okay.
Das ist leicht möglich und ich werde es hoffentlich verstehen, wenn ich weiß welchen Typ RTC hat.

Edit:
Habe ein wenig rumgesucht. JChristensen schreibt eine Important Notice zur Lib Version 2.0:

Es fehlt also nur eine kleine Zeile a la

DS3232RTC RTC;

Es hätte so einfach sein können...

Momentan scheinen die Wordclocks sehr gefragt zu sein...
https://forum.arduino.cc/t/fehler-code-hilfe/992365
Anscheinend haben alle den gleichen fehlerhaften Code :wink:

Soweitder Code dem aus dem von @Moko verlinktem entspricht ist .get() richtig

Nein. setSyncProvider aus time.h will die Adresse einer Funktion/Methode, die die Zeit als time_t zurück gibt, um damit die "Systemzeit zu stellen. get ( ohne () ) ist also richtig.

Gruß Tommy

Ich vermute, das ist immer der selbe User.
1 mal wurde hier der Account schon gesperrt.

Aahh...
Stimmt. Ich stolper immer wieder drüber.

Aller Wahrscheinlichkeit nach erwartet der Aufruf aber keine (RTC::)Methode,
sondern eine normale Funktion.

Ok, dann müsste man da eine Wrapperfunktion drumrum bauen.
Aber in den Fehlermeldungen des/der TO wird RTC als nicht definiert bemängelt. Das ist halt der Nachteil, wenn nur Fragmente hin geworfen werden.

Gruß Tommy

Es fehlt einfach das include auf eine lib.
In Pauls TimeRTC Example einfach Zeile 9 auskommentieren bringt genau diesen Effekt. Die 1307 kann man auch mit der 3231 von Paul oder der 3232 von JChristensen ersetzen.

Hallo. Ich baue eine Word Clock und habe diesen Code gefunden. Bei mir funktioniert er aber leider nicht. Wenn ich ihn überprüfe kommt eine Fehlermeldung und da ich mich nicht gut auskenne weiß ich nicht was der Fehler ist und wie ich ihn beheben kann.Danke schonmal für die Hilfe.

#include <DS3232RTC.h> //https://github.com/JChristensen/DS3232RTC
#include <TimeLib.h> //https://github.com/PaulStoffregen/Time
#include <Wire.h>
#include <FastLED.h> //https://github.com/FastLED/FastLED

FASTLED_USING_NAMESPACE
#define DATA_PIN    5
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
#define NUM_LEDS    114      // Gesamtanzahl der WS2812 LEDs
CRGB leds[NUM_LEDS];

const uint8_t maxBrightness     = 35;  // Wenn Fotoresistor benutzt wird, hier min. Helligkeit eintragen (0=Off->255=max)
const uint8_t minBrightness     = 210;   // Wenn Fotoresistor benutzt wird, hier max. Helligkeit eintragen (0=Off->255=max)
const uint8_t AmbientLightPin   = 0;    // Fotoresistor Pin
uint8_t BRIGHTNESS              = 120;  // Wenn kein Fotoresistor benutzt wird hier dauerhafte Helligkeit eintragen

uint8_t Stunde     = 0;
uint8_t Minute     = 15;
uint8_t WochenTag  = 0;
uint8_t Tag        = 30;
uint8_t Monat      = 10;
boolean DST        = false;


//***HIER LED POSITIONEN EINTRAGEN***//
const uint8_t Es[]        = {0, 1};
const uint8_t Ist[]       = {3, 4, 5};

const uint8_t Eins[]      = {62, 63, 64, 65};
const uint8_t Ein[]       = {63, 64, 65};
const uint8_t Zwei[]      = {55, 56, 57, 58};
const uint8_t Drei[]      = {66, 67, 68, 69};
const uint8_t Vier[]      = {73, 74, 75, 76};
const uint8_t Fuenf[]     = {51, 52, 53, 54};
const uint8_t Sechs[]     = {83, 84, 85, 86, 87};
const uint8_t Sieben[]    = {88, 89, 90, 91, 92, 93};
const uint8_t Acht[]      = {77, 78, 79, 80};
const uint8_t Neun[]      = {103, 104, 105, 106};
const uint8_t Zehn[]      = {106, 107, 108, 109};
const uint8_t Elf[]       = {49, 50, 51};
const uint8_t Zwoelf[]    = {94, 95, 96, 97, 98};
const uint8_t MZwanzig[]  = {11, 12, 13, 14, 15, 16, 17};
const uint8_t MFuenf[]    = {7, 8, 9, 10};
const uint8_t MZehn[]     = {18, 19, 20, 21};

const uint8_t Viertel[]   = {26, 27, 28, 29, 30, 31, 32};
const uint8_t Vor[]       = {41, 42, 43};
const uint8_t Nach[]      = {33, 34, 35, 36};
const uint8_t Halb[]      = {44, 45, 46, 47};
const uint8_t Uhr[]       = {99, 100, 101};


const uint8_t EinsM[]     = {110}; //Minuten Punkt 1
const uint8_t ZweiM[]     = {113}; //Minuten Punkt 2
const uint8_t DreiM[]     = {111}; //Minuten Punkt 3
const uint8_t VierM[]     = {112}; //Minuten Punkt 4
//**********************************//

//int Ambient, LastAmbient;

void setup() {
  //delay(3000); // Sicherheits Delay
  Serial.begin(9600);
  //LEDs werden eingefügt + Farbkorrektur und Farbtemperatur auf Wolfram (warmweiß)
  FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalPixelString);
  FastLED.setTemperature( Tungsten40W );
  Serial.println("Starte Wordclock ...");

  //Versuche auf RTC zu zugreifen
  setSyncProvider(RTC.get);
  if (timeStatus() != timeSet) {
    Serial.println("Unable to sync with the RTC");
  } else if (timeStatus() != timeNeedsSync) {
    Serial.println("RTC has set the system time");
  } else {
    Serial.println("RTC has set the system time but needs Sync");
  }
}

void SwitchLED(const uint8_t MyArray[], int n) {
  //Umgebungshelligkeit überprüfen (sofern gewünscht)
  /*
    if(maxBrightness != 0){
      Ambient = analogRead(AmbientLightPin);
      //Nur bei größeren Helligkeitsänderungen soll die Helligkeit der LEDs angepasst werden:
      if((Ambient > LastAmbient*1.10) || (Ambient < LastAmbient*0.90)){
        BRIGHTNESS = map(Ambient, 0, 1023, maxBrightness, minBrightness);
        LastAmbient = Ambient;
      }
    }
  */
  //Funktion zum Anschalten der LEDs in warmweiß (oder gewünschter Farbe)
  for (int i = 0; i < n; i++) {
    leds[MyArray[i]] = 0xFFC58F;                // HEX Warmweiß | Hier gewünschte LED Farbe (HEX) eintragen
    FastLED.setBrightness(BRIGHTNESS);
    //leds[i] = CHSV(140, 27, BRIGHTNESS);      // ODER hier gewünschte Farbe in HSV (  CHSV(FARBE, SÄTTIGUNG, BRIGHTNESS)  )
    //leds[i].setRGB(255, 68, 221);             // ODER hier gewünschte Farbe in RGB (  .setRGB(Rot,Grün,Blau)   )
  }
}

void displaytime(void) {
  //zuerst setzten wir alle LEDs zurück
  fill_solid( leds, NUM_LEDS, CHSV(0, 0, 0));

  // Nun suchen wir die richtigen LEDs und übergeben sie an die Funktion zum Anschalten
  Serial.print("Es ");
  SwitchLED(Es, (sizeof(Es)));
  Serial.print("ist ");
  SwitchLED(Ist, (sizeof(Ist)));

  if (((Minute > 4) && (Minute < 10)) || (Minute > 54)) {
    SwitchLED(MFuenf, (sizeof(MFuenf)));
    Serial.print("5 Minuten ");
  }
  if (((Minute > 9) && (Minute < 15)) || ((Minute > 49) && (Minute < 55))) {
    SwitchLED(MZehn, (sizeof(MZehn)));
    Serial.print("10 Minuten ");
  }
  if (((Minute > 14) && (Minute < 20)) || ((Minute > 44) && (Minute < 50))) {
    SwitchLED(Viertel, (sizeof(Viertel)));
    Serial.print("Viertel ");
  }
  if (((Minute > 19) && (Minute < 25)) || ((Minute > 39) && (Minute < 45))) {
    SwitchLED(MZwanzig, (sizeof(MZwanzig)));
    Serial.print("20 Minuten ");
   }  
  if (((Minute>24) && (Minute<30))) { 
    SwitchLED(MFuenf, (sizeof(MFuenf))); 
    SwitchLED(Vor, (sizeof(Vor)));
    SwitchLED(Halb, (sizeof(Halb)));
   Serial.print("5 vor halb ");
   
  } 
    if (((Minute>34) && (Minute<40))) { 
    SwitchLED(MFuenf, (sizeof(MFuenf))); 
    SwitchLED(Nach, (sizeof(Nach)));
    SwitchLED(Halb, (sizeof(Halb)));
   Serial.print("5 nach halb ");
  }
  if ((Minute > 29) && (Minute < 35)) {
    SwitchLED(Halb, (sizeof(Halb)));
    Serial.print("Halb ");
  }

  if (Minute < 5) {
    switch (Stunde) {
      case 1:
        SwitchLED(Ein, (sizeof(Ein)));
        Serial.print("1 ");
        break;
      case 2:
        SwitchLED(Zwei, (sizeof(Zwei)));
        Serial.print("2 ");
        break;
      case 3:
        SwitchLED(Drei, (sizeof(Drei)));
        Serial.print("3 ");
        break;
      case 4:
        SwitchLED(Vier, (sizeof(Vier)));
        Serial.print("4 ");
        break;
      case 5:
        SwitchLED(Fuenf, (sizeof(Fuenf)));
        Serial.print("5 ");
        break;
      case 6:
        SwitchLED(Sechs, (sizeof(Sechs)));
        Serial.print("6 ");
        break;
      case 7:
        SwitchLED(Sieben, (sizeof(Sieben)));
        Serial.print("7 ");
        break;
      case 8:
        SwitchLED(Acht, (sizeof(Acht)));
        Serial.print("8 ");
        break;
      case 9:
        SwitchLED(Neun, (sizeof(Neun)));
        Serial.print("9 ");
        break;
      case 10:
        SwitchLED(Zehn, (sizeof(Zehn)));
        Serial.print("10 ");
        break;
      case 11:
        SwitchLED(Elf, (sizeof(Elf)));
        Serial.print("11 ");
        break;
      case 12:
        SwitchLED(Zwoelf, (sizeof(Zwoelf)));
        Serial.print("12 ");
        break;
    }
    SwitchLED(Uhr, (sizeof(Uhr)));
    Serial.println("Uhr");
  }
  else if ((Minute < 24) && (Minute > 4)) {
    SwitchLED(Nach, (sizeof(Nach)));
    Serial.print("nach ");
    switch (Stunde) {
      case 1:
        SwitchLED(Eins, (sizeof(Eins)));
        Serial.println("1 ");
        break;
      case 2:
        SwitchLED(Zwei, (sizeof(Zwei)));
        Serial.println("2 ");
        break;
      case 3:
        SwitchLED(Drei, (sizeof(Drei)));
        Serial.println("3 ");
        break;
      case 4:
        SwitchLED(Vier, (sizeof(Vier)));
        Serial.println("4 ");
        break;
      case 5:
        SwitchLED(Fuenf, (sizeof(Fuenf)));
        Serial.println("8 ");
        break;
      case 6:
        SwitchLED(Sechs, (sizeof(Sechs)));
        Serial.println("6 ");
        break;
      case 7:
        SwitchLED(Sieben, (sizeof(Sieben)));
        Serial.println("7 ");
        break;
      case 8:
        SwitchLED(Acht, (sizeof(Acht)));
        Serial.println("8 ");
        break;
      case 9:
        SwitchLED(Neun, (sizeof(Neun)));
        Serial.println("9 ");
        break;
      case 10:
        SwitchLED(Zehn, (sizeof(Zehn)));
        Serial.println("10 ");
        break;
      case 11:
        SwitchLED(Elf, (sizeof(Elf)));
        Serial.println("11 ");
        break;
      case 12:
        SwitchLED(Zwoelf, (sizeof(Zwoelf)));
        Serial.println("12 ");
        break;
    }
  }
  else {
    if ((Minute > 29) && (Minute < 35)) {
      switch (Stunde) {
        case 1:
          SwitchLED(Zwei, (sizeof(Zwei)));
          Serial.println("2 ");
          break;
        case 2:
          SwitchLED(Drei, (sizeof(Drei)));
          Serial.println("3");
          break;
        case 3:
          SwitchLED(Vier, (sizeof(Vier)));
          Serial.println("4 ");
          break;
        case 4:
          SwitchLED(Fuenf, (sizeof(Fuenf)));
          Serial.println("5 ");
          break;
        case 5:
          SwitchLED(Sechs, (sizeof(Sechs)));
          Serial.println("6 ");
          break;
        case 6:
          SwitchLED(Sieben, (sizeof(Sieben)));
          Serial.println("7 ");
          break;
        case 7:
          SwitchLED(Acht, (sizeof(Acht)));
          Serial.println("8 ");
          break;
        case 8:
          SwitchLED(Neun, (sizeof(Neun)));
          Serial.println("9 ");
          break;
        case 9:
          SwitchLED(Zehn, (sizeof(Zehn)));
          Serial.println("10 ");
          break;
        case 10:
          SwitchLED(Elf, (sizeof(Elf)));
          Serial.println("11 ");
          break;
        case 11:
          SwitchLED(Zwoelf, (sizeof(Zwoelf)));
          Serial.println("12 ");
          break;
        case 12:
          SwitchLED(Eins, (sizeof(Eins)));
          Serial.println("1 ");
          break;
      }
    }
    else {
      SwitchLED(Vor, (sizeof(Vor)));
      Serial.print("vor ");
      switch (Stunde) {
        case 1:
          SwitchLED(Zwei, (sizeof(Zwei)));
          Serial.println("2 ");
          break;
        case 2:
          SwitchLED(Drei, (sizeof(Drei)));
          Serial.println("3");
          break;
        case 3:
          SwitchLED(Vier, (sizeof(Vier)));
          Serial.println("4 ");
          break;
        case 4:
          SwitchLED(Fuenf, (sizeof(Fuenf)));
          Serial.println("5 ");
          break;
        case 5:
          SwitchLED(Sechs, (sizeof(Sechs)));
          Serial.println("6 ");
          break;
        case 6:
          SwitchLED(Sieben, (sizeof(Sieben)));
          Serial.println("7 ");
          break;
        case 7:
          SwitchLED(Acht, (sizeof(Acht)));
          Serial.println("8 ");
          break;
        case 8:
          SwitchLED(Neun, (sizeof(Neun)));
          Serial.println("9 ");
          break;
        case 9:
          SwitchLED(Zehn, (sizeof(Zehn)));
          Serial.println("10 ");
          break;
        case 10:
          SwitchLED(Elf, (sizeof(Elf)));
          Serial.println("11 ");
          break;
        case 11:
          SwitchLED(Zwoelf, (sizeof(Zwoelf)));
          Serial.println("12 ");
          break;
        case 12:
          SwitchLED(Eins, (sizeof(Eins)));
          Serial.println("1 ");
          break;
      }
    }
  }
  // Minuten Zähler
  uint8_t MinCount = Minute - (floor(Minute / 10) * 10);
  if (MinCount > 5)
    MinCount = MinCount - 5;
  switch (MinCount) {
    case 4:
      SwitchLED(VierM, (sizeof(VierM)));
    case 3:
      SwitchLED(DreiM, (sizeof(DreiM)));
    case 2:
      SwitchLED(ZweiM, (sizeof(ZweiM)));
    case 1:
      SwitchLED(EinsM, (sizeof(EinsM)));
  }
  FastLED.show();
}

void CheckDST(void) {
  //Funktion zum Überprüfen ob Sommer oder Winterzeit
  Tag = day();
  Monat = month();

  WochenTag = (weekday() - 1);
  int Hilf = Tag - WochenTag;
  if (Monat <= 2 || Monat >= 11)
    DST = false;                                 // Winterzeit

  if (Monat >= 4 && Monat <= 9)
    DST = true;                                  // Sommerzeit

  if ((Monat == 3) && (Hilf >= 25))
    DST = true;                                 // Beginn der Sommerzeit

  if ((Monat == 10) && (Hilf >= 25))
    DST = false;                                 // Beginn der Winterzeit

  if (DST == true) {
    if (Stunde <= 11)
      Stunde = Stunde + 1;
    else if (Stunde > 12)
      Stunde = Stunde - 12 + 1;
    else if (Stunde == 12)
      Stunde = 1;
    else if (Stunde == 24)
      Stunde = 1;
    //Stunde += 1;
  }
}

void loop() {
  /* Schleifen Funktion, die die Uhrzeit ausliest und dann in die
     entsprechende Funktionen übergibt.
  */
  Minute = minute();
  int Std = hour();
  if (Std > 12)
    Stunde = Std - 12;
  else if (Std == 0)
    Stunde = 12;
  else
    Stunde = Std;

  CheckDST();
  displaytime();
  FastLED.delay(1000);
  Serial.println(Stunde);
  Serial.println(Minute);
}

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

@

Your other topic on the same subject deleted.

Please do not duplicate your questions as doing so wastes the time and effort of the volunteers trying to help you as they are then answering the same thing in different places.

Repeated duplicate posting could result in a temporary or permanent ban from the forum.

Could you take a few moments to Learn How To Use The Forum

It will help you get the best out of the forum in the future.

  • Your OS and version can be valuable information, please include it along with extra security you are using.

  • Always list the version of the IDE you are using and the board version if applicable.

  • Use quote or add error messages as an attachment NOT a picture.

  • How to insert an image into your post. ( Thanks @sterretje )

  • Add your sketch where applicable but please use CODE TAGS ( </> )

  • Add a SCHEMATIC were needed even if it is hand drawn

  • Add working links to any specific hardware as needed (NOT links to similar items)

  • Remember that the people trying to help cannot see your problem so give as much information as you can

COMMON ISSUES

  • Ensure you have FULLY inserted the USB cables.

  • Check you have a COMMON GROUND where required. ( Thanks @Perry)

  • Where possible use USB 2.0 ports or a USB 2.0 POWERED HUB to rule out USB 3.0 issues.

  • Try other computers where possible.

  • Try other USB leads where possible.

  • You may not have the correct driver installed. CH340/341 or CP2102 or FT232 VCP Drivers - FTDI

  • There may be a problem with the board check or remove your wiring first.

  • Remove any items connected to pins 0 and 1.

COMPUTER RELATED

  • Close any other serial programs before opening the IDE.

  • Ensure you turn off any additional security / antivirus just to test.

  • There may be a problem with the PC try RESTARTING it.

  • You may be selecting the wrong COM port.

  • Avoid cloud/network based installations where possible OR ensure your Network/Cloud software is RUNNING.

  • Clear your browsers CACHE.

  • Close the IDE before using any other serial programs.

  • Preferably install IDE’s as ADMINISTRATOR or your OS equivalent

ARDUINO SPECIFIC BOARDS

  • CH340/341 based clones do not report useful information to the “get board info” button.

  • NANO (Old Types) some require you to use the OLD BOOTLOADER option.

  • NANO (ALL Types) See the specific sections lower in the forum.

  • NANO (NEW Types) Install your board CORE’s.

  • Unless using EXTERNAL PROGRAMMERS please leave the IDE selection at default “AVRISP mkII”.

  • Boards using a MICRO usb connector need a cable that is both DATA and CHARGE. Many are CHARGE ONLY.

CREATE editor install locations.

  • On macOs ~/Applications/ArduinoCreateAgent-1.1/ArduinoCreateAgent.app/Contents/MacOS/config.ini

  • On Linux ~/ArduinoCreateAgent-1.1/config.ini

  • On Windows C:\Users[your user]\AppData\Roaming\ArduinoCreateAgent-1.1

Performing the above actions may help resolve your problem without further help.

Language problem ?

Try a language closer to your native language:

Thanks to all those who helped and added to this list.

Dann poste doch mal die Quelle.

Alle Inkarnationen von @simmikka wurden wegen wiederholter Verstöße dauerhaft gesperrt.