INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Was machen wenn man einen Kontakt 2x benötigt??
12.12.2019, 09:40
Beitrag #1
Was machen wenn man einen Kontakt 2x benötigt??
Hallo zusammen,

ich bin noch ziemlich neu in der Arduino-Welt und lerne noch,
habe mir auch extra das Arduino -Kompendium zugelegt.

Die ersten Dinge funktionieren ganz gut, aber jetzt komme ich
an ein Problem wo ich alleine nicht mehr weiter weiß.

Ganz konkret geht es gerade darum, das ich gerne ein Echtzeitmodul und ein
I2C_Display verwenden würde. Beide verwenden aber A4/A5.
Ich bin noch nicht so bewandert das ich weiß was sich dahinter verbirgt,
aber verschiedene Tests entweder das Display oder die Echtzeituhr zu verlegen
sind kläglich gescheitert.

Ein anderes Beispiel ist die Verwendung der Kontakte die das SD-Karten-Modul
benötigt. Auch hier habe ich das Problem, das ich eine WiFi-Anbindung realisieren möchte und diese meines Wissens ebenfalls diese Kontakte benötigt.

WAS MACHT MAN DANN????

Kann mir jemand weiterhelfen???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2019, 09:59
Beitrag #2
RE: Was machen wenn man einen Kontakt 2x benötigt??
(12.12.2019 09:40)DO3GE schrieb:  Ganz konkret geht es gerade darum, das ich gerne ein Echtzeitmodul und ein
I2C_Display verwenden würde. Beide verwenden aber A4/A5.
Ich bin noch nicht so bewandert das ich weiß was sich dahinter verbirgt,
aber verschiedene Tests entweder das Display oder die Echtzeituhr zu verlegen
sind kläglich gescheitert.
A4/A5 werden hier als I2C Bus genutzt. Da das eben ein 'Bus'-System ist, kannst Du beide parallel anschließen. Beide haben dann jeweils eine eigene Adresse am Bus und werden per SW adressiert.

SD-CardReader werden meist per SPI angeschlossen. Da ist es zwar nicht ganz so einfach, da jedes Gerät eine eigene Select-Leitung braucht. Aber grundsätzlich kann man da auch mehrere Geräte parallel anschließen.

Gib mal Links zu den von dir verwendeten Komponenten.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2019, 10:11
Beitrag #3
RE: Was machen wenn man einen Kontakt 2x benötigt??
(12.12.2019 09:59)MicroBahner schrieb:  A4/A5 werden hier als I2C Bus genutzt. Da das eben ein 'Bus'-System ist, kannst Du beide parallel anschließen. Beide haben dann jeweils eine eigene Adresse am Bus und werden per SW adressiert.

Hast du mal ein Beispiel für mich wie sowas aussehen oder wo ich es nachlesen kann?

(12.12.2019 09:59)MicroBahner schrieb:  Gib mal Links zu den von dir verwendeten Komponenten.

Kann ich dir derzeit noch gar nicht sagen. Wollte gestern bestellen und bin dann über dieses Problem gestolpert und wollte vorher fragen.

Derzeit verwende ich einen Mega, der mit einem SIM800L, einem NEO-6M und einem SD-Karten-Modul ausgestattet ist.
Mit einem UNO muss ich nun Sensoren auslesen und in den Mega übermitteln.

Und genau da benötige ich Hilfe. Ich denke auch schon bei der Kaufentscheidung...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2019, 10:26
Beitrag #4
RE: Was machen wenn man einen Kontakt 2x benötigt??
Warum willst Du die Sensoren nicht mit dem MEGA auslesen?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2019, 10:40
Beitrag #5
RE: Was machen wenn man einen Kontakt 2x benötigt??
(12.12.2019 10:11)DO3GE schrieb:  Hast du mal ein Beispiel für mich wie sowas aussehen oder wo ich es nachlesen kann?
Z.B. hier

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2019, 10:42 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2019 10:49 von Franz54.)
Beitrag #6
RE: Was machen wenn man einen Kontakt 2x benötigt??
(12.12.2019 10:11)DO3GE schrieb:  Hast du mal ein Beispiel für mich wie sowas aussehen oder wo ich es nachlesen kann?

Hier ist mal ein I2C Display und einen I2C Uhr gleichzeitig benutzt in einem Programm. Die Uhr mit der Adresse 0x68 und das Display mit Adresse 0x27

Hier der Programmteil auf den es ankommt:
// Matthias Busse 6.11.2016 Version 1.0
#include "Wire.h"
#define DS3231_ADDRESSE 0x68
#include <LiquidCrystal_I2C.h> // LCD Display
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

Und die komplette Funkiton:

Code:
// Zeit & Datum aus der Uhr RTC3231 auslesen, Zeit & Datum anzeigen, und auch die Uhrzeit/Datum einstellen
// Die Uhr ist sehr genau mit einem Temperatur kompensierten Takt
// Der Fehler beträgt +-2ppm bei 0-40°C oder max ca. 1 Minute pro Jahr
//
// Matthias Busse 6.11.2016 Version 1.0
#include "Wire.h"
#define DS3231_ADDRESSE 0x68
#include <LiquidCrystal_I2C.h> // LCD Display
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//-------------------------------------------------------------------------------------------------------Setup
void setup() {
  Wire.begin();
  Serial.begin(9600);

// Wenn die I2C Leitung länger ist, kann man den Tackt für den I2C Bus langsammer machen!!
  Wire.setClock(32000);

  lcd.begin(20, 4);
  lcd.backlight();
  lcd.clear();

  // aktuelle Zeit       sek min std wt tag monat jahr
  // einstellenDS3231zeit(00, 11, 23, 1, 10,  11,  19);
}
//-------------------------------------------------------------------------------------------------------Loop
void loop() {
  zeigeZeit(); // Zeit ausgeben
  delay(1000); // jede Sekunde
}
//-------------------------------------------------------------------------------------------------------Loop Ende
void einstellenDS3231zeit(byte sekunde, byte minute, byte stunde, byte wochentag, byte tag, byte monat, byte jahr) {
      // Datum und Uhrzeit einstellen
      Wire.beginTransmission(DS3231_ADDRESSE);
      Wire.write(0);
      Wire.write(decToBcd(sekunde)); // Sekunden einstellen
      Wire.write(decToBcd(minute)); // Minuten einstellen
      Wire.write(decToBcd(stunde));
      Wire.write(decToBcd(wochentag)); // 1=Sonntag ... 7=Samstag
      Wire.write(decToBcd(tag));
      Wire.write(decToBcd(monat));
      Wire.write(decToBcd(jahr)); // 0...99
      Wire.endTransmission();
    }
//-----------------------------------------------------------------------------------------------------------
void leseDS3231zeit(byte *sekunde, byte *minute, byte *stunde, byte *wochentag, byte *tag, byte *monat, byte *jahr) {
  Wire.beginTransmission(DS3231_ADDRESSE);
  Wire.write(0); // DS3231 Register zu 00h
  Wire.endTransmission();
  Wire.requestFrom(DS3231_ADDRESSE, 7); // 7 Byte Daten vom DS3231 holen
  *sekunde = bcdToDec(Wire.read() & 0x7f);
  *minute = bcdToDec(Wire.read());
  *stunde = bcdToDec(Wire.read() & 0x3f);
  *wochentag = bcdToDec(Wire.read());
  *tag = bcdToDec(Wire.read());
  *monat = bcdToDec(Wire.read());
  *jahr = bcdToDec(Wire.read());
}
//-----------------------------------------------------------------------------------------------------------
void zeigeZeit() {
  byte sekunde, minute, stunde, wochentag, tag, monat, jahr, minuteAlt;
  leseDS3231zeit(&sekunde, &minute, &stunde, &wochentag, &tag, &monat, &jahr);   // Daten vom DS3231 holen
  if ((minute > minuteAlt) || (minute == 0)) {
    switch (wochentag) {
      case 1:
        lcd.setCursor(0, 0);
        lcd.print("Mo ");
        break;
      case 2:
        lcd.setCursor(0, 0);
        lcd.print("Di ");
        break;
      case 3:
        lcd.setCursor(0, 0);
        lcd.print("Mi ");
        break;
      case 4:
        lcd.setCursor(0, 0);
        lcd.print("Do ");
        break;
      case 5:
        lcd.setCursor(0, 0);
        lcd.print("Fr ");
        break;
      case 6:
        lcd.setCursor(0, 0);
        lcd.print("Sa ");
        break;
      case 7:
        lcd.setCursor(0, 0);
        lcd.print("So ");
        break;
      default:
        break;
    }
    if (tag < 10) {
      lcd.print("0");
    }
    lcd.print(tag); // ausgeben T.M.J H:M:S
    lcd.print(".");
    if (monat < 10) {
      lcd.print("0");
    }
    lcd.print(monat);
    lcd.print(".");
    lcd.print(jahr);
    lcd.print(" um ");
    if (stunde < 10) {
      lcd.print("0");
    }
    lcd.print(stunde, DEC); // byte in Dezimal zur Ausgabe
    lcd.print(":");
    if (minute < 10) {
      lcd.print("0");
    }
    lcd.print(minute, DEC);
    minuteAlt = minute;
  }
}

byte decToBcd(byte val) {
  // Dezimal Zahl zu binary coded decimal (BCD) umwandeln
  return ((val / 10 * 16) + (val % 10));
}
byte bcdToDec(byte val) {
  // BCD (binary coded decimal) in Dezimal Zahl umwandeln
  return ((val / 16 * 10) + (val % 16));
}

https://www.youtube.com/watch?v=Fnzn85oWM_Q
Hier was zum Thema Deutsche Politik Angry
Und hier zum Thema richtige Politik Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2019, 10:42
Beitrag #7
RE: Was machen wenn man einen Kontakt 2x benötigt??
(12.12.2019 10:26)Tommy56 schrieb:  Warum willst Du die Sensoren nicht mit dem MEGA auslesen?

Gruß Tommy

Ganz einfach. Der Mega wird mobil unterwegs sein (Mähroboter), die Sensoren sind feste installiert.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.12.2019, 10:53 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2019 10:59 von amithlon.)
Beitrag #8
RE: Was machen wenn man einen Kontakt 2x benötigt??
Hallo,

wie sollen denn die Daten von den Sensoren zum Mega kommen?
Welchen Bewegungsraum hat denn der Mähroboter (Entfernung zu den Sensoren)?
Wenn das z.B. nur ein Garten ist, kannst Du froh sein, wenn die GPS-Daten im Garten bleiben. Wink
Vielleicht solltest Du das Projekt doch etwas konkreter beschreiben.

PS: falls Dein Username Dein Rufzeichen ist: Grüße in die Gelsenkirchen-Gegend. Wink

Gruß aus Berlin
Michael
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Wert durchsuchen und in einen String packen Juljano 12 3.234 28.06.2020 13:50
Letzter Beitrag: Tommy56
  Array Werte in einen String ChriscoGT 3 567 12.05.2020 15:41
Letzter Beitrag: Tommy56
  einen zweiten joystick einbauen ardutobias 1 458 15.03.2020 00:47
Letzter Beitrag: Bitklopfer
  LED an wenn PC an René1987 2 489 18.02.2020 21:38
Letzter Beitrag: Tommy56
  Nextion Fehler bei Button Abfrage wenn ich zusätzlich Text sende MarkZero0815 24 2.536 28.01.2020 08:23
Letzter Beitrag: hotsystems
  Möchte einen 12V DC Motor mit H-Brücke, Abbremsen und Timer betreiben! Tibor 4 642 24.01.2020 10:58
Letzter Beitrag: hotsystems
  Mit einen Taster zwischen zwei Ausgängen Toggeln luft-post 6 777 13.01.2020 17:41
Letzter Beitrag: hotsystems
  Longruner ws2812b Matrix aufbauen benötige einen Denkanstoß marcobiblis 2 790 07.01.2020 23:22
Letzter Beitrag: marcobiblis
  Auth Failed wenn ArduinoOTA.setPasswordHash benutzt wird Hoffmakl 9 1.360 26.11.2019 19:02
Letzter Beitrag: Hoffmakl
  Taster machen was sie wollen. StefanBehmenburg 12 1.292 23.11.2019 16:40
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste