Forum: Mikrocontroller und Digitale Elektronik APDS-9960 (3,3V) an ARDUINO NANO (5V) richtig anschließen, Brauche ich ein Logik Level Converter?


von Jan C. (ycplayer)


Lesenswert?

yC = Arduino NANO

Das Modul =  APDS-9960 Digital Proximity, Ambient Light, RGB and Gesture 
Sensor

Pin Label  Description
VL = Optional power to the IR LED if PS jumper is disconnected.

GND = Connect to ground.

VCC = Used to power the APDS-9960 sensor. Must be 2.4 - 3.6V

SDA = I2C data

SCL = I2C clock

INT = External interrupt pin. Active LOW on interrupt event


Jetzt habe ich im Internet Anleitungen gefunden die das Modul  einfach 
an einem Arduino UNO so anschließen:

VL = offen

GND = GND

VCC  = 3,3V

SDA = A4

SCL = A5

INT = D2


Jetzt meine Sorge und Frage:

Der I2C ist doch bidirektional, ist es nicht gefährlich das Modul 
einfach an SDA und SCL anzuschließen, da kommen doch 5 V auf den Sensor?

Im Datenblatt steht nicht mehr als 3,8V.

Dann habe ich gelesen der I2C BUS bei Modulen verträgt generell 5V 
obwohl das Modul selbst nur mit 3,3V arbeitet.


Brauche ich jetzt ein Logik Level Converter oder nicht?

von Falk B. (falk)


Lesenswert?

Jan C. schrieb:
> yC = Arduino NANO

Das schreibt man eher als uC.

> Der I2C ist doch bidirektional, ist es nicht gefährlich das Modul
> einfach an SDA und SCL anzuschließen, da kommen doch 5 V auf den Sensor?

Jain, das wird durch die Pull-Up widerstände auf dem Arduino in Richtung 
5V gezogen, allerdings eben stark strombegrenzt. Das Problem sind eher 
die ungünstigen Schaltschwellen. Das kann funktionieren, muss aber 
nicht.

> Dann habe ich gelesen der I2C BUS bei Modulen verträgt generell 5V
> obwohl das Modul selbst nur mit 3,3V arbeitet.

Das stimmt so allgemein nicht.

> Brauche ich jetzt ein Logik Level Converter oder nicht?

Der ist sehr zu empfehlen und auch leicht machbar. Gibt es fertig als 
Modul oder aus 2 Transistoren und ein paar Widerständen selber bauen.

https://www.mikrocontroller.net/articles/Pegelwandler#I2C-Bus:_gemeinsam_3.3V_und_5V

von Otto Mans (Gast)


Lesenswert?

Wenn so ein Breakout board hast (hört sich fast so an):

https://www.aliexpress.com/item/GY-9960LLC-APDS-9960-RGB-and-Gesture-Sensor-Module-I2C-Breakout-for-Arduino/32748635208.html

Da läuft bei mir prima mit 5V - ist ein Regler drauf (LM6206). Das ganze 
China-Breakout Zeug läuft doch fast immer mit 5V?

von Einer K. (Gast)


Lesenswert?

Situation:
5V µC
3,3V Sensor

I2C Pullups an 3,3V, dann wird der Sensor überleben
Aber der Pegel ist knapp für den µC.

I2C Pullups an 5V, dann Gefahr für den Sensor.


Levelshifter zwischen den beiden, dann alles gut.

Jan C. schrieb:
> Jetzt habe ich im Internet Anleitungen gefunden die das Modul  einfach
> an einem Arduino UNO so anschließen:
Tausend Fliegen können nicht irren, Schei*e schmeckt gut.

Jan C. schrieb:
> Brauche ich jetzt ein Logik Level Converter oder nicht?
Du weißt es doch schon!
Wozu die Frage?

Oder möchtest du einen Freibrief, eine Erlaubnis, den gleichen Mist zu 
bauen?




Tipp:
Je mehr Problempotential du in deine Schaltungen einbaust, desto größer 
die Wahrscheinlichkeit, dass dich das irgendwann einholt.

Tipp 2:
Tutorials verführen einen dazu das eigene Denken abzuschalten.


----------
Eine Schnellsuche ergab:
https://learn.sparkfun.com/tutorials/apds-9960-rgb-and-gesture-sensor-hookup-guide/all
> Level shifting -- If you are using a 5V Arduino,
> like the Uno or RedBoard, you will need to use a
> level shifter, such as the bi-directional logic level
> converter

Deine Entscheidung!
Glaube den Tutorials, die von Leuten geschrieben wurden, welche evtl 
dümmer sind als du, oder glaube den Herstellern der Breakout Boards.

Alternativ:
Datenblatt lesen, und eigene Denke einschalten.

Otto Mans schrieb:
> Da läuft bei mir prima mit 5V -
Fein!

Otto Mans schrieb:
> ist ein Regler drauf (LM6206).
Klar, das ist natürlich ein guter Schutz für die Datenleitungen, und 
sorgt für bessere Pegel? ?
Nee, oder?

Otto Mans schrieb:
> Das ganze
> China-Breakout Zeug läuft doch fast immer mit 5V?
Is auch klar....
Das scheint mir eher ein Defekt in der Transferleistung zu sein.

von Datenblattleser (Gast)


Lesenswert?

Moin,

Im Datasheet steht ausdrücklich "Pull-Ups an VDD oder 1,8V" - also 
irgendwas dazwischen. Du kannst auf dem µC einen Software-I2C einrichten 
und dann dort die Pull-Ups auf 3,3V legen.

gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn zwei I2C-Geräte miteinander verbunden werden sollen, die mit 
unterschiedlichen Betriebsspannungen arbeiten, ist ein I2C-Pegelwandler 
erforderlich, wie z.B. ein PCA9517.

von Jan C. (ycplayer)


Angehängte Dateien:

Lesenswert?

Hey richtig was los hier, vielen Dank für die vielen Antworten ! ! !

So schnell kann ich aber nicht Antworten.


Aber generell, warum immer so feindselig wenn man mal auf dem Schlauch 
steht? (@Arduino Fanboy D. ich liebe Freibriefe)

Arduino Fanboy D. schrieb:
>Tipp: Je mehr Problempotential du in deine Schaltungen einbaust, desto größer die 
Wahrscheinlichkeit, dass dich das irgendwann einholt.
Deshalb will ich wissen kann ich mir den Logik Level Converter sparen.

Falk B. schrieb:
> Das schreibt man eher als uC.
Danke, werde ich in Zukunft berücksichtigen. Dabei dachte ich es kommt 
von Mikro = Minuskel „μ“…

Otto Mans schrieb:
> Da läuft bei mir prima mit 5V - ist ein Regler drauf (LM6206). Das ganze 
China-Breakout Zeug läuft doch fast immer mit 5V?

Ich weiß nicht ob es das Merkmal ist, doch bisher waren bei mir 
China-Breakout Zeugs mit blauer Platine 5V und mit Lila Platine 3,3V.

Jetzt habe ich einfach mal ausprobiert:

Bild1 = APDS-9960

Bild2 = Gaoxing Tech. 5PCS 2 Kanal Logik Level Converter 3.3V bis 5V TTL 
Bidirektionales Modul für Arduino

Also:

NANO - Logik Level Converter

A5 – TXO (oben, ganz links)

3,3V -  LV (unten, 3te von links)

5V - HV (oben, 3te von links)

(oben links auf Bild 2 der dritte Pin hat bei normal  die Beschreibung 
HV, warum die hier fehlt keine Ahnung)

GND – GND (alle GND miteinander verbunden)

A4 – TXO (oben, ganz rechts)



Logik Level Converter – APDS

TXI(unten, ganz links)  – SCL

LV – VCC

GND – GND (alle GND miteinander verbunden)

TXI(unten, ganz rechts)  – SDA


Leider funktioniert es nicht mit dem Logik Level Converter.

Ist aber auch das erste mal das ich den benutze.

Meldung: Something went wrong during APDS-9960 init!

Stimmen die Verbindungen?

Wie schließt man diesen (China) LLC richtig an  ?

von Datenblattleser (Gast)


Lesenswert?

Huch :/

Ja, ich muss meine Aussage zurück nehmen! Ein Valider High-Pegel ist für 
die ATmega8 Serie erst ab 0,7*VCC = 3,5V.

Also Pegelanpassung! Gibt's 'nen Schönen Beitrag hier im Forum!
https://www.mikrocontroller.net/articles/Pegelwandler

gruß

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jan C. schrieb:
> Leider funktioniert es nicht mit dem Logik Level Converter.

I2C ist ein Open-Collector- bzw. Open-Drain-Bus, der braucht geeignete 
Konverter.

PCA9517 oder PCA9306 sind verbreitete Kandidaten, man kann sich aber 
auch 'ne diskrete Schaltung mit ein paar Mosfets zusammenbasteln:

Beitrag "Level Shifter selbst bauen, ESP8266, I2C, Bi-Direktional - Welcher MOSFET?"

von Jan C. (ycplayer)


Lesenswert?

Ach den INT habe ich vergessen, der ist von APDS-9960 direkt beim NANO 
auf D2 angeschlossen.

Da der Interrupt auf null zieht (also auf GND) kann doch nix kaputt 
gehen?

von Jan C. (ycplayer)


Lesenswert?

@ Rufus Τ. F.
Bedeutet das jetzt dass die Schaltung mit meinem Logik Level Converter 
nicht laufen kann?


Ich dachte hier vielleicht als Ersatz für den Converter einfach 10K 
Widerstände in reihe (bei SCL und SDA). (Low Budget)...
Da sonst nix anderes am Bus hängt.

PULLUP, wenn ich das Datenblatt richtig verstanden habe hat der Sensor 
schon 4,7K Pullups an SCL und SDA.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jan C. schrieb:
> Bedeutet das jetzt dass die Schaltung mit meinem Logik Level Converter
> nicht laufen kann?

Ja. Für I2C ist das ungeeignet.

> Ich dachte hier vielleicht als Ersatz für den Converter einfach 10K
> Widerstände in reihe (bei SCL und SDA).

Das wird erst recht nicht funktionieren.

von Jan C. (ycplayer)


Lesenswert?

Ach menno, wollte die Lautstärke meiner Anlage per Gesten steuern (wenn 
man mal Fettfinger oder so hat), heute, mal eben so , weil der Sensor 
gestern angekommen ist.


rufus schrieb:
>PCA9517 oder PCA9306 sind verbreitete Kandidaten, man kann sich aber
>auch 'ne diskrete Schaltung mit ein paar Mosfets zusammenbasteln:
>
>Beitrag "Level Shifter selbst bauen, ESP8266, I2C, Bi-Direktional - Welcher 
MOSFET?"

Also (wenn ich es richtig verstanden habe)

Variante 1 = PCA9517 oder PCA9306
Variante 2 = einen MEGA (3,3V) oder so bestellen
Variante 3 = ich gehe einfach nach der fragwürdigen Anleitung und 
schliesse direkt an.


Tor 1, Tor 2 oder Tor3.


hmm, ich wähle jezt Tor 3


Ich versuche es einfach. 5 € wenn der APDS-9960 abfackelt.


Ich werde gleich berichten.

von Einer K. (Gast)


Lesenswert?

Jan C. schrieb:
> hmm, ich wähle jezt Tor 3
OK ....



Jan C. schrieb:
> Aber generell, warum immer so feindselig wenn man mal auf dem Schlauch
> steht? (@Arduino Fanboy D. ich liebe Freibriefe)

Feindselig?
Wenn du meinst....

OK, die Unmengen an Dummbeutel Tutorials im Inet nerven wirklich 
etwas....

Aber noch viel schlimmer, sind die Leute, welche so schau sind, ins 
Datenblatt zu schauen, und TROTZDEM noch den Mist aus den offensichtlich 
fehlerbehafteten Tutorials nachbauen wollen.
Gegen das eigene Wissen!
Gegen jede Logik.
Es tut mir schon etwas weh, sowas beobachten zu müssen.

Jan C. schrieb:
> Da der Interrupt auf null zieht (also auf GND) kann doch nix kaputt
> gehen?
Und wenn er gerade nicht auf Null zieht, was ist dann?

Jan C. schrieb:
> Deshalb will ich wissen kann ich mir den Logik Level Converter sparen.
Du weißt die Antwort doch schon!
Du wusstest sie schon, bevor du hier geschrieben hast.
Warum solltest du mir glauben, wenn du dir noch nicht mal selber 
vertraust?
Deiner eigenen Denkleistung?
Deiner eigen Logik?
(War das wieder aggressiv?)

Jan C. schrieb:
> Ich weiß nicht ob es das Merkmal ist, doch bisher waren bei mir
> China-Breakout Zeugs mit blauer Platine 5V und mit Lila Platine 3,3V.
Das ist eine "Projektion"!
Du machst dir ein Bild von der Welt, projizierst dein Bild von der Welt 
auf die Welt, und dann hat sie sich gefälligst deiner Projektion gemäß 
zu verhalten.
Das kann klappen... ein Zeitchen lang ...
Aber als Tipp?
Nee, oder?

von Jan C. (ycplayer)


Lesenswert?

Na ja , das wars wohl.


Something went wrong during APDS-9960 init!

von Jan C. (ycplayer)


Lesenswert?

@Arduino Fanboy D.

Warum gibt es dann diese Anleitungen die offensichtlich zum Erfolg 
führen?

Kann es nicht sein das ich mir den Sensor wegen dem falschen LLC 
vernichtet habe?
(Oder weil ich falsch angeschlossen habe)


Kann es nicht sein das der normalerweise so richtig funktioniert und ein 
LLC (PCA9517 oder PCA9306 oder MOSFEETS) völlig unnötig ist.


Warum hat es bei anderen (mit Video) funktioniert? Und bei mir mit LLC 
nicht?

von Jan C. (ycplayer)


Lesenswert?

Sorry
nochmal @  Arduino Fanboy D.
"Projektion"!

Wie sieht es bei Dir aus mit blau und lila?

Hast Du mal nachgeschaut in Deinem Inventar, hast Du überhaupt Chinaware 
?

Hast Du Platinen in Blau die mit 3,3V laufen und Platinen in lila die 
mit 5V laufen?

von Einer K. (Gast)


Lesenswert?

Jan C. schrieb:
> Na ja , das wars wohl.
>
> Something went wrong during APDS-9960 init!

Glückwunsch!
Das könnte jetzt der Erfolg dessen sein, wenn man bewusst und 
absichtlich eine falsche Entscheidung trifft.
Ich hoffe, dass du damit etwas wichtiges gelernt hast.
Ich wünsche es dir!


Dein Levelshifter  ebay: 302248376300
Ist eindeutig als UART Levelshifter ausgewiesen.
Auch eindeutig, als solcher beschriftet.
Kein Wunder, dass der nicht funktioniert.
(zumindest mich wundert es nicht)

Dieser, ebay: 253050668603
Ist für I2C vorgesehen, und wird funktionieren.



-----------


Jan C. schrieb:
> Sorry
> nochmal @  Arduino Fanboy D.
> "Projektion"!
>
> Wie sieht es bei Dir aus mit blau und lila?
>
> Hast Du mal nachgeschaut in Deinem Inventar, hast Du überhaupt Chinaware
> ?
>
> Hast Du Platinen in Blau die mit 3,3V laufen und Platinen in lila die
> mit 5V laufen?
Sorry, aber mir scheint, du bist etwas verrückt, irre, oder was 
vergleichbares.
Evtl. kannst du das noch korrigieren, wenn du allmählich anfängst deine 
Hirnwindungen einzusetzen.
Z.B. um Wissen von Fantasie zu unterscheiden...


OK, bei Leuten, denen die Farbe eines Boards wichtiger ist, als das 
Datenblatt, da muss ich dann wirklich aufgeben.
Hopfen und Malz verloren.... (sagt man doch so, oder?)

von Einer K. (Gast)


Lesenswert?

Jan C. schrieb:
> Kann es nicht sein das der normalerweise so richtig funktioniert und ein
> LLC (PCA9517 oder PCA9306 oder MOSFEETS) völlig unnötig ist.
>
> Warum hat es bei anderen (mit Video) funktioniert? Und bei mir mit LLC
> nicht?

Irren ist menschlich
Im Irrtum verharren: Dummheit!
(mir unbekannte Quelle)

von Einer K. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Dein Levelshifter  ebay: 302248376300
Sorry, da habe ich den falschen erwischt.
Dieser ist gemeint, ebay: 282202265061

von Jan C. (ycplayer)


Lesenswert?

Arduino Fanboy D. schrieb:
> Sorry, aber mir scheint, du bist etwas verrückt, irre, oder was vergleichbares.

Nun gut, ich habe bisher immer nur Fragen gestellt.
Wenn Du meinst das ich weniger „drauf“ habe wie du, das kann gut sein, 
muss aber nicht.


Ich habe bis hier her versucht keine Antwort oder die Personen die da 
hinter steckt zu kritisieren oder schlecht zu texten.
Ich versuche Lösungen zu finden und wenn ich hier schreibe hat das auch 
den Sinn Lesern die unsere Diskussion folgen zu helfen.
Ich habe keine Lust hier in dem Forum auf Intelligenzmessung.
Gerne gebe ich Dir persönliche Kontaktmöglichkeiten und wir können uns 
in Ruhe duellieren.


Zurück zum Thema.


Es gibt (für z.B. ARDUINO) Module in blau und lila. Ich gehe mal stark 
davon aus das die Farbe von den Produktionsschritten in China abhängt. 
(Und mehr nicht.)

Schön wäre es, Module einfach an der Platinen Farbe zu unterscheiden, 
was bei mir bisher der Fall war. Alle meine (ca. 20), aus China 
bestellten Module sind halt 5V = Blau 3,3V = Lila.

@ Arduino Fanboy D. wohl nur Zufall?



Zum Beispiel BOSCH BMP 280 (Temperatur) habe ich als China Nachbau 
geliefert bekommen.


Der blaue läuft einwandfrei auf dem NANO (5V).

Der Lila (gleiches Datenblatt!!!) läuft nur mit 3,3V.


Ach ja, jetzt funktioniert der Sensor einwandfrei ohne Levelshifter.
Ich musste nur ein bisschen an der Verkabelung wackeln, das war´s. 
(ChinaWare)


So jetzt nochmal zu Arduino Fanboy D.
>Glückwunsch!
>Das könnte jetzt der Erfolg dessen sein, wenn man bewusst und
>absichtlich eine falsche Entscheidung trifft.
>Ich hoffe, dass du damit etwas wichtiges gelernt hast.
>Ich wünsche es dir!
 Was ist jetzt ? Das Ding läuft, wer versteht die Realität nicht so ganz 
?

von Jan C. (ycplayer)


Lesenswert?

Für alle anderen, so läuft es auch bei mir mit dem APDS-9960 (aus 
China):

https://www.youtube.com/watch?v=d8txEBNaTw0

von Einer K. (Gast)


Lesenswert?

Jan C. schrieb:
> wer versteht die Realität nicht so ganz?
Ich wünsche dir viel Erfolg auf deinen Wegen!

Erstaunlicherweise war irgendwie von Anfang an recht klar, dass du deine 
Entscheidungen schon vor dem ersten Posting getroffen hast.

Freibrief?
Nicht von mir!
Auch keine Einsicht bei mir!
Das Datenblatt ist auf meiner Seite.

Deine Argumentation "tuts doch" ist ebenso schwach, wie mit der Farbe 
deiner Boards.

Übrigens, wenn auch nicht wirklich vergleichbar:
Es gibt Leute, welche eine Bank überfallen haben, aber nicht erwischt 
wurden.
Ist das schon ein Freibrief?

-------

Jan C. schrieb:
> Ich habe keine Lust hier in dem Forum auf Intelligenzmessung.
;-)

von Jan C. (ycplayer)


Lesenswert?

Jetzt geht auch schon: Nach links wischen, Musik leiser, nach rechts 
wischen Musik lauter.

@Arduino Fanboy D.

Hey, was ist los bei Dir?

Brauchst Du Hilfe?

Hast Du es nicht verstanden?

Das Datenblatt das Du da hast, stimmt das überhaupt mit meinem (China 
Nachbau) Modul überein?

Die China Dinger scheinen am I2C doch mit 5 V Pegel klar zu kommen. 
Zumindest das eine APDS-9960 das ich habe und das der aus dem Video hat.
Das sind Tatsachen. Was lieferst Du?

>Erstaunlicherweise war irgendwie von Anfang an recht klar, dass du deine 
Entscheidungen schon vor dem ersten Posting getroffen hast.

Doch was hat jetzt eins Deiner Post gebracht ? NIX brauchbares!

Hast Du mal nach blau und lila geschaut, sieht es bei Dir anders aus 
oder hast Du die garnicht und laberst nur theoretisch?

Was habe ich bisher rausgefunden, mein MODUL läuft direkt am NANO!

In der Praxis vom Youtube Video und in meiner Realität hat es sich doch 
bewährt, es funktioniert ohne Converter.


Warum drängst Du jetzt darauf unbedingt recht zu haben. Los beweise. Wie 
läuft den Dein Gesten Sensor so?

von Einer K. (Gast)


Lesenswert?

Alles klar!
Keine Fragen!
Alles klar!

Deine Ansichten machen mich so traurig und sind so leer.....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.