- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: LCD Darstellung (Zentrieren)

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178

    LCD Darstellung (Zentrieren)

    Anzeige

    Praxistest und DIY Projekte
    Ich möchte die Drehzahl auf einem LCD darstellen lassen. Es ist ein 4*20.

    Ich möchte gerne 0 als Platzhalter verwenden oder gibt es einen Befehl zum Zentrieren?

    ** 00000 rpm **

    ** 00015 rpm **

    ** 34612 rpm **

    So soll das mit den Nullen als Platzhalter aussehen (Obwohl mir das mit dem Zentrieren lieber wäre!).

    Jemand ne idee wie ich das hinbekomme?

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.08.2004
    Beiträge
    197
    Guckst du in die Hilfe,
    Befehl Format

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    1. Die Variable mit STR umwandeln und dann mit FORMAT einer vestimmten Länge zuordnen.
    Dann hast du die 0000 immer davor.

    2. Zentriert passt hier eher weniger. Rechtsbündig wäre passender.
    Mit LEN kannst du die Länge des Textes ruasbekommen. Ich denke mal auch nur für Strings. Musst du dann wieder mit STR umwandeln.
    Die Stelle der Einer ist ja immer die gleiche. Sagen wir mal 10.
    In der Variable A könntest du die Länge haben.
    LOCATE 1,10-A (evtl musst du das getrennt ausrechnen lassen und dann LOCATE 1,B verwenden)
    LCD RPM
    Aber zuerst musst du die alte Zahl mit Leerzeichen überschreiben. Wenn du mal 10000 RPM hattest und als nächstes hast du 100 RPM steht sonst auf dem LCD 10100 weil die alten Stellen nicht gelöscht wurden.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Hat vielleicht jemand mal einen Code schnippsel? Mit STR hab ich noch nie was gemacht und ich versteh das erlichgesagt auch nicht.
    Habe mir das gerade mal in der Hilfe angesehen, bringt mich aber auch nicht weiter.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Hat vielleicht jemand mal einen Code schnippsel?
    Dim A As Byte , S As String * 10
    A = 123
    S = Str(a)
    Print S ' 123
    End

    Das wäre z.B. einer.
    Er kommt dir sicherlich bekannt vor. Es ist der aus der Hilfe.
    Es ist aber schwer dir zu helfen ohne zu wissen, was du nicht verstehst.

    Mit der Suche habe ich alleine im Bascom-Unterforum 43 Beiträge zum Thema STR gefunden. Diesen abgezogen macht noch weitere 42 in denen es vorkommt.
    In einigen ist es evtl nur am Rande erwähnt. Aber in anderen geht es genau im dieses Thema auch im Bezug auf LCD-Ausgabe.

    Wichtig zu wissen ist da evtl noch, das einige Funktionen/Operationen nur mit bestimmten Variablentypen funktioniert. Wie bei FORMAT. Nur ein String kann mit FORMAT formatiert werden. Dazu muss man dann andere Typen halt umwandeln.
    Oder man kann bestimmte Operationen nur mit Variablen vom gleichen Typ durchführen.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Ich verstehe nicht was mir STR bringen soll bzw. wofür das gut ist. Ich werde nun mal ein bisschen die Suche bemühen und gucken ob ich was brauchbares finde. Falls nein meld ich mich nochmal.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Ich verstehe nicht was mir STR bringen soll bzw. wofür das gut ist.
    Wichtig zu wissen ist da evtl noch, das einige Funktionen/Operationen nur mit bestimmten Variablentypen funktioniert. Wie bei FORMAT. Nur ein String kann mit FORMAT formatiert werden. Dazu muss man dann andere Typen halt umwandeln.
    Du musst deine RPM was sicherlich nur eine Zahlvariable ist erst in einen String umwandeln, um die Nullen mit FORMAT davor zu setzen.

    Dim RPM as Integer
    Dim RPM2 as String*5
    RPM=123
    RPM2=STR(RPM)
    RPM2=FORMAT(RPM2,"00000")
    LCD RPM2 'auf dem LCD erscheint jetzt 00123

    Oder Plan B, die Anzeige rechtsbündig ausführen.

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.07.2004
    Beiträge
    178
    Danke schön, nun funktioniert es wie es soll.

    Blos hab ich immernoch nicht verstanden was genau ein String ist.

    Dim RPM2 as String*5 <- damit lege ich fest das der String 5 Zeichen lang ist?

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Genau.
    Und ein String kann Zahlen und Buchstaben beinhalten.
    Allerdings kann man mit Strings nicht rechnen. Wenn ein String eine Zahl beinhaltet und du diese verrechnen willst musst du den String umwandeln. Das geht wieder mit VAL()

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests