INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
OLED Bildschirm Problem
01.01.2021, 20:58
Beitrag #1
OLED Bildschirm Problem
Hallo,

Ich bin gerade dabei mir einen Datalogger zu basteln und habe dafür ein I2C OLED 0,96" Bildschirm und eine RTC Clock angeschlossen, sowie ein Micro SD Modul. Die restliche Hardware schließe ich nach und nach an.

Alles funktioniert, bis ich den mit "PROBLEM" gekennzeichneten Bereich einfüge.

Woran liegt das oder hab ich was vergessen?

Gruß
Joe

Code:
/*Arduinoprogramm zum Überwachen von Daten
*
* Enthaltene Bauteile:
* - OLED 0,96" I2C Display 128x64 px
* [5V -> VCC | GND -> GND | A4 -> SDA | A5 -> SCL]
*
* - DHT22 Zum Überwachen von Luftfeuchtigkeit und Temperatur
* [5V -> VCC | D2 -> IO | GND -> GND]
*
* - Kapazativer Bodenfeuchte Sensor
* [5V -> VCC | A2 -> Data | GND -> GND]
*
* - RTC (Real Time Clock) für das Anzeigen der Uhrzeit
* [5V -> VCC | GND -> GND | A4 -> SDA | A5 -> SCL]
*
* - MicroSD Board zum Abspeichern der Daten
* [5V -> VCC | GND -> GND | D11 -> MOSI | D12 -> MISO | D13 -> SCK | D4 -> CS]
*
* - 2x Kapazativer Touch Sensor zum Steuern
* --> Zum Testen wird ein Joystick mit Drucktaster verwendet
*/

//Einbindung der Bibliotheken

//SD Kartenmodul
#include <SD.h>
File Datei;

//DHT22
#include <DHT.h>
#include <DHT_U.h>

#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

//OLED Display
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

byte TextSize = 1;
byte CursorX = 0;
byte CursorY = 0;

#define OLED_RESET 12
Adafruit_SSD1306 OLED(OLED_RESET);

//RTC
#include <DS3231.h>
DS3231 Clock;

bool Century = false;
bool h12;
bool PM;

int Jahr;
int Monat;
int Datum;
int Stunde;
int Minute;
int Sekunde;



//Deklarieren der Variablen
//Variablen für Bodensensor
int Bodenfeuchte = analogRead(A0);

//Variablen für Joystick
int XAchse = analogRead(A6);
int YAchse = analogRead(A7); //Wird nicht verwendet
bool Taster = digitalRead(11);

//Allgemeine Variablen
unsigned long milli;
unsigned long millidavor=0;
int Zahl = 0;


void WriteDisplay(){
  
  OLED.setTextSize(TextSize);
  OLED.setTextColor(INVERSE);
  OLED.setCursor(CursorX, CursorY);
  OLED.display();
}


void setup() {
  Serial.begin(9600);
  Wire.begin();
  OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    
  OLED.clearDisplay();
  Serial.println("Initialisierung von SD-Karte...");
  OLED.print("SD-Karte...");
  while(!SD.begin(4)){
    Serial.println("Initialisierung fehlgeschlagen!");
    OLED.println("Retry");
    WriteDisplay();
    setup();
  }
  Serial.print("OK");
  OLED.println("OK");
  WriteDisplay();

  OLED.clearDisplay();
  OLED.print("Bereit");
  WriteDisplay();


/*
*
*
* PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! !
*
*/
  Datei = SD.open("Werte.txt", FILE_WRITE);
  Datei.close();
/*
*
* PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! ! PROBLEM ! ! !
*
*/

  
/*
   Clock.setClockMode(false); //24h
   Clock.setYear(21);
   Clock.setMonth(1);
   Clock.setDate(1);
   Clock.setHour(16);
   Clock.setMinute(25);
   Clock.setSecond(50);
*/

}

void loop() {
  milli = millis();
  Zahl = Zahl+1;
  Serial.print("Loop ");
  Serial.println(Zahl);
  OLED.clearDisplay();
  OLED.print("LOOP ");
  OLED.println(Zahl);
  WriteDisplay();
  
  Jahr = Clock.getYear();
  Monat = Clock.getMonth(Century);
  Datum = Clock.getDate();
  Stunde = Clock.getHour(h12, PM);
  Minute = Clock.getMinute();
  Sekunde = Clock.getSecond();

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2021, 21:04
Beitrag #2
RE: OLED Bildschirm Problem
Und was dann nicht funktioniert sollen wir erwürfeln?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2021, 21:05
Beitrag #3
RE: OLED Bildschirm Problem
Sorry.

Sobald ich die Zeilen einfüge wird nichts mehr auf meinem OLED Display angezeigt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2021, 21:11 (Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2021 21:21 von hotsystems.)
Beitrag #4
RE: OLED Bildschirm Problem
Dann bau dir einfach ein paar Ausgaben auf den seriellen Monitor ein, um zu erkennen, wo dein Sketch hängen bleibt.

Wird der Sketch überhaupt bei dir fehlerfrei kompiliert ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2021, 21:20
Beitrag #5
RE: OLED Bildschirm Problem
Auf alle Fälle ist erst mal der rekursive Aufruf von setup() völliger Unsinn.
Code:
while(!SD.begin(4)){
    Serial.println("Initialisierung fehlgeschlagen!");
    OLED.println("Retry");
    WriteDisplay();
    setup();   // <<----------------------------------
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2021, 21:28
Beitrag #6
RE: OLED Bildschirm Problem
(01.01.2021 21:20)Tommy56 schrieb:  Auf alle Fälle ist erst mal der rekursive Aufruf von setup() völliger Unsinn.

Ich möchte allerdings nicht in den Loop gelangen, bis (in diesem Fall) die MicroSD eingesetzt ist.
Wie kann ich dann eine Schleife erzeugen die mir das ermöglicht ohne das ich wieder ganz an den Anfang vom Setup springe?


-------------------------------------------
Mein Code läuft bis zu dem Punkt
Code:
...
while(!SD.begin(4)){
    Serial.println("Initialisierung fehlgeschlagen!");
    OLED.println("Retry");
    WriteDisplay();
    setup();
  }
  Serial.print("OK");
  OLED.println("OK");
  WriteDisplay();

  OLED.clearDisplay();
Den Befehl "OLED.print("Bereit") macht er nicht mehr
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2021, 21:32
Beitrag #7
RE: OLED Bildschirm Problem
(01.01.2021 21:28)JoeIsFame schrieb:  Den Befehl "OLED.print("Bereit") macht er nicht mehr
Wo in dem Codefragment steht "OLED.print("Bereit")"?
Code:
while(!SD.begin(4)){
    Serial.println("Initialisierung SD fehlgeschlagen!");
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2021, 21:36
Beitrag #8
RE: OLED Bildschirm Problem
(01.01.2021 21:32)Tommy56 schrieb:  Wo in dem Codefragment steht "OLED.print("Bereit")"?

Direkt unter dem Zitierten.
Es steht auch nur einmal im Code drin.
Hab extra eine etwas größeren Bereich eingefügt zum finden im gesamt Code.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Arduino UNO mit SSD 1309 OLED Display DanielCosmos 24 290 Gestern 21:19
Letzter Beitrag: Tommy56
  Problem mit Neuem Bootlader installieren Warmbronner 10 644 27.06.2021 16:19
Letzter Beitrag: Bitklopfer
  Problem bei Multitasking und millis() Maxcruiser 41 2.269 01.06.2021 22:22
Letzter Beitrag: Maxcruiser
  Poti-Wert auf OLED Display anzeigen senseman 34 2.425 24.05.2021 22:09
Letzter Beitrag: senseman
  Problem Relaisplatine Maui 14 1.551 23.03.2021 15:20
Letzter Beitrag: hotsystems
  Laserwert auf OLED Display ausgeben Blauepi 18 1.889 22.03.2021 14:00
Letzter Beitrag: Blauepi
  Problem mit "pow" awillib 9 1.215 27.02.2021 19:22
Letzter Beitrag: Tommy56
  Pwm Problem safitom 4 698 20.02.2021 12:14
Letzter Beitrag: safitom
  SH1107 Oled Display und Multiplexer Feuchtigkeitssteuerung Kanka 35 3.131 06.02.2021 22:38
Letzter Beitrag: Kanka
  Problem mit "Keyboard" und "Mouse" LK2567 4 782 03.02.2021 16:11
Letzter Beitrag: MicroBahner

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste