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, 19:16
Beitrag #33
RE: OLED Bildschirm Problem
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>
#include <SPI.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>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

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

#define OLED_RESET 12
Adafruit_SSD1306 OLED(SCREEN_WIDTH, SCREEN_HEIGHT, OLED_RESET);

//RTC
#include <DS3231.h>
#include <Wire.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;
int Zaehler = 0;



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

  OLED.setTextSize(1);
  OLED.setTextColor(INVERSE);
  OLED.setCursor(0,0);
  OLED.print("Y");
  OLED.display();
  
  Serial.print("Initialisierung von SD-Karte...");
while(!SD.begin(4)){
    Serial.println("SD Initialisierung fehlgeschlagen");  
    delay(500);
    }
  Serial.println("OK");

  Serial.println("Datei auf SD Karte erstellen");
  Datei = SD.open("Test.txt", FILE_WRITE);
  Datei.close();
  Serial.println("Setup abgeschlossen");
}

void loop() {
  Serial.println("Loop");
  milli = millis();
  
  Jahr = Clock.getYear();
  Monat = Clock.getMonth(Century);
  Datum = Clock.getDate();
  Stunde = Clock.getHour(h12, PM);
  Minute = Clock.getMinute();
  Sekunde = Clock.getSecond();

  if(SD.exists("Test.txt")){
    Serial.println("Datei existiert");
    Datei = SD.open("Test.txt", FILE_WRITE);
    Serial.println("Datei öffnen");
    if(Datei){
      Serial.println("In Datei schreiben");
      Datei.print(Datum);Datei.print(".");Datei.print(Monat);Datei.print(".");Datei.print(Jahr);
      Datei.print("  ");
      Datei.print(Stunde);Datei.print(":");Datei.print(Minute);Datei.print(":");Datei.print(Sekunde);
      Datei.println("");
    Datei.close();
    }
  } else {
    Serial.println("Test.txt fehlt");
  }
Serial.println("");
for(;;);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2021, 19:39 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2021 19:41 von Tommy56.)
Beitrag #34
RE: OLED Bildschirm Problem
Wofür soll die Endlosschleife am Ende von loop gut sein?

Gruß Tommy

Edit: Das einlesen der Analogwerte nur bei der Deklaration bringt auch nichts.

"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
02.01.2021, 19:47
Beitrag #35
RE: OLED Bildschirm Problem
(02.01.2021 19:39)Tommy56 schrieb:  Wofür soll die Endlosschleife am Ende von loop gut sein?

Gruß Tommy

Edit: Das einlesen der Analogwerte nur bei der Deklaration bringt auch nichts.

Das ist dafür, damit es nur einmal ausgeführt wird. Ist nur zum feststellen, ob ich in den Loop gelangt bin.

Hab mal fürs Display aus dem Beispiel Sketch das ins Setup rein und etwas abgeändert.
Code:
while(!OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C)){
    Serial.println("OLED fehler!");
    delay(1000);
  }

Im Seriellen Monitor zeigt er OLED fehler an. Er kann also keine Verbindung zum Display aufbauen.
Der Resetpin vom Display ist auf dem Pin 12 in meinem Skatch. Da das der MISO vom Nano ist, hab ich ihn auf -1 geändert (Auf den Reset Pin vom Arduino).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2021, 19:55 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2021 19:56 von Tommy56.)
Beitrag #36
RE: OLED Bildschirm Problem
Du sprichst das OLED per I2C an, da hat MISO nichts damit zu tun.

Mein Vorschlag:

Baue jeden Bestandteil einzeln mit einem eigenen Sketch und seriellen Ausgaben soweit aus, dass dieses Teil funktioniert.
Gehe dabei von den Beispielen der jeweiligen Lib aus.

Erst wenn Du alle Teile einzeln in Funktion hast, fange schrittweise an, die Teile zusammen zu setzen.

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
02.01.2021, 20:01
Beitrag #37
RE: OLED Bildschirm Problem
Zitat:Du sprichst das OLED per I2C an, da hat MISO nichts damit zu tun.

Auf dem MISO liegt aber die Kommunikation mit dem SD Modul.

Zitat:Erst wenn Du alle Teile einzeln in Funktion hast, fange schrittweise an, die Teile zusammen zu setzen.

Genau nach diesem Prinzip hab ich alles aufgebaut (Abgesehen vom einbinden der Bibliotheken). Ich hab beim ersten versuch zuerst die RTC und das Display programmiert und hab mir die Uhrzeit anzeigen lassen. Danach wollte ich das mikroSD Modul einbinden und dann ging das Display nicht.

Hab dann den neuen Aufbauversuch des Sketches gestartet und hab erst die RTC und das mikroSD Modul eingebunden. Wie das dann funktioniert hat wollte ich das Display wieder mit rein schreiben und es kommt der gleiche fehler.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2021, 20:06
Beitrag #38
RE: OLED Bildschirm Problem
Hast Du denn das Display schon mal allein zum Laufen bekommen?
Wenn ja, mit welchem Sketch?

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
02.01.2021, 20:10
Beitrag #39
RE: OLED Bildschirm Problem
(02.01.2021 20:06)Tommy56 schrieb:  Hast Du denn das Display schon mal allein zum Laufen bekommen?
Wenn ja, mit welchem Sketch?

Ja, hab ich.
Hab von Adafruit das SSD1306_128x64px_I2C Beispiel genommen. Läuft ohne Probleme.

Hab jetzt mal das Skatch vom I2C Scanner mit eingebaut, ob das Display überhaupt gefunden wird.

Code:
Serial Begin
Scanning...
I2C device found at address 0x3C  !
I2C device found at address 0x57  !
I2C device found at address 0x68  !
done

Das Display und die RTC werden auf jedenfall erkannt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2021, 20:57
Beitrag #40
RE: OLED Bildschirm Problem
I2C Adresse beim Scan erkennen und Display zum Laufen gebracht (sprich zur Anzeige von Texten/Werten) sind aber 2 Paar verschiedene Schuhe.
Das überzeugt mich noch nicht.

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 546 27.06.2021 16:19
Letzter Beitrag: Bitklopfer
  Problem bei Multitasking und millis() Maxcruiser 41 2.165 01.06.2021 22:22
Letzter Beitrag: Maxcruiser
  Poti-Wert auf OLED Display anzeigen senseman 34 2.317 24.05.2021 22:09
Letzter Beitrag: senseman
  Problem Relaisplatine Maui 14 1.490 23.03.2021 15:20
Letzter Beitrag: hotsystems
  Laserwert auf OLED Display ausgeben Blauepi 18 1.814 22.03.2021 14:00
Letzter Beitrag: Blauepi
  Problem mit "pow" awillib 9 1.174 27.02.2021 19:22
Letzter Beitrag: Tommy56
  Pwm Problem safitom 4 686 20.02.2021 12:14
Letzter Beitrag: safitom
  SH1107 Oled Display und Multiplexer Feuchtigkeitssteuerung Kanka 35 3.075 06.02.2021 22:38
Letzter Beitrag: Kanka
  Problem mit "Keyboard" und "Mouse" LK2567 4 762 03.02.2021 16:11
Letzter Beitrag: MicroBahner
  const char zu int Konvertierung Problem Lumplux 1 505 02.02.2021 10:26
Letzter Beitrag: Lumplux

Gehe zu:


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