Das kannst du natürlich machen und wie der Zufall es so will, könntest du auch Erfolg haben. Wenn man mit genügend verschiedenen Teilen lange genug rumspielt, hat man möglicherweise irgendwann Erfolg. Du hast ein Problem mit deiner Schaltung und/oder deiner Software und mußt jetzt anfangen den Fehler zu finden und zu beseitigen. In diese Situation wirst du immer wieder kommen, es lohnt sich also mal mit dem Debuggen anzufangen. Und Fehlersuche heißt sicher nicht, immer wieder irgendwelche Software aus dem Internet zu laden.
Ich verwende keine Arduino, kann daher im einzelnen nichts zu sagen. Ich würd aber so anfangen und Schritt für Schritt vorgehen:.
Zuerst den Schaltplan mal aufzeichnen und die Schaltung auf dem Papier nachvollziehen. I2C ist ja einfach, sind nur zwei Leitungen. Haben alle Beteiligten eine passende Versorgung? Sind SCL und SDA möglicherweise vertauscht? Sind die Pullups da? Hängen möglicherweise andere, störende Bauteile am I2C Bus?
Wenn das alles gut aussieht, gehts an die Software. Dazu ein kurzes Programm, das ein START, ein Byte und ein STOP ausgibt. Damit kann man dann mit Scope oder LA (hier besser mit Scope) die Signale ansehen. Die Frage, die sich hier ergeben sind: ist die I2C Hardware richtig initialisiert, sind die Pins richtig gewählt?
Wenn das soweit funktioniert, sucht man im Datenblatt des Sensors nach seiner I2C Adresse und gibt diese aus. Jetzt sollte der Slave mit einem ACK reagieren. Dies kann man mit dem LA aber auch in der Software erkennen. Nun kann man schon mal mit dem Chip kommunizieren.
Jetzt kann man sich um die Register des Sensors kümmern, sie nötigenfalls setzten und auslesen. Da hilft wieder das Datenblatt. Und am Ende wird es funktionieren. Ich hab noch jedes I2C Device zum Laufen bekommen, ob "professionell" oder Breakoutboard.
MfG Klebwax
Lesezeichen