Fehler um Grafik zu zeichnen

Ich habe folgendes Problem

Ich möchte eine Messwertreihe auf einem Oled als Grafik anzeigen. Dazu fülle ich die Messwerte in ein Array. Ein Wert y wird mit einem Messwert aus dem Array kopiert. Danach will ich für die 100 Messwerte je einen Punkt Punkt mit den Koordinaten x = 0...99 und y zeichnen. Vereinfacht, ohne Schlaufe und mit einer einzigen Koordinate sieht der Code so aus:

// Eingebundene Bibliotheken
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <RTClib.h>
#include <OneWire.h>
//#include <SD.h>
#include <DallasTemperature.h>

.......


Adafruit_SSD1306 display(128, 64, &Wire, 4);                    // display : OLED Anzeige 128x24 Pixel, Reset Pin 4, Bezeichnung display
RTC_PCF8523 rtc;                                                // rtc     : Chipset PFC 8523               // char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
OneWire oneWire(2);                                             // Schnittstelle fürTemperatursensoren an Pin Digital IN 2
DallasTemperature sensors(&oneWire);                            // Sensors : Temperatursensoren Typ SD18B

.......


// Lesen des RPM Eingangs :
   int rpm = 2300;                            // Umrechnung in %
   display.setCursor(70,20);
   display.print(rpm);
   display.setCursor(103,20);
   display.println("rpm");

// Grafische Darstellung
  int y;
  float Grafik[100];
  Grafik[0] == 50.2;
  y = (int)Grafik[0]; 
  display.drawPixel(10, y, SSD1306_WHITE);

Kompilieren funktioniert, aber der Code stürzt ab, die Anzeige blockiert. Was mach ich falsch?

Der ganze Code ist zu lange. Als Hinweis; Wenn ich den Befehl

display.drawPixel(10, 50, SSD1306_WHITE);

einsetze, funktioniert alles bestens.

Vielen Dank für die Unterstützung

Daniel

d_duc:
Was mach ich falsch?

Nur ein Fragment zu posten.
Außerdem:
Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter oder gehe in der IDE auf Bearbeiten - Für Forum kopieren und füge es hier ein).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Und dann sehe ich da noch ein Gleichheitszeichen zu viel:

Grafik[0] == 50.2;

Damit wird Grafik[0] nicht beschrieben und Wert von y wird nur schwer zu ermessen sein.
Das ist eine Zuweisung:

Grafik[0] = 50.2;

Das == wars! bin wohl schon zu lange am Bildschirm... DANKE

Danke für die Rückmeldung!

Der komplette Sketch wäre trotzdem interessant; möglicherweise gibt es da noch Optimierungspotential. Ich kann z.B. noch nicht erkennen, warum Du den Umweg über float gehen musst. Wenn es ein 128x64 Display ist, reicht für die y-Koordinate ein Byte aus.

wno158:
Ich kann z.B. noch nicht erkennen, warum Du den Umweg über float gehen musst. Wenn es ein 128x64 Display ist, reicht für die y-Koordinate ein Byte aus.

Macht er ja (fast)
Der float der sich in Grafik[0] befindet dürfte eine Temperatur sein.
y = (int)Grafik[0];
macht daraus was ohne Nachkomma...

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.