du verwechselt ASCII Code mit dem Zeichensatz der dahinter stehen.
Schau dir eine ASCII Tabelle an.
Der ASCII Code 48 ist die Ziffer '0'.
Der ASCII Code 65 ist der Buchstabe 'A'.
Wenn du den Wert 90 darstellen möchtest, dann musst du zwei ASCII Zeichen senden. Nämlich ASCII Code 57 und 48.
Mit Serial.write(65) wird zum Bsp. das 'A' im Terminal ausgegeben.
Ob Du
char variable='A';
oder
char variable=65;
schreibst, dürfte egal sein.
Beide Male steht exakt die gleiche Bitfolge im Speicher, Die Du Dir als 'A', 65, 0x41, 0101 anzeigen lassen kannst.
Zur Ausgabe wird Dir .write wohl helfen, sonst, zur Verarbeitung, ist Das ALLES genau das Gleiche.
Serial.print(F("serialwrite "));Serial.write(valo); // Ausgabe ist OK Aber das soll in eine Variabele
// da kommt M auf den Serial
// Möchte das ergebniss "M" aber nicht auf den Serial.... sonder in einen anderen String haben
// also String test = "M" wobei das M aus der zahl 77 usw erstellt werden soll
// es ist immer nur eine zahl 0-9 oder A-Z was als Zahl kommt
// meine sowas in der ART WIE
// int test = Serial.write(valo); <-- klar geht nicht weil Serial.write nicht gemacht dafür
//( ich möchte nichts verschicken)
//Danke Euch für Infos
Positiv:
Ich möchte einen Dec wert der in einen ascii wert umstellen.
Eine Variable enthält im Controller immer nur einen Zahl in Binärformat. Erst die Darstellung/Interpretation macht daraus eine Zahl, einen Buchstaben oder sonstwas.
Darum erklähr uns bitte genau was Du machen willst.
Grüße Uwe
ich möchte mit Arduino Uno
einfach eine Zahl in den dazugehörigen Ascii haben, das in enier Variabele.
Ich bekomme immer 2 stellen als zahl "77" "78" und so weiter.
diese möchte ich dann wandeln in Ascii und an einen String anhängen
Hier kann man bei CONVERT Decimal (Example: 97 98 99)
die zahl "77" eingeben und sieht den ascii daraus
CONVERT ASCII (Example: a b c)
zeigt dann
M
das M möchte ich in eine Variabele habem
Also
int valo = 77; // valo bekomme ich geliefert
Daraus eine ascii machen und in eine Variabele packen.
// int test = Serial.write(valo); <-- klar geht nicht weil Serial.write nicht gemacht dafür
dann hätte die Variabele "test" den wert "M"
die Variabele test kann ich dann weiter verarbeiten
Ich weiß am Computer sitzen und sehen und sprechen ist einfacher
Wenn Du 2 Zeichen von Seriell bekommst, dann musst Du diese doch erst mal zusammensetzen und mit \0 abschließen.
Woher willst Du wissen, welche 2 Zeichen zusammen gehören?
Da wäre ein Endekennzeichen (z.B. '\n' = LineFeed = LF) sinnvoll.
Wenn Du MEHR als nur C&P willst, wirst Du Dich etwas mehr anstrengen müssen.
Mit 'och, dann eben nicht' wirst Du uns kaum beeindrucken.
Strings solltest Du meiden, da besonders die Manipulation (das Arbeiten damit) schnell den Speicher sprengt - be jeder Änderung wird ein neuer Speicherbereich gesucht, wo der neue String hin passt - Das geht nicht all zu oft gut.
strings (C-Strings) sind quasi Arrays, in Denen Zeichen (char) stehen.
Abschließend ist zwingend eine \0 (also eine NULL), damit die Funktionen im Arduino erkennen, wo Schluß ist.
Weshalb man in ein char-Array[6] eben maximal 5 Zeichen speichern DARF, sonst gibt's wieder Müll.
Allerdings habe ich immer noch nicht gerafft, was Du eigentlich vor hattest - die Information 65/'A'/0x41 ist überall gleich, das einzige Problem bei der ganzen µC-Programmiererei ist der Mensch, Der die Daten auch sehen will - in diesem Fall: Du
Wenn Du statt 0x41 '65' sehen willst, musst Du was Anderes machen, als wenn Du 'A' sehen willst.
Kann Euch verstehen.
Aber grade die sich nicht auskennen stellen hier fragen.
( Sind halt unter umständen wie ich ganz wenig in dem Thema und wollen halt was machen
was halt wie bei mir Ihre Fähigkeiten übersteigt )
schön wäre gewesen.
Hallo Duda so wird das nichts. Dein wissen ist zu wenig.
Wo kommst DU her ??
Dann kann man sich mal treffen
So kann das nichts werden.
Es ist ein Program was nicht von mir ist.
Da wollte ich weiteres in die Anzeige Display bringen.
Einiges habe ich ohne großes wissen hin bekommen.
Einiges halt nicht
SCHADE aber so ist das
Das mit dem tauchen einer Zahl gegen einen Ziffer, versuche ich jetzt durch
Mache einen String mit Ascii Zeichen
und lese dann den Buchstaben aus, die Stelle ist ja klar
zb "ABCD........................"
65 = A
90 = Z
die Zahlen die kommen immer -64 dann ist es 1 also erste Stelle vom String usw usw
Ist warscheinlich nicht ganz richtig , aber das kann ich noch programieren.
die Zahlen die kommen immer -64 dann istZ = 26 also 26´te Stelle vom String
Ist warscheinlich nicht ganz richtig , aber das kann ich noch programieren.
Das Board ist auch kein Arduino sondern ein ESP32 T-Beam
Ist mitlerweile so von mir zerfledert das es mit dem open SOurce nicht mehr zu vergleichen ist.
ABER ES MACHT DAS WAS ES SOLL "JETZT" ( NAJA FAST )
2 Dinge fehlen mir noch um zu frieden zu sein
( Wegen Eure Typs und Google brachten mich weiter )
Ich kann das Programm gerne mit Mail versenden ( ist 0,7mb )
Dazu müste aber klar, ein ESP32 T-Beam mit einem OLED Display, auch vorhanden sein.
Oder ich sende es einfach mit der Post oder würde es bringen
( Verwende Wlan , RF Sender - empfänger usw )
Den auf diese art, wie bisher , würde man nicht weiter kommen.
Es ist nach meiner Meinung zu verschachtelt um nur ein Teil zu senden. ( Wie gesagt meine Meinung )
Aber trotzdem danke
Ich weis Ihr würdet helfen, wenn ich es vernünftig rüber bringen könnte
Es ist immer wieder das gleiche!
A: Welchen Datentype haben die Quelldaten?
B: Welchen Datentype muss die Präsentation bekommen, damit sie das zeigt, was ich will?
C: Daraus ergibt sich ob und wie die Daten konvertiert werden müssen.
Mit der Serial ausgabe das stimmt
dachte könnte das so in die Oled Display anzeige übernehmen
nix
Geheim ist nix aber ich bin wie Ihr schon merkt, kein Programierer.
Wurschle mich durch
In den ganzen verschachtellungen usw weis ich selbst nicht was für ein typ das ist
Auf jeden fall geht das Serial.println
Nur halt das Display zeigt immer noch 7a statt z