# Problem bei 2 Geräten am I2C Port des Arduino Uno R3

**URL:** <https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673>\
**Category:** Deutsch\
**Created:** [December 25, 2023, 8:46pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673 "2023-12-25T20:46:16Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 8:46pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/1 "2023-12-25T20:46:16Z")

</div>

Hallo allerseits !

Habe ein LCD 2004 Module am I2C Port.... funktioniert soweit  
Heute wollte ich das Projekt mit einer DS3231 RTC erweitern und ....dann tritt das Problem auf , dass die Anzeige am LCD nicht mehr funktioniert .  
Die beiden Geräte haben aber völlig unterschiedliche Adressen !  
Woran kann das liegen ???  
Wenn jemand Rat weiß bitte gerne.  
mit weihnachtlichen Grüssen

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 8:50pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/2 "2023-12-25T20:50:10Z")

</div>

was ich bisher auch noch feststellen konnte ist , dass sich das SDA Signal am Oszilloskop verändert , wenn das RTC Module angeschlossen wird !

---

<div class="post-metadata">

**Author:** ![paulpaulson](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/paulpaulson/32/363643_2.png) [@paulpaulson](https://forum.arduino.cc/u/paulpaulson)\
**Post date:** [December 25, 2023, 8:57pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/3 "2023-12-25T20:57:15Z")

</div>

Hallo [zahnlos72](https://forum.arduino.cc/u/zahnlos72)

Herzlich Willkommen im Arduinoforum.

Das sieht nach einem fehlerhaften Abschluss auf dem I²C-Bus an.

Schaue mal hier zum Schlaumachen:

> **[slva704.pdf](https://www.ti.com/lit/an/slva704/slva704.pdf)**
>
> 125.31 KB

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 9:14pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/4 "2023-12-25T21:14:33Z")

</div>

> [@zahnlos72](#):
>
> was ich bisher auch noch feststellen konnte ist , dass sich das SDA Signal am Oszilloskop verändert , wenn das RTC Module angeschlossen wird !

Hallo ! Habe es schon mit verschiedenen Pullups versucht oder eben ohne  
lG

---

<div class="post-metadata">

**Author:** ![HotSystems](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/hotsystems/32/219785_2.png) [@HotSystems](https://forum.arduino.cc/u/HotSystems)\
**Post date:** [December 25, 2023, 9:17pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/5 "2023-12-25T21:17:09Z")

</div>

Dann zeige bitte dein Schaltbild und deinen Sketch in Code-Tags.

Funktioniert denn die RTC allein am Uno ?

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 9:24pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/6 "2023-12-25T21:24:33Z")

</div>

Hallo !  
ja wie erwähnt jedes für sich funktioniert, nur eben nicht beides zusammen !  
Zum Schaltbild : Hab dafür keine Schaltplan gezeichnet ...aber eben SDA vom Arduino mit den SDA von den beiden Modulen verbunden ....gleiches eben auch für SCK  
Das Display läuft auf 5 Volt das RTC auf 3,3 Volt / Masse zwischen den Modulen und Arduino hergestellt  
Den Code hab ich leider auf dem anderen Rechner aber ist nichts aufregendes

lG

---

<div class="post-metadata">

**Author:** ![HotSystems](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/hotsystems/32/219785_2.png) [@HotSystems](https://forum.arduino.cc/u/HotSystems)\
**Post date:** [December 25, 2023, 9:27pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/7 "2023-12-25T21:27:41Z")

</div>

> [@zahnlos72](#):
>
> Das Display läuft auf 5 Volt das RTC auf 3,3 Volt / Masse zwischen den Modulen und Arduino hergestellt  
> Den Code hab ich leider auf dem anderen Rechner aber ist nichts aufregendes

Du solltest die RTC auch mit 5Volt betreiben.  
So kann es Probleme mit dem I2C-Bus geben.  
Und auch ein nicht aufregender Sketch kann total falsch sein.  
Um weiteres zu sagen, wird der benötigt.

> [@zahnlos72](#):
>
> wie erwähnt jedes für sich funktioniert,

Das hast du nicht geschrieben.

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 9:35pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/8 "2023-12-25T21:35:38Z")

</div>

Erwischt ....  
Nun es ist aber so , dass es unabhängig voneinander läuft und beim Verbinden des RTC Modules nur eben die LCD streikt !  
Das mit den 5 Volt am RTC habe ich testhalber schon probiert, hat darauf aber keinen Einfluss.

lG

PS: den Sketch werde ich mir morgen auf einen Stick ziehen ,um ihn Euch zu zeigen

---

<div class="post-metadata">

**Author:** ![HotSystems](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/hotsystems/32/219785_2.png) [@HotSystems](https://forum.arduino.cc/u/HotSystems)\
**Post date:** [December 25, 2023, 9:45pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/9 "2023-12-25T21:45:00Z")

</div>

> [@zahnlos72](#):
>
> Das mit den 5 Volt am RTC habe ich testhalber schon probiert, hat darauf aber keinen Einfluss.

Nicht testhalber, bei 5 Volt Systemen gehört das auf 5 Volt.  
Und du kannst auch ein Foto des Aufbaus posten, dann sehen wir, ob alles richtig angeschlossen ist.

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 10:05pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/10 "2023-12-25T22:05:17Z")

</div>

ich habe deshalb die 3,3 Volt Versorgung gewählt , damit die Knopfzelle der RTC nicht geladen wird ! und es wird ja in diversen Beschreibungen auch darauf hingewiesen, die 3,3 Volt zu verwenden.... mit 5 Volt geht es ja auch nicht !  
Der Aufbau ist sicher in Ordnung möchte ich mal behaupten, da es ja sont gar nicht funktionieren würde ?!?

so hier der Code:

```cpp
 

  #include "LiquidCrystal_I2C.h" // Bibliothek für Display
  LiquidCrystal_I2C LCD(39, 20, 4); // Argumente für Display : I2C Adresse / Zeilenlänge / Zeilenzahl

  #include "RTClib.h" // Bibliothek für die RTC DS3231
  RTC_DS3231 rtc;

  #include "Wire.h" // Bibliothek für I2C

  #include "DHT.h" // Bibliothek für Teperatursensor
 
  DHT dht1(2, DHT22); 
  DHT dht2(3, DHT22);

  

  long Timer1 = 0; // Zeitmessungsvariable 1 ( Temperatur alle 10 Sekunden )
  long Timer2 = 0; // Zeitmessungsvariable 2

  byte counter;
  byte map_counter;

  float Aktuelle_Temperatur_1 = 0;
  float Aktuelle_Temperatur_2 = 0;

  byte maxPfeil[8] = {B00100,
                                    B01110,
                                    B11111,
                                    B01110,
                                    B01110,
                                    B01110,
                                    B01110,
                                    B00000};

  byte minPfeil[8] = {B00000,
                                    B01110,
                                    B01110,
                                    B01110,
                                    B01110,
                                    B11111,
                                    B01110,
                                    B00100};

  byte Gradsymbol[8] = {B00110,
                                          B01001,
                                          B01001,
                                          B00110,
                                          B00000,
                                          B00000,
                                          B00000,
                                          B00000};

  byte iso[8] ={B00000,
                         B00000,
                         B00000,
                         B11111,
                         B11111,
                         B00000,
                         B00000,
                         B00000};

  void setup()

  {

    pinMode(13,OUTPUT);
    digitalWrite(13,0); 

    Serial.begin(9600);

   
    dht1.begin(); 
    dht2.begin(); 
    
    Wire.begin();

    LCD.init(); 

    LCD.createChar(0, maxPfeil); // Eigene Sybole definiert
    LCD.createChar(1, minPfeil); 
    LCD.createChar(2, Gradsymbol); 
    LCD.createChar(3, iso); 

    LCD.clear(); 
    LCD.backlight(); 

    rtc.begin();

     

  }
 

 void loop()

 {

     if( millis() >= Timer1 ) // alle 10 Sekunden die Temeraturen messen
     {

        float Temp1 = dht1.readTemperature(); 
        float Temp2 = dht2.readTemperature(); 
        float rtc_temperature = rtc.getTemperature();
        DateTime now = rtc.now();
        Serial.print(rtc_temperature);Serial.print(" ");Serial.print(now.hour());Serial.print(now.minute());Serial.println(now.second());

        Serial.print(Temp1);
        Serial.print(" ");
        Serial.println(Temp2);
        Serial.print(abs (Aktuelle_Temperatur_1 - Temp1 ));
        Serial.print(" ");
        Serial.println(abs (Aktuelle_Temperatur_2 - Temp2 ));

        

        LCD.setCursor(0, 0); 
        LCD.print("Vorlauftemperatur"); 
        LCD.setCursor(0, 2); 
        LCD.print("Ruecklauftemperatur"); 

        if ( Aktuelle_Temperatur_1 < Temp1 )
        { LCD.setCursor(0, 1); LCD.print((char)0); } 
                                        
        if ( Aktuelle_Temperatur_1 > Temp1 )
        { LCD.setCursor(0, 1); LCD.print((char)1); }

         if ( Aktuelle_Temperatur_1 == Temp1 )
        { LCD.setCursor(0, 1); LCD.print((char)3); }
                      
        LCD.setCursor(3, 1); 
        LCD.print(Temp1,1); 
        LCD.setCursor(8, 1); 
        LCD.print((char)2); 
  
        if ( Aktuelle_Temperatur_2 < Temp2 )
        { LCD.setCursor(0, 3); LCD.print((char)0); }
                      
        if ( Aktuelle_Temperatur_2 > Temp2 )
        { LCD.setCursor(0, 3); LCD.print((char)1); }

         if ( Aktuelle_Temperatur_2 == Temp2 )
        { LCD.setCursor(0, 3); LCD.print((char)3); }
        
                      
        LCD.setCursor(3, 3); 
        LCD.print(Temp2,1); 
        LCD.setCursor(8, 3); 
        LCD.print((char)2); 

        Aktuelle_Temperatur_1 = Temp1;
        Aktuelle_Temperatur_2 = Temp2;

        Timer1 = millis() + 10000;                          

        counter = 0;

     
     }

         if( millis() >= Timer2 ) 
          {
             if (counter!=0){
             map_counter = map(counter,255,247,9,1);
             LCD.setCursor(19, 0); 
             LCD.print(map_counter);
             Serial.println(map_counter);
          }

             else

          {           
             LCD.setCursor(19, 0); 
             LCD.print("0");
             Serial.println("0");
          }

             Timer2 = millis() + 1000; 
             counter --;
            
          }
    

 }

```

---

<div class="post-metadata">

**Author:** ![HotSystems](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/hotsystems/32/219785_2.png) [@HotSystems](https://forum.arduino.cc/u/HotSystems)\
**Post date:** [December 25, 2023, 10:12pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/11 "2023-12-25T22:12:09Z")

</div>

> [@zahnlos72](#):
>
> ich habe deshalb die 3,3 Volt Versorgung gewählt , damit die Knopfzelle der RTC nicht geladen wird ! und es wird ja in diversen Beschreibungen auch darauf hingewiesen, die 3,3 Volt zu verwenden.... mit 5 Volt geht es ja auch nicht !

K.A. wo du das her hast. Das ist def. keine Lösung.  
Der I2C-Bus benötigt eine einheitlich Spannung, sonst spielt der verrückt.  
Dann ist dein Problem eben an einer anderen Stelle.  
Den Sketch schau ich mir an.  
Allerdings solltest du die unnötigen Leerzeilen rausnehmen, dann wird der lesbarer.

> [@zahnlos72](#):
>
> Der Aufbau ist sicher in Ordnung möchte ich mal behaupten, da es ja sont gar nicht funktionieren würde ?!?

Achja....da haben wir hier schon andere Dinge erlebt. Wenn du so überzeugt davon bist, warum geht es nicht ?

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 10:17pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/12 "2023-12-25T22:17:53Z")

</div>

Nunja...auch ich habe schon komplexere Schaltungen als diese aufgebaut....  
und dann sollte es ja, wie schon bemerkt, gar nicht funktionieren, wenn da wo der Wurm im Aufbau läge.  
wie schon erwähnt geht es mit der RTC an 5 Volt ebensowenig !

PS: wie fügt man hier eigentlich Bilder ein ?

---

<div class="post-metadata">

**Author:** ![HotSystems](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/hotsystems/32/219785_2.png) [@HotSystems](https://forum.arduino.cc/u/HotSystems)\
**Post date:** [December 25, 2023, 10:19pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/13 "2023-12-25T22:19:58Z")

</div>

Ich tippe mal, dass dein "seltsamer Timer" nicht funktioniert und den Sketch blockiert.

Alles andere ist etwas dubios, da jegliche Erklärung im Sketch fehlt.

> [@zahnlos72](#):
>
> wie schon erwähnt geht es mit der RTC an 5 Volt ebensowenig !

Du musst dich nicht immer wiederholen. Es geht hier um Grundsätzliches.  
Der I2C Bus braucht zum richtigen stabilen arbeiten einheitliche Spannungen.  
Da muss du dich schon an die Spezifikationen halten, auch wenn das nicht dein Fehler ist.

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 10:25pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/14 "2023-12-25T22:25:54Z")

</div>

> [@HotSystems](#):
>
> Ich tippe mal, dass dein "seltsamer Timer" nicht funktioniert und den Sketch blockiert.

Ich lasse mir ja die Daten welche auf dem LCD angezeigt werden ( solang eben nicht die RTC dranhängt ) ebenfalls auf dem Seriellen Monitor zurückgeben.....  
und dort werden sie auch dann ( also mit RTC ) ausgegeben !

Der " seltsame Timer " dürfte also nichts blockieren  
Timer 1 wird für eine Messung alle 10 Sekunden verwendet und  
Timer 2 zählt nur eine Variable im Sekundentakt runter  
machen also was sie sollen

---

<div class="post-metadata">

**Author:** ![wno158](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/wno158/32/1014607_2.png) [@wno158](https://forum.arduino.cc/u/wno158)\
**Post date:** [December 25, 2023, 10:44pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/15 "2023-12-25T22:44:37Z")

</div>

> [@zahnlos72](#):
>
> ```arduino
> long Timer1 = 0; // Zeitmessungsvariable 1 ( Temperatur alle 10 Sekunden )
> long Timer2 = 0; // Zeitmessungsvariable 2
> 
> ```

Wenn Du mit Zeiten und `millis()` hantierst, sollten diese beiden `unsigned long` oder `uint32_t` sein.

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 25, 2023, 10:54pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/16 "2023-12-25T22:54:29Z")

</div>

okay, weil dann der Überlauf erst später auftritt ?!?

---

<div class="post-metadata">

**Author:** ![wno158](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/wno158/32/1014607_2.png) [@wno158](https://forum.arduino.cc/u/wno158)\
**Post date:** [December 25, 2023, 11:14pm UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/17 "2023-12-25T23:14:48Z")

</div>

Im Prinzip ja.  
Nach einer gewissen Zeit können durch die fortlaufenden Additionen `millis() + X` die Ergebnisse `Timer1` bzw. `Timer2` negativ werden. Dann gehen die Bedingungen `if( millis() >= TimerN )` in die Hose.  
Solche komischen Seiteneffekte, die u.U. erst sehr viel später zu komischem Programmverhalten führen, würde ich (persönliche Meinung!) von Anfang an vermeiden.

@combie hat das Ganze [hier einmal ausführlich](https://forum.arduino.cc/t/bericht-der-millis-ueberlauf-im-test/906179) aufgdröselt.

Hat übrigens nix mit dem möglichen Hardware-Problem 3.3V bzw. 5V auf dem I2C zu tun.

---

<div class="post-metadata">

**Author:** ![fony](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fony/32/936882_2.png) [@fony](https://forum.arduino.cc/u/fony)\
**Post date:** [December 26, 2023, 10:01am UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/18 "2023-12-26T10:01:15Z")

</div>

Schau mall genau auf die I²C Pins (SCL, SDA) an der RTC und LCD manchmal ist Denkfehler die Ursache

---

<div class="post-metadata">

**Author:** ![zahnlos72](https://avatars.discourse-cdn.com/v4/letter/z/9fc348/32.png) [@zahnlos72](https://forum.arduino.cc/u/zahnlos72)\
**Post date:** [December 26, 2023, 10:28am UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/19 "2023-12-26T10:28:08Z")

</div>

Clock auf Clock....  
Daten auf Daten....

Denkfehler ???

---

<div class="post-metadata">

**Author:** ![fony](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fony/32/936882_2.png) [@fony](https://forum.arduino.cc/u/fony)\
**Post date:** [December 26, 2023, 10:33am UTC](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673/20 "2023-12-26T10:33:08Z")

</div>

Nein 😉  
Ist aber der meister Fehler, deshalb die nachfrage.

[Next page](https://forum.arduino.cc/t/problem-bei-2-geraten-am-i2c-port-des-arduino-uno-r3/1203673.md?page=2)
