Analoge Messung von 12 auf 10 Bit wandeln

Hallo zusammen, ich habe an einem Arduino so einen Helligkeitssensor(https://www.ebay.de/itm/Lichtsensor-Foto-Diode-Fotowiderstand-Modul-Arduino-Dammerungsschalter-Pi-/292199549902) an A0. Die Messwerte liegen wie gewünscht zwischen 0 und 1023. 0 ist größte Helligkeit, 1023 ist absolute Dunkelheit. Schließe ich das Teil an einen ADS1015 an, bekomme ich andere Werte (wegen 10 Bit Auflösung). Diese liegen zuerst bei 1452 bei absoluter Dunkelheit, fallen mit zunehmender Helligkeit gegen 0 und steigen plötzlich ab einer bestimmten Helligkeit auf über 4000. Wie kann man sich dieses Verhalten erklären? Lässt sich der ADS irgendwie austricksen, um die gleichen 8 Bit - Werte wie ein Arduino an A0, A1 zu liefern.

Gruß Fred

Ähhmmm…

Mit 10 Bit können Werte von 0 bis 1023 repräsentiert werden.
Arduino/AVR ADC liefert in der Regel 10 Bit Werte

0 bis 1023 sind 10 Bit (nicht 8 ) Der ADS1015 kann 12 Bit (also 0 bis 4096 4095)

Dein Link führt zu einem Modul, das kein analoges Signal ausgibt, sondern ein digitales. Mit dem Poti auf dem Modul kann man die "Schaltschwelle" einstellen. Am Ausgang (DO steht wohl für Digital Output) wird entweder HIGH oder LOW ausgegeben. Das an einen analogen Eingan anzuschließen macht nur bedingt Sinn.

Wie hast du das am Arduino bzw. ADS1015 angeschlossen?

Ähm... sorry, die Hitze. das Modul im Link ist falsch. Ich habe so eins mit 4 Pins, das auch analoge Werte liefert. Und das mit dem ADS1015 stimmt auch (12 Bit). Aber warum sinkt erst der Messwert, um dann sprunghaft wieder zu steigen.

Aber warum sinkt erst der Messwert, um dann sprunghaft wieder zu steigen.

Das kann ich dir auch nicht sagen…
(Weil du mir keine Chance gibst)

Außer, zu sagen: “Irgendwas wirst du wohl falsch machen.”

freddy64: Ähm... sorry, die Hitze. das Modul im Link ist falsch. Ich habe so eins mit 4 Pins, das auch analoge Werte liefert. Und das mit dem ADS1015 stimmt auch (12 Bit). Aber warum sinkt erst der Messwert, um dann sprunghaft wieder zu steigen.

Dann gib uns mal den Link zu dem Modul, das Du hast. Grüße Uwe

Geht der Eingang des AD-Wandlers in den Minusbereich und ist als Single-End konfiguriert? Dies könnte z.B. so einen Sprung auf 4000 oder mehr bewirken. Aber wie schon vorher von anderen gesagt wurde, ohne Code und Schaltplan können wir nur raten...

Hab den ADS1015 entsorgt. Damit gibt es zu viele Probleme. In verschiedenen anderen Foren gibt es ganze Bücher über das merkwürdige Verhalten dieses Bausteins. Der ADS1115 soll da besser sein. Egal, ich stricke jetzt da auch wie schon in einem anderen Projekt einen Arduino Pro Mini als Port-Extender dran und lasse die 2 Teile über Serial kommunizieren. Funktioniert zwischen NodeMCU und 5V Arduino auch ohne Pegelanpassung. Die Widerstände, die ich da vorher dazwischen hatte, musste ich sogar entfernen, da sonst der NodeMCU vom Arduino keine Daten empfangen hat. Klingt komisch, ist aber so. Hat jemand eine Idee, wie man das über I2C machen könnte? Dann hätte ich Serial für das Debugging frei.

freddy64: Hat jemand eine Idee, wie man das über I2C machen könnte?

Ich verwende einen Logikpegelkonverter.

Hi

Da sowohl der ADS1015 wie der ADS1115 mit dem gleichen Datenblatt erschlagen werden, verstehe ich Deine Entscheidung nicht wirklich. Beim ADS1115 wirst Du wohl 'alte Bekannte' wieder treffen - vll. mit mehr Auflösung (hatte das DaBla die Tage offen, kA, wo der Unterschied bestand), aber sonst 'mit dem gleichen Leid'.

Schreibe, ob's sich gebessert hat - würde mich jetzt eher wundern, aber wenn doch, immer her damit!! Nachbauer suchen genau nach solchen Informationen.

MfG

Habe bei Messungen festgestellt, dass der ADS1015 unter 0.3V Eingangsspannung plötzlich spinnt. Und was noch sonderbarer ist, in dem Moment liefern alle 4 analogen Pins fast die gleichen kuriosen Messwerte, egal ob da ein Sensor dran hängt oder nicht. Entweder stimmt da etwas in der adafruit lib nicht, keine Ahnung. Hab keinen Bock mehr, Zeit für diesen Müll zu verschwenden. Deshalb jetzt Raspi ZeroW mit RasPIO Analog Zero. (https://rasp.io/analogzero). Ist zwar etwas teurer als NodeMCU mit zusätzlichen Modulen, aber funktioniert 1A. Alle Sensoren verdrahtet, dazu ein 7" Touch Display dran, fertig. WiFi ist schon integriert, SD Card Modul brauche ich auch nicht mehr, weil ja der ZeroW schon eine SD-Card hat. Und alles ohne Python.... geil... Ich hasse diese baby amateur script sprache. Frisst nur den Prozessor auf. C++ ist halt unsere Hardware Sprache.