- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Voltmessung mit Nachkommastellen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2008
    Beiträge
    26

    Voltmessung mit Nachkommastellen

    Hallo!

    Ich habe mir die c-control 2.0 von Conrad vor ein paar Tagen zugelegt und bin schon auf ein 1. Problem gestoßen.

    Da der Compiler nur Ganzzahlen verrechnen kann, ist man auf den mod Befehl angewiesen. (beim googeln entdeckt)

    Ich habe auf den Analog/Digitalwandler - Port[7] den Schleiferkontakt eines Potentiometers angeschlossen. Nun möchte ich, dass mir das Display die Spannung so genau wie möglich anzeigt, wie z.B. 4,002 V

    So, und um dies zu realisieren muss man anscheinend mit dem mod Befehl rechnen.
    Ich google jetzt schon seit Tagen, nach einer Sinnvollen Anleitung dafür, damit auch ich als Anfänger dies umsetzen und vor allem kapieren kann.

    Doch leider finde ich nur Anleitungen und Beispiele, für Profis. Auf gut Deutsch, alles was ich bis jetzt dazu gefunden habe, kapier ich nicht.

    Jetzt wäre ich sehr dankbar, wenn ihr mir helfen könnt. Wäre auch über Anleitungen, Links, Tipps usw. sehr dankbar.
    Bin auf jedenfall noch ein Anfänger und "Dummie" in dem Gebiet

    Vielen Dank für die Infos!

    Gruss Benny

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Da der Wert von 4,002 V nicht dargestellt werden kann, musst du einen Wert erzeugen, der keine (dich interessierenden) Nachkommastellen enthält; in diesem Fall muss in deiner Rechnung zu den 4,002 V ein "* 1000" hinzugefügt werden.
    Dann erhälst du statt 4,002 eben 4002.

    Zur Anzeige gehst du folgendermaßen vor:
    print wert/1000; 'Du teilst diesen Wert wieder durch 1000 --> Ausgabe =4
    print ","; 'Ausgabe des Kommas
    print wert mod 1000 'ergibt den Rest von wert/1000, also 002

    Fertig!

    Das ganze kann man dann auch in einer Zeile zusammenfassen:

    print wert/1000 & "," & wert mod 1000

    Bin gerade bei der Arbeit und ziemlich gestresst, ich hoffe, ich habe keinen Fehler eingebaut!
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2008
    Beiträge
    26
    Hallo!

    Danke für die schnelle Antwort.
    Habe jetzt folgendes Programm geschrieben:
    ----------------------------------------------------------------------
    ' Deklarationsteil
    define poti ad[7]
    lcd.init

    ' Programmteil
    #loop
    lcd.pos 1,1
    lcd.print "dez=" & poti


    lcd.pos 2,1
    print ((poti / 51) & "," & (poti mod 51) & " V"

    goto loop
    -----------------------------------------------------------------------------

    Nun erkläre ich mal folgende Programmzeile:
    print ((poti / 51) & "," & (poti mod 51) & " V"

    Wenn z.B. am A/D - Eingang 255 (Dezimal) anliegen macht die Zeile doch folgendes --> 255/51 = 5
    --> 255 mod 51 = ,00
    Also müssten auf dem Display 5,00 V stehen

    Gut bei diesem Wert 255 steht auch tatsächlich 5,00 V auf dem Display.
    Sobald ich aber das Poti herunterdrehe z.B. Wert 175 (Dezimal) stimmt der dazugehörige Voltwert nicht mehr überein.

    Warum? Was mache ich falsch?

    Danke für die Hilfe!

    Gruss Benny

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Hi,

    eigentlich hatte ich hier nochmal eine komplette Erläuterung geplant.
    Aber Tappi hat in seinem Post (anderes Forum, du weißt schon wo) schon alles wichtige dazu geschrieben!
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    25.11.2003
    Beiträge
    1.112
    ...mal nebenbei...
    Hab ich nicht irgendwo gelesen, dass die C-Control 2 mit 32Bit Fließkommazahlen umgehen kann?
    Gruß

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Er meint die M-Unit 2.0.
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2008
    Beiträge
    26
    Hallo Tido,

    ja das stimmt Tappi hatt dies super erklärt, wofür ich auch sehr dankbar bin. Dachte mir nur, dass ich bei Roboternetz erklärungen aus einer anderen Sichtweise erhalte.
    Sorry, ich bin halt nunmal Anfänger und finde, dass die A/D-Wandlung sehr wichtig für viele Steuerungsaufgaben ist.

    Danke für die Infos!

    Gruss Benny

  8. #8
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622
    Kein Problem,

    aber besser als Tappi kann man es wohl (kaum) erklären, zumindest hat das alles Hand und Fuß.
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    21.07.2008
    Beiträge
    26
    Hallo!

    Hab mir jetzt den Advanced Controller bestellt, da dieser mit Fließkommazahlen rechnen kann.

    Somit ist jetzt alles gelöst.
    Trotzdem danke für die Beiträge.

    Gruß Benny

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.09.2004
    Beiträge
    264
    Hab mir jetzt den Advanced Controller bestellt, da dieser mit Fließkommazahlen rechnen kann.
    Das war überflüssig und falsch.

    Beide C-Controls liefern die Auflösung nur mit 8 bit, also 256 Schritte von 0-5V. 4.002 wirst du also niemals messen.
    Geschickter wäre es gewesen, die Unit 2.0 zu behalten und dazu z.B. einen 12-bit AD-Wandler über den I2C-Bus (z.B. Max127) zu kaufen.

    Trotzdem viel Spaß beim Basteln.

    Stefan

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiTime Speicher und Akkus