Finde leider im Datasheet keine Angaben zum Eingangswiderstand der ADC-Kanäle des AT85. Im Internet gibt es da verschiedene Aussagen, beginnend bei 20 kOhm bis zu mehreren MOhm, ebenso sollte der PIN als Input generiert werden. Kennt jemand eine Größenordnung. Meine Signalquelle hat einen Innenwiderstand von ca. 5 MOhm, so dass ich vermute, ich benötige noch einen OPV um ihren Innenwiderstand zu reduzieren. Fragen ist halt leichter als löten. Danke. M.
RAin sind typ. 100 MOhm, Tabelle zu finden unter 'ADC Electrical Characteristics'. In meinem Datenblatt ist das unter Punkt 21-8 zu finden. Empfohlen wird eine Quellimpedanz von <10kOhm, weil ja der S&H Kondensator geladen werden muss. Das gilt aber nicht, wenn man den internen OpAmp mit Gain oder für Bipolaren Betrieb benutzt.
:
Bearbeitet durch User
Michael schrieb: > Kennt jemand eine Größenordnung. Meine Signalquelle hat einen > Innenwiderstand von ca. 5 MOhm, so dass ich vermute, ich benötige noch > einen OPV um ihren Innenwiderstand zu reduzieren. Irgendwo im Datenblatt ist vermerkt, dass der Quellwiderstand 10k nicht überschreiten soll.
Der Leckstrom ist typisch <50nA, kann aber bei 85°C bis zu 1µA betragen. Ich nehme einen Pufferkondensator 100nF am Eingang zum Laden des internen S&H Kondensators. Man kann aber auch nach dem Umschalten des MUX eine Wartezeit einfügen. Z.B. zum Messen der internen Referenz ist das nötig. Wie oft mußt Du denn messen? Zur Frage, ob OPV nötig, ein ganz klares jain.
Michael schrieb: > Finde leider im Datasheet keine Angaben zum Eingangswiderstand der > ADC-Kanäle des AT85. Augen auf! 1 bis 100k Figure 17-8. Analog Input Circuitry https://ww1.microchip.com/downloads/en/devicedoc/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf
Arduino F. schrieb: > Augen auf! > 1 bis 100k > Figure 17-8. Analog Input Circuitry Das ist nicht der Eingangswiderstand! Wichtiger ist der darauffolgenden Absatz: "The ADC is optimized for analog signals with an output impedance of approximately 10 kΩ or less. If such a source is used, the sampling time will be negligible. If a source with higher impedance is used, the sampling time will depend on how long time the source needs to charge the S/H capacitor, with can vary widely. The user is recommended to only use low impedant sources with slowly varying signals, since this minimizes the required charge transfer to the S/H capacitor."
:
Bearbeitet durch User
Klaus H. schrieb: > Das ist nicht der Eingangswiderstand! Ich weiß nicht in welcher Welt du lebst, aber in meiner Welt sieht die Definition eher so aus: Der Eingangswiderstand .... ist eine Eigenschaft von Eingängen elektrischer Geräte. Er belastet das Gerät, das an diesen Eingang eine Spannung anlegt. Klaus H. schrieb: > Wichtiger ist der darauffolgenden Absatz: Keine Frage, dass der Absatz wichtig ist! Aber er ändert nicht die Semantik von "Eingangswiderstand"
:
Bearbeitet durch User
Arduino F. schrieb: > Der Eingangswiderstand .... ist eine Eigenschaft von Eingängen > elektrischer Geräte. Er belastet das Gerät, das an diesen Eingang eine > Spannung anlegt. Ja, aber dann ist er nicht R = 1...100k sondern 1...100k + 1/(jω·14pF).
:
Bearbeitet durch User
Arduino F. schrieb: > Aber er ändert nicht die Semantik von "Eingangswiderstand" In dem zitierten Text steht nichts von einem Eingangs**widerstand**, sondern konkret von einer Eingangs**impedanz**. Und jetzt kommt der Knackpunkt: diese Impedanz ist ein "komplexer Widerstand", der sich auch mit einem Kondensator verringern lässt. Also: wenn ich möglichst belastungsfrei und "hochohmig" eine Spannung wandeln will dann nehme ich 2 sehr hochohmige Widerstände und schalte einen Kondensator mit 10nF paralell. Der 10nF Kondensator ist 100x größer als der Sampling-Kondensator, womit der Fehler beim Samplen maximal 1 LSB ist. Er sorgt also für die benötigte niedrige Impedanz zum Aufladen des Samplingkondensators. Der 10nF der wird dann langsam über den hochohmigen Spannungsteiler nachgeladen. Passt. Man muss nur aufpassen, dass man den 10nF nicht zu oft entlädt, denn sonst wird er ggfs. nicht schnell genug über den Spannungsteiler nachgeladen. Da spielen aber noch ganz andere lustige Effekte mit rein. Dort im Beitrag "Re: Bessere Poti Schaltung für Arduino?" haben wir das mal andiskutiert.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Also: wenn ich möglichst belastungsfrei und "hochohmig" eine Spannung > wandeln will dann nehme ich 2 sehr hochohmige Widerstände und schalte > einen Kondensator mit 10nF paralell. Ohne Kenntnis der erforderlichen Bandbreite lässt sich trefflich fabulieren.
Rainer W. schrieb: > Ohne Kenntnis der erforderlichen Bandbreite lässt sich trefflich > fabulieren. Du bellst den falschen Baum an. Mangels genauerer Informationen kann ich nichts Genaueres sagen. Oder ist eine meiner Aussagen falsch? Denn da kommen wieder die beiden Aspekte zum Tragen: 1. die Grenzfrequenz aus 5M Ohm und 10nF kann sich jeder selber herrechnen 2. wenn der ADC Mux nicht auf einen anderen Pin mit anderer Spannung umgeschaltet wird, dann wird auch der Sample-Kondensator nicht entladen Wenn der Mux umgeschaltet wird und der Sampling-Kondensator durch (zu) häufige Wandlungen zusätzlich entladen wird, dann wird es spannender, denn dann kommt ein kapazitiver Spannungsteiler mit ins Spiel.
:
Bearbeitet durch Moderator
Wenn er nicht umgeschaltet wird braucht er ca 300µs zum Entladen, was grob 10M Ohm macht. Die besagten 10nF dazu und nur zum Messen kurz umschalten sollte eine höhere Genauigkeit ergeben als ein Op davor. Matthias S. schrieb: > Das gilt aber nicht, wenn man den internen OpAmp mit Gain.. Ist das ertestet/bestätigt? Wie hoch wäre dann der Eingangswiderstand >100M Ohm unabhängig vom Mux? Das erspart dem TE einen externen OP.
:
Bearbeitet durch User
Peter D. schrieb: > Der Leckstrom ist typisch <50nA, kann aber bei 85°C bis zu 1µA betragen. > Zur Frage, ob OPV nötig, ein ganz klares jain. Wie passt denn das zusammen? Bei 5MΩ Innenwiderstand brauchst du einen guten OP. Außer, du willst garnicht messen und kannst mit typisch 250mV Offset bei Zimmertemperatur leben.
Achim H. schrieb: >> Das gilt aber nicht, wenn man den internen OpAmp mit Gain.. > Ist das ertestet/bestätigt? Wie hoch wäre dann der Eingangswiderstand >>100M Ohm unabhängig vom Mux? Das erspart dem TE einen externen OP. Der Eingangs*widerstand* bleibt mit und ohne OpAmp bei 100 MOHm. Es geht nur im die Quellimpedanz, die bei Benutzung des internen OpAmps nicht unbedingt <10 kOhm sein muss, da der interne OpAmp das in jedem Fall erfüllt. Siehe Blockdiagramm des ADC im Datenblatt.
Sie muß ja nicht unbedingt <10kOhm sein . Sie leidet nur bei dem Umschalten. Da sehe ich keine Vorteil bei Verwendung des internen OP. Sein Eingang hängt an der selben Leitung. Denkbar das sein -Eingang etwas im Vorteil ist. Da bleibt wohl doch nur Ausprobieren um verbindliche Aussagen treffen zu können.
an Michael:
> Fragen ist halt leichter als löten.
Löten?
Auf dem Steckbrett: Uref = Ucc = 4.992 V, U_ADC2 = 3.235 V: ergibt
direkt 662, mit 4.7 MOhm zwischengeschaltet etwas schwankend 662..664.
S. L. schrieb: > Auf dem Steckbrett: Uref = Ucc = 4.992 V, U_ADC2 = 3.235 V: ergibt > direkt 662, mit 4.7 MOhm zwischengeschaltet etwas schwankend 662..664. Wandle mal zwischendurch einen anderen Kanal, der einmal an GND und das andere mal an Vcc hängt (oder eben an einem Poti, das du zwischen Vcc nach GND hin- und herdrehen kannst). Was passiert?
:
Bearbeitet durch Moderator
Nicht viel: jetzt in allen Fällen 664 (nicht mehr 662, warum auch immer), auf ADC3 0 bzw. 1023 (geschaltet GND bzw. Ucc), jeweils 2 s gewartet. Aber allgemein: Michael hatte nur nach dem Eingangswiderstand gefragt, kein Umschalten, und vor allem auch keine zeitliche Abhängigkeit. Wenn ihm diese Problematik nicht klar war, so hatte er sechs Stunden Zeit nachzufragen, denn dieser Aspekt wurde ja gleich in der allerersten Antwort angesprochen.
Michael schrieb: > Kennt jemand eine Größenordnung. Meine Signalquelle hat einen > Innenwiderstand von ca. 5 MOhm Da sollte man ja schon bei nem Multimeter und Co sowas wie nen TIA einsetzen. Nur mal so zum vergegenwärtigen: Der Standard-Tastkopf eines Oszis hat 10 MOhm || 10 pF. Ne Signalquelle mit 5 MOhm Ausgangswiderstand würde man damit ja signifikant beeinflussen.
S. L. (sldt) >Nicht viel: jetzt in allen Fällen 664 (nicht mehr 662, warum auch >immer), auf ADC3 0 bzw. 1023 (geschaltet GND bzw. Ucc), jeweils 2 s >gewartet. Da stellt sich allerdings die Frage, wie schnell du zwischen den Kanälen hin- und her schaltest und ob der Wert über mehrere Samples geglättet ist.
S. L. schrieb: > Auf dem Steckbrett: Uref = Ucc = 4.992 V, U_ADC2 = 3.235 V: ergibt > direkt 662, mit 4.7 MOhm zwischengeschaltet etwas schwankend 662..664. Was machst du derweil auf den anderen Kanälen? Die Fehler entstehen, wenn der Multiplexer aktiv wird und zügig zwischen Kanälen umschaltet. S. L. schrieb: > ... jeweils 2 s gewartet. Das bringt nichts, um das Kanalübersprechen durch den Multiplexer zu testen.
:
Bearbeitet durch User
Beitrag #7584723 wurde vom Autor gelöscht.
Beitrag #7584726 wurde vom Autor gelöscht.
Klaus H. schrieb: > Arduino F. schrieb: >> Augen auf! >> 1 bis 100k >> Figure 17-8. Analog Input Circuitry > Das ist nicht der Eingangswiderstand! > > Wichtiger ist der darauffolgenden Absatz: > "The ADC is optimized for analog signals with an output impedance of > approximately 10 kΩ or less. If such a source is used, the sampling time > will be negligible. If a source with higher impedance is used, the > sampling time will depend on how long time the source needs to charge > the S/H capacitor, with can vary widely. The user is recommended to only > use low impedant sources with slowly varying signals, since this > minimizes the required charge transfer to the S/H capacitor." Danke allen für die Anmtworten. Zur Ergänzung: Sind 2 ADC-Kanäle, die Gleichspannung messen als "single shot". Vor der 2. Messung gibst es eine 100 ms Warteschleife. Das Datenblatt Punkt 17.8 hatte ich gelesen und meine Schlussfolgerung war an Hand Figure 17.8. Re ist theoretisch unendlich (weiß schon, das das nur theoretisch ist). Da ich bei angeschlossenem uC eine Verminderung der Eingangsspannung messe, war meine Schlußfolgerung, dass die Ursache der Re ist. So war meine Frage nicht präzise. Ich hätte nach dem Gleichstromeingangswiderstand des uC fragen müssen. Komme erst heute zum Antworten. Habe gestern in geselliger Runde Handball geguckt. Schönes WE und viel Sonne. M.
Lothar M. schrieb: > Was passiert? S. L. schrieb: > Nicht viel: ... Gut, dann muss ich das mal selber machen, wenn ganz offenbar nicht klar ist, was ich meine. Meine **Schaltung** ist ein Arduino mit einem 10k-Poti am A4 und einem hochohmigen Spannungsteiler mit 5M Ersatzwiderstand (10M||10M) am A0:
1 | 5V --------o----------------------o----------- |
2 | | | |
3 | | - |
4 | | R2 | | |
5 | | 10M | | |
6 | P1 - - |
7 | 10k | | | |
8 | | |<----- A4 o-----o--- A0 |
9 | | | | | |
10 | - R1 - | C1 (optional) |
11 | | 10M | | === 10n |
12 | | | | | |
13 | | - | |
14 | | | | |
15 | GND -------o----------------------o-----o------- |
Im späteren Verlauf kommt beim Test 5 dann noch der C1 dazu. Mein sehr überschaubares **Programm** dazu:
1 | void setup() { |
2 | // initialize digital pin LED_BUILTIN as an output.
|
3 | pinMode(LED_BUILTIN, OUTPUT); |
4 | |
5 | Serial.begin(9600); |
6 | }
|
7 | |
8 | void loop() { |
9 | uint16_t an0, an4=9999; |
10 | |
11 | digitalWrite(LED_BUILTIN, HIGH); delay(50); |
12 | digitalWrite(LED_BUILTIN, LOW); delay(950); |
13 | |
14 | // :
|
15 | // hier kommen die Codezeilen aus den unteren Tests hinein
|
16 | // :
|
17 | |
18 | Serial.println("Spannungsteiler: " + String(an0) + " - Poti: " + String(an4)); |
19 | }
|
**Test 1:** es wird nur der Spannungsteiler (ohne C2) an A0 gewandelt.
1 | :
|
2 | // an4 = analogRead(A4); // Poti
|
3 | an0 = analogRead(A0); // Spannungsteiler |
4 | :
|
Terminal:
1 | : |
2 | Spannungsteiler: 502 - Poti: 9999 |
3 | Spannungsteiler: 502 - Poti: 9999 |
4 | Spannungsteiler: 502 - Poti: 9999 |
5 | Spannungsteiler: 502 - Poti: 9999 |
6 | Spannungsteiler: 502 - Poti: 9999 |
7 | Spannungsteiler: 502 - Poti: 9999 |
8 | Spannungsteiler: 502 - Poti: 9999 |
9 | Spannungsteiler: 502 - Poti: 9999 |
10 | : |
Fazit: wenn nur der Spannungsteiler gewandelt wird, kommt immer der gleiche Wert heraus. Und zwar völlig unabhängig von der Stellung des Potis (das war ja zu erwarten). **Test 2:** direkt vor dem Spannungsteiler an A0 wird das Poti an A4 eingelesen.
1 | :
|
2 | an4 = analogRead(A4); // Poti |
3 | an0 = analogRead(A0); // Spannungsteiler |
4 | :
|
Terminal:
1 | : |
2 | Spannungsteiler: 504 - Poti: 511 |
3 | Spannungsteiler: 504 - Poti: 511 |
4 | Spannungsteiler: 504 - Poti: 511 |
5 | Spannungsteiler: 484 - Poti: 458 |
6 | Spannungsteiler: 451 - Poti: 370 |
7 | Spannungsteiler: 386 - Poti: 203 |
8 | Spannungsteiler: 324 - Poti: 43 |
9 | Spannungsteiler: 302 - Poti: 0 |
10 | Spannungsteiler: 303 - Poti: 0 |
11 | Spannungsteiler: 304 - Poti: 0 |
12 | Spannungsteiler: 423 - Poti: 295 |
13 | Spannungsteiler: 473 - Poti: 430 |
14 | Spannungsteiler: 527 - Poti: 573 |
15 | Spannungsteiler: 548 - Poti: 630 |
16 | Spannungsteiler: 610 - Poti: 790 |
17 | Spannungsteiler: 647 - Poti: 906 |
18 | Spannungsteiler: 688 - Poti: 1023 |
19 | Spannungsteiler: 689 - Poti: 1023 |
20 | Spannungsteiler: 690 - Poti: 1023 |
21 | Spannungsteiler: 565 - Poti: 682 |
22 | Spannungsteiler: 499 - Poti: 498 |
23 | Spannungsteiler: 498 - Poti: 498 |
24 | Spannungsteiler: 498 - Poti: 498 |
25 | Spannungsteiler: 499 - Poti: 498 |
26 | : |
Fazit: der ADC-Wert vom Spannungsteiler ist nicht mehr stabil bei 502, sondern er hängt sehr stark von der Potistellung ab. Wenn die Potispannung an A4 bei Vcc ist, hommt mit 690 ein viel zu hoher Wert am A0 heraus, wenn die Potispannung 0V ist, kommt mit 303 ein viel zu geringer Wert heraus. **Test 3:** zuerst wird das Poti eingelesen, danach der Spanunngsteiler und gleich danach nochmal der Spannungsteiler.
1 | :
|
2 | an4 = analogRead(A4); // Poti |
3 | an0 = analogRead(A0); // Spannungsteiler |
4 | an0 = analogRead(A0); // Spannungsteiler |
5 | :
|
Terminal:
1 | : |
2 | Spannungsteiler: 501 - Poti: 498 |
3 | Spannungsteiler: 502 - Poti: 498 |
4 | Spannungsteiler: 501 - Poti: 498 |
5 | Spannungsteiler: 535 - Poti: 704 |
6 | Spannungsteiler: 588 - Poti: 1023 |
7 | Spannungsteiler: 587 - Poti: 1023 |
8 | Spannungsteiler: 571 - Poti: 919 |
9 | Spannungsteiler: 489 - Poti: 370 |
10 | Spannungsteiler: 412 - Poti: 0 |
11 | Spannungsteiler: 421 - Poti: 0 |
12 | Spannungsteiler: 445 - Poti: 205 |
13 | Spannungsteiler: 493 - Poti: 457 |
14 | Spannungsteiler: 493 - Poti: 457 |
15 | Spannungsteiler: 503 - Poti: 457 |
16 | : |
Fazit: der ADC-Wert beim 2. Einlesen des Spannungsteilers hängt wesentlich weniger stark von der Potistellung ab. Klar, denn so langsam lädt sich der Sample-Kondensator auf. Dann gleich nochmal, mit 5 Wandlungen:
1 | :
|
2 | an4 = analogRead(A4); |
3 | an0 = analogRead(A0); |
4 | an0 = analogRead(A0); |
5 | an0 = analogRead(A0); |
6 | an0 = analogRead(A0); |
7 | an0 = analogRead(A0); |
8 | |
9 | :
|
Terminal:
1 | : |
2 | Spannungsteiler: 501 - Poti: 510 |
3 | Spannungsteiler: 501 - Poti: 510 |
4 | Spannungsteiler: 501 - Poti: 511 |
5 | Spannungsteiler: 495 - Poti: 154 |
6 | Spannungsteiler: 492 - Poti: 0 |
7 | Spannungsteiler: 496 - Poti: 232 |
8 | Spannungsteiler: 507 - Poti: 881 |
9 | Spannungsteiler: 509 - Poti: 1023 |
10 | Spannungsteiler: 509 - Poti: 1023 |
11 | Spannungsteiler: 502 - Poti: 552 |
12 | Spannungsteiler: 501 - Poti: 495 |
13 | Spannungsteiler: 501 - Poti: 495 |
14 | Spannungsteiler: 501 - Poti: 495 |
15 | : |
Fazit: mit jeder Messung am Spannungsteiler lädt sich der Samplekondensator ein bisschen mehr auf, bis nach 5 Wandlungen nur noch 1% Abweichung bleibt. **Test 4:** bringt es was, einfach vor der Wandlung des Spannungsteilers zu warten? Also wird jetzt das Poti gewandelt, dann wird 1 Sekunde gewartet, dann wird der Spannungsteiler gewandelt:
1 | :
|
2 | an4 = analogRead(A4); // Poti |
3 | delay(1000); |
4 | an0 = analogRead(A0); // Spannungsteiler |
5 | :
|
Terminal:
1 | : |
2 | Spannungsteiler: 497 - Poti: 495 |
3 | Spannungsteiler: 498 - Poti: 495 |
4 | Spannungsteiler: 377 - Poti: 225 |
5 | Spannungsteiler: 298 - Poti: 0 |
6 | Spannungsteiler: 359 - Poti: 0 |
7 | Spannungsteiler: 434 - Poti: 336 |
8 | Spannungsteiler: 546 - Poti: 590 |
9 | Spannungsteiler: 653 - Poti: 790 |
10 | Spannungsteiler: 697 - Poti: 1023 |
11 | Spannungsteiler: 697 - Poti: 1023 |
12 | Spannungsteiler: 484 - Poti: 461 |
13 | Spannungsteiler: 484 - Poti: 461 |
14 | Spannungsteiler: 484 - Poti: 461 |
15 | : |
Fazit: nein, es reicht nicht aus, vor der Wandlung einer hochimpedanten Quelle länger zu warten. Mit ein wenig Nachdenken ist das klar, denn während der Wartezeit passiert mit dem Samplekondensator nichts, was der nachfolgenden Messung helfen würde. **Test 5:** jetz kommt der C1 mit 10nF ins Spiel. Gleiches Programm wie beim Test 2, hilft uns der Kondensator?
1 | :
|
2 | an4 = analogRead(A4); // Poti |
3 | an0 = analogRead(A0); // Spannungsteiler |
4 | :
|
Terminal:
1 | : |
2 | Spannungsteiler: 501 - Poti: 461 |
3 | Spannungsteiler: 501 - Poti: 462 |
4 | Spannungsteiler: 501 - Poti: 599 |
5 | Spannungsteiler: 502 - Poti: 737 |
6 | Spannungsteiler: 502 - Poti: 1023 |
7 | Spannungsteiler: 502 - Poti: 1023 |
8 | Spannungsteiler: 502 - Poti: 924 |
9 | Spannungsteiler: 501 - Poti: 656 |
10 | Spannungsteiler: 501 - Poti: 433 |
11 | Spannungsteiler: 501 - Poti: 247 |
12 | Spannungsteiler: 501 - Poti: 86 |
13 | Spannungsteiler: 501 - Poti: 0 |
14 | Spannungsteiler: 501 - Poti: 0 |
15 | Spannungsteiler: 501 - Poti: 0 |
16 | Spannungsteiler: 501 - Poti: 149 |
17 | Spannungsteiler: 502 - Poti: 521 |
18 | Spannungsteiler: 501 - Poti: 521 |
19 | : |
Fazit: durch den 10nF Kondensator wird die Impedanz des hochohmigen Spannungsteilers so weit reduziert, dass der der Messfehler nicht mehr bemerkbar ist. Michael schrieb: > Sind 2 ADC-Kanäle, die Gleichspannung messen als "single shot". > war meine Schlußfolgerung, dass die Ursache der Re ist. Diese Schlussfolgerung ist falsch: du hast da meinen Testfall 2 aufgebaut und "verschleppst" die Messung des anderen Kanals auf deinen hochohmigen Eingangskanal. > Vor der 2. Messung gibst es eine 100 ms Warteschleife. Die Wartezeit ist irrelevant, siehe Test 4. S. L. schrieb: > Aber allgemein: Michael hatte nur nach dem Eingangswiderstand gefragt, > kein Umschalten, und vor allem auch keine zeitliche Abhängigkeit. Nenn mich Hellseher, dass ich geahnt habe, was da passiert. Und lerne daraus: es ist egal, wonach Leute fragen, das Problem liegt oft ganz woanders.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Die Wartezeit ist irrelevant Sie ist ja auch nicht existent wenn der mux vorher nicht geschaltet wird ;-) Richtig wäre den mux auf den Kanal stellen und dann Wartezeit. Andererseits ist Deine Lösung mit den 10nF viel besser als sich überlegen zu müssen wann darf ich wie messen. Und das auch noch bei jeder Änderung (nach Monaten/Jahren) in Erinnerung zu haben.
Achim H. schrieb: > Andererseits ist Deine Lösung mit den 10nF viel besser als sich > überlegen zu müssen wann darf ich wie messen. Und das auch noch bei > jeder Änderung (nach Monaten/Jahren) in Erinnerung zu haben. Da würde mich doch glatt interessieren wie die Ergebnisse aussehen, wenn man kontinuierlich mit höchster Sample-Frequenz abwechselnd die Eingänge (bei Poti 0 oder Vref) einliest. Kann der Spannungsteiler den 10nF schneller nachladen als der Sample-C ihn entlädt? Fragen über Fragen… ;-)
Lothar M. schrieb: > nein, es reicht nicht aus, vor der Wandlung einer hochimpedanten Quelle > länger zu warten. Du mußt natürlich vor dem Warten erst den MUX umschalten.
1 | an4 = analogRead(A4); // Poti |
2 | analogRead(A0); // dummy read to change MUX |
3 | delay(1000); |
4 | an0 = analogRead(A0); |
Achim H. schrieb: > Richtig wäre den mux auf den Kanal stellen und dann Wartezeit. Wenn ich den ADC richtig kenne, dann wird der S&H Kondensator nur über ca 1,5 ADC Takte umgeladen. Ein vorheriges umschalten ist von daher recht sinnfrei. Aber wenn es dem Wohlbefinden dienlich ist, warum nicht?
:
Bearbeitet durch User
Klaus H. schrieb: > Ja, aber dann ist er nicht R = 1...100k sondern 1...100k + 1/(jω·14pF). das nennt man meines Wissens impedanz um genau zu sein
Lothar M. schrieb: > > void loop() { > uint16_t an0, an4=9999; > > digitalWrite(LED_BUILTIN, HIGH); delay(50); > digitalWrite(LED_BUILTIN, LOW); delay(950); > > an4 = analogRead(A4); // Poti > an0 = analogRead(A0); // Spannungsteiler > > Serial.println("Spannungsteiler: " + String(an0) + " - Poti: " + > String(an4)); > } > [/c] > > > > Michael schrieb: >> Sind 2 ADC-Kanäle, die Gleichspannung messen als "single shot". >> war meine Schlußfolgerung, dass die Ursache der Re ist. > Diese Schlussfolgerung ist falsch: du hast da meinen Testfall 2 > aufgebaut und "verschleppst" die Messung des anderen Kanals auf deinen > hochohmigen Eingangskanal. > >> Vor der 2. Messung gibst es eine 100 ms Warteschleife. > Die Wartezeit ist irrelevant, siehe Test 4. > wenn ich das richtig sehe entspricht deine loop einem polling betrieb. Damit beeinflusst natürlich der C, da frequenzabhängig, den Eingangswiderstand. So habe ich den ADC ja nicht betrieben. Die 100 ms habe ich gewählt, weil ich zu faul war nachzusehen, wieviel zeit die Umschaltung der MUX braucht und ich genug Zeit habe. Was mir nicht klar ist, ob der interne C des ADC zum Zeitpunkt des Schreibens des ADC-Wertes in das Register 100%ig aufgeladen ist. Das hatte ich vorausgesetzt, da sich m.E. daraus die maximale Samplingrate des ADC ergibt. Das Löten war nur symbolisch gemeint. > S. L. schrieb: >> Aber allgemein: Michael hatte nur nach dem Eingangswiderstand gefragt, >> kein Umschalten, und vor allem auch keine zeitliche Abhängigkeit. > Nenn mich Hellseher, dass ich geahnt habe, was da passiert. So meinte ich das, den Widerstand und nicht die Impedanz. C zu % aufgeladen ist der Eingangswiderstand theoretisch unendlich. M.
:
Bearbeitet durch User
Lothar M. schrieb: > Gut, dann muss ich das mal selber machen, wenn ganz offenbar nicht klar > ist, was ich meine. TOP. Thematik sehr anschaulich dargestellt.
Peter D. schrieb: > Du mußt natürlich vor dem Warten erst den MUX umschalten. Das tut natürlich der TO Michael aber mit hoher Wahrscheinlichkeit auch nicht. Aber natürlich hast du Recht:
1 | :
|
2 | an4 = analogRead(A4); // Poti |
3 | an0 = analogRead(A0); // Mux umschalten |
4 | delay(1); |
5 | an0 = analogRead(A0); // Spannungsteiler einlesen |
6 | :
|
Mit diesem Code reichen dann schon 1 ms locker aus für stabile Ergebnisse auf dem nackten Spannungsteiler ohne C1:
1 | : |
2 | Spannungsteiler: 502 - Poti: 445 |
3 | Spannungsteiler: 502 - Poti: 578 |
4 | Spannungsteiler: 502 - Poti: 930 |
5 | Spannungsteiler: 502 - Poti: 1023 |
6 | Spannungsteiler: 502 - Poti: 845 |
7 | Spannungsteiler: 502 - Poti: 470 |
8 | Spannungsteiler: 502 - Poti: 316 |
9 | Spannungsteiler: 502 - Poti: 31 |
10 | Spannungsteiler: 502 - Poti: 72 |
11 | Spannungsteiler: 502 - Poti: 394 |
12 | Spannungsteiler: 502 - Poti: 525 |
13 | Spannungsteiler: 502 - Poti: 533 |
14 | Spannungsteiler: 502 - Poti: 533 |
15 | : |
Klar, denn tau = RC = 15pF*5MOhm = 75µs, und 5 tau sind dann 375µs. Michael schrieb: > Die 100 ms habe ich gewählt, weil ich zu faul war nachzusehen, wieviel > zeit die Umschaltung der MUX braucht und ich genug Zeit habe. Du hast das Problem nicht erfasst: der Mux wird mit dem Start der Wandlung umgeschaltet. Du musst also 1. eine Wandlung auf dem hochohmigen Eingang machen 2. dann warten 3. dann nochmal wandeln und 4. die zweite Wandlung als Ergebnis nehmen. Kalli L. schrieb: > TOP. Thematik sehr anschaulich dargestellt. Danke. Es ist den meisten nicht bewusst, wenn sie in diese Falle tappen. Denn dieser Effekt tritt natürlich auch auf, wenn das nicht eine Quelle mit 5 MOhm Innenwiderstand ist, sondern wenn die z.B. 100 kOhm hat. Dann sind die Auswirkungen eben nicht ganz so offensichtlich. Norbert schrieb: > wenn man kontinuierlich mit höchster Sample-Frequenz abwechselnd die > Eingänge (bei Poti 0 oder Vref) einliest. Muss noch warten, muss jetzt weg... ;-)
:
Bearbeitet durch Moderator
Lothar Miller schrieb:
> der Mux wird mit dem Start der Wandlung umgeschaltet
Liegt das an Arduino? Denn sonst verstehe ich den Satz aus dem
Datenblatt 'MUX[3:0] ... If these bits are changed during a conversion,
the change will not go into effect until this conversion is complete' -
nach meinem Verständnis wird der Multiplexer frühestmöglich
umgeschaltet. Und womit arbeitet Michael eigentlich?
S. L. schrieb: > nach meinem Verständnis wird der Multiplexer frühestmöglich umgeschaltet. Genau. Wenn beim Umschalten des Multiplexer gerade keine Messung stattfindet, wird er sofort umgeschaltet. Wenn gerade eine Messung stattfindet, schaltet der Multiplexer erst danach den Kanal um.
Beitrag #7586301 wurde vom Autor gelöscht.
an Achim H.: Ich frage, weil ich kein explizites Umschalten des Multiplexers sehe, immer nur das implizite per Arduino-'analogRead'.
S.L. (sldt) >Ich frage, weil ich kein explizites Umschalten des Multiplexers sehe, >immer nur das implizite per Arduino-'analogRead'. Da kannst du hier schauen: https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/wiring_analog.c Der Multiplexer wird bei jedem analogRead() gesetzt.
Christoph M. schrieb: > Der Multiplexer wird bei jedem analogRead() gesetzt. Man kann den Multiplexer auch per Hand setzen. Hier für den ATmega4809 auf dem Arduino Every, der hat kein ADMUX-Register mehr, das heißt jetzt MUXPOS:
1 | an4 = analogRead(A4); // Poti |
2 | ADC0.MUXPOS = 3; // Mux auf A0 schalten (= PD3 = AIN3 bei Ard. Every) |
3 | delay(1); |
4 | an0 = analogRead(A0); // Spannungsteiler einlesen |
Im Terminal sieht das dann gleich aus wie mit dem "unnötigen" analogRead():
1 | : |
2 | Spannungsteiler: 502 - Poti: 445 |
3 | Spannungsteiler: 502 - Poti: 445 |
4 | Spannungsteiler: 502 - Poti: 422 |
5 | Spannungsteiler: 502 - Poti: 64 |
6 | Spannungsteiler: 502 - Poti: 0 |
7 | Spannungsteiler: 502 - Poti: 0 |
8 | Spannungsteiler: 502 - Poti: 708 |
9 | Spannungsteiler: 502 - Poti: 1023 |
10 | Spannungsteiler: 502 - Poti: 1023 |
11 | Spannungsteiler: 502 - Poti: 723 |
12 | Spannungsteiler: 502 - Poti: 483 |
13 | Spannungsteiler: 502 - Poti: 483 |
14 | : |
Auch ohne Kondensator C1 lädt sich der Sampling-Kondensator am Spannungsteiler schnell genug auf für ein stabiles Messergebnis.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Auch ohne Kondensator C1 lädt sich der Sampling-Kondensator am > Spannungsteiler schnell genug auf für ein stabiles Messergebnis. Ja, aber nur wenn man die Sampling-Rate mit einem Abreiß-Kalender misst. ;-) Das sollte vielleicht noch einmal klar heraus gestellt werden.
Norbert schrieb: > Ja, aber nur wenn man die Sampling-Rate mit einem Abreiß-Kalender misst. Ja, das ist nunmal so bei hochimpedanten Quellen: die können nicht schnell gewandelt werden, weil sie den Kondesator nicht schnell genug nachladen können. Mir war allerdings neu, **dass** es mit nur 1ms Wartezeit überhaupt schon so gut funktioniert. Wenn man den Mux dann z.B. vor einer Displayausgabe umschaltet, muss man gar nicht warten, weil die sowieso schon länger braucht. Bei 500µs wirkt sich die Ladezeit des Sample-Kondensators so langsam aus:
1 | an4 = analogRead(A4); // Poti |
2 | ADC0.MUXPOS = 3; // Mux auf A0 umschalten (PD3 auf Arduino Every) |
3 | delayMicroseconds(500); |
4 | an0 = analogRead(A0); // Spannungsteiler einlesen |
+-2 Digits machen sich dann bemerkbar:
1 | : |
2 | Spannungsteiler: 502 - Poti: 518 |
3 | Spannungsteiler: 502 - Poti: 584 |
4 | Spannungsteiler: 503 - Poti: 1023 |
5 | Spannungsteiler: 503 - Poti: 1023 |
6 | Spannungsteiler: 504 - Poti: 1023 |
7 | Spannungsteiler: 502 - Poti: 531 |
8 | Spannungsteiler: 501 - Poti: 375 |
9 | Spannungsteiler: 501 - Poti: 177 |
10 | Spannungsteiler: 500 - Poti: 0 |
11 | Spannungsteiler: 500 - Poti: 0 |
12 | Spannungsteiler: 501 - Poti: 73 |
13 | Spannungsteiler: 502 - Poti: 421 |
14 | Spannungsteiler: 502 - Poti: 524 |
15 | Spannungsteiler: 502 - Poti: 524 |
16 | : |
:
Bearbeitet durch Moderator
Das Problem ist mir früher mal beim Messen der internen Bandgap aufgefallen, z.B. zum reziproken Messen der eigenen VCC. Die Bandgap ist sehr hochohmig angeschlossen, so daß ein Delay notwendig ist. In AVR-Freaks gabs dazu mal eine Diskussion.
Norbert schrieb: > Da würde mich doch glatt interessieren wie die Ergebnisse aussehen, wenn > man kontinuierlich mit höchster Sample-Frequenz abwechselnd die Eingänge > (bei Poti 0 oder Vref) einliest. Dazu habe ich das Programm umgeschrieben. Jetzt werden dauernd abwechselnd der Spannungsteiler (gepuffert mit C1) und das Poti eingelesen. Und nach jeweils 4600 solcher Wandlungen (= ca. 1s) wird das Ergebnis ausgegeben:
1 | void loop() { |
2 | uint16_t an0, an4 = 9999; |
3 | static uint16_t i = 4600; |
4 | |
5 | an4 = analogRead(A4); // Poti |
6 | an0 = analogRead(A0); // Spannungsteiler einlesen |
7 | |
8 | if (!i--) |
9 | {
|
10 | i = 4600; |
11 | Serial.println("Spannungsteiler: " + String(an0) + " - Poti: " + String(an4)); |
12 | }
|
13 | }
|
> Kann der Spannungsteiler den 10nF schneller nachladen als der Sample-C > ihn entlädt? Nein, das klappt nicht, das ist das Ergebnis:
1 | : |
2 | Spannungsteiler: 501 - Poti: 503 |
3 | Spannungsteiler: 501 - Poti: 501 |
4 | Spannungsteiler: 501 - Poti: 501 |
5 | Spannungsteiler: 557 - Poti: 821 |
6 | Spannungsteiler: 593 - Poti: 1023 |
7 | Spannungsteiler: 594 - Poti: 1023 |
8 | Spannungsteiler: 575 - Poti: 900 |
9 | Spannungsteiler: 547 - Poti: 749 |
10 | Spannungsteiler: 499 - Poti: 486 |
11 | Spannungsteiler: 485 - Poti: 413 |
12 | Spannungsteiler: 454 - Poti: 247 |
13 | Spannungsteiler: 416 - Poti: 38 |
14 | Spannungsteiler: 405 - Poti: 0 |
15 | Spannungsteiler: 405 - Poti: 0 |
16 | Spannungsteiler: 455 - Poti: 263 |
17 | Spannungsteiler: 503 - Poti: 520 |
18 | Spannungsteiler: 509 - Poti: 545 |
19 | Spannungsteiler: 509 - Poti: 545 |
Der Spannungsteilerwert zappelt vom "Normalwert" 502 ausgehend um +-100 in Richtung Poti. Dann habe ich die Abtastrate noch ein wenig höher geschraubt, indem ich nur den MUX zwischen Spannungsteiler und Poti umschalte: Das erhöht die "Umschaltrate" und damit die "Umladungsrate" um fast den Faktor 100 auf 390000 pro Sekunde und ergibt dann dieses Bild:
1 | void loop() { |
2 | uint16_t an0, an4 = 9999; |
3 | static uint32_t i = 390000; |
4 | |
5 | ADC0.MUXPOS = 12; // MUX auf A4 Poti (= PF2 = AIN12 auf Arduino Every) |
6 | ADC0.MUXPOS = 3; // Mux auf A0 Spannungsteiler (= PD3 = AIN3 auf Arduino Every) |
7 | |
8 | if (!i--) |
9 | {
|
10 | an0 = analogRead(A0); // Spannungsteiler einlesen |
11 | an4 = analogRead(A4); // Poti |
12 | i = 390000; |
13 | Serial.println("Spannungsteiler: " + String(an0) + " - Poti: " + String(an4)); |
14 | }
|
15 | }
|
Das Ergebnis ist erwartbar, die Spannung am Pufferkondensator wird noch deutlich mehr vom Poti beeinflusst:
1 | : |
2 | Spannungsteiler: 501 - Poti: 510 |
3 | Spannungsteiler: 501 - Poti: 510 |
4 | Spannungsteiler: 517 - Poti: 528 |
5 | Spannungsteiler: 580 - Poti: 597 |
6 | Spannungsteiler: 729 - Poti: 760 |
7 | Spannungsteiler: 946 - Poti: 995 |
8 | Spannungsteiler: 974 - Poti: 1023 |
9 | Spannungsteiler: 843 - Poti: 882 |
10 | Spannungsteiler: 592 - Poti: 610 |
11 | Spannungsteiler: 451 - Poti: 454 |
12 | Spannungsteiler: 158 - Poti: 135 |
13 | Spannungsteiler: 30 - Poti: 0 |
14 | Spannungsteiler: 30 - Poti: 0 |
15 | Spannungsteiler: 126 - Poti: 103 |
16 | Spannungsteiler: 305 - Poti: 296 |
17 | Spannungsteiler: 466 - Poti: 474 |
18 | Spannungsteiler: 509 - Poti: 519 |
19 | Spannungsteiler: 509 - Poti: 519 |
20 | : |
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Michael schrieb: >> Die 100 ms habe ich gewählt, weil ich zu faul war nachzusehen, wieviel >> zeit die Umschaltung der MUX braucht und ich genug Zeit habe. > Du hast das Problem nicht erfasst: der Mux wird mit dem Start der > Wandlung umgeschaltet. Du musst also > 1. eine Wandlung auf dem hochohmigen Eingang machen > 2. dann warten > 3. dann nochmal wandeln und > 4. die zweite Wandlung als Ergebnis nehmen. das wusste ich nicht, dass der MUX erst mit dem Start der Wandlung umgeschaltet wird. Das heißt doch, dass die erste Messung prinzipiell für die Tonne ist. Wenn ich das richtig verstehe, ist das immer so. Kann ich das noch irgendwo nachlesen, wie lange das dauert. Habe auch noch in keinem Beispiel gesehen, dass bei Mittelwertmessungen der erste Wert nicht berücksichtigt wird. Das ist blöd, da insbesondere bei kleinen n-Zahlen das ins Gewicht fallen kann. M.
:
Bearbeitet durch User
Michael schrieb: > das wusste ich nicht, dass der MUX erst mit dem Start der Wandlung > umgeschaltet wird. Das heißt doch, dass die erste Messung prinzipiell > für die Tonne ist. Wenn die Quellimpedanz so niedrig ist, wie das Datenblatt es verlangt (10kOhm), dann reicht selbst beim schnellsten ADC-Timing die Zeit aus, um den 15pF-Kondensator für hinreichende Genauigkeit (= mit den Fehlergrenzen, die das Datenblatt verspricht) aufzuladen. > Kann ich das noch irgendwo nachlesen, wie lange das dauert. Ja, im Datenblatt des verwendeten µC. Es lohnt sich generell, das Datenblatt des verwendeten ICs zu kennen und Informationen daraus herleiten zu können. > Habe auch noch in keinem Beispiel gesehen, dass bei Mittelwertmessungen > der erste Wert nicht berücksichtigt wird. Ja, warum auch? Und ganz viele verwenden "Mittelwertmessungen" dann auch dafür, irgendwelche andere Designschwächen zu übertünchen. Übrigens: der Medianwert ist bei Sensoren oft besser als der übliche arithmetische Mittelwert. - https://support.zendesk.com/hc/de/articles/4408839402906-Mittelwert-vs-Median > das wusste ich nicht, dass der MUX erst mit dem Start der Wandlung > umgeschaltet wird. Du kannst dank Google und Internet den Sourcecode der Routinen ganz einfach näher anschauen. Probiers aus und du siehst: die Ausrede "das wusste ich nicht", die gilt nicht. Nicht mal sich selber gegenüber. Mein Prinzip ist da ganz einfach: traue keiner Funktion, die du nicht selber geschrieben oder von der du den Code nicht verstanden hast.
:
Bearbeitet durch Moderator
Lothar M. schrieb: >> Kann ich das noch irgendwo nachlesen, wie lange das dauert. > Ja, im Datenblatt des verwendeten µC. Es lohnt sich generell, das > Datenblatt des verwendeten ICs zu kennen und Informationen daraus > herleiten zu können. LOL. Aber wie lange es dauert, einen 15pF Kondensator bei gegebener Quellimpedanz aufzuladen, wird nicht im Datenblatt stehen - das muss man schon rechnen ... @Lothar M. Du hast die Problematik schön aufgezeigt. Aber nicht alles. Es ist ja nicht gesagt, dass a) der MUX umgeschaltet wird und b) dass die zu messende Spannung am ADC-Eingang konstant ist (dann muss ich sie doch gar nicht messen - nur einmal mit meinem Spannungsmesser, oder? 😀). Ich will nur damit sagen, dass die Problematik mit hochohmigen Quellen und zu hoher Abtastrate schon vorhanden ist, wenn sich die zu messende Spannung ändert.
:
Bearbeitet durch User
Lothar M. schrieb: > Michael schrieb: >> das wusste ich nicht, dass der MUX erst mit dem Start der Wandlung >> umgeschaltet wird. Das heißt doch, dass die erste Messung prinzipiell >> für die Tonne ist. > Wenn die Quellimpedanz so niedrig ist, wie das Datenblatt es verlangt > (10kOhm), dann reicht selbst beim schnellsten ADC-Timing die Zeit aus, > um den 15pF-Kondensator für hinreichende Genauigkeit (= mit den > Fehlergrenzen, die das Datenblatt verspricht) aufzuladen. Da hätte der Hinweis gereicht, du brauchst einen Impedanzwandler, wie ich beim ersten Post befürchtet hatte. >> Kann ich das noch irgendwo nachlesen, wie lange das dauert. > Ja, im Datenblatt des verwendeten µC. Es lohnt sich generell, das > Datenblatt des verwendeten ICs zu kennen und Informationen daraus > herleiten zu können. Da stimme ich 100% zu aber 200 Seiten sind halt nicht so schnell zu lesen, geschweige denn alle Fakten intus zu haben. Vermute mal Du hast auch länger als 3 Tage beim ersten Mal dazu gebraucht. >> Habe auch noch in keinem Beispiel gesehen, dass bei Mittelwertmessungen >> der erste Wert nicht berücksichtigt wird. > Ja, warum auch? Und ganz viele verwenden "Mittelwertmessungen" dann auch > dafür, irgendwelche andere Designschwächen zu übertünchen. > > Übrigens: der Medianwert ist bei Sensoren oft besser als der übliche > arithmetische Mittelwert. > - > https://support.zendesk.com/hc/de/articles/4408839402906-Mittelwert-vs-Median > So pauschal kann man das nicht sagen, denn das hängt von der Verteilung ab (lässt sich mit einem CHI-Quadrat-Anpassungstest ermitteln. Bei einer Normalverteilung ist das eh egal, da Modal, Median und ar. Mittelwert identisch sind. Für sehr kleine Stichproben stimme ich Deiner Aussage zu, dass man mit dem Median auf der sichereren Seite liegt. >> das wusste ich nicht, dass der MUX erst mit dem Start der Wandlung >> umgeschaltet wird. > Du kannst dank Google und Internet den Sourcecode der Routinen ganz > einfach näher anschauen. Probiers aus und du siehst: die Ausrede "das > wusste ich nicht", die gilt nicht. Nicht mal sich selber gegenüber. > > Mein Prinzip ist da ganz einfach: traue keiner Funktion, die du nicht > selber geschrieben oder von der du den Code nicht verstanden hast. Das wusste ich nicht, das die Aussage ich wusste es nicht eine Ausrede ist. Ich halte diese Aussage für ein Faktum. Du scheinst zu den Glücklichen zu gehören, die entweder alles wissen oder alles verstehen. Da beneide ich Dich, auch darum, dass Du Dir die Mühe machst alles zu verstehen. Hut ab. Thread kann geschlossen werden werden. Habe gennug Hinweise bekommen. Leider keine Antwort wie hoch nun der Eingangswiderstand wirklich ist.
> Lothar M. schrieb: Kann ich das noch irgendwo nachlesen, wie lange das dauert. >> Ja, im Datenblatt des verwendeten µC. Es lohnt sich generell, das >> Datenblatt des verwendeten ICs zu kennen und Informationen daraus >> herleiten zu können. > Da stimme ich 100% zu aber 200 Seiten sind halt nicht so schnell zu > lesen, geschweige denn alle Fakten intus zu haben. > Vermute mal Du hast auch länger als 3 Tage beim ersten Mal dazu > gebraucht. Konnte meine Antwort leider nicht mehr ergänzen, deshalb neuer Post. Aus dem Ersatzschaltbild Fig 17-8 auf Seite 129 ergibts sich bei 100k eine Zeitkonstante t = 1,4 us, d.h. der C ist nach 10us (7*t) fast vollständig aufgeladen, so dass der Eingangswiderstand nahezu unendlich ist (entspricht einer Abtastrate von 50kHz. Vielleicht verstehe ich das Ersatzschaltbild aber auch nicht.
Nur so aus Interesse: was sind eigentlich die Voraussetzungen? Also offenbar zwei Eingangsspannungen, jede mit Ri= 5 MOhm. a) in welchem Spannungsbereich liegen diese b) wie schnell ändern sie sich c) sollen die beiden Kanäle gleich behandelt werden d) welche Referenz wird verwendet e) welche Genauigkeit wird verlangt f) welche Programmierumgebung g) was funktioniert am anscheinend bereits vorhandenen Programm nicht
Michael schrieb: > Für sehr kleine Stichproben stimme ich Deiner Aussage zu, dass man mit > dem Median auf der sichereren Seite liegt. Du selber hast eine "kleine" Stichprobe in Form von "kleinen n-Zahlen" ins Rennen geführt. Michael schrieb: > Da hätte der Hinweis gereicht, du brauchst einen Impedanzwandler, wie > ich beim ersten Post befürchtet hatte. Weil du die Nebenbedingungen (Abtasthäufigkeit, Signalfrequenz, Signalform) nicht mitgeteilt hast, kann diese Aussage so pauschal nicht stimmen. Wenn du wie gesagt "100 ms Wartezeit" hast (z.B. hochohmiger Spannungsteiler an einem Akku), dann musst du nichts puffern, das habe ich in meinen Tests oben klar gezeigt. Und ein Impedanzwandler an einer Quelle mit 5M Innenwiderstand ist auch eine nicht ganz triviale Aufgabe. Klaus H. schrieb: > Es ist ja nicht gesagt, dass a) der MUX umgeschaltet wird Ja, das ist mein Beispiel "Test 1". Aber Michael schaltet den Mux tatsächlich um, er hat "2 Eingänge mit Gleichspanung" zu wandeln. > b) dass die zu messende Spannung am ADC-Eingang konstant ist Die Spannung muss nur für die Wandlungszeit so "konstant" sein, dass sie sich weniger als 1 LSB ändert. Sonst kommt eben ein Ergebnis heraus, das irgendwo zwischen dem Minimal- und dem Maximalwert liegt. Aber auch das ist hier dank der zu messenden Gleichspannung kein Problem. Michael schrieb: > sich bei 100k eine Zeitkonstante t = 1,4 us, d.h. der C ist nach 10us > (7*t) fast vollständig aufgeladen Richtig, er ist in diesem Fall bis auf 1 LSB des Endwerts aufgeladen. Und das bei einer Quellimpedanz von annähernd 0 Ohm. Michael schrieb: > das die Aussage ich wusste es nicht eine Ausrede ist. Es ist natürlich zuallererst einfach die Wahrheit. Korrekt hättest du aber sagen müssen: "Ich habe nicht nachgeschaut, was der Sourcecode macht." Michael schrieb: > Du scheinst zu den Glücklichen zu gehören, die entweder alles wissen > oder alles verstehen. Ich will es wissen. Auch ich habe in diesem Thread was gelernt. Irgendwann brauche ich das wieder. Deshalb habe ich mir den Thread in die Bookmarks genommen. > Da beneide ich Dich, auch darum, dass Du Dir die Mühe machst alles zu > verstehen ...bzw. es wenigstens zu wollen. ;-) Ich habe aus Erfahrung gelernt: es gibt nichts Schlimmeres als eine voreilige "Zufriedenheit" mit einer naheliegenden Erklärung. Das fällt einem irgendwann wieder auf den Kopf.
:
Bearbeitet durch Moderator
Bei den STM32 gibt es in den Datenblaettern eine Tablelle Table "Maximum ADC RAIN". Gibt es das nicht bei Atmel/Microchip?
Michael schrieb: > Das heißt doch, dass die erste Messung prinzipiell > für die Tonne ist. Nur wenn du die Referenz umgeschaltet hast, sonst nicht (vor allem nicht beim Wechsel des Channels). Zitat aus dem dem Datenblatt zum ATmega328-328P, Kapitel 28.5.2 ADC Voltage Reference: >> The first ADC conversion result after switching reference voltage source may >> be inaccurate, and the user is advised to discard this result.
Uwe B. schrieb: > Bei den STM32 gibt es in den Datenblaettern eine Tablelle Table "Maximum > ADC RAIN". Gibt es das nicht bei Atmel/Microchip? Nur vereinzelt. Allerdings ist der Leckstrom bei fast allen AVR auf typ. 5nA spezifiziert. Da muss man sich bei weiten nicht so viele Gedanken machen, wie wenn der wie beim STM32 gut 200x größer bei +-1µA ist. In der Tabelle fain -> RAIN erscheint mir angesichts des typischen Leckstroms ein Widerstand um 1 MOhm bei niedrigen Abtastraten aber als sehr sportlich... - https://www.st.com/resource/en/application_note/an2834-how-to-optimize-the-adc-accuracy-in-the-stm32-mcus-stmicroelectronics.pdf - https://www.st.com/resource/en/application_note/cd00004444-understanding-and-minimising-adc-conversion-errors-stmicroelectronics.pdf - https://electronics.stackexchange.com/questions/311967/how-to-have-an-accurate-adcstm32 M. K. schrieb: > Zitat aus dem dem Datenblatt zum ATmega328-328P, Kapitel 28.5.2 ADC > Voltage Reference: >>> The first ADC conversion result after switching reference voltage source >>> may be inaccurate, and the user is advised to discard this result. Den Grund hat Peter weiter oben genannt, als er schrieb: > Die Bandgap ist sehr hochohmig angeschlossen, so daß ein Delay notwendig > ist. Dieses Delay wird durch die zusätzliche, zu verwerfende, Messung erzeugt.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Uwe B. schrieb: >> Bei den STM32 gibt es in den Datenblaettern eine Tablelle Table "Maximum >> ADC RAIN". Gibt es das nicht bei Atmel/Microchip? > Nur vereinzelt. Allerdings ist der Leckstrom bei fast allen AVR auf typ. > 5nA spezifiziert. Da muss man sich bei weiten nicht so viele Gedanken > machen, wie wenn der wie beim STM32 gut 200x größer bei +-1µA ist. Naja, so groß ist der Unterschied nicht, bei beiden (ATtiny85, STM32F103) steht 1µA Max im Datenblatt. Der typische Wert ist natürlich bei beiden kleiner, das erklärt die Messergebnisse hier. Aber wenn ein grenzwertiger Chip warm wird, darf er eben auch 1µA fließen lassen. Und nein, das ist dann keine Fälschung ;) > In der Tabelle fain -> RAIN erscheint mir angesichts des typischen > Leckstroms ein Widerstand um 1 MOhm bei niedrigen Abtastraten aber als > sehr sportlich... Unterschreib; aber siehe oben... Edit: nebenbei: STM32L051xxx3 z.B. sind mit ±50nA max. bei 125°C spezifiziert
:
Bearbeitet durch User
S. L. schrieb: > Nur so aus Interesse: was sind eigentlich die Voraussetzungen? Also > offenbar zwei Eingangsspannungen, jede mit Ri= 5 MOhm. nein, nur 1 Eingang (Fotowiderstand als Dämmerungssensor: Spannungsteiler Vcc-R1-Rfoto-GND). Der andere Spannungsteiler zur Vcc-Überwachung: Vcc-100k-100k-GND). > a) in welchem Spannungsbereich liegen diese Referenzspannung wurde zu 2,56V gewählt, Widerstände berechnet dass Vcc>Ue>Uref/2 > b) wie schnell ändern sie sich näherungsweise im Minutenbereich. > c) sollen die beiden Kanäle gleich behandelt werden nicht wichtig, Vcc_Messung erfolgt einmal täglich beim Übergang Hell-Dunkel, bestimmt vom Dunkelwiderstand des Rfoto. > d) welche Referenz wird verwendet 2,56V > e) welche Genauigkeit wird verlangt 10% sind ausreichend, also nicht so wichtig. > f) welche Programmierumgebung Atmel Studio 7.0 > g) was funktioniert am anscheinend bereits vorhandenen Programm nicht Programm läuft fehlerfrei, musste den Vorwiderstand des Rfoto deutlich anpassen. Rfoto gemessen bei der gewünschten Dämmerung 5.217 k. R1 errechnet zu 5M. Für den definierten Vcc-Breich (4,2V>Vcc>3,5V) lieferte der Spannungsteiler Vi>Uref/2. Nach dem Anschließen dieses Spannungsteilers musste ich experimentell einem Widerstand von 1,1 M wählen, um in den geforderten Uref-Bereich zu kommen. Deshalb meine Frage nach dem Innenwiderstand (gemeint Gleichstrom, aber nicht beschrieben) ob den jemand kennt. Daraus hatte ich geschlussfolgert, dass er ca. 1M beträgt. Hatte aber im Datenblatt nichts gefunden. Gruß M.
Lothar M. schrieb: > Michael schrieb: >> Für sehr kleine Stichproben stimme ich Deiner Aussage zu, dass man mit >> dem Median auf der sichereren Seite liegt. > Du selber hast eine "kleine" Stichprobe in Form von "kleinen n-Zahlen" > ins Rennen geführt. richtig, um zu verdeutliche, dass man so pauschal Deine Aussage nicht zutrifft. > Michael schrieb: >> Da hätte der Hinweis gereicht, du brauchst einen Impedanzwandler, wie >> ich beim ersten Post befürchtet hatte. > Weil du die Nebenbedingungen (Abtasthäufigkeit, Signalfrequenz, > Signalform) nicht mitgeteilt hast, kann diese Aussage so pauschal nicht > stimmen. Wenn du wie gesagt "100 ms Wartezeit" hast (z.B. hochohmiger > Spannungsteiler an einem Akku), dann musst du nichts puffern, das habe > ich in meinen Tests oben klar gezeigt. Da gebe ich Dir unumwunden recht, dass meine Frage nicht präzise untermauert war. Das war meine "Betriebsblindheit", denn für mich und nur für mich war es klar, dass ich den Gleichstromeingangswiderstand meinte. Für mich war das eben völlig klar, sonst hätte ich von Eingangsimpedanz gesprochen und dass die frequenzabhängig ist, weiß ich sehr wohl. Insofern wäre die Frage ohne Kenntnis weiterer Schaltungsparameter nicht zu beantworten. > Und ein Impedanzwandler an einer Quelle mit 5M Innenwiderstand ist auch > eine nicht ganz triviale Aufgabe. Das weiß ich, habe früher diese Problem öfter gehabt, nämlich bei der Ableitung von intrazelluren Potentialen (Neuronen). > > Klaus H. schrieb: >> Es ist ja nicht gesagt, dass a) der MUX umgeschaltet wird > Ja, das ist mein Beispiel "Test 1". Aber Michael schaltet den Mux > tatsächlich um, er hat "2 Eingänge mit Gleichspanung" zu wandeln. Ja der MUX wird umgeschaltet. Beim Eintreten der Dämmerung und bis zum Eintreten des Tageslichtes nicht mehr. >> b) dass die zu messende Spannung am ADC-Eingang konstant ist > Die Spannung muss nur für die Wandlungszeit so "konstant" sein, dass sie > sich weniger als 1 LSB ändert. Sonst kommt eben ein Ergebnis heraus, das > irgendwo zwischen dem Minimal- und dem Maximalwert liegt. Aber auch das > ist hier dank der zu messenden Gleichspannung kein Problem. Ja die Spannung ist konstant und die Genauigkeit 1LSB ist nicht erforderlich. > Michael schrieb: >> sich bei 100k eine Zeitkonstante t = 1,4 us, d.h. der C ist nach 10us >> (7*t) fast vollständig aufgeladen > Richtig, er ist in diesem Fall bis auf 1 LSB des Endwerts aufgeladen. > Und das bei einer Quellimpedanz von annähernd 0 Ohm. Wie Du auf 0 Ohm kommst verstehe ich nicht. Meines Wissens genügt es, dass Rquelle << Re ist un Re wird von der geforderten Genauigkeit bestimmt. Glaube Du hast Dich mit der Aussage 0 Ohm wieder weit aus dem Fenster gelehnt. > Michael schrieb: >> das die Aussage ich wusste es nicht eine Ausrede ist. > Es ist natürlich zuallererst einfach die Wahrheit. Korrekt hättest du > aber sagen müssen: "Ich habe nicht nachgeschaut, was der Sourcecode > macht." Meinen Sourcecode kenne ich schon und manch andere Sourcecode verstehe ich halt nicht ohne deutlich viel Zeit zu investieren. > Michael schrieb: >> Du scheinst zu den Glücklichen zu gehören, die entweder alles wissen >> oder alles verstehen. > Ich will es wissen. Auch ich habe in diesem Thread was gelernt. > Irgendwann brauche ich das wieder. Deshalb habe ich mir den Thread in > die Bookmarks genommen. Das ist gut, ich auch. >> Da beneide ich Dich, auch darum, dass Du Dir die Mühe machst alles zu >> verstehen > ...bzw. es wenigstens zu wollen. ;-) Das versuche ich auch, aber manchmal ist halt der Aufwand sehr groß und der "Schweinehund" gewinnt. > Ich habe aus Erfahrung gelernt: es gibt nichts Schlimmeres als eine > voreilige "Zufriedenheit" mit einer naheliegenden Erklärung. Das fällt > einem irgendwann wieder auf den Kopf. uneingeschränkte Zustimmung. Hinzu kommt man sollte nicht auf einem Podest stehen und meinen immer Recht zu haben. Auch das habe ich lernen müssen und Du wirst es auch noch.
Und wie der Teufel es will finde ich heute auf Seite 167 des Datenblatts Punkt 21.7 ADC Characteristiks die Aussage Rain - Analog Input Resistance - 100 MOhm. Da frage ich mich nun um so mehr, warum meine Eingangsspannung (Vcc-5MOhm-Rfoto(5,1MOhm)-GND zusammenbricht. Dasa dürfte ja nicht sein. M.
:
Bearbeitet durch User
an Michael: Danke für die ausführliche Antwort. Die Anforderungen sind völlig unproblematisch - theoretisch. Praktisch aber bleibt die Frage, die Sie sich eben auch stellten. Also ich hatte das Problem nicht (siehe irgendwo ganz oben), folglich ist Ihr Aufbau nicht in Ordnung, oder der ATtiny85; wenn vorhanden, es mit einem zweiten probieren, oder zumindest mal die beiden Eingänge tauschen. Vielleicht war auch die Messung des Dämmerungswertes (die 5,217 MOhm) falsch. Der ADC-Programmteil wäre noch von Interesse. PS: Vielleicht irgendetwas mit ADLAR ...
:
Bearbeitet durch User
Michael schrieb: > Und wie der Teufel es will finde ich heute auf Seite 167 des Datenblatts > Punkt 21.7 ADC Characteristiks die Aussage > Rain - Analog Input Resistance - 100 MOhm. So ziemlich das Gleiche stand schon im ersten Post nach deiner Frage. Und da steht im DB sicher auch, dass das ein typischer Wert ist, der bei typischer Versorgung und Zimmertemperatur gilt. > warum meine Eingangsspannung (Vcc-5MOhm-Rfoto(5,1MOhm)-GND > zusammenbricht. Dasa dürfte ja nicht sein. Das ist die zäheste Salami, die seit langem hier in hauchdünnsten Scheibchen geschnitten und serviert wurde. Wie wärs, wenn du einfach mal deine Schaltung, den Aufbau und das zugehörige Programm postest. Und dann auch noch beschreibst, was damit passiert und was du stattdessen erwartet hättest.
:
Bearbeitet durch Moderator
> Das ist die zäheste Salami ... Für mich allerdings sieht es eher so aus, als hätten sich einige in Mutmaßungen und Hellsehereien verrannt und den Thread aufgeblasen, um schließlich sogar noch beim STM32 zu enden.
1. Ich glaube es ist genug nun. 2. Die Hardware tut was sie soll. 3. Der Code tut was er soll. 4. Vorwiderstand für den Dämmerungssensor so gewählt, dass es passt. 5. Vcc 3,7V. Umgebungstemperatur 18-23grd. 6. Für S.L. Code in der Anlage und für die, die interessiert, ist ja keine Hexerei. 7. Für S.L. meine Antwort zu c) stimmt nicht (sollen die beiden Kanäle gleich behandelt werden nicht wichtig, Vcc_Messung erfolgt einmal täglich beim Übergang Hell-Dunkel, bestimmt vom Dunkelwiderstand des Rfoto.) Das wollte ich so tun, war mir aber zu aufwendig, Deshalb in der while Schleife. Denke aber, dass das zeitunkritisch ist. Drückt mal alle für unsere Handballer heute die Daumen. M.
S. L. schrieb: > Der ADC-Programmteil wäre noch von Interesse. > > PS: > Vielleicht irgendetwas mit ADLAR ... s. mein Post 24.01.2024 18:24 danke Dir und Gruß M.
> Code in der Anlage > s. mein Post 24.01.2024 18:24 ?
S. L. schrieb: > ? Lass mich nochmal kurz mutmaßen und hellsehen: Michael will, dass endlich Schluss ist und seine Ruhe haben.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Lass mich nochmal kurz mutmaßen und hellsehen: Michael will, dass > endlich Schluss ist und seine Ruhe haben. Du schriebst Lasst mich NOCHMAL, ich hatte Deinen Posts nicht entnommen, dass Du mutmaßt und hellsiehst. Du musst es besser wissen. Wenn Du anderer Meinung bist, es gäbe noch etwas substanzielles zu sagen, refistrierre ich das ja, denn der Post ist gebookmarkt bei mir. Vielleicht ist Dir auch mein Beitrag vom 24.01.2024 15:53 entgangen. "Und wie der Teufel es will finde ich heute auf Seite 167 des Datenblatts Punkt 21.7 ADC Characteristiks die Aussage Rain - Analog Input Resistance - 100 MOhm." Damit ist meine Frage ja beantwortet. Vielleich sollte das jetzt aber nur eine kleine Spitze gegen mich sein. Gruß M.
S. L. schrieb: > ? Den Attiny werde ich wechseln, an so etwas hatte ich überhaupt nicht gedacht und melde mich wieder, voraussichtlich am WE. M.
Das Fragezeichen bezog sich darauf, dass ich keinen "Code in der Anlage" finden kann. Noch eine Anmerkung: bei den Photowiderständen, mit denen ich zu tun hatte, ist der Helligkeitsunterschied zwischen z.B. 5 und 2 MOhm recht gering, vielleicht haben Sie sich da täuschen lassen.
S. L. schrieb: > der Helligkeitsunterschied zwischen z.B. 5 und 2 MOhm recht gering Subjektiv oder gemessen?
S. L. schrieb: > Das Fragezeichen bezog sich darauf, dass ich keinen "Code in der Anlage" > finden kann. > > Noch eine Anmerkung: bei den Photowiderständen, mit denen ich zu tun > hatte, ist der Helligkeitsunterschied zwischen z.B. 5 und 2 MOhm recht > gering, vielleicht haben Sie sich da täuschen lassen. Datei in der Anlage. muss ich wohl etwas versemmelt haben. meine Hilfsmessungen Lux n R KOhm Bedingung 1.554 1 4 am Fenster bewölkt 30 2 11 Stube bewölkt 0 3 387 vorhänge zu dämmerung bewölkt 0 4 550 vorhänge zu dämmerung fernseher aus 0 5 1.156 Jalousien runter/fernseher an/laptop bildschirm an 0 6 11.790 Jalousien runter/fernseher aus/laptop BS an 0 7 100.000 Jalousien runter/fernseher aus/laptop BS aus die 0 Lux konnte ich nicht genauer auflösen, habe mich für die Auswahl des Referenzwertes auf meine visuelle Einschätzung verlassen (Bei welcher Dämmerung soll LED einschalten). M.
:
Bearbeitet durch User
Michael schrieb: > S. L. schrieb: >> Noch eine Anmerkung: bei den Photowiderständen, mit denen ich zu tun >> hatte, ist der Helligkeitsunterschied zwischen z.B. 5 und 2 MOhm recht >> gering, vielleicht haben Sie sich da täuschen lassen. > im Anhang Kennlinie
Beispiele Beleuchtungsstärken: Vollmond: 0,27 lx Neumond: 0,001 lx https://de.wikipedia.org/wiki/Beleuchtungsstärke
an Georg M.: rein subjektiv an Michael: das kann jetzt eine Weile dauern
Georg M. schrieb: > Michael schrieb: >> im Anhang Kennlinie > > Was ist das für eine x-Achse? das sind die HelligkeitsBedingungen
Georg M. schrieb: > Beispiele Beleuchtungsstärken: > Vollmond: 0,27 lx > Neumond: 0,001 lx > > https://de.wikipedia.org/wiki/Beleuchtungsstärke kenne ich. sind leider mit meinem luxmeter nicht zu messen
Michael schrieb: > Georg M. schrieb: >> Michael schrieb: >>> im Anhang Kennlinie >> >> Was ist das für eine x-Achse? > > das sind die HelligkeitsBedingungen Jalousine, Fernseher, Laptop Bildscherm
'Init_IO_Ports ... PORTB |= (1 << ADC3_Pin2) ... pull up' Ein interner Pullup an einem ADC-Eingang?
Mit diesem reduzierten Programm habe ich, bei Ucc= 4.0 V und R1= 4,7 MOhm, für Rph eine Schaltschwelle von ca. 4 MOhm. PS: Und, wie immer, der generelle Hinweis: eine Test-Software so einfach&kurz wie nur irgend möglich halten, besonders aber bei Verdacht auf Chip- oder sonstige Hardwareprobleme - Letztere sind für sich genommen schon unangenehm genug.
:
Bearbeitet durch User
S. L. schrieb: > 'Init_IO_Ports ... PORTB |= (1 << ADC3_Pin2) ... pull up' > > Ein interner Pullup an einem ADC-Eingang? habe ich irgendwo gelesen als Empfehlung. Das könnte ja die Ursache sein. da der PullUp im Ersatzschaltbild parallel zu Rain liegt.
S. L. schrieb: > Mit diesem reduzierten Programm habe ich, bei Ucc= 4.0 V und R1= > 4,7 > MOhm, für Rph eine Schaltschwelle von ca. 4 MOhm. > > PS: > > Und, wie immer, der generelle Hinweis: eine Test-Software so > einfach&kurz wie nur irgend möglich halten, besonders aber bei Verdacht > auf Chip- oder sonstige Hardwareprobleme - Letztere sind für sich > genommen schon unangenehm genug. Das ist ja keine Testsoftware. Fürf den Hinweis danke ich, das wäre ein Leichtes gewesen. Den Rain hatte ich nicht getestet, nur die Funktionsweise der ADCs.
Michael schrieb: > habe ich irgendwo gelesen als Empfehlung. Habe ich gleich mit heraus geschnitten, erklärte der Chirurg, habe ich irgendwo gelesen als Empfehlung.
S. L. schrieb: > Mit diesem reduzierten Programm habe ich, bei Ucc= 4.0 V und R1= 4,7 > MOhm, für Rph eine Schaltschwelle von ca. 4 MOhm. Das mit dem PullUp am ADC ist offensichtlich Mist, habe https://forum.arduino.cc/t/solved-attiny85-adc-read-problem/481840 gefunden. Erklärung 2. Betrag.
Norbert schrieb: > Michael schrieb: >> habe ich irgendwo gelesen als Empfehlung. > > Habe ich gleich mit heraus geschnitten, erklärte der Chirurg, habe ich > irgendwo gelesen als Empfehlung. Freue mich dass Du keine Empfehlungen befolgst. Da kannst Du ja überhaupt nichts falschmachen.
Michael schrieb: > Freue mich dass Du keine Empfehlungen befolgst. Da kannst Du ja > überhaupt nichts falschmachen. Ein typischer Fehlschluss, wie er im Forum immer wieder gerne (und viel zu oft) auftaucht. ;-)
Norbert schrieb: > typischer Fehlschluss Manche Annahmen sind so dermaßen falsch, dass noch nicht einmal das Gegenteil richtig ist.
an Michael: > Das könnte ja die Ursache sein. da der PullUp > im Ersatzschaltbild parallel zu Rain liegt. Kaum - der Effekt geht ja genau in die andere Richtung: dass Sie R1 verkleinern mussten (1.1 MOhm statt 5), wäre nur durch einen Pulldown zu erklären. PS: ... so, wie es auch durch einen zu kleinen Rain verursacht würde. Aber mit dem Testprogramm können Sie jetzt ja recht schnell einen Chipfehler ausschließen und einen Softwarefehler bestätigen (oder eben umgekehrt).
:
Bearbeitet durch User
S. L. schrieb: > an Michael: >> Das könnte ja die Ursache sein. da der PullUp >> im Ersatzschaltbild parallel zu Rain liegt. > > Kaum - der Effekt geht ja genau in die andere Richtung: dass Sie R1 > verkleinern mussten (1.1 MOhm statt 5), wäre nur durch einen Pulldown zu > erklären. > Hier irrte ich. Meine Aussage gilt nur für Wechselstromersatzschild, also für diesen Fall nicht. > ... so, wie es auch durch einen zu kleinen Rain verursacht würde. > > Aber mit dem Testprogramm können Sie jetzt ja recht schnell einen > Chipfehler ausschließen und einen Softwarefehler bestätigen (oder eben > umgekehrt). Nun habe ich alle 10 Attinys getestet, 7 davon mit zu kleinem Rain. Sind nun gekennzeichnet. Für alle die es interessiert die main nochmals im anhang. Gruß M und danke für die Mühe.
Michael schrieb: > Nun habe ich alle 10 Attinys getestet, 7 davon mit zu kleinem Rain. Weil es gar nicht so arg einfach ist, in ICs "eingebaute" Widerstände im 100 MOhm-Bereich zuverlässig zu messen: mit welchem Messaufbau und unter welchen Testbedingungen hast du den Rain gemessen? Und welche Werte für Rain hast du dabei bei deinen 10 Prüflingen erhalten? > die main nochmals im anhang. In diesem Kommentar taucht immer noch zweimal "PB2" und zweimal "0010" auf:
1 | ADC3 for input (PB2) = 0010; ADC2 (PB4) = 0010; ADC1 (PB2) = 0001; ADC0 (PB5) = 0000 |
Mein Motto dazu: besser kein Kommentar als ein mehrfach Falscher.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Michael schrieb: >> Nun habe ich alle 10 Attinys getestet, 7 davon mit zu kleinem Rain. > Weil es gar nicht so arg einfach ist, in ICs "eingebaute" Widerstände im > 100 MOhm-Bereich zuverlässig zu messen: mit welchem Messaufbau und unter > welchen Testbedingungen hast du den Rain gemessen? > > Und welche Werte für Rain hast du dabei bei deinen 10 Prüflingen > erhalten? > zwischen 800k und 1,2M >> die main nochmals im anhang. > In diesem Kommentar taucht immer noch zweimal "PB2" und zweimal "0010" > auf: >
1 | > ADC3 for input (PB3) = 0010; ADC2 (PB4) = 0010; ADC1 (PB2) = 0001; ADC0 |
2 | > (PB5) = 0000 |
3 | >
|
danke, habe ich korrigiert, kommt von copy and paste, wenn nicht alles
intus ist.
> Mein Motto dazu: besser kein Kommentar als ein mehrfach Falscher.
Da ich nicht ständig mit den uC arbeite, meist nur von Dezember bis
Februar (haben eine kleine Hobbyimkerei fast 200 km vom Wohnort, so dass
der Rest des Jahres ausgefüllt ist, brauche ich die Kommentare, um mich
später bei Bedarf wieder reinzufitzen bzw, nachzuschlagen, wie war denn
das.
So wie ich mich auch immer erstmal wieder in die IDE, KICAD, FREECAD und
ein Flussdiagrammprogramm wieder einarbeiten muss.
Früher brauchte ich das auch nicht.
Gruß M.
Michael schrieb: >> Mein Motto dazu: besser kein Kommentar als ein mehrfach Falscher. > Da ich nicht ständig mit den uC arbeite, meist nur von Dezember bis > Februar (haben eine kleine Hobbyimkerei fast 200 km vom Wohnort, so dass > der Rest des Jahres ausgefüllt ist, brauche ich die Kommentare, um mich > später bei Bedarf wieder reinzufitzen bzw, nachzuschlagen, wie war denn > das. Falsche Sicht! Deine Bienen haben damit nichts zu tun. Mein Rat: Der Code sagt, WAS getan wird. Der Kommentar erklärt das WARUM Beherzigt man das, kann es keine solchen (selbst/fremd)Verwirrungen geben. Und wie schon gesagt: Die Schuld auf die Bienen zu schieben, ist absurd.
Arduino F. schrieb: > Falsche Sicht! > Deine Bienen haben damit nichts zu tun. > > Mein Rat: > Der Code sagt, WAS getan wird. > Der Kommentar erklärt das WARUM > > Beherzigt man das, kann es keine solchen (selbst/fremd)Verwirrungen > geben. > > Und wie schon gesagt: Die Schuld auf die Bienen zu schieben, ist absurd. nur kein Neid
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.