Hi
Ich nutze einen Nano, ein CCS811 CO2 Sensor angeschaltet über einen Logik-Konverter und ein 096 Zoll Display (AZ-Delivery 0.96" OLED Display).
Wenn ich den CCS811 alleine betreibe funktioniert er (Ausgabe am ser. Monitor), wenn ich das Display alleine betreibe funktioniert es auch.
Wenn ich im beigefügten Code in setup und loop alle Display relevanten Zeilen auskommentiere funktioniert die Ausgabe der Sensordaten am seriellen Monitor und wenn ich im Code alle Sensor relevanten Zeilen auskommentiere funktioniert die Anzeige am Display.
Wenn ich aber den Code komplett ausführe dann funktioniert zwar die Ausgabe der Sensordaten am ser. Monaten das Display bleibt aber dunkel.
Ich habe das auch schon mit einer anderen Codevorlage für das Display probiert, aber dasselbe Ergebnis.
Hat jemand einen Idee?
#include <Arduino.h>
#include <U8g2lib.h>
#include "Adafruit_CCS811.h" // Sensor Library
Adafruit_CCS811 ccs;
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
void setup(void) {
// Sensor
Serial.begin(9600);
Serial.println("CCS811 test");
if (!ccs.begin()) {
Serial.println("Failed to start sensor! Please check your wiring.");
while (1)
; // Warten, bis der Sensor bereit ist while(!ccs.available());
}
//Display
u8g2.begin();
}
void loop(void) {
//Sensor
if (ccs.available()) {
if (!ccs.readData()) {
Serial.print("CO2: ");
Serial.print(ccs.geteCO2());
Serial.print("ppm, TVOC: ");
Serial.println(ccs.getTVOC());
} else {
Serial.println("ERROR!");
while (1)
;
}
}
//Display
u8g2.setFont(u8g2_font_courB10_tf);
u8g2.firstPage();
do {
u8g2.setCursor(0, 20);
u8g2.print(F("CO2 "));
u8g2.setCursor(0, 40);
u8g2.print("Wert ....");
u8g2.setCursor(0, 60);
u8g2.print(F(" ppm"));
} while ( u8g2.nextPage() );
delay(1000);
}
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.
Ich vermute mal das es daran liegen könnte. Der Nano arbeitet mit 5 V. Also muss die BUS-Spannung für den Sensor auf 3.3 Volt runter (Lt. Google).
Dem Display ist das egal. Das frisst 3.3 V - 5 Volt.
Am besten sagst du uns mal wo und WIE du den Level-Shifter eingebaut hast. Schaltplan wäre nett.
Danke, aber bei deinem Code dasselbe Ergebnis: Display bleibt dunkel.
Meine Verschaltung ist wie folgt:
3,3V von Nano geht zu 3,3V am Sensor und Levelshifter
Ground vom Nano geht zum Ground vom Sensor, Levelshifter, Display
5V vom Nano geht zum Levelshifter und Display
A4 und A5 (SCL,SDA) vom Nano gehen zum Display und Levelshifter
Vom Levelshifter gehen die 2 Anschlüsse auf der 3,3v Seite zum Sensor und auf 5V Seit zum Nano
Da das Display nach auskommentieren der Sensor-relevanten Zeilen funktioniert, vermute ich dass die gemeinsame Ansteuerung am Bus (SCL,SDA) das Problem sein könnte.
Nimm doch mal einen I2C-Scanner und prüfe die Adressen auf dem Bus.
Und sorry, wie du alles verdrahtet hast, ist schwer zu verstehen.
Zeichne bitte ein Schaltbild auf Papier und fotografiere es und lad es dann hier hoch.
Dann sehen wir genau, wie du es verdrahtet hast.
Oder zeige ein gutes Foto deines Aufbaus. Da muss alles zu erkennen sein.
Mit welcher Spannung betreibst du den Nano und wo angeschlossen ?
Und aus dem Grund finde ich diese unverständlichen Schaltungsbeschreibungen mehr als schlecht. Wenn die dann noch von einem "Anfänger" kommen, noch schlechter, da man die absolut nicht versteht.
u8g2.begin(); ganz nach oben bringt keine Veränderung
Anbei meine Verdrahtung, die bei dieser Konstellation recht einfach ist, alles was 5V , was 3,3 V, was Ground ist und SCLS und SDA zusammen (ausgenommen Sensor wird über Shifter angeschlossen).
Und dass es an der Verdrahtung liegt wäre extrem unlogisch, denn wenn ich mit dem identischen physischen Aufbau je nach auskommentieren von Zeilen jeweils den Sensor oder das Display zum Laufen bringen und nur beim kompletten Sketch dann das Display nichts tut, ....
Nochmal:
Hast du mal mit dem I2C-Scanner geprüft ?
Wie hast du welche Spannung am Nano angeschlossen ?
Ich vermute jetzt ein Problem mit der Versorgung.