Archiv verlassen und diese Seite im Standarddesign anzeigen : Wertebereich einen Ausgangswert zuweisen?
Hallo allerseits! :mrgreen:
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 :-k
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
BurningBen
23.02.2009, 18:10
hast du ein logarithmisches poti verwendet?
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
Nein, ist ein lineares Poti mit einer Linearitätstoleranz von ±2%!
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
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
Ich versteh das nicht :mrgreen:
Ich schreibe also unten hinter "Data" 1024 Werte? Also 1 , 2 , 3, ... 1024? :-s
Ich versteh das nicht :mrgreen:
Ich schreibe also unten hinter "Data" 1024 Werte? Also 1 , 2 , 3, ... 1024? :-s
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
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 :mrgreen:
Etwa so:
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
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 :mrgreen:
... 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. https://www.roboternetz.de/phpBB2/viewtopic.php?t=46460 :mrgreen:
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.