Forum: Mikrocontroller und Digitale Elektronik ESP32 mittels Widerstand Länge erkennen?


von Carsten W. (carsten_w454)


Lesenswert?

Hallo Community,
ich hab ein Problem:
Mittels ESP32 will ich ein paar LEDs ansteuern (nicht das eigentliche 
Problem) Nun würd ich aber gern ein "Plug und Play" system einbauen. 
Bedeutet: Ich hab 2 Elemente mit der gleichen Länge und einem 
Widerstand. Nur der letzte Widerstand geht immer auf GND. Aber aus 
irgendeinem Grund bekomme ich keine ordentliche Widerstandsmessung 
(gleicher Widerstand) her. Die sollten sich ja meines Wissens nach 
addieren. Aber eine Division mit dem Einzelwert ergibt keine klaren 
Werte. Hilfe irgendwer?
1
 raw = analogRead(MessPin);
2
  if(raw){
3
    buffer = raw * Vin;
4
    Vout = (buffer)/4096.0;
5
    buffer = (Vin/Vout) - 1;
6
    R2 = R1 * buffer;
7
8
    Serial.print("Vout: ");
9
    Serial.println(Vout);
10
11
    
12
    Serial.print("R2: ");
13
    Serial.println(R2);
14
    delay(1000);
15
  }

Mod: bitte die [c] Tags (wie in der Anleitung über jeder Eingabgebox bei 
"Wichtige Regeln - erst lesen, dann posten!" beschrieben) künftig selber 
einfügen.

: Bearbeitet durch Moderator
von Sebastian R. (sebastian_r569)


Lesenswert?

Als was sind deine Variablen deklariert? Als Float?

Die Schaltung dazu wäre noch schön. Plus eine Defintion von "Elemente"

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Der ADC der ESP32 ist ziemlich ungenau. Da musst du mal im Datasheet 
nachschauen ob die Genauigkeit reicht.

von Carsten W. (carsten_w454)


Lesenswert?

Hier die Vars-Def:
int analogValue=0;
float Vin = 3.3;
float buffer = 0;
float Vout = 0;

Die Schaltung int ganz easy:
Vom Datakanal zwei Widerstände. Einer auf -, einer auf +. Und mit jedem 
"Element" wird der Widerstand auf der +-Seite erhöht.

Die Elemente sind eigentlich egal, da quasi von der Messung unabhängige 
Kanäle am ESP nutzen. Aber sind dann z.B. 10LEDs. Der ESP soll erkennen 
obs jetzt 10 sind oder 20 etc. Grund: Ich hab bewegliches Licht, wo ich 
unterschiedliche Längen brauch und ich will nicht immer rumpfuschen 
müssen.

von Udo S. (urschmitt)


Lesenswert?

Carsten W. schrieb:
> Die Schaltung int ganz easy:

Einen Schaltplan mit Papier und Bleistift skizzieren und abfotografieren 
ist noch easier. Und hat vor allem weniger Spielraum zur 
Fehlinterpretation als Schaltungsprosa.

Erst redest du nur von Widerständen und dann sind da auf einmal Leds.
Was denn nun?

von Jens M. (schuchkleisser)


Lesenswert?

Udo S. schrieb:
> Erst redest du nur von Widerständen und dann sind da auf einmal Leds.
> Was denn nun?

Warum ist das für Studierte so schwer zu verstehen was da so geschrieben 
steht???

Er will LED-Module flexibel anstecken können.
Dazu ist jeweils ein Widerstand mitverbaut, der mit den LEDs nix zu tun 
hat.
Nun soll das Ding erkennen, wie viele Widerstände (sprich: LED-Module) 
angedockt sind, damit es die Länge der LEDs korrekt ansteuern kann.
Und das geht, in Grenzen, in dem man einen Pulldown am ESP baut, und an 
jedem Modul einen Pullup.
Man hat dann 1/2 Fullscale = 1 Modul, 2/3 = 2 Module, 3/4 = 3 Module 
usw.
Leider ist der ADC so dermaßen Müll, das sowas nur mit wenigen Modulen 
zuverlässig funktioniert.

Falls es sich um seriell angesteuerte LEDs handelt, wäre es vmtl. 
einfacher, das Ende der Datenleitung wieder zurückzuführen, wenn da was 
ankommt ist schluss.
Die Länge via Dipschalter o.ä. vorzugeben ist zu einfach, zu störsicher 
und zu zuverlässig?

von Wastl (hartundweichware)


Lesenswert?

Carsten W. schrieb:
> Hier die Vars-Def:

Und die Variable "raw" braucht man nicht deklarieren?

Was ist denn so schwierig ein komplettes kleines Progrämmchen
(als Anhang) zu posten? Ohhh määän ....

von Carsten W. (carsten_w454)


Lesenswert?

Danke Jens lach Genau meine Meinung. Und Du hast es perfekt 
analysiert. Leider kann ich als Frischling nur alle halbe Stunde was 
schreiben...

Und danke für Deine Infos. Verdammt. Wollt ich zwar nicht hören aber ist 
halt leider so ;-) Bin zwar ein fauler S.... Aber dann wirds halt doch 
so sein das ichs per DIPs machen. Sänks


Und Wastl: Eigentlich unwichtig. Habs mit dem hier schon probiert:
int raw = 0;
und auch schon mit dem hier:
float raw = 0;
Mit dem gleichen Ergebnis.

: Bearbeitet durch User
von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Jens M. schrieb:
> Warum ist das für Studierte so schwer zu verstehen was da so geschrieben
> steht???

Neidisch? Aber weißt du was, ich überlasse dir gerne den Patienten. 
Gratulation dass du im Glaskugelwettbewerb mit Salamischeiben gewonnen 
hast.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jens M. schrieb:
> Warum ist das für Studierte so schwer zu verstehen was da so geschrieben
> steht???
Warum ist es für Neulinge so unheimlich schwer, einen Schaltplan zu 
malen? Es ist nunmal ganz einfach so: Schaltpläne sind das weltweit 
sprachübergreifende Kommunikationsmittel der Elektronik. Da kann ich 
ohne eine zusätzliche Sprache zu lernen sogar mit einem Chinesen und 
einem Inder kommunizieren.

Carsten W. schrieb:
> Danke Jens lach Genau meine Meinung. Und Du hast es perfekt analysiert.
> Leider kann ich als Frischling nur alle halbe Stunde was schreiben...
Chance verpasst: in der Zeit könntest du dann den Schaltplan malen. Du 
wirst ihn in 2 Jahren dann sowieso brauchen, damit du nachvollziehen 
kannst, was du da gebastelt hast. Aber das wirst du wie gesagt erst in 2 
Jahren erkennen.

Zurück zur Aufgabe:

Carsten W. schrieb:
> Aber aus irgendeinem Grund bekomme ich keine ordentliche
> Widerstandsmessung (gleicher Widerstand) her. Die sollten sich ja meines
> Wissens nach addieren.
Die Grundlagen: bei Reihenschaltung addieren sich die Widerstände, bei 
Parallelschaltung wird der Wiederstandswert dividiert.

Mal angenommen, deine Widerstände werden paralell geschaltet, dann sieht 
deine Schaltung so aus:
1
     Vcc -----------o------o------o---- ... ---.
2
                    |      |      |            |
3
                   10k    10k    10k    ...   10k  LEDs
4
                    |      |      |            |
5
   ESP Analog In <--o------o------o---- ... ---'
6
                    |
7
                   10k  Pulldown
8
                    |
9
     GND -----------'
Dann bekommst du bei 1 LED noch 1/2 Vcc als Spannung heraus, bei 2 LEDs 
dann 2/3 Vcc, bei  3 LEDs kommen 3/4 Vcc usw. (einfach zu Übung mal 
nachrechnen).

Mit 3V3 als Vcc sieht es also so aus:
1
LEDs   Verhältnis   ESP Analog In
2
0      0/1 * Vcc    0V
3
1      1/2 * Vcc    1,65V     
4
2      2/3  "       2,20V
5
3      3/4  "       2,47V
6
4      4/5  "       2,64V   
7
5      5/6          2,75V
8
6      6/7          2,82V
9
7      7/8          2,88V
10
8      8/9          2,93V
11
9      9/10         2,97V
12
10     10/11        3,00V
13
:
14
:
Weil jetzt der ADC des ESP wegen Nichtlinearitäten aber gerade in 
Richtung Vcc immer schlechter wird, kommt dann nur noch Käse heraus.

: Bearbeitet durch Moderator
von Jens M. (schuchkleisser)


Lesenswert?

Lothar M. schrieb:
> Warum ist es für Neulinge so unheimlich schwer, einen Schaltplan zu
> malen?

Das kann ich dir auch nicht sagen.
Vielleicht trauen sich viele auch einfach nicht, einen Kuli & einen 
Zettel zu nehmen, das aufzupinnen, ein Bild zu machen und dann geht das 
Gemotze los "kannst du das nicht passend drehen?", "sauberes Papier war 
wohl alle?", "2MB für einen einfachen Spannungsteiler, größer hatten 
wir's wohl nicht" usw. usf.
Ja, bei vielen Sachen würde der Schaltplan helfen, und meistens würde er 
sogar dem OP helfen, wenn er ihn richtig gemalt hat den Fehler auch 
direkt zu sehen.
Aber mal ehrlich, ein Spannungsteiler? Dafür brauchts keinen Plan.

Hannes J. schrieb:
> Neidisch?

Neidisch bist du wohl eher, weil ich verstanden habe was er meint, und 
du halt nicht.
LOL
Schönen Tag noch, Schlaumeier! Und freu dich über die "Lesenswerten".
Beleidigungen geben Plus, Hilfreiches ein Minus. Schick.
Evtl. sollte der Server einfach die Werte "*-1" anzeigen. :D

von Rainer W. (rawi)


Lesenswert?

Jens M. schrieb:
> Warum ist das für Studierte so schwer zu verstehen was da so geschrieben
> steht???

Weil bei denen der Deutschunterricht schon so lange her ist, dass sie 
sprachlich für die Beschreibung von Elektronik inzwischen auf 
SCHALTPLÄNE umgeschwenkt sind.

Lothar M. schrieb:
> ... bei Parallelschaltung wird der Wiederstandswert dividiert.

oh, oh

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rainer W. schrieb:
> Lothar M. schrieb:
>> der Wiederstandswert
> oh, oh
Hölle! Schon wider! Aber der Rest ist richtig... ;-)

von Carsten W. (carsten_w454)


Lesenswert?

Lol. Sorry. Leute das ich kein Elektroniker, Elektriker, Maler bin. Und 
an die ASCII-Art (danke an den Reminder @Lodda ;-) hab ich einfach nicht 
gedacht.

Und ich wollte jetzt auch keine Diskussion zwischen Studierten und 
Praxisorientierten starten. Verzweiflung ;-)

Die Aussage: ADC im ESP ist müll hat mir schon gereicht. Wrds anders 
lösen. Danke an alle. Hat Befürchtungen das ich zu doof bin.
1
VCC ---- 10 K ----- 10K---.
2
                          |
3
DP -----------------------.
4
       |
5
      100K
6
       |
7
GND ---.

Mod: bitte künftig die [pre] Tags für vorformatierten Text verwenden. 
Die Mobilnutzer sehen dann auch was Sinnvolles.

: Bearbeitet durch Moderator
von Jens M. (schuchkleisser)


Lesenswert?

Mit so einer Reihenschaltung ginge es auch, aber das Prinzip bleibt: Die 
Auflösung des ADC reicht mit Glück für 10 Module. Eher 6-8.

von Rainer W. (rawi)


Lesenswert?

Statt die Spannung an einem Spannungsteiler mit dem ADC direkt zu 
messen, könnte man auch die Ladezeit für einen Kondensator mit dem 
Komparator erfassen (falls die ESP32-Variante so einen besitzt).
https://docs.espressif.com/projects/esp-idf/en/stable/esp32h2/api-reference/peripherals/ana_cmpr.html

Beitrag #7714189 wurde vom Autor gelöscht.
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Lothar M. schrieb:

> Mit 3V3 als Vcc sieht es also so aus:
>
1
> LEDs   Verhältnis   ESP Analog In
2
> 0      0/1 * Vcc    0V
3
> 1      1/2 * Vcc    1,65V
4
> 2      2/3  "       2,20V
5
> 3      3/4  "       2,47V
6
> 4      4/5  "       2,64V
7
> 5      5/6          2,75V
8
> 6      6/7          2,82V
9
> 7      7/8          2,88V
10
> 8      8/9          2,93V
11
> 9      9/10         2,97V
12
> 10     10/11        3,00V
13
> :
14
> :
15
>
> Weil jetzt der ADC des ESP wegen Nichtlinearitäten aber gerade in
> Richtung Vcc immer schlechter wird, kommt dann nur noch Käse heraus.

Nunja, mit besser an die Aufgabe angepasster Dimensionierung könnte man 
ein Ergebnis erzielen, was selbst mit der schlechten ADC der ESP noch 
hinreichend treffsicher ist.

Z.B.: Einfach den Pulldown durch 1k ersetzen, Rest unverändert.

Dann liegen erstens die kritischen Fälle dort, wo die Kennlinie des ADC 
einer linearen Funktion noch am nächsten kommt und zweitens wird auch 
der "Hub" größer. Statt nur 30mV Unterschied zwischen den Fällen mit 9 
und mit 10 Modulen sind es dann knapp 90mV.

Nach der Grafik:
https://docs.espressif.com/projects/esp-idf/en/v4.4/esp32/_images/adc-noise-graph.jpg

Sollte das selbst ohne die von Espessif zur Verbesserung der 
ADC-Ergebnisse  vorgeschlagenen Maßnahmen problemlos reichen.

von J. T. (chaoskind)


Lesenswert?

Lothar M. schrieb:
> Die Grundlagen: bei Reihenschaltung addieren sich die Widerstände, bei
> Parallelschaltung wird der Wiederstandswert dividiert.

Alternativ kann man bei Parallelschaltung auch einfach die Leitwerte 
addieren.
Und zum Wiederstandswert sagen wir mal nix :D

Lothar M. schrieb:
> Warum ist es für Neulinge so unheimlich schwer, einen Schaltplan zu
> malen? Es ist nunmal ganz einfach so: Schaltpläne sind das weltweit
> sprachübergreifende Kommunikationsmittel der Elektronik. Da kann ich
> ohne eine zusätzliche Sprache zu lernen sogar mit einem Chinesen und
> einem Inder kommunizieren.

Weils ein Neuling eventuell einfach nicht weiß, eben weil er neu ist? 
Die Sprache des Elektronikers musstest du ja schließlich auch erst mal 
lernen, bevor du dich ohne eine neue Sprache zu lernen mit dem Chinesen 
austauschen kannst.

Und ganz ohne Sprache geht es auch nicht immer, nehmen wir an, du hast 
ne Superduperschaltung, bei der aber aus unbekannten Gründen immer R42 
durchbrennt. Dann wird der Schaltplan alleine auch nicht helfen, ohne 
die Worte "Warum brennt R42 immer durch?". Zumindest nicht, wenn die 
Schaltung als solche ordentlich ist, und es eben an einem Fehler liegt, 
der "entstanden" ist, und nicht schon bei der Schaltungsentwicklung mit 
eingebaut wurde.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Ob S. schrieb:
> Sollte das selbst ohne die von Espessif zur Verbesserung der
> ADC-Ergebnisse  vorgeschlagenen Maßnahmen problemlos reichen.

Einen Kondensator vorzusehen und die Spannung dann zur Rauschreduzierung 
mehrfach abzutasten, sollte doch kein unüberwindliches Hindernis sein 
;-)

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Rainer W. schrieb:
> Ob S. schrieb:
>> Sollte das selbst ohne die von Espessif zur Verbesserung der
>> ADC-Ergebnisse  vorgeschlagenen Maßnahmen problemlos reichen.
>
> Einen Kondensator vorzusehen und die Spannung dann zur Rauschreduzierung
> mehrfach abzutasten, sollte doch kein unüberwindliches Hindernis sein
> ;-)

Es spricht sogar nicht mal irgendwas dagegen, beides zu kombinieren:

- sinnvoll dimensionierte Hardware
- sinnvoll implementierte Software

Nö, das ist im Gegenteil sogar der Weg, den man normalerweise gehen 
sollte...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

J. T. schrieb:
> Die Sprache des Elektronikers musstest du ja schließlich auch erst mal
> lernen
Lies den Thread nochmal durch. Es lag nicht daran, dass die Sprache 
nicht geläufig war, sondern daran, dass trotz Computer kein Tool zur 
Erstellung eines Schaltplans greifbar war.

> nehmen wir an, du hast ne Superduperschaltung, bei der aber aus
> unbekannten Gründen immer R42 durchbrennt. Dann wird der Schaltplan
> alleine auch nicht helfen, ohne die Worte "Warum brennt R42 immer
> durch?".
Lies mal den Eröffnungspost, denn genau sowas heben wir hier. Die 
einzige Aussage dort ist im Grunde "Ich habe eine Schaltung und es 
kommen keine brauchbaren Werte heraus."

Deshalb wäre es natürlich sinnvoll, auch dazuzuschreiben, was man denn 
von  der Schaltung (samt Programm) für klare Werte erwartet hätte, und 
was denn stattdessen herauskommt.

> Zumindest nicht, wenn die Schaltung als solche ordentlich ist,
> und es eben an einem Fehler liegt, der "entstanden" ist, und nicht schon
> bei der Schaltungsentwicklung mit eingebaut wurde.
Dass darüber hinaus oft auch ein Foto vom eigentlichen Aufbau sinnvoll 
wäre, liegt auf der Hand.

Rainer W. schrieb:
> Einen Kondensator vorzusehen und die Spannung dann zur Rauschreduzierung
> mehrfach abzutasten, sollte doch kein unüberwindliches Hindernis sein
Das Problem beim ESP ist nicht unbedingt das Rauschen.

Ob S. schrieb:
> ein Ergebnis erzielen, was selbst mit der schlechten ADC der ESP noch
> hinreichend treffsicher ist.
Weil laut aktualisiertem Schaltplan die LEDs sowieso in Reihe geschaltet 
werden und damit eine Rückleitung von der letzten LED zum µC vorhanden 
ist, würde ich wie vorgeschlagen das Datensignal zurückführen. Und wenns 
auf dieser Leitung zappelt, ist das Ende der Reihe erreicht. Dann reicht 
ein normaler Eingangspin mit digitalen Schaltschwellen zum Auswerten, ob 
die LED-Kette durchgetaktet wurde.

: Bearbeitet durch Moderator
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Lothar M. schrieb:

> Weil laut aktualisiertem Schaltplan die LEDs sowieso in Reihe geschaltet
> werden und damit eine Rückleitung von der letzten LED zum µC vorhanden
> ist, würde ich wie vorgeschlagen das Datensignal zurückführen. Und wenns
> auf dieser Leitung zappelt, ist das Ende der Reihe erreicht. Dann reicht
> ein normaler Eingangspin mit digitalen Schaltschwellen zum Auswerten, ob
> die LED-Kette durchgetaktet wurde.

Klar, das geht.

Man muss aber regelmäßig Dummy-Daten zur "Längenmessung" rausschicken, 
sonst bekommt man eine Verlängerung der Kette nicht mit. Ob das am Ende 
einfacher ist, als der primitive Ansatz mit einem brauchbar 
dimensionierten Spannungsteiler...

von Rainer W. (rawi)


Lesenswert?

Lothar M. schrieb:
> Das Problem beim ESP ist nicht unbedingt das Rauschen.

Deshalb das Zitat, wo auf die Graphik von Espressif zur Wirkung von 
Kondensator und Mehrfachabtastung eingegangen wird.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ob S. schrieb:
> Man muss aber regelmäßig Dummy-Daten zur "Längenmessung" rausschicken,
> sonst bekommt man eine Verlängerung der Kette nicht mit.
1. wer da im Betrieb unter Spannung was dazusteckt, der sollte sowieso 
sofort der elektrische Schalg treffen. Und zum Programmbeginn kann man 
ja einfach mal "alles schwarz" durchtakten, bis man das Ende erkennt.

2. man kann ja einfach immer 1 LED mehr als nötig ansteuern, dann 
bekommt man mit, wenn einer die Kette auseinander- und wieder 
zusammensteckt und kann eine Neuinitialisierung antriggern.

> Ob das am Ende einfacher ist, als der primitive Ansatz mit einem
> brauchbar dimensionierten Spannungsteiler.
Es ist zuverlässiger und ich würde die Zuverlässigkeit voran stellen. 
Denn wir haben noch nicht über hochohmige Steckverbinder und ähnliche 
Nebeneffekte gesprochen, die zwar ein digitales Signal noch durchlassen, 
die analoge Auswertung aber sicher ausser Tritt bringen.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Lothar M. schrieb:

> 1. wer da im Betrieb unter Spannung was dazusteckt, der sollte sowieso
> sofort der elektrische Schalg treffen.

Natürlich. Aber, auch wenn es für dich überraschend sein mag: Es kommt 
tatsächlich in der Praxis vor, das vollkommene elektronische Laien 
irgendwelche elektrnischen Schaltungen zusammenstecken. Ja, ich würde 
sogar so weit gehen, das zum Normalfall zu erklären.

> Und zum Programmbeginn kann man
> ja einfach mal "alles schwarz" durchtakten, bis man das Ende erkennt.

Ganz schlechter Ansatz. Ein OTA eingefangener Glitch genügt für eine 
falsche Erkennung. Regelmäßige Erkennung ist ganz sicher zuverlässiger 
als einmalige.

> 2. man kann ja einfach immer 1 LED mehr als nötig ansteuern

Das ist ein richtiger Scheißansatz, komplett nicht durchdacht. 
Verschiebt das Problem nur von der Unfähigkeit zur Erkennung der 
Verlängerung der Kette zur Unfähigkeit zur Erkennung der Verkürzung der 
Kette. Was im Sinne der von dir beschriebenen Geamtfunktionalität sogar 
ziemlich fatal wäre.

> Es ist zuverlässiger
Das behauptest du. Jeglichen Nachweis dafür bleibst du aber schuldig.

Ich hingegen würde behaupten: eine "out of band"-Erkennung ist hier 
deutlich zuverlässiger.

Aber klar: letztlich könnte man beide Ansätze auch wieder kombinieren, 
um in der Summe eine noch höhere Zuverlässigkeit zu erreichen.

von Rainer W. (rawi)


Lesenswert?

Ob S. schrieb:
>> 2. man kann ja einfach immer 1 LED mehr als nötig ansteuern
>
> Das ist ein richtiger Scheißansatz, komplett nicht durchdacht.
> Verschiebt das Problem nur von der Unfähigkeit zur Erkennung der
> Verlängerung der Kette zur Unfähigkeit zur Erkennung der Verkürzung der
> Kette. Was im Sinne der von dir beschriebenen Geamtfunktionalität sogar
> ziemlich fatal wäre.

Vor allen Dingen kann ich mir nicht vorstellen, dass jemand, der im 
Betrieb an der Kette rumsteckt, die Rückmeldeleitung von der letzten LED 
ebenfalls korrekt umsteckt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ob S. schrieb:
> Ein OTA eingefangener Glitch genügt für eine falsche Erkennung.
Das Protokoll einer LED ist länger als ein Glitch.

> Lothar M. schrieb:
>> man kann ja einfach immer 1 LED mehr als nötig ansteuern
> Das ist ein richtiger Scheißansatz, komplett nicht durchdacht.
Natürlich ist das in 2 Minuten fernab von "durchdacht". Trotzdem hast du 
das Konzept offenbar einfach nicht richtig verstanden, findest aber 
trotzdem schnell mal rüde Worte.

Ich würde in jedem Zyklus so viele LEDs ansteuern, wie im letzten 
Zyklus erkannt wurden. Und dann zusätzlich 1 LED "vornedran" hängen.

Wenn die Daten für die überzählige LED unerwartet früh ankommen, dann 
ist das ein Fehler, irgendwo muss die Kette eine Abkürzung gefunden 
haben.

Wenn die Daten für diese zusätzliche LED gar nicht wieder beim µC 
ankommen, hat der unbedarfte regelmäßige User die Kette auseinander 
gesteckt und die Länge muss erst mal wieder neu gescannt werden.

Das wird beim "ohmschen Ansatz" auch passieren, denn eine unterbrochene 
Kette ist in etwa wie "maximale Länge".

Aber wers einfach haben will, soll sich einfach die bis zu 10 oder 11 
LEDs wahrscheinlich funktionierende Widerstandsreihenschaltung antun.

Rainer W. schrieb:
> Vor allen Dingen kann ich mir nicht vorstellen, dass jemand, der im
> Betrieb an der Kette rumsteckt, die Rückmeldeleitung von der letzten LED
> ebenfalls korrekt umsteckt.
Wenn der letzte Teilnehmer nicht "automatisch" per Design richtig 
gesteckt werden muss, dann ist das Konzept generell zum Scheitern 
verurteilt.

: Bearbeitet durch Moderator
von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Lothar M. schrieb:

> Das Protokoll einer LED ist länger als ein Glitch.

Das ist wohl wahr. Würde aber erfordern, dass die Erkennung nicht nur 
auf "Pinwackeln" basieren kann, sondern das Protokoll tatsächlich lesen 
können muss. Damit führst du eine ganz erhebliche zusätzliche 
Komplexität ein. Ob das gut sein kann für die Zuverlässigkeit der 
simplen Präsenz-Erkennung? Ich habe da meine Zweifel...

> Das wird beim "ohmschen Ansatz" auch passieren, denn eine unterbrochene
> Kette ist in etwa wie "maximale Länge".

Oh nein. Die gemessene Spannung in diesen beiden Situationen 
unterscheidet sich doch ganz erheblich, nämlich zwischen 0V (offen) und 
mindestens Vcc/11 = 0,3V (ein Modul). Zumindest bei meinem Vorschlag zu 
Dimensionierung.

> Aber wers einfach haben will, soll sich einfach die bis zu 10 oder 11
> LEDs wahrscheinlich funktionierende Widerstandsreihenschaltung antun.

Man muss nicht die Widerstande in Reihe schalten. Das war auch nicht, 
was du ursprünglich diskutiert und mit Schaltplan und korrekt 
berechneten Beispiel (einer ziemlich idiotischen Dimensionierung) 
unterlegt hattest.

Vcc muss sowieso an jedes Modul geführt werden, die Messleitung kann als 
gemeinsame "Busleitung" ausgeführt sein. Die Widerstände der Module 
können also durchaus parallel geschaltet sein, ohne dass die Zahl der 
nötigen Strippen dadurch wächst. Sprich: es gibt keinerlei 
Notwendigkeit, das Widerstandsnetzwerk zur Erkennung auch in Serie zu 
schalten, selbst wenn die LED-Module selber das funktional natürlich 
sind.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ob S. schrieb:
> Das war auch nicht, was du ursprünglich diskutiert und mit Schaltplan
> und korrekt berechneten Beispiel (einer ziemlich idiotischen
> Dimensionierung) unterlegt hattest.
Könntest du bitte das nächste Mal statt "idiotisch" einfach nur "in 
meinen Augen ungeignet" schreiben? Denn eines ist völlig sicher: ich 
brauche mir von keinem auf seine ultimative Idee fixierten auf 
irgendeine Art Idiotie ankreiden lassen.

> Man muss nicht die Widerstande in Reihe schalten.
Der TO wollte es so. Das kam allerdings erst nachdem der Irrweg mit der 
Parallelschaltung kam, wo ratenderweise

Jens M. schrieb:
> und an jedem Modul einen Pullup

und diese Annahme dann anscheinend bestätigt wurde, als

Carsten W. schrieb:
> Du hast es perfekt analysiert.


Ob S. schrieb:
> Zumindest bei meinem Vorschlag zu Dimensionierung.
Falls du es übersehen hast: der Carsten wird die Sackgasse mit dem ADC 
nicht gehen.

Ich bin fertig hier.

von Rainer W. (rawi)


Lesenswert?

Ob S. schrieb:
> Das ist wohl wahr. Würde aber erfordern, dass die Erkennung nicht nur
> auf "Pinwackeln" basieren kann, sondern das Protokoll tatsächlich lesen
> können muss.

Es reicht, wenn die Kiste das erste gesendete Datenpaket wiedererkennt.
Höheres Verständnis ist dafür nicht erforderlich - nur mitzählen.

von Carsten W. (carsten_w454)


Lesenswert?

Also hät ich vorher gewusst, das das hier in so eine Diskussion 
inklusive Beleidigungen endet. Sorry. Ne. Das muss echt nicht sein.

von Michael B. (laberkopp)


Lesenswert?

Carsten W. schrieb:
> Ich hab 2 Elemente mit der gleichen Länge und einem Widerstand. Nur der
> letzte Widerstand geht immer auf GND.

Wir soll man das verstehen ?

Carsten W. schrieb:
>
> VCC ---- 10 K ----- 10K---.
>
>                           |
>
> DP -----------------------.
>
>        |
>
>       100K
>
>        |
>
> GND ---.

Hier gehen 100k an GND, die Widerstände nach VCC.

Carsten W. schrieb:
> ESP32

Der misst nur zwischen 0 und 1.1V.

Ich vermute (Glaskugel geputzt): du hast ein ESP32 board das bereits 
einen Analogspannungsteiler von VCC 3.3V auf 1.1V enthält wie das 
unsägliche WeMosD1 und dessen Eingangswiderstand versaut dir deine 
Eingangsspannung.

von Jens M. (schuchkleisser)


Lesenswert?

Idee:
Jedes LED-Modul bekommt ein OneWire-Bauteil. Die kann man ja aufgrund 
ihrer Seriennummer trotz "nur ein Kabel" einwandfrei identifizieren und 
damit auch zählen.
Wäre digital und sicher, relativ günstig und "nur" ein Beutel Software.

von Carsten W. (carsten_w454)


Lesenswert?

Hm. Klingt interessant. Erzähl mir mehr ;-)

von Peter D. (peda)


Lesenswert?

Ich sehe immer noch nicht, wie das mit Widerstand an den Datenpins 
klappen soll. Wenn man die parallel schaltet, leuchten doch alle LEDs im 
gleichen Muster.

Jens M. schrieb:
> Jedes LED-Modul bekommt ein OneWire-Bauteil.

Erscheint mir das einzig sinnvolle und funktionierende. Das muß 
natürlich ein separater Draht sein, d.h. eben nicht an den kaskadierten 
Datenpins der Module liegen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> Ich sehe immer noch nicht, wie das mit Widerstand an den Datenpins
> klappen soll.
Interpretierst du das **DP** im Plan dort im 
Beitrag "Re: ESP32 mittels Widerstand Länge erkennen?" als **Datenpin**?

Dann wäre der zugehörige komplette Schaltplan wirklich interessant.

: Bearbeitet durch Moderator
von Jens M. (schuchkleisser)


Lesenswert?

Peter D. schrieb:
> Das muß
> natürlich ein separater Draht sein, d.h. eben nicht an den kaskadierten
> Datenpins der Module liegen.

Auch der Widerstand hat eine extra Leitung.
Die LEDs waren nur zur Verwirrung da, es geht nur darum, die Anzahl der 
Widerstände zu erfassen.
Oder eben evtl. OneWire-Bauteile.

Carsten W. schrieb:
> Erzähl mir mehr ;-)

Dallas/Maxim/jetzt Analog Devices verkauft Bauteile, die das sog. 
OneWire-Protokoll (oder auch 1-Wire) nutzen, außer der 
Spannungsversorgung eben nur ein einziger Draht, über den "beliebig 
viele" Bausteine bidirektional angesprochen werden können.
Der bekannteste dürfte der Temperatursensor DS18B20 sein. Nebenbei: u.U. 
kann der Datendraht auch Strom liefern, dann sind es tatsächlich nur 
"plus und minus" und trotzdem Datentransfer.
Und es gibt auch einfache IDs, EEProms und andere Bauteile.
Davon einfach das bequemste billigste nutzen und via Portscan 
feststellen wie viele es gibt, weiter ansprechen muss man sie ja nicht, 
und dann weißt du wie viele Segmente angeschlossen sind.
Dafür gibt es fertige Libraries und Routinen, aber hängt natürlich davon 
ab wie weit du die Firmware für den ESP selber bauen willst/kannst,
Aber so ein Temperatursensor am LED-Streifen ist evtl. auch ganz 
sinnvoll... ;)
Aber gerade der DS18B20 wird gerne gefälscht und tut dann u.U. nicht 
richtig, aber vielleicht reichts als ID.

von Rainer W. (rawi)


Lesenswert?

Lothar M. schrieb:
> Weil jetzt der ADC des ESP wegen Nichtlinearitäten aber gerade in
> Richtung Vcc immer schlechter wird, kommt dann nur noch Käse heraus.

Also wäre es doch sinnvoll, dies bei der Schaltungsauslegung zu 
berücksichtigen und nicht im Bereich nahe VCC zu arbeiten, sondern den 
festen Widerstand als Pull-Up an VCC zu legen und die Widerstände der 
LED-Element in den unteren Teil des Spannungsteilers zu verlagern, d.h. 
gegen Gnd.
Es gibt auch keinen Grund, bei nur einer LED den Widerstand auf 1/2*VCC 
zu dimensionieren. Der Widerstand darf gerne größer sein, damit man den 
ADC weiter ausnutzt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rainer W. schrieb:
> Es gibt auch keinen Grund, bei nur einer LED den Widerstand auf 1/2*VCC
> zu dimensionieren.
Diese Katze ist den Baum schon ewig und 3 Tage rauf. Natürlich könnte 
man mit besseren und asymetrischen Widerständen da noch was rausholen.

Und trotzdem ist der Schaltungsansatz so grenzwertig, dass selbst die 
Handyhersteller diese Spannungsteilerschaltung nur für 3 oder 4 Tasten 
am Headset verwenden.

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.