Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo André, > ich habe dein Programm durchlaufen lassen und es hat folgende Daten geliefert: > > ... > > 82 n.c. n.c. > > 84 n.c. n.c. > > 86 OK OK > > 88 OK OK > > 90 OK n.c. > > 92 n.c. n.c. > > 94 n.c. n.c. > > ... > > das wundert mich jetzt schon, da anscheinend 2,5 I2C Bausteine gefunden wurden. Wenn ich den Test > aber ab 88 laufen lasse sieht das wieder anders aus...irgendwas stimmt da nicht! > > I2C-Scanprogramm > > > > Addr. Write Read88 n.c. > .c.n90 n.c. n.c. > > 92 n.c. n.c. > > 94 n.c. n.c. > > 96 n.c. n.c. > > 98 n.c. n.c. > > ... > > Das Sonderzeichen am Anfang und die verrutschte Zeile sind Originalausgabe des Terminalprogramms. > > > > Hallo Epp, > > > > > Dim I2cdaten(6) As Byte > > > I2cdaten(1) = 10 'Kennung muss bei RN-Motor immer 10 sein > > > I2cdaten(2) = 1 ' Befehlscode > > > I2cdaten(3) = 241 '1 Parameter > > > I2csend &H56, I2cdaten(1),5 'Befehl wird gesendet > > > > > > dadurch wird dann z.B. der maximal zulässige Motorstrom gesetzt. > > > Mein CC2 Programm sieht wie folgt aus: > > > > > > i2c.start(86); //Hex56=Dec86 > > > i2c.write(10); //Byte 1 Kennung > > > i2c.write(10); //Byte 2 Befehlscode_Motorstrom setzen > > > i2c.write(0); //Byte 3 Linker Motor > > > i2c.write(100); //Byte 4 1 Ampere > > > i2c.write(0); //Byte 5 Ungenutzt > > > i2c.stop(); > > > > Was mitr hier als erstes auffällt, ist, daß Du zwar im Kommentar schreibst, daß Du den > > Motorstrom setzt, jedoch ist "10" lt. Anleitung das Kommando für Motor einschalten. > > Du hast recht, das Beispiel ist nicht stringent. Sollte auch nur die Struktur verdeutlichen. > > > Ist der Busscan erfolgreich, so kannst Du auch die Funktion <code>i2c.send()</code> > > verwenden. Diese ist dann analog zu der BASCOM-Funktion. > > Jedoch mußt Du bei einem Array dann Null-basierend arbeiten: > > <code> > > byte data[6]; > > data[0]=10; > > data[1]=10; > > data[2]=0; > > data[3]=100; > > i2c.send(0x56, data, 5); > > </code> > > Dies steht jetzt für das Setzen der Strombegrenzung des linken Motors auf 1A. > > Die Funktion gibt True zurück, wenn die Übertragung erfolgreich war, > > und False, wenn nicht. > > Mit <code>lcdext.zahl()</code> kannst Du Dir das z.B. auf ein externes Display > > ausgeben lassen. > > Habe ich auch ausprobiert und habe als Rückgabewert 255 erhalten, was wahrscheinlich als "True= > Befehl erfolgreich gesendet und erhalten" zu werten ist? > > Vielen Dank, auch wenn der Motor immer noch nicht läuft bin ich ein gutes Stück schlauer geworden! > > Epp