Hallo zusammen,
ich möchte mit meinem Arduino folgendes Kameramodul ansteuern:
http://www.sparkfun.com/datasheets/Sensors/Imaging/TCM8230MD.pdfDazu verwende ich folgenden Code:
#include <Wire.h>
int incomingByte = 0;
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
Serial.begin(9600);
Wire.beginTransmission(60); // transmit to device #4
Wire.send(0x03); // sends one byte
Wire.send(0x00); // sends one byte
byte ret = Wire.endTransmission(); // stop transmitting
Serial.write(ret);
}
void loop()
{}
}
Mit diesem Code bekomme ich immer eine 3, das heisst er kann die Daten nicht senden, die Adresse funktioniert aber! Also habe ich mir mal die i2cmaster library von Peter Fleury geholt und versucht mit folgendem Code zu schreiben:
#include <i2cmaster.h>
void setup()
{
i2c_init();
Serial.begin(9600);
//digitalWrite(13,1);
byte ret = i2c_start(120); // set device address and write mode
Serial.write(ret);
//digitalWrite(13,0);
ret = i2c_write(3); // write address = 5
Serial.write(ret);
ret = i2c_rep_start(120);
Serial.write(ret);
ret = i2c_write(0x00); // write address = 5
Serial.write(ret);
ret = i2c_write(0x02); // write address = 5
Serial.write(ret);
ret = i2c_write(0x00); // write address = 5
Serial.write(ret);
i2c_stop();
}
void loop()
{}
Das Ergebnis: "010111", d.h. die Funktionen i2c_start und i2c_rep_start funktionieren, die funktion i2c_write allerdings nicht!
Hat jemand eine Vorstellung warum das so sein könnte? Ich kann das Gerät addressieren aber nicht reinschreiben?!
Wäre super, wenn mir da jemand helfen könnte!
Danke und beste Grüße,
Max