Umsetzung Projekt von Uno nach Mega Board

Hallo,

ich habe wieder einmal ein (kleines) Problem.
Ein bereits lauffähiges Programm wollte ich von einen
Uno auf einen Mega umsetzten - da er einfach mehr Pins hat
und mein vorhandenes Display nur parallel angesteuert werden kann.
Der Sketch läuft auf einen Uno mit einen SPI Display ohne Probleme -
ist also (wahrscheinlich) i.O
Den Sketch habe ich auf das andere Display umgeschrieben und Text
zum testen anzeigen lassen - das geht soweit auf dem Mega.
Leider bekomme ich es einfach nicht hin die I2C Schnittstelle anzusprechen.
Bei den Uno,s liegt diese auf A4/A5 und bei den Mega,s auf 20/21.
Also hatte ich einfach den Testsketch geladen und Sensor an 20/21 angeschlossen -
aber keine Funktion.
Das richtige Board ist im Programm ausgewählt und der Sketch wird auch
auf das Board geladen - also kein größerer Fehler.
Meine Frage : welche Pin,s sind beim Mega für I2C und muss / müssen die
Libraries eventuell angepasst werden ?
Ich habe bis jetzt nur mit den Unos gearbeitet.
Gibt es bei den Megas etwas besonders zu beachten ?

Danke für Eure Hilfe !

Vielleicht Pins vertauscht?

Gibt es bei den Megas etwas besonders zu beachten ?

Der SS Pin muss entweder ein Output sein, oder dauerhaft auf High liegen, damit SPI funktioniert.
Der I2C Bus benötigt Pullups.

Ansonsten, endet meine Hilfe hier!
Da wiedereinmal Schaltplan und Code geheim bleiben sollen.
Nur mit Prosa ist mir keine Diagnose möglich.

Also ich habe ein Beispielsketch geladen - der läuft auf einen Uno.
Den gleichen Sketch auf einen Mega läuft nicht - I2C wird nicht gefunden.
Richtig angeschlossen ist es und Widerstände sind schon auf der Platine vorhanden.
Ich habe um Fehler auszuschließen den Beispielsketch direkt aus der BME280 Bibliothek genommen :

[/code

/*
 * bme280_example.ino
 * Example sketch for bme280
 *
 * Copyright (c) 2016 seeed technology inc.
 * Website    : www.seeedstudio.com
 * Author     : Lambor, CHN
 * Create Time:
 * Change Log :
 *
 * The MIT License (MIT)
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
#include "Seeed_BME280.h"
#include <Wire.h>

BME280 bme280;

void setup()
{
  Serial.begin(9600);
  if(!bme280.init()){
    Serial.println("Device error!");
  }
}

void loop()
{
  float pressure;
  
  //get and print temperatures
  Serial.print("Temp: ");
  Serial.print(bme280.getTemperature());
  Serial.println("°C");//The unit for  Celsius because original arduino don't support speical symbols
  
  //get and print atmospheric pressure data
  Serial.print("Pressure: ");
  Serial.print(pressure = bme280.getPressure());
  Serial.println("Pa");

  //get and print altitude data
  Serial.print("Altitude: ");
  Serial.print(bme280.calcAltitude(pressure));
  Serial.println("m");

  //get and print humidity data
  Serial.print("Humidity: ");
  Serial.print(bme280.getHumidity());
  Serial.println("%");

  delay(1000);
}

Versuche den I2C Scanner.
Wenn der nichts zeigt, dann hast du ein elektrisches Problem.

Da du weiterhin nicht zeigst, wie du ihn angeschlossen hast, selbst auf Anforderung nicht, ist das sicherlich die Problemstelle.

Ich mache es mal kurz : BME 280 Schield :

+5V --> +5V Mega
GND --> GND Mega
SDA --> Pin 20 Mega
SCL --> Pin 21 Mega

Da kann man nicht viel falsch machen - sorry.
Es läuft ja auf einen Uno.
Oder ist mein Mega Board hinüber ?

maik_s:
...
mein vorhandenes Display nur parallel angesteuert werden kann.

Der Sketch läuft auf einen Uno mit einen SPI Display ohne Probleme -
ist also (wahrscheinlich) i.O
Den Sketch habe ich auf das andere Display umgeschrieben und Text
zum testen anzeigen lassen - das geht soweit auf dem Mega.
Leider bekomme ich es einfach nicht hin die I2C Schnittstelle anzusprechen.

Deine Beschreibung ist etwas wirr. Erst schreibst Du, dass Dein Display nur parallel angesteuert werden kann und Du deshalb auf den MEGA wechseln willst, dann von SPI und I2C.

Das Display mit welchem Anschluß willst Du denn nun wirklich an den Mega anschließen?

Gruß Tommy