Hi. Ich suche für folgendes Projekt eine Empfehlung für ein uC Modul mit niedriger Einstiegshürde: 1 Analogeingang für einen NTC 10 kOhm zur Temperaturmessung. Alternativ digitaler Temperatursensor wie z.B. DS18C20 1 weiterer Analogeingang zur Auswertung eines Potis. 2 Digitaleingänge für Temperatur-Vorgabe. Beide Eingänge auf LOW bedeutet Wert vom Analogeingang nehmen. Beide Eingänge High bedeutet: Wert vom Poti nehmen. Und die beiden anderen Möglichkeiten rufen 2 Festwerte auf. 1 PWM Ausgang, der über einen Optokoppler und RC Filter das Zielgerät steuert. Das Zielgerät hat einen Pullup nach 3,3 V und geht dort auf einen Analogeingang am dortigen Controller. Programmierung vorzugsweise über LAN oder WLAN möglich. Das kann aber auch über einen ISP oder RS232 Adapter erfolgen, der im LAN oder WLAN eingebunden ist. Das Zielgerät setzt eine Spannung von 0 .. 3,3 V in Temperaturen von -62 bis + 62 Grad mit einer Auflösung von 0,5 Grad um (Display-Anzeige am Gerät), wobei alles unter -60 und +60 als Kabelbruch oder Kurzschluss interpretiert wird und eine Fehlermeldung erzeugt. Der Temperaturverlauf ist nicht komplett linear, sondern an einen NTC Widerstand mit 10 kOhm angepasst. (Vor allem oben und unten sind die Spannungswerte für die jeweiligen Temperaturen weiter auseinander bzw näher zusammen) Ich habe dann ein geeignetes 10 Gang Poti statt dem NTC angeschlossen und bin den Bereich langsam durch gefahren, und habe dann eine Liste geschrieben, wo die Spannungswerte und die Temperaturen notiert sind. Die Schaltung mit dem Optokoppler und dem Filter existiert und funktioniert schon. Die Frequenz und genaue Flankenzeiten sind unkritisch. Am Ende des Tages zählt die Spannung, die sich am Zielgerät am Contollereingang einstellt. Und dort wird dann mehrfach gemessen und über einige Sekunden gemittelt. Es ist so unkritisch, dass man sogar noch per Hand mit einem Taster gültige Temperaturwerte "reintasten" kann und es nicht auf Störung geht. (Wenn man ca 50/50 mit der Hand reintastet kommt man im Bereich von ca -7 bis +8 Grad raus) Praktisch funktioniert es sogar schon mit der jetzigen Lösung per SPS. Damit kann ich, weil ich nur mit 1 Hz und 100ms Auflösung im Impuls-Pausenverhältnis takte, nicht jede Temperatur anfahren. Im oberen Temperaturbereich um +20 Grad schaffe ich noch 2 Grad Auflösung. Im unteren Bereich bei -15 Grad geht es noch mit ca 5 Grad Genauigkeit. Momentan hab ich es dann also auf feste Werte im Bereich von -20 bis +25 Grad im 5 Grad Raster beschränkt. Allerdings lese ich den originalen Temperatursensor gar nicht mehr aus, sondern regele ausschließlich über die SPS. Ich würde daher nun gerne auf einen kleinen Mikrocontroller umsteigen. Ich nehme auch gerne Tipps, wie ihr sowas aufbauen würdet. Grüße und einen schönen Sonntag
:
Bearbeitet durch User
Arduino Nano (die Version mit ATmega328), und die Arduino IDE. Oder wenn unbedingt WLAN dabei sein soll, dann ein ESP32 Modul, ebenfalls mit der Arduomo IDE programmiert. Aber den damit verbundenen Overhead würde ich mir ohne guten Grund nicht antun. Das sieht in den Youtube Videos immer ganz einfach aus, aber die Praxis ist für Anfänger anders (wie früher schon bei Kochshows). Ein ESP32 hat 100 mal mehr Fallstricke, als ein Arduino Nano.
:
Bearbeitet durch User
Ja, ESP32 ist eigentlich ein nettes Teil, aber stelle ich mir auch kompliziert vor. Am liebsten wär mir tatsächlich sowas einfaches wie die "Basic Briefmarke" falls ihr die noch kennt. Das gabs in meiner Jugend bei Conrad. Die Programmiersprache sollte auf jeden Fall einfach sein. Vielleicht auf dem Niveau von PHP.
:
Bearbeitet durch User
Sven schrieb: > Ich habe dann ein geeignetes 10 Gang Poti statt dem NTC angeschlossen > und bin den Bereich langsam durch gefahren, und habe dann eine Liste > geschrieben, wo die Spannungswerte und die Temperaturen notiert sind Das klappt nur (so genau, 13mV pro halbes GradC), wenn die Temperaturmessung unabhängig von der 3.3V Spannung im Gerat ist. Ansonsten wirkt sich die nicht unbedingt referenzstabile Schwankung der internen 3.3V (z.B. abhängig von der Belastung durch die Anzahl der leuchtenden Segmente im Display von 3.0V bis 3.4V) auf den per Spannung von aussen vorgegebene Solltemperatur aus. Insofern kann schon dein Ansatz "Spannung bestimmt Solltemperatur" unzureichend sein. Wer WLAN will nimmt einen ESP32.
Sven schrieb: > Die Programmiersprache sollte auf jeden Fall einfach sein. Vielleicht > auf dem Niveau von PHP. Im Mikrocontroller Umfeld ist C oder C++ gesetzt. Arduino hat sich die einfachen Teile davon heraus gepickt und daraus ein Gesamtkonzept erstellt. Damit fängst du einfach an und hast bei Bedarf einen fließenden Übergang zur professionellen Programmierung. Es gab zeitweise viele Alternativen zu C/C++, die sind aber alle nach wenigen Jahren eingeschlafen. Ich erwarte in naher Zukunft keine Änderung der Situation.
Seh ich das richtig, das man mit den 4 Möglichkeiten der Digitaleingänge einfach nur via 4 Reedrelais - den originalen Sensor - ein Poti - eine feste PWM - eine andere feste PWM aussuchen will? Als beinah völlig programmierfreie Lösung: - die beiden PWMs sind Ausgänge eines Tasmotabetriebenen Dimmers - die 4 Relais via Tasmota schalten, das geht mit lokalen Tastern dann sowhl via Netz als auch vor Ort. Genau genommen reicht sogar ein PWM-Ausgang, den man einfach auf andere Werte stellen kann. Geht auch mit 2 Tastern, also 1x "PWMx" und "PWM aktiv" und 1x "PWMy" und "PWM aktiv". Braucht ein ESP-Modul nach Lust und Laune (Wemos D1 Mini z.B., oder NodeMCU) plus ein bissel Hardware drumrum.
Klingt nach einer Aufgabe für einen ESP (8266 oder 32) mit Tasmota, ESPHome oder ähnlich.
Jens M. schrieb: > Seh ich das richtig, das man mit den 4 Möglichkeiten der Digitaleingänge > einfach nur ... aussuchen will? Ich verstehe die Frage nicht. Die meisten I/O Pins der gängigen Mikrocontroller können wahlweise als digitaler Eingang oder digitaler Ausgang verwendet werden. Darüber hinaus haben viele Pins extra Funktionen, wie analoge Eingabe, analoge Ausgabe, PWM Ausgabe, Zeitmessung (per Timer-Hardware), diverse serielle Kommunikation, und so weiter. Ein Blick ins Datenblatt ist dazu angebracht (die Arduino Doku sagt dir nicht oder nur unvollständig, was der konkrete Mikrocontroller kann). Jens M. schrieb: > Braucht ein ESP-Modul nach Lust und Laune (Wemos D1 Mini z.B., oder > NodeMCU) plus ein bissel Hardware drumrum. Ich verstehe den Satz nicht. Ist das eine Frage oder eine Aussage? Die Module sind alle nur minimal bestückt. Für eine konkrete Anwendung muss man immer etwas drumherum bauen. Dazu bieten sich zum Experimentieren Steckbretter an, für den finalen Einzelaufbau Lochraster-Platinen. Mehrere gleiche Platinen (ab 5 Stk) lässt man sich z.B. von JLCPCB herstellen. Innerhalb eines Themas darfst du nur einen Account benutzen.
:
Bearbeitet durch User
Nemopuk schrieb: > Darüber hinaus haben viele Pins [...] analoge Ausgabe, Die ESP32 die ich kenne haben nur zwei Kanäle.
Alexander schrieb: >> Darüber hinaus haben viele Pins [...] analoge Ausgabe, > > Die ESP32 die ich kenne haben nur zwei Kanäle. Das war ja nur ein Beispiel für die möglichen extra Funktionen. Ist deutsch für die Menschen so schwer geworden?
Nemopuk schrieb: > Innerhalb eines Themas darfst du nur einen Account benutzen. Da bist du wohl auf den Holzweg abgebogen. Der TO und Jens haben mit Sicherheit nichts miteinander zu tun. Jens hat nur eine mögliche Lösung mit ESP32 und Reed-Relais vorgeschlagen, wobei er in meinen Augen die Vorgaben des TO sehr frei interpretiert hat.
Für jemanden ohne weitere ESP32 Kenntnisse liest es sich auf deutsch als wenn beliebige GPIO als DAC konfiguriert werden könnten.
Nemopuk schrieb: > Ich verstehe die Frage nicht. Das ist auc nicht schlimm. Sie ist an den OP gerichtet und dient der Klärung, ob er tatsächlich Signale entgegennehmen und in Temperaturen umrechnen möchte, um dann aus diesen Temperaturen wieder PWM zu berechnen, die an die andere Steuerung abgegeben werden sollen. Oder ob es auch der einfache Weg tut, einfach das Signal des NTC und des Potis simpel durchzuleiten und für die beiden Festwerte PWM statt Grad anzugeben. Letzteres würde die Software wesentlich vereinfachen, und da scheint es ja Defizite zu geben. Zudem bräuchte man dann nur 3 IOs (für die 3 Relais, die den Ausgang auf NTC, Poti oder PWM-Signal schalten) und ein PWM-Signal, das kann man dann z.B. mit einem Tasmota-ESP-Modul lösen, und die Programmierung ist einfach. Ein Arduino (Nano, Promini oder Digispark) hätte weit ausreichende Hardware, aber die Software ist weit hinter dem Horizont, ein ESP kann das geforderte WLAN, ist aber noch weiter weg. Nemopuk schrieb: > Ist das eine Frage oder eine Aussage? Is'n Punkt dran, ne? Also wohl "Aussage". Nemopuk schrieb: > Für eine konkrete Anwendung muss > man immer etwas drumherum bauen. Im Falle eines Wemos D1 Mini ist das überschaubar: 3 Transistoren, 3 Widerstände, 3 Relais, 3 Dioden. Müsste man aber eh. Außer, man vereinfacht das ganze noch weiter: - Drehschalter, der NTC, Poti und PWM wählt - PWM-Generatormodul nach Wahl - gern auch zwei davon. Das könnte man fliegend an eine Frontplatte heißklebern. Vorteil: simpel. Nachteil: kein WLAN Loco M. schrieb: > Jens hat nur eine mögliche Lösung > mit ESP32 und Reed-Relais vorgeschlagen, wobei er in meinen Augen die > Vorgaben des TO sehr frei interpretiert hat. Ich habe überlegt, was er will und eine Lösung vorgebracht, die einfach zu bauen ist. Wenn Schaltung und Programmierung öfter gemacht würden, würde sich die Frage im OP so nicht stellen. Natürlich kann man eine beliebig komplizierte Maschine bauen, mit eigenem ESP-Modul auf einem bei JLC gefertigten eigenen Layout, am besten noch mit Schaltreglern, und das dann mit dem SDK Bare Metal programmieren. Ich bin mir sehr sicher, das es nicht viele hier gibt die das könnten, und OP ist definitiv keiner davon.
:
Bearbeitet durch User
Alexander schrieb: > Für jemanden ohne weitere ESP32 Kenntnisse liest es sich auf > deutsch als > wenn beliebige GPIO als DAC konfiguriert werden könnten. Warum liest er nicht die Doku? https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/dac.html Zu fein dafür?
Hi. Poti und original NTC könnten tatsächlich per Mini Relais direkt durchgeschaltet werden. Beim NTC wäre es Interessant, das Relais so zu verschalten, dass sich eine Fail Safe Lösung ergibt. (Relais abgefallen - > NTC direkt auf Anlage durch geschaltet) Wenn das Relais angezogen ist, wird der NTC auf den uC geschaltet um ihn dort auszuwerten und den berechneten Offset hinzuzufügen und die gefälschte Temperatur an die Anlage zu schicken.
Die 2 zusätzlichen Festwerte (20 und 0 Grad) könnte ich natürlich einfach über 2 Potis machen. Auch ein Offset, z.B. positiv und negativ, könnte ich mit Potis machen, die dem NTC parallel oder in Reihe geschaltet werden. Der Offset ist dann aber dann nur so ungefähr, weil die Kennlinie des NTC nicht linear ist und die Ohm pro Grad variieren. Ich würde es dann auf 10 Grad auslegen und mit dem Offset auf 20 oder 0 Grad ziehen. Lieber wäre es mir, wenn ich im uC über eine Lookup Tabelle einen richtigen, linearen Offset, z.B. +5 Grad und -5 Grad, bezogen auf die tatsächliche Außentemperatur, hinbekommen würde. Und es wäre Toll, wenn ich den Festwert bzw. Offset auch noch von der Ferne her anpassen könnte. Im einfachsten Fall z.B. durch zusätzliche Eingänge, wo ich dann über meine SPS einfach die gewünschten Temperaturwerte in einen "Zähler" "eintakte" oder linear über 0-10V vorgebe. Dann muss ich nicht mehr über einen Digitalausgang der SPS ein Low-Speed PWM machen und in der SPS auch nicht mehr versuchen eine NTC Kennlinie nachzubilden. Praktisch geht es um folgendes: Ich habe eine Heizungstherme. Da gibts nur Nachtabsenkung und Normalbetrieb, was über eine Zeitschaltuhr und 2 Temperatureinstellungen ganz rudimentär eingestellt werden kann. Zusätzlich gibt es noch Sparmodus und Partymodus wo man nochmal 2 Temperaturen fest hinterlegen kann die dann für 24 Stunden aufrecht erhalten werden solange aktiviert. Allerdings kann man das alles nicht von außen her aufrufen. Die einzige Möglichkeit, die Therme zu beeinflussen ohne dran rumzulöten (und Taster per Reedrelais zu brücken), ist über den Temperatursensor für die Außentemperatur. Die Therme regelt die Vorlauftemperatur in Abhängigkeit von der Außentemperatur und der Solltemperatur und der Heizkurve. Oder man kauft für sehr teures Geld die originale 0-10 V Schnittstelle (Es gibt Händler, die haben selbst die abgekündigten Steuerplatinen immer noch am Lager, lassen sie sich aber richtig vergolden) und kann dann die Vorlauftemperatur direkt und linear extern steuern. Aber selbst mit der SPS alleine und ein paar Widerständen und einem Kondensator und "low Speed PWM" habe ich schon recht brauchbare Ergebnisse, um extern "Sparmodus" und "angehobenen Betrieb" nachzubilden und dann z.B. eine dynamische An/Abwesenheitsschaltung per Präsenzmelder zu machen, eine bessere Zeitschaltung mit mehr Möglichkeiten zur Temperaturbeeinflussung oder per Handy aus der Ferne die Temperatur zu beeinflussen.
:
Bearbeitet durch User
Schau dir mal die Systeme von Mikroe an, die haben Platinen und passenden Basic, Pascal und C Programmierumgebungen. Alles out of the Box, arbeite ich schon ewig mit (Hauptsächlich mit der PAscal version) https://www.mikroe.com/ Inkl fertiger Treiber für DS und Analagoe temperatursensoren, Displays etc ohne Gefrickel Ansonsten natürlich auch Arduino mit AVR
:
Bearbeitet durch User
Sven schrieb: > Die Therme regelt die Vorlauftemperatur in Abhängigkeit von der > Außentemperatur Was glaubt du, was passiert, wenn die Therme eine höhere Aussentemperatur vorgespielt bekommt und die Vorlauftemperatur so weit absenkt, dass die Zimmertemperatur nicht gehalten werden kann. Dann regeln alle Thermostatventile voll auf und nur das Zimmer was am nächsten dran ist bekommt noch Heizleistung ab,,die anderen bleiben ungeheizt. Warum wird eigentlich überall aus Geiz nur gepfuscht in Deutschland ?
Die typischen Thermen haben einen Steuereingang, der mit einer Spannung gesteuert wird. Die "Programme" die die Steuergeräte senden, sind nur Spannungen die auf diesen Eingang gelegt werden. Schau bei deinem Hersteller doch einmal, ob es ein externes Steuergerät gibt, falls es bei dir nur direkt an der Therme einstellbar ist. Mit einem Controller, und einem DA-Wandler kann man dann selbst programmieren was man will. Mit einem Relais kann man das auch recht "Fqil-Safe" machen. Fällt die eigene Steuerung aus, fällt das Relais ab, und legt die originale Steuerbox auf die Therme. Dann muss man auch nicht am Aussentemperatursensor herummurksen.
So, ich hab mal meine Notizen abgetippt: Heizleistung: Bei 21° schaltet sich die Therme komplett aus, da Soll-Temp größer gleich AT Der wirksame PWM Bereich wurde durch 2 Widerstände am OK begrenzt (4,7K Serie/ 100K Parallel) Tiefpass 4,7k und 47uF am Ausgang der Schaltung Der Rest des möglichen, aber per PWM nicht ansteuerbaren Bereichs wurde mit 100K Poti aufgenommen (Ende -28°) Unter -15° keine Steigerung der VL-Temp mehr. PWM% Temp Anzeige VL °C Klemmen-Spannung x 62° 0,1V Fehlermeldung x 60° 0,14V x 54° 0,2V x 45° 0,3V x 37° 0,4V x 31° 0,5V x 26° 0,6V x 22° 0,7V 0% 21° (OFF) 5% 20° 23° 0,768V 10% 19° 15% 18° 20% 17° 25% 16° 30% 15° 0,896V 35% 14° 40% 13° 44% 12° 48% 11° 50% 10° 40° 1,065V 53% 9° 56% 8° 59% 7° 61% 6° 1,191V 64% 5° 67% 4° 70% 3° 73% 2° 76% 1° 78% 0° 53° 1,421V 80% -1° 82% -2° 84% -3° 86% -4° 88% -5° 1,618V 90% -6° 92% -7° 94% -8° 96% -9° 97% -10° 65° 1,824V 98% -11° 99% -12° 100% -15° 70° 2,084V x -20° 2,2V X -23° 2,3V X -25° 2,4V X -28° 2,5V X -62° 3,28V (offene Klemme) Fehlermeldung @Cartman Ja es gibt eine Zusatzplatine, die Eingänge 0-10V bereit stellt. Einer davon regelt direkt die Vorlauftemperatur. Dann kann man die Therme komplett über eine externe, eigene Steuerung steuern. Zum Beispiel über eine kompatible Wärmepumpe, die dann die Heizkurve und den Wärmebedarf berechnet und die Therme entsprechend ansteuert. Kostet aber mehrere 100 Euro. Es gibt die noch bei diversen eBay Shops. Über meinen Heizungsbauer ist das angeblich nicht mehr lieferbar sondern nur eine neue Therme. @Michael B Die Gastherme ist dank der hohen Gaspreise bei uns nur noch Zusatzheizung und Zwischenlösung. In der Übergangszeit machen wir das Meißte mit der Klimaanlage und im tiefen Winter bollert der Holzofen fast 24/7 durch. Das Bad wird bedarfsweise mit einem E-Schnellheizer auf 24° hoch gejagt, sonst sind es da auch nur noch max 21 Grad per Therme. Momentan wird alles über eine Siemens Logo SPS realisiert, Optokoppler LED mit Vorwiderstand direkt an einem Transistor-Digitalausgang.
:
Bearbeitet durch User
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.