Arduino und ADNS5020E

OP #4999607
Hall Leute,
kurz zu meinem Problem:

Ich will die Daten von meinem ADNS 5020E per SPI auslesen. Dafür habe 
ich mir ein Arduino Mega angelegt. ( 50 - 53 SPI Pins )
Den ADNS5020E habe ich von einer optischen Maus. Den Controller, der in 
er Maus verbaut war, habe ich entfernt. Dafür habe ich die Kabel für GND 
, +5V, MOSI/MISO, SCLK und CS Leitung gelötet.

Das Sieht wie folgt aus: siehe Anhang.

Doch das Problem ist nun, wenn ich mein Arduino mit USB mit dem PC 
verbinde, leuchtet die LED erstmal ziemlich hell. Nachdem ich die 
Datenleitung verbinde, wird die LED ziemlich dunkel. Sie bekommt also 
nicht viel Spannung. Aber warum? Was mache ich falsch?

würde mich um Tipps freuen.
Angehängte Dateien:
Gast #4999720
Karl F. schrieb:
> Dafür habe ich die Kabel für GND
> , +5V, MOSI/MISO, SCLK und CS Leitung gelötet.

So so, und wo ist MOSI/MISO? Vielleicht beides an SDIO?

5V geht wohin genau?

Chaos Pur. So wie hier wohl auch Zuhause.
Gast #4999734
Md M. schrieb:
> Datenblatt Seite 11.

Von was?

Von welchem der tausend verschiedenen Datenblätter sprichst du?

Manche haben nicht einmal 5 Seiten. Wie soll da jemand auf die
Seite 11 schauen?

Einfach mal was hinrotzen, passt dann schon, gell?
(Firma: Potilatormanufaktur) #4999770
NuMal Langsam schrieb:
> Einfach mal was hinrotzen, passt dann schon, gell?

Ja sorry, hab ich selbst gemerkt. Wollte den Post auch löschen, ging 
dann aber nicht mehr. Ich meinte das Datenblatt zum ADNS5020. Ich wollte 
eigentlich darauf hinweisen, dass bei den ADNS-Sensoren die LED u.U. 
gedimmt wird (wenn (wenn ich mich recht erinnere wenn der SQUAL-Wert für 
eine Zeit niedrig ist oder so ähnlich). Das lässt sich aber 
softwaremäßig verhindern. Dass die Verdrahtung möglicherweise fehlerhaft 
ist hatte ich noch gar nicht realisiert.
Gast #4999771
NuMal Langsam schrieb:
> Md M. schrieb:
>> Datenblatt Seite 11.
>
> Von was?
>
> Von welchem der tausend verschiedenen Datenblätter sprichst du?
>
> Manche haben nicht einmal 5 Seiten. Wie soll da jemand auf die
> Seite 11 schauen?
>
> Einfach mal was hinrotzen, passt dann schon, gell?

Die 11 war eine Anspielung auf eine völlig frei erfundene Seite.
Male einen Schaltplan (!!!) auf dem alle Verbindungen erkennbar sind.
Ansonsten können wir nur Raten. Die von dir gelieferten Informationen 
sind gleich Null.
OP #5002933
So, hab jetzt mal alles angeschlossen und bekomme auch schon die ein 
oder anderen Wrte. Aber irgendwie sind das nicht die Werte, die ich 
gerne sehen wollte. Denn wenn ich die Maus auch nicht bewege habe ich 
für einen dx Wert 255. Meine Beschaltung mit meinen MEga habe ich 
hochgeladen.
1
#include <SPI.h> 
2
// setup pins 
3

4
int nReset = 12; 
5
int nCS = 13; 
6
void setup(){ 
7

8
  //set pin I/O direction 
9
  pinMode (nReset, OUTPUT); 
10
  pinMode (nCS, OUTPUT); 
11

12
  //put the device in reset not chip selected 
13

14
  digitalWrite(nReset,LOW); 
15

16
  digitalWrite(nCS,HIGH); 
17

18

19
  //initialize SPI 
20

21
  SPI.begin(); 
22

23
  SPI.setDataMode(SPI_MODE3); 
24

25
  //start a serial port for debugging 
26

27
  Serial.begin(115200); 
28

29
  delay(1000); 
30

31
  Serial.println("startup complete"); 
32

33
} 
34

35

36
  
37

38

39
void loop(){ 
40

41
  unsigned int read_data; 
42

43
  delay(1000); 
44

45
  //enable ADNS 
46

47
  digitalWrite(nReset,HIGH); 
48

49
  //startup time 
50

51
  delay(1000); 
52

53

54
  //read and print a register map 
55

56

57
  Serial.println("ADNS-5020 Register Map"); 
58

59

60
  Serial.println("Addr 0x00 - Data " + String(ADNS_read(0x00))); 
61

62

63
  Serial.println("Addr 0x01 - Data " + String(ADNS_read(0x01))); 
64

65

66
  Serial.println("Addr 0x02 - Data " + String(ADNS_read(0x02))); 
67

68

69
  Serial.println("Addr 0x03 - Data " + String(ADNS_read(0x03))); 
70

71

72
  Serial.println("Addr 0x04 - Data " + String(ADNS_read(0x04))); 
73

74

75
  Serial.println("Addr 0x05 - Data " + String(ADNS_read(0x05))); 
76

77

78
  Serial.println("Addr 0x06 - Data " + String(ADNS_read(0x06))); 
79

80

81
  Serial.println("Addr 0x07 - Data " + String(ADNS_read(0x07))); 
82

83

84
  Serial.println("Addr 0x08 - Data " + String(ADNS_read(0x08))); 
85

86

87
  Serial.println("Addr 0x09 - Data " + String(ADNS_read(0x09))); 
88

89

90
  Serial.println("Addr 0x0A - Data " + String(ADNS_read(0x0A))); 
91

92

93
  delay(1000);   
94

95

96
} 
97

98

99
unsigned int ADNS_read(unsigned int address){ 
100

101

102
  unsigned int data; 
103

104

105
  // take the CS pin low to select the chip: 
106

107

108
  digitalWrite(nCS,LOW); 
109

110

111
  //  send in the address and value via SPI: 
112

113

114
  SPI.transfer(address); 
115

116

117
  
118

119

120
  pinMode(MOSI, INPUT); 
121

122

123
  data = SPI.transfer(0x00); 
124

125

126
  pinMode(MOSI, OUTPUT); 
127

128

129
  // take the SS pin high to de-select the chip: 
130

131

132
  digitalWrite(nCS,HIGH);  
133

134

135
  return(data); 
136

137

138
}

Thoretisch müsste das doch funktionieren? Bekomme aber auch für die 
anderen rgister andauern nu zahlen wie 255. Kann das sein=
Angehängte Dateien:
OP #5003006
Ich habe es gelöst, bekomme die Werte für dx und dy raus. Aber was 
merkwürdig ist, dass nach 1min Laufzeit die Werte sich nicht mehr 
verändern. Könnte das an der Spannungsquelle sein? Benutze ganz normal 
USB-port meines Notebooks.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.