Nano Every + RTC + SD-Card

Hallo

Ich habe es nun geschafft, dass alles funktioniert (LCD-Display, Entfernungsmesser, Neopixel, RTC-Modul, passiver Buzzer).
Aber hänge ich das SD-Card-Modul dazu, bekomme ich die Meldung, dass die RTC nicht gefunden wurde. Das SD-Card-Modul funktioniert. Ich komme nicht dahinter, wo oder wie sich das SD-Card-Modul und die RTC stören. Ich habe auch schon die anderen Module abgehängt und ich bin etwas ratlos.
P.S.: Bitte um Nachsicht - dies ist mein erster Platinenplan.

#include <Wire.h>
#include <VL53L1X.h>

VL53L1X sensor;

#include <LiquidCrystal.h>
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#include <RTClib.h>
DateTime now;
RTC_DS1307 rtc;

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>  // Required for 16 MHz Adafruit Trinket
#endif
#define PIN 6
#define NUMPIXELS 8
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500  // Time (in milliseconds) to pause between pixels


const byte speakerPin = 12;
int sens_read = 0;
int sens_read_akt = 0;
long previousMillis = 0;
long interval = 20;

void showTime(void);

void setup() {
  while (!Serial) {}
  Serial.begin(115200);
  Wire.begin();
  Wire.setClock(400000);  // use 400 kHz I2C

  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC Module");
    while (1)
      ;
  }
  // Nur zum Setzen der Zeit einmal freisetzen
  //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

  sensor.setTimeout(500);
  if (!sensor.init()) {
    Serial.println("Failed to detect and initialize sensor!");
    while (1)
      ;
  }

  // Use long distance mode and allow up to 50000 us (50 ms) for a measurement.
  // You can change these settings to adjust the performance of the sensor, but
  // the minimum timing budget is 20 ms for short distance mode and 33 ms for
  // medium and long distance modes. See the VL53L1X datasheet for more
  // information on range and timing limits.
  sensor.setDistanceMode(VL53L1X::Long);
  sensor.setMeasurementTimingBudget(55000);

  // Start continuous readings at a rate of one measurement every 50 ms (the
  // inter-measurement period). This period should be at least as long as the
  // timing budget.
  sensor.startContinuous(50);

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  pixels.begin();
}

void loop() {


  // Serial.print(sensor.read());
  if (sensor.timeoutOccurred()) { lcd.print("Time out"); }

  sens_read_akt = sensor.read();

  if ((sens_read / 100 != sens_read_akt / 100) && (sens_read_akt < 400)) {
    tone(speakerPin, 2000, 80);
  }

  // LED-Ausgabe
  pixels.clear();
  pixels.setBrightness(10);
  if (sens_read_akt < 100) {
    pixels.setPixelColor(0, pixels.Color(255, 255, 255));
  }
  if (sens_read_akt < 200) {
    pixels.setPixelColor(1, pixels.Color(255, 255, 255));
  }
  if (sens_read_akt < 300) {
    pixels.setPixelColor(2, pixels.Color(255, 255, 255));
  }
  if (sens_read_akt < 400) {
    pixels.setPixelColor(3, pixels.Color(255, 255, 255));
  }
  pixels.show();
  // Displayausgabe
  if (sens_read / 10 != sens_read_akt / 10) {
    lcd.setCursor(0, 0);
    lcd.print(sens_read_akt / 10 + String(" cm   "));
    now = rtc.now();

    showTime();
    showDate();

    // Serial.println(sens_read_akt / 10 + String(" cm   "));
  }
  sens_read = sens_read_akt;
}
void showTime() {
  lcd.setCursor(8, 0);
  lcd.print(now.hour());
  lcd.print(':');
  lcd.print(now.minute());
  lcd.print(':');
  lcd.print(now.second());
  lcd.print("    ");
}
void showDate() {
  lcd.setCursor(0, 1);
  lcd.print(now.day());
  lcd.print('.');
  lcd.print(now.month());
  lcd.print('.');
  lcd.print(now.year());
  lcd.print("    ");
}

Ok....allerdings ist dein Bild auch sehr unübersichtlich und nicht alles ist gut erkennbar.
Was ich erkennen kann, dass du mehrere Pins des Nano Every doppelt genutzt hast, was aber nicht funktionieren kann. Z.B. die Pins des Display dürfen nicht mit anderen Pins anderer Module beschaltet werden.
Warum verwendest du kein Display mit I2C-Adapter ?
I2C ist ein Bus und kann mehrfach genutzt werden. Lediglich die Adressen müssen sich unterscheiden.

Ja, sorry. Ich bessere mich.

Das Display war bei dem Starter Kit dabei.

Ich vermute, du meinst sowas: https://www.amazon.de/AZDelivery-Adapter-serielle-Schnittstelle-Display/dp/B078SVXZHN/

Ja, korrekt.
Damit hast du mehr Pins frei und es muss keine Doppelbelegungen der Pins geben.
Wenn du versuchst, dein Bild etwas zu entzerren, dann ist es besser zu "lesen".

Wie meinst du das "Entzerren" ? Das ist ein Export aus Frietzing.

CS von SD Karte wird auch vom LCD genutzt. Das kann nicht passen.

Pin12 geht an buzzer und SD Karte, verlege den Buzzer woanders hin.

Pin 6 hast du aktuell an LCD und Neopixel. Das ist eher Zufall dass das funktioniert. Würde ich auch separat machen.

Ist schon klar.
Du musst deine Leitungsführung in Fritzing entzerren, also besser führen. Damit es besser zu erkennen ist.
Allerdings ist Fritzing eh Mist. Besser ist eine Schaltung mit Bleistift und Papier.

Pin6 und 12 habe ich verlegt, allerdings blicke ich bei CS nicht durch. Um es einfacher zu machen, habe ich mal das ReadWrite-Beispiel raufgeladen, aber auch hier wird der Reader nicht gefunden. Nach einigem Nachlesen versteh ichs immer noch nicht - vlt. sollte ich lieber mit Lego spielen :unamused:

Dann solltest du dein Bild aktualisieren und überarbeiten, damit wir alles erkennen können, also entzerren.
Evtl. können wir dann noch weitere Fehler erkennen.

Klemme alles ab.
Verbinde alle Module GND mit dem every GND
Verbinde alle 5V mit den 5V / VIN der Module
Verbinde:

everyPin SDCardPin
D13 SCK
D12 MISO
D11 MOSI
D10 CS

Der PIN D10 wird erstmal für nix anderes verwendet.
Der CS - "ChipSelect" - ist der einzige Pin, der Dir "frei" gestellt ist. Mit dem bestimmst Du, wann das am SPI angeschlossene Gerät reagieren soll.
Darum ist das auch der Pin, der konfigurierbar ist.

Wenn der Sketch für die SD-Karte läuft, dann als nächstes die Uhr.

everyPin UhrPin
D18 SDA
D19 SCL

Die sollte definitiv dann auch laufen und Du solltest wenigstens von der Karte lesen können

Jetzt den VL53x

everyPin UhrPin
D18 SDA
D19 SCL

Testcode aufspielen und wenns geht weiter

Kommt als nächstes das Display.

everyPin displayPin
D2 rs
D3 en
D4 4
D5 5
D6 6
D7 7
Backlight und Kontrast natuerlich auch.

Für den Beeper benutzt Du PIN 9
Für den Stripe benutzt Du PIN 8

Zumindest ist alles voneinander getrennt und nix doppelt belegt.
Und im Gegensatz zum Bild im Ausgangspost sollten jetzt zumindest die I2C-Komponenten stimmen.

Hallo

Sorry my_xy_projekt, du warst schneller.

Ich habe eben den Code und den Plan korrigiert (ohne Card Reader):

#include <Wire.h>
#include <VL53L1X.h>

VL53L1X sensor;

#include <LiquidCrystal.h>
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

#include <RTClib.h>
DateTime now;
RTC_DS1307 rtc;

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>  // Required for 16 MHz Adafruit Trinket
#endif
#define PIN 8
#define NUMPIXELS 8
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500  // Time (in milliseconds) to pause between pixels


const byte speakerPin = 9;
int sens_read = 0;
int sens_read_akt = 0;
long previousMillis = 0;
long interval = 20;

void showTime(void);

void setup() {
  while (!Serial) {}
  Serial.begin(115200);
  Wire.begin();
  Wire.setClock(400000);  // use 400 kHz I2C

  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC Module");
    while (1)
      ;
  }
  // Nur zum Setzen der Zeit einmal freisetzen
  //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));

  sensor.setTimeout(500);
  if (!sensor.init()) {
    Serial.println("Failed to detect and initialize sensor!");
    while (1)
      ;
  }

  // Use long distance mode and allow up to 50000 us (50 ms) for a measurement.
  // You can change these settings to adjust the performance of the sensor, but
  // the minimum timing budget is 20 ms for short distance mode and 33 ms for
  // medium and long distance modes. See the VL53L1X datasheet for more
  // information on range and timing limits.
  sensor.setDistanceMode(VL53L1X::Long);
  sensor.setMeasurementTimingBudget(55000);

  // Start continuous readings at a rate of one measurement every 50 ms (the
  // inter-measurement period). This period should be at least as long as the
  // timing budget.
  sensor.startContinuous(50);

  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  pixels.begin();
}

void loop() {


  // Serial.print(sensor.read());
  if (sensor.timeoutOccurred()) { lcd.print("Time out"); }

  sens_read_akt = sensor.read();

  if ((sens_read / 100 != sens_read_akt / 100) && (sens_read_akt < 400)) {
    tone(speakerPin, 2000, 80);
  }

  // LED-Ausgabe
  pixels.clear();
  pixels.setBrightness(10);
  if (sens_read_akt < 100) {
    pixels.setPixelColor(0, pixels.Color(255, 255, 255));
  }
  if (sens_read_akt < 200) {
    pixels.setPixelColor(1, pixels.Color(255, 255, 255));
  }
  if (sens_read_akt < 300) {
    pixels.setPixelColor(2, pixels.Color(255, 255, 255));
  }
  if (sens_read_akt < 400) {
    pixels.setPixelColor(3, pixels.Color(255, 255, 255));
  }
  pixels.show();
  // Displayausgabe
  if (sens_read / 10 != sens_read_akt / 10) {
    lcd.setCursor(0, 0);
    lcd.print(sens_read_akt / 10 + String(" cm   "));
    now = rtc.now();

    showTime();
    showDate();

    // Serial.println(sens_read_akt / 10 + String(" cm   "));
  }
  sens_read = sens_read_akt;
}
void showTime() {
  lcd.setCursor(8, 0);
  lcd.print(now.hour());
  lcd.print(':');
  lcd.print(now.minute());
  lcd.print(':');
  lcd.print(now.second());
  lcd.print("    ");
}
void showDate() {
  lcd.setCursor(0, 1);
  lcd.print(now.day());
  lcd.print('.');
  lcd.print(now.month());
  lcd.print('.');
  lcd.print(now.year());
  lcd.print("    ");
}


Ich hoffe, jetzt ist das Teil etwas besser lesbar.

1 Like

Ist das richtig, dass SDA vom VL53x mit SCL von der RTC verbunden ist?

Und der Plan ist noch immer falsch.
Mach es so, wie von mir vorgeschlagen.
Nacheinander. Eines nach dem anderen.
Wenn irgendwas nicht geht, dann Foto machen und erklären was nicht geht.

@Moko - ja auch...

Nein. I2C, SPI, RS485, CAN sind Busse wo keine Leitungen vertauscht/gekreuzt werden.

my_xy Pin Belegungsvorschlag sollte befolgt werden.

@Moko bezog sich auf das Bild.
Da ist noch mehr im Argen. Von daher eher Ja. :wink: danke, das mein PinDesign angenommen wurde... Warst Du nicht derjenige, der den schon mal kleinteilig in der Mangel hatte?

Mach ich, mach ich. Aber du warst mit deiner Anleitung schneller. Ich werds morgen genauso machen, wie du es beschrieben hast. Vielen Dank vorab schon mal.

Es ist nur ein Versuch, Dir irgendwie zu helfen.
Für das Bildchen vom Fritzing gibts nen :+1: Gewöhne Dir an, die Verbindungen so zu bauen, wie im oberen Teil.
Unten hast Du die Verbindungen teils auf den Every gezogen. die Elemente müssen nicht so dicht liegen :wink: Das bringt Dir Platz für Leitungen.

Wenn Du die Versorgungsspanung als erstes auf die untere Schiene ziehst, kannst Du die RTC nach unten legen und auf der rechten Aussenseite die Versorgung auf die obere Schiene verbinden.
Dann hast Du oben Platz für Stripe und Beeper. Und SD.
Das macht weniger Kreuzungen und wird damit noch übersichtlicher.

Na denne. Du wirst es schaffen.
Ich zähl auf Dich!

Vielen Dank. Das weiss ich sehr zu schätzen. Und auch deine Geduld.

Kurzer Zwischenbericht:
Ich habe lt. deiner Anleitung alles neu verbunden - jedoch mit demselben Ergebnis.
Jedoch habe ich inzwischen das hier bekommen: GeeekPi 2-Pack I2C 1602 LCD-Anzeigemodul 16X2 und damit auf einem zweiten Board komplett neu angefangen (Plan muss ich erst erstellen). Am Nano Every hängt jetzt momentan nur das neue Display und die RTC, was super funktioniert. Allerdings funktioniert auch hier der SD-Card-Reader nicht (kann nicht initialisiert werden). Einen anderen, baugleichen Reader habe ich getestet, ebenso eine andere Karte. Ich habe den Eindruck, dass der Reader generell nicht mehr funktioniert, sobald dieser nicht mehr alleine am Nano hängt.

NACHTRAG: Als ich vorhin ArduinoStudio gestartet habe, wurde die SD-Library auf v1.2.4 upgedatet und jetzt funktionierts. In einem Artikel wurde erwähnt, dass Card Reader mit LevelShifter generell ziemlich zickig sein sollen. Kann das evtl. jemand bestätigen ?

Soo...
Ich bin mal zurück auf Anfang.
Nochmal der Hinweis, ich hab das Teil nicht, aber mich nervt es, wenn ein Plan nicht funktioniert.
Daher habe ich mal versucht, mit der SD-Lib und der RTC-lib für einen Nano Every zu kompilieren.
Geht irgendwie nicht problemlos.
Schalte mal bitte in der IDE unter DATEI - VOREINSTELLUNGEN - Ausführliche Ausgabe während [x] Kompilierung und darunter Compiler-Warnungen ALLE.
Dann siehst Du später vom Compiler ausgegebene Warnungen.

Ich möchte, das Du die RTC-Lib nicht mehr verwendest.
Hole Dir dafür als Ersatz die Time Lib von Paul Stoffregen. Die ist sehr umfangreich und kann eine Menge.
Und wird fehler- und warnungsfrei auch für den every compiliert.

Ich hab Dir einen Sketch geschrieben.
Der Aufbau ist wie in #10. Gleiche Beschaltung.
Du fängst erstmal an, so wie der Sketch ist und dann sollte die SD-Card fehlerfrei erkannt werden.
Dann gehst Du in die erste Zeile und nimst die Kommentierung vor DEBUGRTC raus.
Wieder raufspielen und auf dem Seriellen Monitor muss auch die Uhr sich initialisieren.

Initializing SD card...Card initialized
RTC has set the system time

Wenn die SD-Card jetzt nicht geht, tauscht Du PIN 10 mit PIN 8, änderst das auch im Code be der SD-Card und den NEOPIXEL und dann nochmal.

Wenn das geht, dann das lcd freigeben.
Auf dem LCD muss "Start..." stehen und sowohl die Card als auch die RTC sollten gehen.

Und jetzt die Neopixel.
Selbes Spiel.
Und wenn das durch ist, den VLX - und dann wirds nicht mehr gehen....

//#define DEBUGRTC
//#define DEBUGLCD
//#define DEBUGLED
//#define DEBUGVLX

#include <SPI.h>
#include <SD.h>

#ifdef DEBUGRTC
  #include <TimeLib.h>
  #include <DS1307RTC.h>
#endif

#ifdef DEBUGLCD
  #include <LiquidCrystal.h>
  const byte rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
  LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
#endif

#ifdef DEBUGLED
  #include <Adafruit_NeoPixel.h>
  #ifdef __AVR__
    #include <avr/power.h>  // Required for 16 MHz Adafruit Trinket
  #endif
  #define PIN 8
  #define NUMPIXELS 8
  Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  #define DELAYVAL 500  // Time (in milliseconds) to pause between pixels
#endif

#ifdef DEBUGVLX
  #include <VL53L1X.h>
  VL53L1X sensor;
#endif

// set up variables using the SD utility library functions:
Sd2Card card;
const int chipSelect = 10;

void setup()
{
  Serial.begin(115200);
  Serial.println(F("Start..."));
  Serial.print(F("\nInitializing SD card..."));
  Serial.print(F("Card "));
  if (!SD.begin(chipSelect))
  {
    Serial.println(F("failed"));
  }
  else
  {
    Serial.println(F("initialized"));
  }
#ifdef DEBUGRTC
  setSyncProvider(RTC.get);   // the function to get the time from the RTC
  if (timeStatus() != timeSet)
  { Serial.println("Unable to sync with the RTC"); }
  else
  { Serial.println("RTC has set the system time"); }
#endif
#ifdef DEBUGLCD
  lcd.begin(16, 2);
  lcd.print(F("START..."));
#endif
#ifdef DEBUGLED
  pixels.begin();
  pixels.clear();
  pixels.setBrightness(10);
  for (int i = 0; i < NUMPIXELS; i++)
  {
    pixels.setPixelColor(i, pixels.Color(0, 150, 0));
    pixels.show();
  }
#endif
#ifdef DEBUGVLX
  sensor.setTimeout(500);
  Serial.print(F("VLX "));
  if (!sensor.init())
  {
    Serial.println(F("not "));
  }
  Serial.print(F("detect"));
#endif
}
void loop(void)
{
}

Eigentlich nicht.
Aber ich bin noch immer davon überzeugt, das es nicht schick ist, wenn mir der Compiler bei Verwendung vom I2C die wirelib auswirft...

/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp: In member function 'uint8_t VL53L1X::readReg(VL53L1X::regAddr)':
/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:205:39: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
   bus->requestFrom(address, (uint8_t)1);
                                       ^
In file included from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.h:4:0,
                 from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:6:
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)
     size_t requestFrom(int, int);
            ^~~~~~~~~~~
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)
     size_t requestFrom(uint8_t, size_t);
            ^~~~~~~~~~~
/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp: In member function 'uint16_t VL53L1X::readReg16Bit(uint16_t)':
/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:221:39: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
   bus->requestFrom(address, (uint8_t)2);
                                       ^
In file included from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.h:4:0,
                 from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:6:
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)
     size_t requestFrom(int, int);
            ^~~~~~~~~~~
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)
     size_t requestFrom(uint8_t, size_t);
            ^~~~~~~~~~~
/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp: In member function 'uint32_t VL53L1X::readReg32Bit(uint16_t)':
/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:238:39: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
   bus->requestFrom(address, (uint8_t)4);
                                       ^
In file included from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.h:4:0,
                 from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:6:
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)
     size_t requestFrom(int, int);
            ^~~~~~~~~~~
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)
     size_t requestFrom(uint8_t, size_t);
            ^~~~~~~~~~~
/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp: In member function 'void VL53L1X::readResults()':
/home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:674:40: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
   bus->requestFrom(address, (uint8_t)17);
                                        ^
In file included from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.h:4:0,
                 from /home/user1/Arduino/libraries/vl53l1x-arduino-master/VL53L1X.cpp:6:
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:63:12: note: candidate 1: size_t TwoWire::requestFrom(int, int)
     size_t requestFrom(int, int);
            ^~~~~~~~~~~
/home/user1/.arduino15/packages/arduino/hardware/megaavr/1.8.7/libraries/Wire/src/Wire.h:61:12: note: candidate 2: virtual size_t TwoWire::requestFrom(uint8_t, size_t)
     size_t requestFrom(uint8_t, size_t);
            ^~~~~~~~~~~

Vielleicht kann ja mal @Doc_Arduino sich damit mal beschäftigen, was da (nicht) geht? Der hat so ein Teil rumliegen und Einblick in die Interna..

Hallo,

die VLX Lib verwendet andere Datentypen, dass passt nicht zu den Signaturen der Methode in der Wire Lib.

verfügbar/definiert sind

uint8_t requestFrom(uint8_t, uint8_t);
uint8_t requestFrom(uint8_t, uint8_t, uint8_t);
uint8_t requestFrom(uint8_t, uint8_t, uint32_t, uint8_t, uint8_t);
uint8_t requestFrom(int, int);
uint8_t requestFrom(int, int, int);

Entweder korrigiert man die VLX Lib oder man ergänzt die Wire Lib. Das Hauptproblem ist das Literale standardmäßig int sind und "wir" uns angewöhnt haben Variablen viel mit passenden Byte zu definieren. Jetzt gibt es einen Signatur Mischmasch (int, byte) oder (byte, int) usw. der für requestForm nicht definiert ist. Das ist kein spezielles Problem mit dem Every, kann bei jeden auftreten.

1 Like