Hallo Zusammen, ich habe eine Frage zur Thematik Sonderzeichen oder besser Umlaute. Hab schon ewig rumgesucht und nichts passendes gefunden. Immer diese japanischen Zeichen davor, was kann ich machen? Gibt es eine Biblotek dafür die ich übersehen hab? Oder ist es viellecht sogar noch voiel einfacher? Viele Grüße
Man schaue in's Datenblatt des LCD. Evtl. kann man auch noch den Zeichensatz umstellen JP, EN, CN, ..., und programmiert man sich mit diesen Infos einfach eine Ersetzungsfunktion. Ich habe gehört, das C ein switch ..; case .. break; versteht! :)
da findet sich nicht so viel. Es gibt doch sicherlich jemanden der dieses LCD KeyPad mit Sonderzeichen benutzt. ;(
:
Bearbeitet durch User
Falls es ein HD44780 Display oder ein dazu kompatibles ist, kannst du mal das hier versuchen: Beitrag "Sonderzeichen LCD HD44780 kompatibel" Zeigt dein Display eigentlich nur japanische Zeichen an? Oder willst du einfach nur Sonderzeichen darstellen?
Hallo, das Keypad ist doch völlig uninteressant. Wichtig ist nur, welchen Zeichensatz das konkret verbaute Display hat. Unterlagen zu den üblichen 16x2 LCD findet man genug im Netz, im Zweifel mußt Du eben alle möglichen Zeichencodes zwischen 0x08 und oxFF ans Display schicken und schauen ob und wo es Umlaute im Zeichensatz hat. Einsetzen/Ersetzen mußt Du die entsprechenden Codes ohnehin in Deinem Programm, das die Daten zum Display ausgiebt, Die Codes 0x00 - 0x07 sind bei diesen Displays normalerweise für selbst definierte Zeichen, man kann sich notfalls die Umlaute auch selber bauen. Vielleicht passt dieses Datenblatt zu Deinem Display: https://cdn-shop.adafruit.com/datasheets/TC1602A-01T.pdf Kannst die Zeichencodes der Umlaute ja mal zum Display schicken. Gruß aus Berlin Michael
:
Bearbeitet durch User
Michael U., schreibst es ! Ich hätte jetzt erwartet, dass das LCD abgeschraubt wird und wir danach ein Bild von der Beschriftung sehen.
Hallo, naja, dazu müßte er wohl die Stiftleise des Display auslöten... Ist bei meinem China-Keypad auch verlötet, wegen der Bauhöhe haben die üblicherweise da keinen Steckverbinder zwischen. Gruß aus Berlin Michael
:
Bearbeitet durch User
Hallo Vielleicht (Gast), Es zeigt den Normalen amerikanische Zeichensatz an. Kein %, ß, ä, ö, ü, Ä, Ö und Ü. Gern hätte ich auch die Umlaute in Versalien. Guter Tip ------------------------------------------------------ Hallo Michael U. (amiga), Stimmt da hab ich mich mal wieder etwas B. angestellt bei Datasheet suchen. ;) CHARACTER GENERATOR ROM ??? eine neue Herrausforderung upper and lower 4bit Ausgabe? wie gebe ich diese bitkombination bloß auf meinem LCD aus? 0x00 - 0x07 hab ich schonmal probiert anzusteuern. Keine Reaktion ... MIST Es scheinen Große Umlaute und % Zeichen nicht zu geben. ----------------------------------------------------- Hallo Karl M. (Gast) ich hätte erwartet das ein Gast nicht so schreibst als würde es sein Zweites Geheimes Profil seien um die Stimmung anzuheitzen und Missmut zu verbreiten. Lötstellen kann man nicht schrauben. ;)
Anja S. schrieb: > Hallo Karl M. (Gast) > > ich hätte erwartet das ein Gast nicht so schreibst als würde es sein > Zweites Geheimes Profil seien um die Stimmung anzuheitzen und Missmut zu > verbreiten. Lötstellen kann man nicht schrauben. ;) Keine Stimmung oder Missmut, sorry wenn das so rüber gekommen ist. Ich habe nicht gewusst, dass das LCD verlötet wurde. So würde ich es jetzt auslöten um an die Produktbezeichnung zu gelangen, dadurch an das Datenblatt und die gesuchten Informationen. Zum "freien" Zeichensatz auf den Positionen 0 - 7, man lädt 8x 5 Bit auf das LCD an die Zeichenstellen 0 - 7. Dann kann man eine selbst definiertes Zeichen 0 - 7 ausgeben. Wenn dein LCD dem LCD Controller HD44780 weitgehend entsprechen sollten, dann kann man das Datenblatt HD44780 für die Funktionsweise des CGRAM Zeichengenerators (Character Generator RAM (CGRAM)) verwenden. Siehe: Table 5 "Relationship between CGRAM Addresses, Character Codes (DDRAM) and Character Patterns (CGRAM Data)" https://www.sparkfun.com/datasheets/LCD/HD44780.pdf http://www.sprut.de/electronic/lcd/#cgram Schaue Dir bitte die Zeichensätze ab Table 4 "Correspondence between Character Codes and Character Patterns (ROM Code: A00)" im HD44780 Datenblatt an, vielleicht entsprecht davon etwas dem 1602 LCD. Hiermit kann man sich dann "eigene" Zeichen 0 - 7 malen: https://maxpromer.github.io/LCD-Character-Creator/
Ich habe vor vielen Jahren einen Treiber geschrieben, der die freie programmierbaren Zeichen nutzt, je nach angezeigtem Text zuerst für die Umlaute, wenn noch Platz frei war, auch für die Zeichen mit Unterlängen. Es stört mich gewaltig, dass bei g, j, p, q, y die Zeichen völlig ohne Grund nach oben gehoben sind und die achte Zeile leer bleibt. Weiß jemand ein Display, das nicht nur 8, sondern 16 frei programmierbare Buchstaben hat? Platz wäre ja vorhanden.
Ich hab mal eine Script angepasst vielleicht hift es ja dem einen oder anderen in Zukunft: Meine habe ich nun doch damit gefunden. Vielen Dank an dieser Stelle. ä \341 ö \357 ü \365 ß \342 % \45 @ \100 Lediglich die Versalien fehlen noch ;(
1 | #include <LiquidCrystal.h> |
2 | #include "LCDKeypad.h" |
3 | |
4 | LiquidCrystal lcd(8, 9, 4, 5, 6, 7); |
5 | |
6 | struct Sonderzeichen |
7 | {
|
8 | const char *Zeichen; |
9 | int Zeile; |
10 | };
|
11 | |
12 | Sonderzeichen Aufnahme[] = |
13 | {
|
14 | {"\00\01\02\03\04\05\06\07\08\09",0}, |
15 | {"\10\11\12\13\14\15\16\17\18\19",10}, |
16 | {"\20\21\22\23\24\25\26\27\28\29",20}, |
17 | {"\30\31\32\33\34\35\36\37\38\39",30}, |
18 | {"\40\41\42\43\44\45\46\47\48\49",40}, |
19 | {"\50\51\52\53\54\55\56\57\58\59",50}, |
20 | {"\60\61\62\63\64\65\66\67\68\69",60}, |
21 | {"\70\71\72\73\74\75\76\77\78\79",70}, |
22 | {"\80\81\82\83\84\85\86\87\88\89",80}, |
23 | {"\90\91\92\93\94\95\96\97\98\99",90}, |
24 | {"\100\101\102\103\104\105\106\107\108\109",100}, |
25 | {"\110\111\112\113\114\115\116\117\118\119",110}, |
26 | {"\120\121\122\123\124\125\126\127\128\129",120}, |
27 | {"\130\131\132\133\134\135\136\137\138\139",130}, |
28 | {"\140\141\142\143\144\145\146\147\148\149",140}, |
29 | {"\150\151\152\153\154\155\156\157\158\159",150}, |
30 | {"\160\161\162\163\164\165\166\167\168\169",160}, |
31 | {"\170\171\172\173\174\175\176\177\178\179",170}, |
32 | {"\180\181\182\183\184\185\186\187\188\189",180}, |
33 | {"\190\191\192\193\194\195\196\197\198\199",190}, |
34 | {"\200\201\202\203\204\205\206\207\208\209",200}, |
35 | {"\210\211\212\213\214\215\216\217\218\219",210}, |
36 | {"\220\221\222\223\224\225\226\227\228\229",220}, |
37 | {"\230\231\232\233\234\235\236\237\238\239",230}, |
38 | {"\240\241\242\243\244\245\246\247\248\249",240}, |
39 | {"\250\251\252\253\254\255\256\257\258\259",250}, |
40 | {"\260\261\262\263\264\265\266\267\268\269",260}, |
41 | {"\270\271\272\273\274\275\276\277\278\279",270}, |
42 | {"\280\281\282\283\284\285\286\287\288\289",280}, |
43 | {"\290\291\292\293\294\295\296\297\298\299",290}, |
44 | {"\300\301\302\303\304\305\306\307\308\309",300}, |
45 | {"\310\311\312\313\314\315\316\317\318\319",310}, |
46 | {"\320\321\322\323\324\325\326\327\328\329",320}, |
47 | {"\330\331\332\333\334\335\336\337\338\339",330}, |
48 | {"\340\341\342\343\344\345\346\347\348\349",340}, |
49 | {"\350\351\352\353\354\355\356\357\358\359",350}, |
50 | {"\360\361\362\363\364\365\366\367\368\369",360}, |
51 | {"\370\371\372\373\374\375\376\377\378\379",370}, |
52 | {"\380\381\382\383\384\385\386\387\388\389",380}, |
53 | {"\390\391\392\393\394\395\396\397\398\399",390}, |
54 | {"\400\401\402\403\404\405\406\407\408\409",400}, |
55 | {"\410\411\412\413\414\415\416\417\418\419",410}, |
56 | {"\420\421\422\423\424\425\426\427\428\429",420}, |
57 | {"\430\431\432\433\434\435\436\437\438\439",430}, |
58 | {"\440\441\442\443\444\445\446\447\448\449",440}, |
59 | {"\450\451\452\453\454\455\456\457\458\459",450}, |
60 | {"\460\461\462\463\464\465\466\467\468\469",460}, |
61 | {"\470\471\472\473\474\475\476\477\478\479",470}, |
62 | {"\480\481\482\483\484\485\486\487\488\489",480}, |
63 | {"\490\491\492\493\494\495\496\497\498\499",490} |
64 | };
|
65 | |
66 | |
67 | |
68 | const byte RecordCount = sizeof Aufnahme / sizeof Aufnahme[0]; |
69 | char schreibe[30]; |
70 | |
71 | void setup() |
72 | {
|
73 | Serial.begin(2000000); |
74 | lcd.begin(16, 2); |
75 | lcd.clear(); |
76 | |
77 | for (int i = 0; i < RecordCount; i++) |
78 | {
|
79 | Serial.print(F("Zeile ")); |
80 | Serial.print(Aufnahme[i].Zeile); |
81 | Serial.print(F(" (10 Sonderzeichen): ")); |
82 | Serial.println(Aufnahme[i].Zeichen); |
83 | |
84 | int Zeilenende = Aufnahme[i].Zeile + 9; |
85 | lcd.setCursor(0, 0); |
86 | lcd.print("Zeile: "); |
87 | lcd.setCursor(7, 0); |
88 | sprintf( schreibe, "%3d-", Aufnahme[i].Zeile ); |
89 | lcd.print(schreibe); |
90 | lcd.setCursor(11, 0); |
91 | lcd.print(Zeilenende); |
92 | |
93 | lcd.setCursor(0, 1); |
94 | lcd.print(Aufnahme[i].Zeichen); |
95 | delay(5000); |
96 | }
|
97 | }
|
98 | |
99 | |
100 | void loop() {} |
eProfi schrieb: > Ich habe vor vielen Jahren einen Treiber geschrieben, der die freie > programmierbaren Zeichen nutzt, je nach angezeigtem Text zuerst für die > Umlaute, wenn noch Platz frei war, auch für die Zeichen mit Unterlängen. Wo finde ich den bitte? Das ist ne gute Sache ... tolle Idee!!! eProfi schrieb: > Es stört mich gewaltig, dass bei g, j, p, q, y die Zeichen völlig ohne > Grund nach oben gehoben sind und die achte Zeile leer bleibt. > Weiß jemand ein Display, das nicht nur 8, sondern 16 frei > programmierbare Buchstaben hat? Platz wäre ja vorhanden. Sehe ich genauso!
Hallo, einfach gesagt: bei den aktuellen Preisen: nimm ein Grafikdisplay geeigneter Größe. Wenn es unbedint ein Shield werden muß: https://www.ebay.de/itm/Protoshield-Arduino-Uno-Kontaktleisten-/262452150763?var= Ein paar Taster rauflöten und passend verdrahten. Man kann kja die Beschaltung vom Keypad-Schaltplan übernehmen, wenn es so sein soll. Wenn man ein Display nimmt, da von der Größe her ausreicht und es dafür eine Arduino-Lib gibt und es I2C oder SPI kann: man kann mehr darstellen, man hat programmtechnisch kaum mehr Arbeit und man hat etliche Pins mehr frei am Arduino. Hat man doch eine Nette Aufgabe und auch was zum Üben. Gruß aus Berlin Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.