Hallo an alle, hab’ gerade bei Digikey diesen Sensor und dieses Datenblatt gefunden: http://www.sharp.co.jp/products/device/lineup/data/pdf/datasheet/gp2y0e03_e.pdf Der Sensor scheint sehr interessant zu sein. Im Gegensatz zu den alten analogen Entfernungssensoren hat er eine digitale I²C Schnittstelle, die Reichweite ist mit 4cm - 50cm auch recht umfassend. Zusätzlich wird die Entfernung analog ausgegeben, das Ganze aber linear. Was mich aber nun wundert, ist, dass man, wenn man die Bezeichnung googelt, keine Projekte oder sonstige Informationen findet. Außerdem finde ich im Datenblatt keine genauen Informationen zur I²C Kommunikation (Register etc.). Wo liegt da der Haken? Verstehe ich etwas falsch? Oder ist der Sensor einfach so neu? Hat damit evtl. schon jemand hier gearbeitet? Viele Grüße Jan
Gast
#3570287
Hey! hab den sensor vor mir liegen und versuch ihn mittels I2C und einem arduino auszulesen. das datasheet ist mittlerweile ausführlicher. nur frage ich mich ob man für die messung manuell ein register setzten muss oder der sensor dies automatisch kontinuierlich macht.
Gast
#3570316
Hi Es gibt doch noch eine AppNote dazu: http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDYQFjAB&url=http%3A%2F%2Fsharp-world.com%2Fproducts%2Fdevice%2Flineup%2Fdata%2Fpdf%2Fdatasheet%2Fgp2y0e02_03_appl_e.pdf&ei=ChIfU5yCGMrVtQbykID4BA&usg=AFQjCNGbjiTRnqHvPadOb70EYvcBYzm_DA&bvm=bv.62788935,d.Yms&cad=rja MfG Spess
Gast
#3570412
Hey spess! ja die habe ich auch bereits vor mir liegen. ich greif auch bereits auf die Register zu, nur bin ich mir nicht so sicher ob ich das Protokoll richtig verstanden habe. Dies wär mein Code soweit (ich versuch das 3Bit lange Distance register zu lesen):
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
Gast
#3571373
ok habs zum laufen bekommen, die Wire doku is rech spärlich und man muss aufpassen was bereits alles schon erledigt wird. hier ein beispiel code um ein register auszulesen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
Nach einiger Zeit habe ich mich jetzt auch mal mit den Sensoren auseinandergesetzt. Hab nun 12 Stück an einem Bus am Laufen. Das Ändern der Adresse ist recht kompliziert und so 10%ig funktioniert das bei mir auch nicht - also wenn der Sensor noch nie konfiguriert wurde, lässt sich die Adresse mit dieser Funktion problemlos ändern (zu beachten ist dabei, dass der Vpp Pin verbunden ist, dieser Pin muss gesetzt werden, wenn ins eeprom geschrieben werden soll), wenn die Adresse aber einmal auf 0x00 gesetzt wurde, lässt sie sich anscheinend nicht mehr ändern. Hier auf jeden Fall mein Code, vielleicht hilft es ja irgendjemanden weiter. Die Funktion geht automatisch alle möglichen I²C Adressen durch und ändert die erste Adresse, die sie findet. Am Bus darf also nur dieser eine Sensor angeschlossen sein. Ist nicht so ganz hübsch programmiert, aber zum Ändern der Adresse reicht es. Ist für einen STM32 programmiert, aber sollte sich auch einfach auf andere Controller portieren - es muss nur der Pin für Vpp sowie die I²C Funktionen angepasst werden. UB_I2C3_WriteByte(a, b, c) schreibt das Byte c ins Register b des Sensors mit der Adresse a. UB_I2C3_ReadByte(a, b) liest das Register b des Sensors mit der Adresse a, UB_I2C3_ReadMultiByte(a, b, c) liest c aufeinanderfolgende Register beginnend bei Register b aus dem Sensor mit der Adresse a. Das sollte es sein. Ich hoffe, das ist soweit verständlich.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
Gast
#4123043
spess53 schrieb: > Es gibt doch noch eine AppNote dazu: > > http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CDYQFjAB&url=http%3A%2F%2Fsharp-world.com%2Fproducts%2Fdevice%2Flineup%2Fdata%2Fpdf%2Fdatasheet%2Fgp2y0e02_03_appl_e.pdf&ei=ChIfU5yCGMrVtQbykID4BA&usg=AFQjCNGbjiTRnqHvPadOb70EYvcBYzm_DA&bvm=bv.62788935,d.Yms&cad=rja Was geht die Datenkrake an, wer sich die AppNote anguckt? Warum gibst du nicht den direkten Link an? http://sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y0e02_03_appl_e.pdf