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
02.01.2021, 23:41
Beitrag #65
RE: OLED Bildschirm Problem
(02.01.2021 23:40)hotsystems schrieb:  Ich habe keine Idee mehr.
Allerdings SPI und Wire brauchst du nur einmal einbinden.

Ich auch nicht. Darum bin ich ja eigentlich hier Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2021, 23:48
Beitrag #66
RE: OLED Bildschirm Problem
(02.01.2021 23:41)JoeIsFame schrieb:  
(02.01.2021 23:40)hotsystems schrieb:  Ich habe keine Idee mehr.
Allerdings SPI und Wire brauchst du nur einmal einbinden.

Ich auch nicht. Darum bin ich ja eigentlich hier Big Grin

Echt jetzt....genau auf diese Antwort habe ich gewartet.
Viel Erfolg.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.01.2021, 00:41
Beitrag #67
RE: OLED Bildschirm Problem
(02.01.2021 23:18)JoeIsFame schrieb:  
(02.01.2021 23:16)Bitklopfer schrieb:  ...schon mal an die Pull-Up-Widerstände für den I2C Bus gedacht...1,5K bis 4,7K gegen Vcc ist da üblich.
lgbk

Die gehen dann von VCC zu ...? SDA, SCL ?

...so ist es, oder was würdest du sonst für den I2C Bus halten...
lgbk


An alle Neuankömmlinge hier, wenn ihr Code(Sketch) hier posten wollte dann liest euch bitte diese Anleitung durch.

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.01.2021, 11:09
Beitrag #68
RE: OLED Bildschirm Problem
(02.01.2021 23:10)JoeIsFame schrieb:  Bei diesem Teil (ganz untem im Setup hin denken) geht es nicht mehr
Code:
Serial.println("Datei auf SD Karte erstellen");
  Datei = SD.open("Test.txt", FILE_WRITE);
  Datei.close();
  Serial.println("Setup abgeschlossen");
Dass Du da prüfen musst, ob das File überhaupt angelegt/geöffnet wurde, hatte ich Dir schon in #15 geschrieben.
Wenn Du meine Beiträge ignorierst, brauche ich ja nix mehr zu schreiben.

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
03.01.2021, 15:19
Beitrag #69
RE: OLED Bildschirm Problem
(03.01.2021 11:09)Tommy56 schrieb:  Dass Du da prüfen musst, ob das File überhaupt angelegt/geöffnet wurde, hatte ich Dir schon in #15 geschrieben.
Wenn Du meine Beiträge ignorierst, brauche ich ja nix mehr zu schreiben.
Gruß Tommy

Code:
//Einbindung der Bibliotheken

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

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

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

#define OLED_RESET -1
Adafruit_SSD1306 display(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;



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



void setup() {
  Serial.begin(9600);
  Serial.println("Serial Begin");
  Wire.begin();
  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  display.clearDisplay();
  display.drawPixel(10,10, SSD1306_WHITE);
  display.display();
  delay(2000);

  Serial.print("Initialisierung von SD-Karte...");
while(!SD.begin(4)){
    Serial.println("SD Initialisierung fehlgeschlagen");  
    delay(500);
    }
  Serial.println("OK");

}

void loop() {
  Serial.println("Loop");
  milli = millis();

  Serial.println("Zeit aus RTC holen");
  Jahr = Clock.getYear();
  Monat = Clock.getMonth(Century);
  Datum = Clock.getDate();
  Stunde = Clock.getHour(h12, PM);
  Minute = Clock.getMinute();
  Sekunde = Clock.getSecond();

  Serial.println("SD Karte Datei Test.txt oeffnen");
  Datei = SD.open("Test.txt", FILE_WRITE);
  if(Datei){
    Serial.println("Zeit in Datei schreiben");
    Datei.print(Datum);
    Datei.print(Monat);
    Datei.print(Jahr);
    Datei.print(Stunde);
    Datei.print(Minute);
    Datei.print(Sekunde);
    Datei.close();
    Serial.println("Schreiben auf SD beendet");
    
  }
  else{
    Serial.print("Fehler bei schreiben auf SD");
  }

  Serial.println("Display anzeige aktualisieren");
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(INVERSE);
  display.setCursor(0,0);
  display.print(Sekunde);
  display.display();
  Serial.println("Aktualisierung abgeschlossen");
}

Ich schreib hier in die Datei: Datum und Zeit. Hab dafür die "while" abfrage vom Display entfernt, da er mir dort beim initialisieren sonst die Fehlermeldung bringt und nicht weiter macht.

Das Display ist mal wieder tot sobald ich den Befehl für das beschreiben der SD einfüge

Die Datei wird erstellt und beschrieben (Test.txt)
Code:
31211456431146431146431146431146531146531146531146531146531146531146631146631146​63114663114663114663114673114673114673114673114673114683114683114683114683114683​11468311469311469311469311469311469311469311460311460311460311460311460311461311​46131146131146131146131146131146231146231146231146231146231146331146331146331146​3311463311463311464311464311464311464311464311464311465311465311465
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.01.2021, 15:49
Beitrag #70
RE: OLED Bildschirm Problem
Letzter Versuch, evtl. ist es ein Speicherproblem:
Hänge mal diese Funktionen mit rein und rufe printRam(); im Setup vor und nach SD.begin und im loop vor und nach SD.open auf.

Was gibt sie aus?

Code:
// Quelle: https://jeelabs.org/2011/05/22/atmega-memory-use/
int freeRam () {
   extern int __heap_start, *__brkval;
   int v;
   return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}
void printRam() {
int ram;
  ram = freeRam ();
  Serial.println(ram);
}

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
03.01.2021, 15:56
Beitrag #71
RE: OLED Bildschirm Problem
(03.01.2021 15:49)Tommy56 schrieb:  Letzter Versuch, evtl. ist es ein Speicherproblem:
Hänge mal diese Funktionen mit rein und rufe printRam(); im Setup vor und nach SD.begin und im loop vor und nach SD.open auf.

Was gibt sie aus?

Gruß Tommy

An jeder eingefügten Position 448

Code:
Serial Begin
Initialisierung von SD-Karte...448
OK
448
Loop
Zeit aus RTC holen
SD Karte Datei Test.txt oeffnen
448
Zeit in Datei schreiben
Schreiben auf SD beendet
448
448
Display anzeige aktualisieren
Aktualisierung abgeschlossen
448
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.01.2021, 16:10 (Dieser Beitrag wurde zuletzt bearbeitet: 03.01.2021 16:11 von Tommy56.)
Beitrag #72
RE: OLED Bildschirm Problem
Das ist nicht viel.

Setze mal alle konstanten Texte ins F-Macro. Das schaufelt noch ein paar Bytes RAM frei.
Beispiel:
Code:
// alt
Serial.println("Serial Begin");
// neu
Serial.println(F("Serial Begin"));

Wenn das auch nicht hilft, habe ich auch keine Idee mehr. SD ist sehr speicherhungrig und ein grafisches Display auch. Evtl. ist das gemeinsam einfach zu viel für einen 328. Ich kann es nicht testen.

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Oled Wire Frequenz huber5093 3 148 21.01.2021 23:45
Letzter Beitrag: hotsystems
  SH1107 Oled Display und Multiplexer Feuchtigkeitssteuerung Kanka 34 819 17.01.2021 17:05
Letzter Beitrag: hotsystems
  LCD via I2C Backlight-Problem Herby007 10 464 06.01.2021 14:46
Letzter Beitrag: Herby007
  Problem mit Variablen & Ergebnis rev.antun 11 484 26.11.2020 15:47
Letzter Beitrag: rev.antun
  Nextion Senden von Variablen Problem Tesla 10 715 08.11.2020 13:13
Letzter Beitrag: Tesla
  Problem Arduino Mega und Nextion Touch Display pds14 9 763 28.10.2020 11:20
Letzter Beitrag: hotsystems
  Master-Slave-Problem - 2 juergen001 23 1.232 06.10.2020 10:23
Letzter Beitrag: juergen001
  Problem mit AnotherIFTTTWebhook | cannot convert 'const char*' to 'char*' dani 3 382 02.10.2020 11:21
Letzter Beitrag: dani
  Master-Slave-Problem juergen001 10 908 24.09.2020 13:34
Letzter Beitrag: Tommy56
  Zeit-Server-Problem 182 21 7.638 27.08.2020 15:05
Letzter Beitrag: Bitklopfer

Gehe zu:


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