Nano, TOF V53L0X und OLED SH1107 - nach display.begin() geht es nicht weiter

[Bur4n]

Cadet 4th Year
Registriert
Jan. 2011
Beiträge
111
Ahoi zusammen,

ich hab gerade angefangen ein bisschen mit den oben genannten Geräten rum zu spielen. Mein Kenntnisstand ist nicht gerade gross und ich bin jetzt nach längerem abklappern durch das Arduino Board und ChatGPT einfach nicht weitergekommen.

Ich habe festgestellt dass ich nicht weiter als Zeile 32, also display.begin weiter komme. Weder bekomme ich eine Anzeige im Display, noch bekomme ich eine weitere prints im Serial Monitor(SM). Mit zwei unabhängig voneinandergetrennten instructions hab ich beide Geräte getestet, das Display zeigt was an, und der TOF gibt was im SM aus. Beide sind über I2C angeschlossen und holen sich auch 5V vom Nano, der wiederum via USB angeschlossen ist.

Ich würde mich sehr freuen wenn ihr mir da weiter helfen könnt. Grüße

Code:
#include "SPI.h"
#include "Wire.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SH110X.h"
#include "Adafruit_VL53L0X.h"

/*-------------------- Variablen --------------------*/

/*
#define
*/

/*-------------------- Display --------------------*/
Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire, -1);


/*-------------------- Rangemeter --------------------*/
Adafruit_VL53L0X sensor = Adafruit_VL53L0X();

void setup() {

/*-------------------- Global --------------------*/
  Serial.begin(115200);
  Serial.println("Serielle Schnittstelle wird geöffnet");
  while (! Serial) {delay(1);}
  Wire.begin();
 
  Serial.println("Suche Display");
  delay(250);

/*-------------------- Display --------------------*/
  display.begin(0x3C, true);
  display.clearDisplay();
  Serial.println("Display Gefunden");
  display.display();
  delay(250);

  display.clearDisplay();
  display.setRotation(1);
  display.setTextSize(1);
  display.drawPixel(100, 100, SH110X_WHITE);
  display.display();
  delay(250);

/*-------------------- Rangemeter --------------------*/

  Serial.println("Adafruit VL53L0X test.");
  if (!sensor.begin(0x29, false, &Wire)) {
    Serial.println(F("Failed to boot VL53L0X"));
    while (1)
      ;
  }
  Serial.println(F("VL53L0X API Continuous Ranging example\n\n"));

  sensor.startRangeContinuous();
}

void loop() {
/*-------------------- Rangemeter --------------------*/
  if (sensor.isRangeComplete()) {
/*-------------------- Display --------------------*/

    display.clearDisplay();
    display.setRotation(1);
    display.setTextSize(1);
    display.setTextColor(SH110X_WHITE);
    display.print(sensor.readRange());
    display.display();
  }
}
 
Du solltest mal schauen, welche default Adressen die i2c Geräte haben…

Es gibt auch ein i2c Testsketch, welches dir alle angeschlossenen Geräte anzeigt. Teste das doch mal.
 
Ich hab den I2C-Scan der Library TestBed mal probiert. Leider kamen nur die von mir bereits verwendeten raus.
Mittlerweile habe ich ebenfalls mal meinen UNO bemüht die zwei Sachen anzusprechen aber auch da komme ich nicht weiter als bis zum display.begin. Auch die U8G2 und U8glib Frameworks haben mir nicht weitergeholfen. Hat vielleicht sonst noch jemand ne Idee?
 
Zurück
Oben