PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN-Control rechnet nicht Richtig



robonooby
19.03.2011, 00:45
Also ich bin jetzt endlich stolzer besitzer der RN Control :)
Hab auch schon einiges ausprobiert, also das Testprogramm, dann ne kleine Motorsteuerung und sonstige spielereien.

So nun stehe ich aber vor einem Problem:
und zwar will ich mit dem Sharp Infrarot sensor GB2D12 eine entfernung bestimmen und dazu die Spannung die er ausgibt in nen Wert mit einer Formel ausrechnen.
Nur kommt da nur Schrott raus.
Also der verrechnet sich bei der Formel.
Hier mal nen Codeausschnitt:


'Microcontroller Einstellungen Definieren.
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600

'************************************************* ******************************
'Variablen deklarieren:
Dim Ton As Integer
Dim Irabstand As Integer
Dim Motordrehzahl As Integer
Dim Spannung As Single
Dim Taste As Byte
Const Ref = 5 / 1023 'Für spannungsmessung

Declare Sub Irentfernung1()

Config Porta.0 = Input 'Für Enfernungsmessung Sharp diesen Port als eingang definieren

....

'Diese Funktion zeigt den Abstand des IR-Entfernungsmessers an
Sub Irentfernung1()
Local Ws As Word
Dim Variablea As Integer
Dim Variableb As Integer
Dim Variablec As Integer

Porta.0 = 0 'internen Pullup Widerstand ein

Start Adc
Ws = Getadc(0)
Spannung = Ws * Ref
Print "Die Spannung an Port A Pin 0 beträgt: " ; Spannung ; " Volt"

Variablea = Spannung * Spannung ' Berechnung des Abstandes in cm
Variablea = 24.24 * Variablea
Variableb = 103.636 * Spannung
Variablec = 117.57
Irabstand = Variablea - Variableb
Irabstand = Irabstand + Variablec
Print "Der Abstand zum Sensor beträgt: " ; Irabstand ; " cm"

Irabstand = 5 * 24.245
Irabstand = Irabstand - 5.5
Print "Der Abstand zum Sensor beträgt: " ; Irabstand ; " cm"
End Sub
Hab unten nochmal ne Rechnung gemacht, die Rechnet er wiederum, also wenn ich Zahlen direkt eingebe, kommt das richtige ergebniss raus. Woran kann das liegen? find den Fehler einfach nicht.

Also als Beispielwert:
Bei 0,9 gemessenen Volt kommt raus:
-laut Taschenrechner: 43,96
-laut RN-Control: 115

Ach ja und muss ich den PulUp Wiederstand ein oder ausschalten für den Sensor? bin mir da nicht so sicher. Will auch nix kaputt machen.

Frank
19.03.2011, 01:06
Das liegt nicht an RN-Control sondern an deinem Programm!
Was da schon mal auffällt ist das du Integer Variablen angelegt hast und dann mit Kommazahlen rechnest! Das kann nicht klappen, Integer sind ganze Zahlen! Du musst Single nehmen.

robonooby
19.03.2011, 17:04
also danke Frank
das war das problem^^
blöde bezeichnungen.

Hab jetzt es geschafft mit nem Ultraschallsensor die entfernung zu bestimmen dann mitm Sharp und joa noch mit nem Magnetsensor
also geht echt relativ einfach :-)
Wobei der IR-Sensor net so genau ist, im vergleich zum ultraschall. vorallem bei geringen entfernungen.