[geschlossen/gelöst]Pin Belegung ändern SCL/SDA

Moin Moin,

mein BMP085 Sensor funktioniert auf meinem Arduino Uno einwandfrei.
Ich verbinde Analog5 mit SCL und Anlog4 mit SDA (Standard). Ist der Sensor nicht mit dem Board verbunden kommen die “falschen” Spannungswerte und werden mir dann dementsprechend umgerechnet, so dass man eine falsche Temperatur und einen falschen Luftdruck erhält. Dies ist natürlich auch ganz normal.

Ich möchte das ganze nun an einem Sondermodell des Mega 2560 austesten. Bei diesem Board befinden sich SCL und SDA nicht auf
Analog4 und Analog5 sondern auf der BUS-Seite( Pin 32 und 33).
Wenn ich nun mein Sensor mit diesen Punkten verbinde erhalte ich die Meldung “Es ist kein Sensor angeschlossen”. Die meldung kommt auch, wenn der Sensor nicht mit den Pins verbunden ist.

Demnach folgere ich, dass das Programm ( Arduino/Sketch oder Lib) so eingestellt werden muss, dass sich die Pins nun an Stelle 32 und 33 befinden.

Kann mir dabei jemand helfen?
Vielen Dank im Vorraus ! :slight_smile:

Sketch:

#include <Wire.h>
#include <Adafruit_BMP085.h>  // Adafruit Bibliothek einbinden

Adafruit_BMP085 bmp;

void setup(){

 // Seriellen Monitor aktivieren
 Serial.begin(9600);

 // Sensor initialisieren
 if (!bmp.begin()) {
  Serial.println("Keinen gültigen BMP085 Sensor gefunden!");
  while (true) {}
 }
}

void loop(){

 Serial.print("Temperatur: ");
 // readTemperature() Temperatur °C auslesen und anzeigen
 Serial.print(bmp.readTemperature());
 Serial.print(" ");  // Hier müssen wir ein wenig tricksen
 Serial.write(176);  // um das °-Zeichen korrekt darzustellen
 Serial.println("C");

 Serial.print("Luftdruck: ");
 // readPressure() Luftdruck in Pa auslesen und anzeigen
 Serial.print(bmp.readPressure());
 Serial.println(" Pa");

 Serial.print("Hoehe: ");
 // readAltitude() Höhe in meter auslesen und anzeigen
 Serial.print(bmp.readAltitude());
 Serial.println(" meter");

 Serial.println(); // Leerzeile anzeigen
 delay(5000);      // 5 Sekunden warten
}

Die Pins sind hardware-mäßig im Prozessor fest. I2C ist ein Hardware Protokoll. Das hängst vom Board ab an welchen Arduino Pins das ist. Je nachdem welches Board in der IDE ausgewählt wurde, passt das dann entsprechend.

Ja aber scheinbar nicht oder?
Sonst würden mir ja Ergebnisse, selbst wenn sie falsch wären, angezeigt :S

Ich weiß jetzt nicht welches "SONDER"-Model von Arduino MEGA Du hast, aber beim Arduino MEGA ist I2C an den Pins 20 und 21.
Grüße Uwe