PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sharp gp2d120 messungs oder hardware fehler !?!



patti16
19.10.2005, 19:22
Hallo

ich habe mir einen gp2d120 gekauft nun habe ich ihn an das rncontrol v1.4 angeschlossen und habe mir den adc wert per rn-key-lcd ausgeben lassen nun habe ich die daten von http://www.kreatives-chaos.com/index.php?seite=gp2d120
verglichen aber alleine der adc wert ist bei ihm höher woran kann das liegen, habe auch mal zweimal verschiedene Spannungen dran gehongen einmal von dem rn-control und einmal von einem Labornetzgerät. Durch diese Probe habe ich zwei messungs ergebnisse vom adc heraus gefunden, beim der spannung vom rn-control 77 und beim labornetzgerät 12.

könnte mir jemand helfen oder einen Tipp geben??

gruß
patrick

x-ryder
19.10.2005, 19:55
was hast du denn fürne kurve, und wo bekommst du 77?

patti16
19.10.2005, 21:46
hallo

ich habe noch keine kurve habe nur den adc wert mit dem wert von kreatives-chaos verglichen. Mein Wert ist 77, das ist das höchste was ich raus bekomme und sowie das aussieht ein bisschen wenig.

gruß
patrick

Fritzli
19.10.2005, 21:48
Hallo

Wie gross sind die Versorgungsspannungen jeweils?
Wie gross ist die Referenzspannung des ADCs?
Welche Auflösung (Anzahl Bits) hat der ADC?

War das Hindernis bei beiden Messungen gleich weit entfernt (Sorry, ev. blöde Frage)?
Wie weit war denn das Hindernis entfernt?

Gruess
Fritzli

patti16
19.10.2005, 22:04
hallo

hier habe ich das programm mal:




' ------------- Hier die üblichen RN-Control Anweisungen --------------
$regfile = "m8def.dat"
$hwstack = 32
$framesize = 16
$crystal = 16000000 'Quarzfrequenz
$baud = 9600

' ------------- Ende der üblichen RN-Control Anweisungen --------------




Config Portc = &B11111111
Config Portb = &B11111111
Config Adc = Single , Prescaler = Auto , Reference = Avcc ' Adc einstellen
Config Scl = Portc.5 'Ports fuer IIC-Bus
Config Sda = Portc.4
Const Rnkeylcd_slaveid_write = &H40 'I2C SlaveAdresse
Const Rnkeylcd_slaveid_read = &H41

Dim Stemp As String * 100
Dim Taste As Word
Dim A As Word
Dim K As Word
Dim L As Word
Dim B As Single
Dim C As Single
Dim E As Single


Declare Sub Rnlcd_cursor(byval Spalte As Byte , Byval Zeile As Byte)
Declare Sub Rnlcd_clr()
Declare Sub Rnlcd(byval Text As String)
Declare Sub Rnlcd_cr()
Declare Function Rnlcd_getscan() As Word
Declare Sub Rnlcd_scanmodus(byval Ein As Byte) 'Tastenscanmodus ein und ausschalten


waitms 20
I2cinit
Start Adc

Do
Rnlcd_clr
A = Getadc(0)
Rnlcd_cursor 7 , 1
Stemp = "" + Str(A)
Rnlcd Stemp
Rnlcd_cr

Waitms 60
Loop

End


'--------------------------------------------------------------
'Einige spezielle I2C.Befehle für RN-KeyLCD als Funktion definiert:

Sub Rnlcd_cursor(byval Spalte As Byte , Byval Zeile As Byte) 'Cursor setzen
Local Befehle As String * 4
Befehle = Chr(27) + Chr(79) + Chr(spalte) + Chr(zeile)
I2csend Rnkeylcd_slaveid_write , Befehle , 4
End Sub

Sub Rnlcd_clr() 'LCD löschen
Local Befehle As String * 2
Befehle = Chr(12)
I2csend Rnkeylcd_slaveid_write , Befehle , 1
End Sub

Sub Rnlcd_cr() 'LCD Zeilenvorschub
Local Befehle As String * 2
Befehle = Chr(13) + Chr(10)
I2csend Rnkeylcd_slaveid_write , Befehle , 2
End Sub

Sub Rnlcd(byval Text As String) 'Eine Art Print Befehl zum Ausgeben von Text
Local Le As Word
Le = Len(text)
I2csend Rnkeylcd_slaveid_write , Text , Le
End Sub

Function Rnlcd_getscan() As Word 'Scancode als Word abfragen
Local Lscan As Byte
Local Hscan As Byte


I2cstart
I2cwbyte Rnkeylcd_slaveid_read
I2crbyte Lscan , Ack
I2crbyte Hscan , Nack
I2cstop

If Hscan.7 = 1 Then 'AScii Modus
Rnlcd_getscan = Lscan
Else
Rnlcd_getscan = Hscan * 256
Rnlcd_getscan = Rnlcd_getscan + Lscan
End If
End Function

Sub Rnlcd_scanmodus(byval Ein As Byte) 'Tastenscanmodus ein und ausschalten
Local Befehle As String * 3
Befehle = Chr(27) + Chr(119) + Chr(ein)
I2csend Rnkeylcd_slaveid_write , Befehle , 3
End Sub


Das Hinderniss war bei der Messung gleich weit entfernt
Glaube es waren ca.6cm.

Morgen probiere ich das mit einer genauen cm vorgabe aus.

Ich denke mal der hat 10 bit aber ich die auflösung beträgt 1024 hoffe das ich hier nichts falsches sage :-k.

Naja vielleicht muss ich das ganze ja auf die interne Reference Spannung machen, habe die AVCC Spannung im moment drin das sind 5Volt.

gruß
patrick

Fritzli
20.10.2005, 10:34
Hallo

Falls Deine Angaben stimmen, sind 77 (bzw 12) wirklich viel zu tief:

6cm => ca 2V Vout des Sensors
Das gäbe bei 10Bit und Vref=5V was um 400 als ADC-Ergebnis.

Mal Hardware checken:

- Haben ADC und Sensor eine gemeinsame Masse?
- Leuchtet die LED (mit Digitalkamera testen)?
- Sensorausgang mal mit einem Voltmeter messen (dabei vom ADC abklemmen), was kommt da raus bei 6cm, resp. bei anderen Entfernungen?

Gruess
Fritzli

patti16
20.10.2005, 18:01
hi

also an der gleiche Masse können sie auf jeden fall nur hängen da ich das Board per Batterie betreibe.

den rest schreibe ich später rein.

gruß
patrick