Guten Tag,
ich beschäftige mich derzeit mit i2C. Ich möchte mit dem AS5600 den
Winkel eine Welle auslesen, klappt auch sowit alles über die Lib für den
AS5600. Allerdings möchte ich weg von der Lib und selber alles über i2c
machen. Mit dem Hintergrund, dass ich später das auf einen PIC o.Ä.
machen möchte.
Nun, versteh ich nicht so richtig, wie ich mir jetzt Daten aus einen
bestimmten Register besorge. Ich hab etwas gesucht und auch gefunden
allerdings erwarte ich eigentlich einen Wert. Derzeit möchte ich mich
alles über den Monitior ausgeben lassen.
Zu sehen ist aber nur : ⸮⸮.
Wo liegt mein denk Fehler :/
1 | #include <Wire.h>
|
2 |
|
3 | void setup() {
|
4 | Wire.begin(); // join i2c bus (address optional for master)
|
5 | Serial.begin(9600); // start serial for output
|
6 | Wire.beginTransmission(54); // select device with "beginTransmission()" || 0x36
|
7 | Wire.write(13); // select starting register with "write()"
|
8 | Wire.endTransmission(54); //
|
9 | }
|
10 |
|
11 | void loop() {
|
12 |
|
13 | Wire.beginTransmission(54); // Start communication with slave address 85
|
14 | Wire.write(13); // Write pointer register to 13 || 0x0D
|
15 | Wire.endTransmission(54); // Send restart condition
|
16 | Wire.requestFrom(54, 2); // request 2 bytes from slave device 0x36
|
17 |
|
18 | while (Wire.available()) { // slave may send less than requested
|
19 | char c1 = Wire.read(); // receive a byte as character
|
20 | char c2 = Wire.read(); // receive a byte as character
|
21 | Serial.print(c1); // print the character
|
22 | Serial.print(c2); // print the character
|
23 | }
|
24 |
|
25 | delay(500);
|
26 | }
|