Go Down

Topic: I2C Kommunikation mittels Wire.h funktioniert nicht (Read 3 times) previous topic - next topic

volvodani

Weil die I2C Schnittstelle des AVR Auf den Pins hängt die bei Arduino Anlaog 4+5 Heissen :-)
Gruß
Daniel
So ist das Leben:
Manchmal bis du das Denkmal, manchmal die Taube!

ihaveaquestion

Hi!
Danke für die schnellen Meldungen!

@uwefed: Da hast du natürlich recht. Hier ist mein Sketch:

#include <Wire.h>

void setup()
{
  Serial.begin(9600);
  Wire.begin();
  Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x38));
  Wire.endTransmission();
  delay(2);
  Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x39));
  Wire.endTransmission();
  delay(2);
  //Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x14));
  //Wire.endTransmission();
  delay(2);
  //Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x79));
  //Wire.endTransmission();
  delay(2);
  //Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x50));
  //Wire.endTransmission();
  delay(2);
  //Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x6c));
  //Wire.endTransmission();
  delay(2);
  //Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x0c));
  //Wire.endTransmission();
  delay(2);
  //Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x01));
  Wire.endTransmission();
  delay(2);
}

void loop()
{
  Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x08));
  Wire.endTransmission();
  Serial.println("Display aus");
  delay(100);
  Wire.beginTransmission(byte(0x7c));
  Wire.write(byte(0x00));
  Wire.write(byte(0x0C));
  Wire.endTransmission();
  Serial.println("Display ein");
  delay(100);
}

@spaceball: natürlich habe ich während eines Zugriffs gemessen :)

@thewknd: ich verwende die digitalen Pins 4 und 5. Bei den Analogen Pins handelt es sich doch nur um Eingänge, soweit ich die Beschreibung verstanden habe.

@volvodani: sollten die I2C Pins wirklich auf den Analogen Pins 4 und 5 befinden wurde mein Problem gelöst :) ich probiers gleich mal aus!

ihaveaquestion

Und da ist auch schon das Signal!

Ein Dankeschön an euch alle! Und einen schönen Ostersonntag!

mfg

uwefed

#8
Apr 08, 2012, 08:41 pm Last Edit: Apr 08, 2012, 08:43 pm by uwefed Reason: 1
thewknd hat gewonnen:

Quote from: ihaveaquestion
@thewknd: ich verwende die digitalen Pins 4 und 5. Bei den Analogen Pins handelt es sich doch nur um Eingänge, soweit ich die Beschreibung verstanden habe.


Die I2C Schnittstelle ist auf den ANALOGEN Pin 4 und 5
Deshalb bringst Du die I2C Schnittstelle zum laufen.

Alle Pins des ATmega328 in DIL Gehäuße sind digitale Ein/Ausgänge. Einige Pins haben doppel bis 3-Fachfunktionen.
* Reset und Oszillator-Pin
* analoge Eingänge (Pin D14 bis D19 oder A0 bis A5)
* I2C Schnittstelle (Pin D18 und D19 oder A4 und A5)
* serielle Schnittstelle (Pin D0 und D1)
* SPI (pin D11, D12, D13 und ein zusätzliches Pin freier Wahl)
* externer Interrupt (Pin D2 und D3)

Der Atmega328 im SMD-Gehäuße hat 2 zusätzliche analoge eingänge D6 und D7 die NICHT als digitale Ein/Ausgänge funktionieren.

Grüße Uwe

ihaveaquestion

Hi Leute!
Ich habe nun die Pins richtig angeschlossen, doch beim display tut sich trotzdem nichts. Als Display verwende ich das MIDAS MCC0G21605C6W-SPTLYI. Der Programmcode den ich ausführe ist der den ich ein paar Posts weiter oben reingestellt habe.

Das Display hat 8 Anschluss-Pins:
1 VOUT.... laut Datenblatt bei 5 V VDD mit ebendiesen Pin kurzzuschließen
2 Cap1n... laut Datenblatt bei 5 V Versorgung: not connected
3 Cap1p... laut Datenblatt bei 5 V Versorgung: not connected
4 VDD... Verbunden mit 5 V Pin vom Arduino Nano ( Das Arduino Board wird über USB versorgt)
5 VSS... Verbunden mit GND Pin vom Arduino Nano
6 SDA... Verbunden mit Analog Pin 4
7 SCL... Verbunden mit Analog Pin 5
8 RST... Digital Pin 9

Weiters hat das Display für die Hintergrundbeleuchtung einen Anoden und Kathodenanschluss den ich bis jetzt nicht angeschlossen habe. Das Display müsste doch auch ohne Hintergrundbeleuchtung funktionieren?

Hat jemand eine Idee?

mfg


Go Up