-
        

Ergebnis 1 bis 10 von 10

Thema: Wertebereich einen Ausgangswert zuweisen?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.02.2007
    Ort
    Bayern
    Beiträge
    85

    Wertebereich einen Ausgangswert zuweisen?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo allerseits!

    Ich hab nun das Problem, dass ich beim messen der Windrichtung, über Poti und Spannungsteiler, leider absolut kein lineares Ergebniss des Richtungswertes zustande bekommen, selbst nicht mit einer Funktion 3. Grades

    Also nun die Frage, ob es möglich ist einem ADC-Wertebereich über einen Befehl einen bestimmten Ausgabewert zuzuweisen. Evtl über eine Art Tabelle o.Ä.?
    Wüsste auch nicht, nach was ich in der Bascom-Hilfe suchen sollte?!

    MfG,
    Maxxtro

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BurningBen
    Registriert seit
    02.09.2008
    Ort
    Darmstadt
    Alter
    26
    Beiträge
    842
    hast du ein logarithmisches poti verwendet?

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Wenn du es wirklich nicht hinbekommst, die Werte einigermaßen linearisiert zu bekommen, dann kannst du Lookup() Funktion benutzen.
    Du legst dazu die Ausgabewerte im Flash ab (mittels Data Anweisungen).
    Dein ADC Wert ist dann der Index in diese Tabelle.

    Gruß

    Rolf

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    03.02.2007
    Ort
    Bayern
    Beiträge
    85
    Nein, ist ein lineares Poti mit einer Linearitätstoleranz von ±2%!

    Code:
    Dim B1 As Byte , I As Integer
    
    B1 = Lookup(2 , Dta)
    
    Print B1                                                    ' Prints 3 (zero based)
    
     
    
    I = Lookup(0 , Dta2)                                        ' print 1000
    
    Print I
    
    End
    
     
    
     
    
    Dta:
    
    Data 1 , 2 , 3 , 4 , 5
    
    Dta2:
    
    Data 1000% , 2000%
    Wie darf ich das mit lookup() verstehen?

    Welcher Wert muss dann unten anstelle 1 , 2 , 3 , 4 ,5 hin? Die ganezn ADC Werte, welche dann auf eine Richtungsangabe führen müssen?

    MfG

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Angenommen du nutzt die volle ADC Auflösung von 1024 Werte.
    Deine Ausgabe soll aber nur in 1° Schritten von 0° - 359° gehen.
    Dann schreibst du hinter Data 1024 Werte. Jeder Wert ist dann eine Zahl zwischen 0 und 359. Welcher ADC-Wert z.B. zu 147° führt, musst du mit einem Gradmesser an dem Windrichtungsanzeiger feststellen.

    Gruß

    Rolf

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    03.02.2007
    Ort
    Bayern
    Beiträge
    85
    Ich versteh das nicht

    Ich schreibe also unten hinter "Data" 1024 Werte? Also 1 , 2 , 3, ... 1024?

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zitat Zitat von Maxxtro
    Ich versteh das nicht

    Ich schreibe also unten hinter "Data" 1024 Werte? Also 1 , 2 , 3, ... 1024?
    Dann hätte ich wohl geschrieben:
    Du schreibst hinter Data die Zahlen von 1 bis 1024.
    Bei mir steht da "1024 Werte. Jeder Wert ist dann eine Zahl zwischen 0 und 359."
    Wenn ich dich richtig verstehe, möchtest du z.B. den ADC Werten 500, 501, 502 und 503 z.B. die Gradzahl 150 zuweisen. Den ADC Werten 504, 505 und 506 dann die Gradzahl 151 usw.

    Das Ganze natürlich nur, wenn sich wirklich kein Zusammenhang erkennen lässt.

    Gruß

    Rolf

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    03.02.2007
    Ort
    Bayern
    Beiträge
    85
    Stimmt, ich möchte solchen ADC-Werten einen bestimmen Gradwert zuweisen!

    Wie funktioniert das aber?
    Ich schreib hinter Data also was genau? Wie soll sich der dann aus der Liste mit 1024 Zahlen den richtigen Gradwert bilden?

    Entschuldigung für mein Unwissen

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Etwa so:

    Code:
    winkel_adc=Getadc(0)                                'z.B. 500
    winkel_grad=Lookup(Winkel_adc,Winkel_tabelle)       'ergibt den Wert 150
    ....
    
    
    End
    
    Winkel_tabelle:
    Data 0%,0%,0% 'usw
    ...
    Data 150%,150%,150%,150%,151%,151%,151%,152%        'hier die Werte 500 - 507
    ...                                                 'hier die restlichen Werte

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    03.02.2007
    Ort
    Bayern
    Beiträge
    85
    Die "150%, 150%..." stehen also für den Winkel der zum Schluss ausgegeben wird?!

    Aber wie müsste ich die "0%, 0% ..." fortzsetzen? Mit 1, 2 ,3 usw.%? Die sind also quasi der ADC Wert?

    Edit: Habs probiert und, wie ich denke, auch kapiert
    ... nun, funktionieren würde es sicher - aber es ist echt nicht die schönste Lösung Ich muss noch weiter versuchen, wie Du schon sagtest Rolf, das ganze umzurechnen...

    Nun, einmal mehr sag ich: Danke!

    MfG

    P.S. http://www.roboternetz.de/phpBB2/viewtopic.php?t=46460

Berechtigungen

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