AVR 328P, Temperatur, Uhrzeit am OLED Display ausgeben

OP #6715079
Lesenswert?
• ▲
▼
Einen schönen guten Tag,

da ich noch am Anfang meiner Programmierkarriere stehe, sind Probleme 
keine Seltenheit. Nur bei dem vorgestellten Problem, finde ich zurzeit 
keine Lösung und könnte ein wenig Unterstützung gebrauchen.

Projekt: Ich möchte mit meinem Arduino Nano ein OLED Display (SSD1306) 
über I2C ansteuern. Das Display sollte einmal die Temperatur und die 
Uhrzeit anzeigen.

Um die Temperatur zu messen, habe ich einfach einen NTC10K-Sensor und 
paar Widerstände an den ADC1 gehängt, der ADC1 soll mir dann die 
entsprechenden Werte liefern. Zu der Temperaturmessung, werde ich mein 
Hardwareaufbau als Datei hinterlegen.

Um die aktuelle Uhrzeit anzeigen zu können, habe ich mir ein RTC Modul 
(DS3231) gekauft, dies soll später auch mit dem I2C Bus verbunden 
werden. Das RTC Modul wurde noch nicht angeschlossen, weil ich mit der 
Temperaturmessung noch zu kämpfen habe.

Mein Problem: Bei der runtergeladenen Display library is ein 
Programmbeispiel dabei, d.h. mein Display funktioniert und zeigt auch 
etwas an. Leider kann ich den gemessenen Wert vom ADC1 nicht am Display 
ausgeben. Ich benutze die Funktion itoa() um meinen Wert vom ADC1 in 
einen string zu wandeln, doch mein Display bleibt leider dunkel.

Setup zusammengefasst:
Arduino Nano (Atmega 328p), OLED Display (SSD1306), RTC Modul (DS3231)
Atmelstudio 7, Library zum OLED Display von: 
Beitrag "SSD1306/1309 Library zum Darstellen von Text auf OLED Displays"

Im 7-Zip Ordner "Display.7z" ist mein kompletter code mit library 
vorhanden. Ich habe zusätzlich die main Datei als Textdatei hochgeladen 
und meinen Hardwareaufbau.

Für Tipps und Lösungen wäre ich euch sehr Dankbar.

Vielen Dank im Voraus.
Chris
Angehängte Dateien:
OP #6715211
Lesenswert?
• ▲
▼
weichwerker schrieb:
> Chris S. schrieb:
>> main.txt (1,73 KB)
>
> Oh Määäääähn, Sourcecode postet man als *.c Datei.

Die Sourcedatei ist im 7-Zip Ordner.

Tinus schrieb:
> status bekommt bei jedem Aufruf/Durchlauf den Wert SENSOR_EIN

Ich habe die Variable "status" als statische Variablen festgelegt, die 
werden nur einmal am Anfang initialisiert. Der Herrn Sebastian W. hat 
meinen Fehler gefunden.

Sebastian W. schrieb:
> Chris S. schrieb:
>> Für Tipps und Lösungen wäre ich euch sehr Dankbar.
>
> initSystemTimer() aufrufen?
>
> LG, Sebastian

Vielen Dank Sebastian, das war wohl der Fehler. Ich werde nachher mal 
den Code erweitern und das RTC-Modul ausprobieren.

LG, Chris

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.