PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Johnny five i2c und evshield



demwz
16.09.2016, 19:38
Hallo zusammen,

ich mache gerade Experimente mit J5 (node.js) arduino Mindsorms und dem evshield von Mindsensors.
Die J5 Klassen funktionieren, jedoch ist die Implementierung nicht vollständig.

um z.B. die onboard Buttons zu verwenden muss man wohl über i2c ran. Jedoch hab ich keine Ahnung wie das gehen soll.
Laut dem Datenblatt ist die i2c adresse 0x34, bzw. 0x36.

die firmware Version sollte man dann über

Register Read Write
0x00-
0x07
Firmware version – Vxxxx -

this.i2cReadOnce(0x34, 0x00, 1, function(bytes) {
console.log("Bytes read: ", bytes);
});

bring aber nur eine Null zurück. das gleiche wenn ich die Status der Buttons abfragen will, was über
0xDB Go Button press count
mögllich sein sollte

kann mir vielleicht jemand aufs Pferd helfen, danke

BMS
17.09.2016, 07:34
Hallo,
die Details zum Board kenne ich jetzt nicht, allerdings kann ich zu den I2C Adressen etwas sagen:
Beim Schreiben und Lesen haben die ICs verschiedene Adressen, beim Lesen müsste das LSB gesetzt sein, d.h. Schreibadresse+1.
Grüße, Bernhard

HaWe
17.09.2016, 15:58
die i2c Device Adressen verändern sich nicht beim Lesen oder Schreiben, sondern nur die Registeradressen, die man liest oder beschreibt.

BMS
17.09.2016, 17:31
Das niederwertigste Bit bei der I2C Adresse zeigt Lesen/Schreiben an.
http://rn-wissen.de/wiki/index.php/I2C#Adressierung
Grüße, Bernhard

i_make_it
17.09.2016, 19:55
Das niederwertigste Bit bei der I2C Adresse zeigt Lesen/Schreiben an.
http://rn-wissen.de/wiki/index.php/I2C#Adressierung
Grüße, Bernhard

Stimmt nur fast.
Das niederwertigste Bit des Adressbytes das die 7 Bit Adresse enthält ist das "direction bit".
Die Adresse selbst ist immer die Selbe. Aus Byte Sicht ändert sich das niederwertigste Bit.

http://www.i2c-bus.org/addressing/


The first byte of an I2C transfer contains the slave address and the data direction.