Beiträge von Neueinsteiger

    Wenn Du ganz normale DC Motoren (Maximalstrom beachten) in beide Richtungen drehen möchtest, dann bietet sich ein L293D an. Der benötigt aber 5V. Es müsste also ein Levelshifter zwischen RasPi und L293D (die D-Version hat die Antiparalleldioden intern)

    Dieses Projekt macht banal gesagt aus dem 3V3 GPIO Signal ein nicht invertiertes 5V Signal und wäre für diesen Einsatz geeignet:

    3V3 zu 5V Pegelwandler / Level-Shifter

    Aber es gibt natürlich noch viele andere Möglichkeiten.


    Über je drei Eingänge kannst Du zwei Motoren pro IC steuern. mit dem ersten Eingang gibst Du per PWM die Geschwindigkeit vor. Mit den beiden anderen Eingängen je nach Kombination von HIGH und LOW die Drehrichtung.


    edit: Erst einmal willkommen im Forum!

    Die Spannungsversorgung der Schaltung erfolgt mit 5V. Bedingt durch ein relativ langes Kabel habe ich die Kombi aus StepDown und StepUp gewählt, um sicher zu stellen, dass auch wirklich 5V anliegen.

    Das Ausgangssignal des MCP3208 wird durch einen Levelshifter auf 3V3 gebracht und zum RasPi geleitet. Das ist aber eigentlich relativ ausführlich im ersten Beitrag beschrieben. Wo genau hakt es denn bei Dir?

    So wie ich es verstanden habe, sollte man die Finger von Timer0 lassen, da damit alles andere verknüpft ist. Timer1 und Timer2 haben hingegen kaum Einfluss auf "normale" Anwendungen. Da ich im aktuellen Projekt (Lötdampfabsaugung) auch millis() nutze, habe ich den PWM Pin zur Ansteuerung des FET von D6 auf D9 gelegt und lediglich Timer1 verändert. Das scheint nun alles noch genau so wie vorher zu laufen, nur dass dieses nervige Fiepen weg ist.

    Weil ich aktuell ein Problem mit einem fürchterlich fiependen Lüfter habe, den ich per PWM in der Drehzahl regulieren möchte, habe ich nach einer Lösung gesucht. Dabei bin ich auf diese Lösung gefunden, die mit einer Funktion arbeitet. Um nur "mal eben" die Frequenz zu ändern ist das natürlich etwas "overkill", aber trotzdem vielleicht für den einen oder anderen interessant.


    Wichtig ist zu wissen, dass bei einer Änderung der PWM an D5 oder D6 (Timer 0) gleichzeitig die Funktionen delay(), millis() und micros() verändert werden!

    Timer 0 läuft mit 62500 Hz.

    Timer 1 und Timer 2 laufen mit 31250 Hz.


    Schön erklärt und mit Daten hinterlegt ist das hier.


    Für den Fall, dass der Link irgendwann tot ist und für mich als Gedankenstütze:

    Wer wie ich nur "mal eben" einen Timer ändern möchte, schreibt in die void setup()


    TCCRnB = TCCRnB & 0b11111000 | Befehl;

    Bei diesem befehl müsst ihr nur das n durch die Nummer des Timers und Befehl durch den Hex Code aus der Tabelle oben ersetzen. Für Timer1 und 31300Hz sähe es dann so aus.

    TCCR1B = TCCR1B & 0b11111000 | 0x01; // Timer1 entspricht D9 und D10

    Sehr schade, dass gerade dieser Arduino mit DIP Sockel betroffen ist. Sollte man es wirklich schaffen, den AVR zu verfusseln oder zu himmeln, wäre es sehr einfach, einen Ersatz zu installieren. Das ist bei der von flyppo gezeigten Version für Laien schwierig bis unmöglich.


    Ist es Dir nicht möglich, die KerKos gegen LED zu tauschen? Zum Entsorgen ist er auf jeden Fall zu schade.

    Soweit ich mich erinnere, hatte joh.raspi damals eine Liste angelegt, in die er diverse LDO eingetragen hat. Welchen Du davon meinst, kann ich aber nicht sagen. Den Link zur Liste müsste ich suchen. Keine Ahnung, wo ich den abgelegt habe...


    Bezüglich des Energiemanagements mit dem ESP habe ich damals diese Geschichte gebaut:

    https://forum-raspberrypi.de/f…?postID=182399#post182399

    Das läuft noch immer einwandfrei.


    Der µC hängt direkt an den beiden AA Eneloop und schaltet bei Bedarf den StepUp ein, um den ESP mit 3V3 zu versorgen. Der widerum teilt dem µC mit, wenn er sienen Job getan hat, woraufhin der µC den StepUp wieder abschaltet.

    Naja, dass das alles nicht so völlig optimal ist, ist mir schon klar. Aber für diesen Anwendungsfall wäre auch eine Fehlerrate von einem Grad nicht tragisch. Ich hatte die Batterien rumliegen und wollte einfach mal testen, ob man damit noch etwas machen kann, bevor sie entsorgt werden.


    Mir geht es hauptsächlich darum, die Temperaturkurve über die Kurve des Stromverbrauchs zu legen, um zu sehen, wann wo welches Gerät für den Stromverbrauch verantwortlich ist. Wenn ich zusätzlich noch die Info bekomme, dass das Eis eine gute Konsistenz hat, um verzehrt zu werden, dann ist das nice-to-have. Vielleicht baue ich demnächst noch eine E-Mail Benachrichtigung ein, für den Fall, dass die Temperatur über einen Schwellwert steigt, weil das Fach nicht richtig verschlossen ist.


    Deinen Vorschlag mit der Saft14500, den finde ich richtig gut und werde mir so ein Teil die Tage bestellen. Die kommt dann im nächsten Schritt an die Schaltung, wenn die CR2 ausgelutscht ist.


    Ich nutze diese Lötstation mit diversen Lötwerkzeugen. Am ESP habe ich auch schon "rum gemacht". Das Rastermaß ist geringfügig kleiner als 2mm ;-)

    https://forum-raspberrypi.de/a…t/6973-esp8266-4gpio-jpg/


    Den Stepdown kenne ich nicht und sehe auch keinen Anwendungsbedarf dafür. Aber die Eckdaten hören sich in der Tat interessant an.

    Die eingetütete Schaltung ist seit zwei Tagen im Eisfach des "Zweitkühlschranks". Die Temperatur schwankt in etwa zwischen -11 und -13 Grad. Bislang gibt es regelmäßig Temperaturmeldungen. Die Grafik sieht bisher sehr regelmäßig aus.


    Auf der Platine kann man den AMS1117 verwenden, wenn man von extern eine entsprechend hohe Spannung hat. Ich zapfe hierzu ganz gerne schon mal sowieso vorhandene USB-Buchsen (Receiver, Ladegeräte, RasPi, etc.) oder auch direkt Netzteile an. Betreibt man die Platine direkt an einer Batterie, wie in diesem Fall, lässt man den Spannungsregler weg und brückt mit einem Lötklecks IN und OUT, so dass man ohne Umwege die Spannung anlegen kann. Der Stromverbrauch liegt im Ruhebetrieb bei rund 0,0045mA, während der Messung bei ca. 10mA und wenn gesendet wird bei etwa 20mA. Gesendet wird nur, wenn sich die Temperatur verändert hat. Ich habe bei diesem Anwendungsfall von BiDi auf UniDi umgestellt, um Energie zu sparen. Wenn wirklich mal ein Wert fehlt, ist das nicht so tragisch. Die Sendung dauert in etwa 0,2 Sekunden. Rein rechnerisch liegt der Stromverbrauch damit bei einer Sendung pro 4 Minuten bei rund 180mA pro Jahr. Ich bin gespannt, ob das wirklich so sein wird.


    Da ich weder Dein Werkzeug, noch Deine Fertigkeiten kenne, kann ich nicht beurteilen, ob Du das hin bekommen würdest. Ich arbeite nicht nach der "nimm reichlich Flußmittel" Methode, sondern löte jeden Pin einzeln an. So kann ich sofort sehen, ob sich eine Lötbrücke gebildet hat oder nicht. Das hat bisher immer funktioniert. Der µC steckt in der Tat unter dem Funkmodul. Hier kann man ihn sehen.


    Das Funkmodul habe ich nicht ausgesucht. Es scheint das beste Modul zu sein, dass für einen bezahlbaren Preis für die HomeMatic "Nachbauten" zu bekommen ist. Stromverbrauch und Reichweite sind sehr gut. Daher habe ich mir noch nie Gedanken um Alternativen gemacht.

    Um die Temperatur im Gefrierfach sehen zu können, habe ich eine Lösung gesucht, mit der es möglich ist, diese innerhalb der HomeMatic darstellen zu können. Fündig geworden bin ich hier. Zwar ist der DS18B20 für Spannungen unter 3V eigentlich nicht vorgesehen, aber bei meinen Versuchen konnte ich feststellen, dass er bis etwa 2V3 keine andere Temperatur anzeigt als bei 3V. Da die verwendete Lithium Batterie bei 2V3 nahezu komplett leer sein dürfte, wird ein Austausch schon vorher notwendig sein, weshalb ich es erst einmal mit dem DS18B20 probieren möchte. Sollte das auf Dauer nicht funktionieren, werde ich einen NTC nehmen. Die "original" Sensoren wie z. B. der Differenztemperatur Sensor nutzen ebenfalls NTC. Den hatte ich aber nicht in der Kramkiste liegen.


    Um das Projekt umzusetzen, habe ich meine bereits hier vorgestellte Platine als Basis genommen, den Arduino Bootloader installiert, BOD deaktiviert und den oben verlinkten Sketch geflasht. Zur Spannungsversorgung habe ich eine CR2 Zelle genommen, die bereits im Fach "Batteriemüll" lag, weil das bis vor kurzem damit betriebene Gerät sie als "leer" angemeckert hat. Sie hat noch gut 2V8 und ich möchte wissen, wie lange sie noch leergenudelt weden kann, bis wirklich nichts mehr geht.


    Damit keine Probleme mit Feuchtigkeit auftreten, habe ich alles zusammen in eine Gefriertüte eingeschweißt.

    Der ESP saß drauf und wurde durch den AVR ersetzt, um die Hardware sauber und ohne Umwege über CuXD in die HomeMatic einbinden zu können. OTA würde trotzdem funktionieren, ist mir aber etwas zu umständlich in der Installation. Ich gehe mal nicht davon aus, dass weltbewegende neue Features in eine neuere Firmware eingebaut werden, weshalb ich denke, dass ich das Teil in absehbarer Zeit nicht mehr mit Updates versehen werde. Selbst wenn, ist das ja nicht unmöglich, sondern lediglich weniger komfortabel.


    Nähere Infos zur OTA Updates findest Du hier.

    Es gibt von HomeMatic diesen 4-Kanal Schaltaktor. Eine ähnliche Hardware gibt es von Sonoff. Sie ist nicht wassergeschützt, kann dafür aber auf eine Hutschiene montiert werden, ähnlich dieser HomeMatic Lösung.


    Der Unterschied ist, dass das Sonoff Gerät per Wlan kommuniziert, wohingegen HomeMatic über 868Mhz funkt. Es liegt also nahe, "einfach" das Funkmodul zu tauschen. Diese Idee hatten schon mehrere User und haben mit vielen Kabeln einen Arduino angeschlossen, was zwar funktioniert, aber nicht ganz meinen Vorstellungen entspricht. Daher habe ich eine kleine Platine entwickelt, die statt des Funkmoduls auf der Sonoff Platine installiert werden kann. Schon hat man einen 4-Kanal HomeMatic Aktor. Auf dem AVR befindet sich der Arduino Bootloader, so dass über Rx/Tx Reset/GND bequem ein neuer Sketch geflasht werden kann. Um die Platine zum Flashen mit Spannung zu versorgen, sollte man zur eigenen Sicherheit auf keinen Fall 230V AC anlegen, sondern die Stiftleiste auf der Originalplatine nutzen. Wichtig ist aber, dass dort nur 3V3 angelegt werden dürfen und auch Rx/Tx nur mit 3V3 arbeiten!


    Sollte jemand Interesse an der Platine haben, kann er sich gerne melden, denn ich habe mehr Platinen als 4fach Aktoren.

    Hier habe ich bereits eine kleine Platine vorgestellt, bei der der Ausgang des Atmega ohne weitere Peripherie direkt abgegriffen wird.


    In diesem Projekt ging es darum, möglichst platzsparend eine Lösung zu bauen, die einen Kanal mit 230V AC schalten kann. Die Platine soll in ein kleines Aufputzgehäuse montiert werden. Auch diesmal ist auf dem AVR der Arduino Bootloader installiert, wodurch es über die ausgeführten I/O Rx/Tx so wie GND und Reset möglich ist, einen Sketch zu flashen. Damit ein externer Taster angeschlossen werden kann, ist Input1 ebenfalls ausgeführt.


    Die Abstände und Luftspalte sollten den Sicherheitsanforderungen an 230V Anwendungen entsprechen. Das Relais schaltet zwar keine großen Lasten, in meinem Fall reicht es aber aus, um die Beleuchtung zu steuern. Da ich nahezu alle Leuchtmittel auf LED umgerüstet habe, wird noch ein Einschaltstrombegrenzer dazwischen geschaltet. Das sollte die Lebensdauer des Relais deutlich verlängern.


    Fotos mit montiertem Netzteil und CC1101 folgen noch.


    Sollte jemand Interesse an der Platine habe, kann er sich gerne melden, da ich mal wieder mehr Platinen als Leuchten habe ;-)

    (Bauteile wären auch noch vorhanden)