Totaler Anfänger(C-Programmierung)
Textbeispiele auf 3310 Display gibt es viele, nur wie bekomme ich den Zahlenwert auf das Display?
Suche nach einem simplen Stück Beispielcode. Eine Ausgabezeile würde mir reichen.
Thx schonmal im vorraus
Totaler Anfänger(C-Programmierung)
Textbeispiele auf 3310 Display gibt es viele, nur wie bekomme ich den Zahlenwert auf das Display?
Suche nach einem simplen Stück Beispielcode. Eine Ausgabezeile würde mir reichen.
Thx schonmal im vorraus
Welche Bibliothek benutzt Du?
Grüße Uwe
Benutze Beispiel vom Arduino Playground : http://playground.arduino.cc/Code/PCD8544
Mein Versuch den Analogwert von A0 auf dem Display darzustellen sieht so aus;
{
int Ana0 = analogRead(A0);
LcdClear();
LcdString(" Arduino ", Ana0);
delay(500);
}
Leider geht das nicht!
Mit "LcdCharacter(char character)" kannst Du mittels Ascii-Wert eines Zeichens dieses auf das Display schreiben.
Du mußt jetzt die Zahl in char umwandeln und dann jedes Zeichen einzeln ausgeben.
Grüße Uwe
uwefed:
Du mußt jetzt die Zahl in char umwandeln
Das geht auch einfacher! Seit Arduino 0019 ist die String-Klasse dabei.
Du kannst mit der Funktion String() eine Zahl in einen Dezimal-String umwandlen (oder in HEX, binär, was du willst, auch ein float mit beliebig vielen Kommastellen). Diesen String kannst du dann mit einer for-Schleife auf dem Display ausgeben.
String s = String(Ana0,DEC);
for (int i = 0; i < s.length(); i++)
LcdCharacter(s[i]);
MGOS Du weißt schon daß die Stringklasse problematisch ist weil sie das RAM vollmüllen kann. Darum ist es bessere strings nicht zu benutzen.
Grüße Uwe
Danke für Eure Hilfe!!!
Die String() Version funktioniert, wie aber Uwe voraussagte verstopft sie das RAM (des Displays???).
Ein 'LcdClear();' räumt dann auf.
Trotzdem!
Uwe,
vielleicht könntest Du mir funktionierende Scatch Zeilen schreiben?
Ich, krieg das nicht hin.
Grüsse EPAE
Mit LcdString geht es auch. ( Nicht nur für feste Texte geeignet )
Musst halt vorher die Zahl in einen Text wandeln:
static char buffer[8];
itoa (analogRead(A0), buffer, 10);
LcdString(buffer);
statt itoa geht auch sprintf(buffer, "%04d", analogRead(A0));
wenn man mehr Formatierungsmöglichkeiten braucht ( im Beispiel 4 Stellen mit führenden Nullen, dezimal )
Epae:
Die String() Version funktioniert, wie aber Uwe voraussagte verstopft sie das RAM (des Displays???).
Nein, des Arduino.
Die Stringklasse ist auf dem Arduino ungefähr genau so wichtig wie ein Kropf. Man braucht sie für absolut gar nichts, alles lässt sich auch auf andere Wege lösen. Und man spart sich mit dem weglassen dieser Klasse Speicher und Ärger.
Die Beiträge hier waren super!!!
Beide Code-Zeilen laufen! (incl. Variante mit ' sprintf ')
Wart eine echte Hilfe.
Super Forum!!
Gruß EPAE
PS:
Bin für evt. weitere Beispiele dankbar!
Bin für evt. weitere Beispiele dankbar!
google mal nach c++ sprintf und such dessen Formatierungs-Syntax raus.
Dann probier das mit deinem Display aus.
( Hinweis: float oder double mit "%f" wird nicht gehen !!! aber dtostrf ist ein gutes google Suchwort )
Oder verändere andere Beispiele selbst.
Du wirst begeistert von dir selbst sein !