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.
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.