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.
Karl F. schrieb: > würde mich um Tipps freuen. Ich tippe dass du erst mal die komplette Verdrahtung malst, inklusiver der Stromversorgung. Sonst beginnt hier wieder das grosse Kristallkugel Rätselraten.
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.
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?
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.
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.
Und häng das Datenblatt an oder liefere einen Link, dann haben wir zumindest eine Chance dass wir von dem Gleichen sprechen.
123 schrieb: > Die 11 war eine Anspielung auf eine völlig frei erfundene Seite. Ähhh. Ja, genau so wars :) Nein ehrlich: Ich bin von diesem Datenblatt ausgegangen forums.ni.com/attachments/ni/170/202305/1/ADNS
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=
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.