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
Rechnen in C - Was ist denn nun richtig?
17.03.2016, 22:12 (Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2016 22:20 von Stephan_56.)
Beitrag #9
RE: Rechnen in C - Was ist denn nun richtig?
Nö, also ich habe einen BMP180 auf Breakboard, der mit 3,3V läuft

Wie gesagt, wenn er alleine am DUE läuft, geht's ja, nur nicht zusammen mit den anderen.

Ist ja auch logisch: Kirchhoffsches Gesetz -> Parallelschaltung

(17.03.2016 22:07)ardu_arne schrieb:  Versorgt wird der BMP180 aber mit 5V weil der einen 3,3V Regler auf der Platine hat?

Laut Datenblatt, Seite 2:

Supply voltage: 1.8 ... 3.6V (VDD)

Grüße,
Stephan
------------------------------------------
Kinder betet, Papa lötet. Gott gebe, daß es klebe.
Satzzeichen können Leben retten: Komm wir essen Opa.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2016, 12:07
Beitrag #10
RE: Rechnen in C - Was ist denn nun richtig?
Hattest du die Pullup-Widerstände auf dem BMP180 Brekout-Board mal entfernt und dann parallel zu den anderen Sensoren probiert?

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2016, 15:06
Beitrag #11
RE: Rechnen in C - Was ist denn nun richtig?
...also mal Grundsätzliches zum I2C Bus, die beiden Leitungen SDA und SCL benötigen einen PullUp-Widerstand der typischerweise so zwischen 1,8K und 4,7K liegen sollte je nach Anzahl der Busteilnehmer wobei ich den Wert als unkritisch ansehen... und nein die Pullups liefern keine falschen Werte...entweder geht der Bus oder nicht.
ABER da wir hier eine DUE haben müßen die Pullups auf 3,3V gelegt werden. Sollte ein Busteilnehmer mit 5V betrieben werden dann benötigt der in der Regel Pegelwandler es denn er läßt sich mit Pullups an 3,3V bedienen was von den Pegeln her durchaus sein kann. Denn am Kontroller sind die 2 Ports bei I2C Betrieb als Open Kollektor Ausgänge anzusehen.
Und bei mehreren Busteilnehmern muß man eben auch auf die Busadresse achten wo jeder Teilnehmer hat...bei vielen Clients läßt sich die Adresse durch das brücken eines Anschlußes gegen GND oder VCC verändern.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2016, 18:47
Beitrag #12
RE: Rechnen in C - Was ist denn nun richtig?
Ich hatte die ganze Geschichte so verstanden dass es an einem 5V Bus funktionierte.
Nur beim DUE mit 3,3V klappte es nicht so recht.

Der BMP180 wird am DUE mit 3,3V versorgt und dann liegen die Pullup-Widerstände auch gegen 3,3V.
Alles einzeln funktioniert ja auch, nur zusammen wollen die nicht spielen.
Wenn ich das richtig Verstanden habe, hat der DUE an Wire0 bereits Pullup-Widerstände auf der Platine.
Wenn jetzt jeder Busteilnehmer auch noch Pullup-Widerstände mitbringt, sind die alle parallel geschaltet. Diese Parallelschaltung muss jetzt aber jeder einzelne Teilnehmer auf GND ziehen können. Wenn einer das nicht schafft gibt es Chaos am Bus. Auch Levelshifter haben i.d.R. diese Pullup-Widerstände verbaut.

Mein Gedanke war nun die Last zu reduzieren indem man bei einzelnen Busteilnehmern die Pullup-Widerstände entfernt. Real braucht man ja nur jeweils einen an SDA und SCL.
Mehrere Widerstände parallel erhöhen den Strom den jeder einzelne Busteilnehmer schalten können muss.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2016, 20:30
Beitrag #13
RE: Rechnen in C - Was ist denn nun richtig?
Nein, also die pullups habe ich bislang noch nicht ausgelötet.
Da die Leiterbahnen nicht so gut zu erkennen sind, selbst mit Lupe nicht, müßte ich beim Auslöten Lotterie spielen. Welches sind denn die pullups?

Die Sensoren arbeiten alle mit 3,3V. Das sollte also passen.
Beim MEGA-Board habe ich die Sensoren mit 3,3V versorgt. Grundsätzlich wären die Sensoren bei SDA/SCL 5V-tolerant, aber gemessen habe ich dort nur die 3,3V-Pegel.
Stellt sich der MEGA darauf ein? Egal, es geht da jedenfalls.

Die Idee mit dem Auslöten der pullups beim BMP180 soll nicht das Problem sein, würde ich auch gerne machen, wenn jemand so freundlich ist, mir die pullups zu bezeichnen. Das Breakout hat 4 Anschlüße an blauem Platinchen. Siehe hier:

BMP180

Die Busadressen der Sensoren sind 0x23 (BH1750), 0x28 (HYT-939) und 0x77 (BMP180).
Der HYT939 scheint keine (internen) pullups zu haben (lt. Datenblatt bei Reichelt), beim BH1750 bin ich mir nicht sicher, weil da reichlich Bauteile auf dem Brettchen sind.

Aber beim BMP180 würde ich mir das rauslöten zutrauen - wäre notfalls Lehrgeld.

Brächte mich allerdings hinsichtlich der o.a. Berechnungen nicht weiter. Ist ja kein Problem, einen Sensor über Wire1 direkt ohne Library anzusprechen.

Beim DUE haben sowohl SDA und SCL bereits auf dem Board pullups, SDA1 und SCL1 benötigen in jedem Fall pullups (2,2k - 10k).

Komme wohl erst am Sonntag dazu, mir den DUE mal wieder vorzuknöpfen. Dann baue ich den BMP180 mal mit Wire1 dazu und schaue mir die Ergebnisse an.
Wenn mir jemand bis dahin die pullups bezeichnet, kann ich ja beide Varianten mal ausprobieren.

PS: Sind die pullups die beiden SMD's mit 472 (4700 Ω)?

Grüße,
Stephan
------------------------------------------
Kinder betet, Papa lötet. Gott gebe, daß es klebe.
Satzzeichen können Leben retten: Komm wir essen Opa.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2016, 20:56 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2016 21:01 von HaWe.)
Beitrag #14
RE: Rechnen in C - Was ist denn nun richtig?
zur Not:
der DUE hat noch einen 2. i2c-Port (Wire1), welcher keine eingebauten Pullups hat!
HTH!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2016, 21:14 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2016 21:28 von ardu_arne.)
Beitrag #15
RE: Rechnen in C - Was ist denn nun richtig?
Das gezeigte BMP180 Breakout hat einen 3,3V Regler drauf. Wenn du da am Vin der Platine 3,3V anlegst kommen am eigentlichen Sensor kein 3,3V mehr an sondern weniger. Die Pullup-Widerstände sind aber gegen 3,3V geschaltet und deshalb kannst du den BMP180 auch mit 5V am DUE versorgen.
Also erster Versuch 5V an Vin der Platine des BMP180.
Zweiter Versuch 5V an Vin der Platine des BMP180 und Widerstände raus.

So wie das jetzt ist wird VCC des eigentlichen Drucksensors zum Teil über die Widerstände aus den 3,3V der anderen Busteilnehmer mit Pullup-Widerständen versorgt weil dort sie Spannung höher ist.

Die Widerstände sind die Bauteile mit dem Aufdruck 472.

Hier ist der Schaltplan der Platine.

Gruß
Arne

(18.03.2016 20:56)HaWe schrieb:  zur Not:
der DUE hat noch einen 2. i2c-Port (Wire1), welcher keine eingebauten Pullups hat!
HTH!

Das hat er doch schon versucht, aber die Library ließ sich nicht auf Wire1 umbiegen.

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2016, 21:23
Beitrag #16
RE: Rechnen in C - Was ist denn nun richtig?
Ah, Arne, geile Analyse ExclamationIdea

Das probier' ich mal. Ergebnis kommt

Grüße,
Stephan
------------------------------------------
Kinder betet, Papa lötet. Gott gebe, daß es klebe.
Satzzeichen können Leben retten: Komm wir essen Opa.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Rechnen mit float und unsigned long Rudi 3 300 03.06.2016 12:41
Letzter Beitrag: hotsystems
  Rechnen mit dem Arduino Rudi 15 1.051 30.03.2016 13:31
Letzter Beitrag: Rudi
  LCD schreibt mal richtig,mal Krickel? malsehen 14 988 21.03.2016 09:21
Letzter Beitrag: hotsystems
  Constrain-Befehl -wie gehts richtig? Nimes 8 932 14.03.2016 18:00
Letzter Beitrag: DL1AKP
  Über Pin43 den Pin42 steuern, ist das so richtig? arduinofan 5 488 01.02.2016 21:01
Letzter Beitrag: ardu_arne
  Arduino kann nicht rechnen?! Maxi290997 11 1.236 16.12.2015 16:26
Letzter Beitrag: amithlon
  C-Code für eine substring-Funktion: richtig ? HaWe 1 669 27.05.2015 14:01
Letzter Beitrag: HaWe
Information Rechnen mit variablen Jim 3 1.814 22.05.2015 16:44
Letzter Beitrag: Jim
  Eingang analog oder digital? Wie macht man es richtig? Gelegenheitsbastler 3 979 25.03.2015 15:45
Letzter Beitrag: Bitklopfer
  [gelöst:] A.Mega: Pin4 bei Programmstart richtig setzen HaWe 0 587 28.09.2014 09:53
Letzter Beitrag: HaWe

Gehe zu:


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