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 wollt dann liest euch bitte diese Anleitung durch.

Ich spreche fließend Schwäbisch, Deutsch das Notwendigste und für die Begriffsstutzigen erprobtes Tacheles mit direkten Hinweisen ohne Schnörkel...

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
  Problem mit Neuem Bootlader installieren Warmbronner 10 512 27.06.2021 16:19
Letzter Beitrag: Bitklopfer
  Problem bei Multitasking und millis() Maxcruiser 41 2.137 01.06.2021 22:22
Letzter Beitrag: Maxcruiser
  Poti-Wert auf OLED Display anzeigen senseman 34 2.268 24.05.2021 22:09
Letzter Beitrag: senseman
  Problem Relaisplatine Maui 14 1.450 23.03.2021 15:20
Letzter Beitrag: hotsystems
  Laserwert auf OLED Display ausgeben Blauepi 18 1.796 22.03.2021 14:00
Letzter Beitrag: Blauepi
  Problem mit "pow" awillib 9 1.162 27.02.2021 19:22
Letzter Beitrag: Tommy56
  Pwm Problem safitom 4 675 20.02.2021 12:14
Letzter Beitrag: safitom
  SH1107 Oled Display und Multiplexer Feuchtigkeitssteuerung Kanka 35 3.050 06.02.2021 22:38
Letzter Beitrag: Kanka
  Problem mit "Keyboard" und "Mouse" LK2567 4 757 03.02.2021 16:11
Letzter Beitrag: MicroBahner
  const char zu int Konvertierung Problem Lumplux 1 496 02.02.2021 10:26
Letzter Beitrag: Lumplux

Gehe zu:


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