Ich würde gerne mein drittes Projekt in den Ring werfen, das gleichzeitig mein erstes Projekt sein dürfte welches hoffentlich einem gewissen Anspruch gerecht wird und nicht aus gleich mehreren gravierenden Anfängerfehlern besteht. Es handelt sich wahrlich um nichts Besonderes, sondern nur um ein batteriebetriebenes Thermometer und Hygrometer mit einem E-Ink Display. Ich hab hier vor allem versucht, eine möglichst hohe Genauigkeit und geringen Stromverbrauch hinzubekommen. Und eben eine nette, gut ablesbare Anzeige, und ein hübsches Gehäuse, auch wenn es nicht gerade alltagstauglich ist... Für Hinweise auf gröbere Fehler und Verbesserungsvorschläge wäre ich dankbar, ich lerne gerne dazu und ohne die super Ratschläge einiger Leute aus dem Netz wäre das Ding nicht halb so gut geworden. Der Code ist hier: https://github.com/gitdode/thermidity Torsten
Torsten R. schrieb: > Ich hab hier vor allem versucht, eine möglichst hohe Genauigkeit und > geringen Stromverbrauch hinzubekommen. Im Prinzip hübsch, aber warum wählst du dann solche Bauteile ,? https://sensirion.com/products/catalog/SHT35-DIS-F Und welchen Stromverbrauch aka Batterielaufzeit bekommst du hin ? https://www.soselectronic.com/de/products/sensirion/sht4x-smart-gadget-354220 Arbeitet dein Display von 2.7 bis 4.2V ? Zumindest der SSD1680 sagt VCI VCI operation voltage VCI 2.2 3.0 3.7 V und ob das Adafruit-Board (neben den beiden Hilfsspannungen die es sowieso produzieren muss) auch diese regelt, konnte ich nicht herausfinden
Michael B. schrieb: > > Im Prinzip hübsch, aber warum wählst du dann solche Bauteile ,? > > https://sensirion.com/products/catalog/SHT35-DIS-F Danke. Ich wollte gerne lernen bzw. es hinbekommen, ratiometrisch mit einem Thermistor und Feuchtesensor zu messen. Das ist sehr interessant finde ich. > > Und welchen Stromverbrauch aka Batterielaufzeit bekommst du hin ? > > https://www.soselectronic.com/de/products/sensirion/sht4x-smart-gadget-354220 > > Arbeitet dein Display von 2.7 bis 4.2V ? > Zumindest der SSD1680 sagt > VCI VCI operation voltage VCI 2.2 3.0 3.7 V > > und ob das Adafruit-Board (neben den beiden Hilfsspannungen die es > sowieso produzieren muss) auch diese regelt, konnte ich nicht > herausfinden Die Betriebsspannung beträgt 3 bis 5V. Das Display kommt mit einem Spannungsregler und Bus Transceiver daher, außerdem einem SRAM den man als Framebuffer nutzen kann. Durch Messung + Schätzung + Berechnung kam ich mal auf ca. 70µA. Mit einem Supercap Kondensator experimentell ermittelt sind es knapp 90µA. Wer misst, misst Mist, ich weiß. Ich hoffe aber dennoch auf gute 12 Monate Betriebsdauer mit drei AAA Alkali-Mangan Batterien.
Ich hab keine Ahnung was der Hersteller deiner MCU so toll findet, aber so gefuehlt kommt mit 1nF an Aref etwas klein vor. Du hast die Resetleitung direkt auf einen Port gelegt. Okay, dein heimisches Wohnzimmer ist keine Industriehalle aber ich wuerde mich trotzdem besser fuehlen wenn es da noch wenigstens einen Kondensator, vielleicht auch noch einen Widerstand gaebe. Sonst kann es dir passieren das deine Schaltung mal resettet wenn du deinen Staubsauger einschaltest. Ich haette den NTC auch direkt auf die Platine gemacht. Sieht huebscher aus und bricht dann nicht irgendwann ab. Der Nachteil davon ist natuerlich das du dann nicht die Lufttemperatur sondern die Platinentemperatur misst. Das kann man etwas verbessern wenn man da noch eine Einfraesung vorsieht, da du aber auf moeglichst geringen Stromverbrauch achtest, ist das in deinem Falle egal. Deine Platine sollte immer Raumtemperatur haben. Irgendeine Form von Sicherungsmassnahme am Eingang waer nicht schlecht falls deine Schaltung mal kaputt geht oder beim naechsten Gewitter in den LatchUp. Bei geringen Stroemen muss das nicht zwangslaeufig eine Sicherung sein, aber es waere besser dein Lithiumakku entlaedt sich dann z.B in einen 100R Widerstand als mit 5A in deine Platine. Andererseits, wenn du keinen dicken Lithiumakku verwendest sondern irgendeine kleine Knopfzelle dann koennte ein Elko am Eingang die Laufzeit der Batterie verbessern weil dein Controller ja fast immer im Sleepmode ist und nur kurz viel, wegen E-Ink vermutlich sogar sehr viel, Strom zieht. Das verlaengert dir dann die Batterielebensdauer. Ich hab das Datenblatt deine Sensor nicht gelesen, aber 65k? Waere da nicht etwas aus der E12 Reihe gegangen? Es waer zur Bewertung deiner Leistung fuer andere auch nett wenn du die mittlere und die maximalen Stromaufnahme angeben wuerdest. :) Vanye
Vielen Dank für deine sehr lehrreiche Antwort! Vanye R. schrieb: > Ich hab keine Ahnung was der Hersteller deiner MCU so toll > findet, aber so gefuehlt kommt mit 1nF an Aref etwas klein vor. Der Hersteller nennt im Datenblatt keinen konkreten Wert aber üblich sind hier wohl eher 10nF oder 100nF? Allerdings dauert es dann finde ich sehr lange, bis der Kondensator sich entladen hat wenn man AREF von AVCC (3-5V) auf die internen 1.1V umschaltet. Wenn ich das mit dem Oszi richtig angeschaut hab, dauert das mit 1nF schon ca. 125us (siehe Anhang) also habe ich versucht einen Kompromiss zu finden, also die Aktivzeit möglichst kurz zu halten. > Du hast die Resetleitung direkt auf einen Port gelegt. Okay, > dein heimisches Wohnzimmer ist keine Industriehalle aber ich > wuerde mich trotzdem besser fuehlen wenn es da noch wenigstens > einen Kondensator, vielleicht auch noch einen Widerstand gaebe. > Sonst kann es dir passieren das deine Schaltung mal resettet > wenn du deinen Staubsauger einschaltest. Das werde ich bei der nächsten Schaltung oder ggf. bei einem "Update" berücksichtigen. > Ich haette den NTC auch direkt auf die Platine gemacht. > Sieht huebscher aus und bricht dann nicht irgendwann ab. Wird das Ansprechverhalten dann nicht relativ träge? Ansonsten hätte ich das auch schöner gefunden. > Irgendeine Form von Sicherungsmassnahme am Eingang waer > nicht schlecht falls deine Schaltung mal kaputt geht oder > beim naechsten Gewitter in den LatchUp. Bei geringen Stroemen > muss das nicht zwangslaeufig eine Sicherung sein, aber es waere > besser dein Lithiumakku entlaedt sich dann z.B in einen 100R > Widerstand als mit 5A in deine Platine. Ich frage mich, warum ich daran nicht gedacht hab. Betrieben wird die Schaltung mit 3 AAA Batterien oder Akkus. Wie gefährlich wäre denn ein Kurzschluss, muss ich nachbessern? Wäre eine selbstrückstellende Sicherung sinnvoll oder ist damit die Verlustleistung/der Spannungsabfall zu hoch, auch verglichen mit einem 100R Widerstand? > Andererseits, wenn du keinen dicken Lithiumakku verwendest sondern > irgendeine kleine Knopfzelle dann koennte ein Elko am Eingang die > Laufzeit der Batterie verbessern weil dein Controller ja fast immer > im Sleepmode ist und nur kurz viel, wegen E-Ink vermutlich sogar sehr > viel, > Strom zieht. Das verlaengert dir dann die Batterielebensdauer. Auch interessant. Und es stimmt, wenn die Anzeige ca. alle 5 Minuten aktualisiert wird, ist der Controller aktiv und das Display nimmt 3mA. Das könnten zusammen ja schon 10mA sein. Gemessen hab ich etwa 3-7mA. > Ich hab das Datenblatt deine Sensor nicht gelesen, aber 65k? > Waere da nicht etwas aus der E12 Reihe gegangen? Der Hersteller gibt im Datenblatt tatsächlich einen 65k "minimum load" Widerstand an. Ich hab einen 68k genommen, wollte aber mich aber im Schaltplan nicht einfach über die Angabe der Herstellers hinwegsetzen :) > Es waer zur Bewertung deiner Leistung fuer andere auch nett wenn du > die mittlere und die maximalen Stromaufnahme angeben wuerdest. :) Die mittlere Stromaufnahme müsste bei 90uA liegen. Wenn im ADC noise reduction Mode gemessen wird, schätze ich 1-2mA und bei der Aktualisierung der Anzeige die maximale Stromaufnahme auf bis zu 10mA. Der Ruhestrom ist bei knapp 20uA. Torsten
Torsten R. schrieb: > Vanye R. schrieb: >> Irgendeine Form von Sicherungsmassnahme am Eingang waer >> nicht schlecht falls deine Schaltung mal kaputt geht oder >> beim naechsten Gewitter in den LatchUp. Es gibt LDO, die am Eingang ±20V oder mehr vertragen. So ein 5V-Regler könnte den Strom auf 100 oder 200mA begrenzen und funktioniert gleichzeitig als Verpolungsschutz und Überspannungsschutz, falls jemand zwei 3.6V Akkus einlegt. Eine Sicherung vor dem LDO lohnt sich kaum, es sei denn, sie sitzt direkt am Akku.
> Wird das Ansprechverhalten dann nicht relativ träge? Ansonsten hätte > ich das auch schöner gefunden. Ja wird es, aber wie schnell aendert sich deine Raumtemperatur? > Der Hersteller gibt im Datenblatt tatsächlich einen 65k "minimum load" > Widerstand an. Echt bizarr. Hab ich so noch nicht gesehen. Ueblicher ist eigentlich ein Opendrain, aber vielleicht braucht er das damit der Analogausgang auf 0V runterkommt. Aber gut, kannst du natuerlich dann 65k hin machen. Im industriellen Umfeld kostet mich das dann x Stunden Arbeiten einen neuen Widerstand anzulegen. Dann wird das entweder 56k oder vielleicht sogar zwei Werte in Serie. :) > Ich frage mich, warum ich daran nicht gedacht hab. Betrieben wird die > Schaltung mit 3 AAA Batterien oder Akkus. Wie gefährlich wäre denn ein > Kurzschluss, muss ich nachbessern? Wenn nichts passiert dann brauchst du keine Sicherung. :-D Aber schau mal, du hast eine offene Platine. Demnaechst kommt dein Kumpel zu besucht, sagt was fuer tolle Kiste und packt da dran und schwups LatchUp. Vermutlich wird da nicht gleich dein Haus abbrennen aber dein Mikrocontroller ist dann gefraggt. Noch was, ich du hast ja auch ein paar ungenutze Pins am Controller, schalte die auf Ausgang und Low. Lass die nicht einfach als Defaulteingang rumfloaten. Vanye
Vanye R. schrieb: > Dann wird das entweder 56k oder vielleicht sogar zwei Werte in Serie. :) Für den HIH-5030, der von 2.7-5.5V geht, gibt der Hersteller (bei 3.3V) 65k an. Für den HIH-4030, der von 4.0-5.8V geht, 80k (bei 5V). Komisch oder? Weil ich mit 3.0-4.8V unterwegs bin hab ich also als Kompromiss 68k genommen. > Wenn nichts passiert dann brauchst du keine Sicherung. :-D Alles klar :) Ich hab mich entschieden in die Zuleitung (+) vom Batteriehalter eine Feinsicherung 200mA träge einzubauen. Passt das? > Noch was, ich du hast ja auch ein paar ungenutze Pins am Controller, > schalte die auf Ausgang und Low. Lass die nicht einfach als > Defaulteingang rumfloaten. Ich hab wie vom Hersteller im Datenblatt empfohlen die internen Pull-Ups enabled: https://github.com/gitdode/thermidity/blob/1ceb835d456ac8ddfd7a7db7130275aef63acf98/thermidity-avr/thermidity.c#L86
1 | The simplest method to ensure a defined level of an unused pin, is to enable the internal pull-up. In this case, the pull-up will be disabled during reset. If low power consumption during reset is important, it is recommended to use an external pull-up or pull-down. |
Torsten
> Ich hab mich entschieden in die Zuleitung (+) vom Batteriehalter eine > Feinsicherung 200mA träge einzubauen. Passt das? Kannst du machen. Aber du sagst dein Maximalstrom sind 20mA. Mach einfach einen 10R Widerstand in Reihe. Kannst du ja auch noch auf deine Platine machen. Oder nimm einen PTC: https://www.reichelt.de/ptc-sicherung-smd-0805-15v-100ma-rueckstellend-ptc-fsmd0100805-p279327.html Dessen Widerstand liegt bei 0.9 bis 8R. Bei sowas findet man auch immer eine Leiterbahn auf einer vorhandenen Platine die man durchkratzen und einfach so ein Teil drueber loeten kann. .-) Vanye
Nach genau einem Jahr Betrieb hier eine Rückmeldung zum Stromverbrauch. Die Batteriespannung liegt nun bei ca. 4,1 V. Ganz einfach hochgerechnet könnte also die Laufzeit bei 2,5 Jahren und der durchschnittliche Strombedarf bei 47 µA liegen, also deutlich besser als ursprünglich angenommen. Aber mal sehen - es laufen insgesamt 8 der Dinger - was im Schnitt dann letztendlich herauskommt.
> Die Batteriespannung liegt nun bei ca. 4,1 V. Ganz einfach hochgerechnet > könnte also die Laufzeit bei 2,5 Jahren Ist doch schon ganz super. Obwohl irgendwie ja auch eine coole Herausforderung ist seine Schaltung da noch weiter zu optimieren. Vanye
Mich würde interessieren, aus welchen Gründen hier nun großzügig die "Lesenswürdigkeit" der Beiträge abgewertet wurde. Ganz ohne Begründung ist der Nutzen bzw. der Lerneffekt praktisch gleich Null.
Torsten R. schrieb: > Mich würde interessieren, aus welchen Gründen hier nun großzügig die > "Lesenswürdigkeit" der Beiträge abgewertet wurde. Ganz ohne Begründung > ist der Nutzen bzw. der Lerneffekt praktisch gleich Null. Nimm's nicht persönlich. Das sind Klassenclowns mit ADS, denen langweilig ist und eine negative Grundeinstellung haben. Einfach ignorieren.
Torsten R. schrieb: > Mich würde interessieren, aus welchen Gründen hier nun großzügig die > "Lesenswürdigkeit" der Beiträge abgewertet wurde. Das ist manchmal nicht nachzuvollziehen. Es gibt Idioten die ganze Threads mit Skripten auf oder abwerten. Fakt ist das Bewertungssystem ist quasi unbrauchbar. Schönes Projekt.
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.