Hallo liebe Bastelfreunde, vor einiger Zeit habe ich einen 4-fach Dimmer gebaut, den ich noch mal erweitert habe. Ich veröffentliche diesen in der Hoffnung, das jemand sowas gebrauchen kann und nachbauen möchte. Der Dimmer hat 4 Hardware-PWM Kanäle und 2 Stromstoßschalter sowie eine Zeitschaltuhr und ist mit 6 Tasten bedien bar. Die Schaltuhr kann über den I2C Bus programmiert werden. Der ATTiny4313 arbeitet als I2C-Slave. Gruß Carsten
Gab es irgendwo Optokoppler im Angebot? Für die OK an den Eingängen hast Du „Minus“ auf die Stiftleiste geführt. Wozu? Schalten kannst Du die OK damit nicht, denn die benötigen Plus. Wobei es dann auch keine galvanische Trennung geben würde. Eine Verbindung mit GND zur Stufe davor macht keinen Sinn, denn dann wäre die galvanische Trennung, für die OK u.a. eingesetzt werden, auch nicht vorhanden.
:
Bearbeitet durch User
Jörg R. schrieb: > Für die OK an den Eingängen hast Du „Minus“ auf die Stiftleiste geführt. zuerst ueberlegen dann schreiben............. (mein Professor haette gesagt: setzen!, sechs!)
:
Bearbeitet durch User
Charly B. schrieb: > Jörg R. schrieb: > >> Für die OK an den Eingängen hast Du „Minus“ auf die Stiftleiste geführt. > > zuerst ueberlegen dann schreiben............. Weshalb machst Du es dann nicht? > (mein Professor haette gesagt: setzen!, sechs!) Zurecht hätte er es zu dir gesagt.
:
Bearbeitet durch User
Jörg R. schrieb in vielen Beitraegen: > viel nonsens...... schau mal da : https://is.gd/1UDpmm ps. vllcht verstehst du die schaltung wenn du erwachsen bist... @carsten, nitt aergern, nur wundern... 1246852
:
Bearbeitet durch User
Hallo, zum einen trennen die OK am Eingang die Masse von den Schaltern zum anderen wandeln sie den Eingangspegel von 24V in 5V. Die Widerstände R1..R6, R8und R9 kannst Du auch weglassen, die sind zum Testen gedacht. Dann kann man gefahrlos PD auf Ausgang schalten. Natürlich kannst Du die Schalter auch direkt an den ATTiny hängen. Diese Schaltung läuft bei mir seit ca. 2014 völlig problemlos ohne Ausfälle. Nur das Spielen im Betrieb am I2C-Bus hat mal Aufhänger gebracht. Die Ausgangsseite dient auch zur Pegelwandlung und kann natürlich weggelassen werden. Jeder möge das so machen, wie er es gerade braucht. Gruß Carsten
Welche Last Dimmer mit PWM-Eingang nutzt Du? Würden Eltako LUD12 sich steuern lassen?
Hallo Helmut, die LUD12 hab ich auch mal genommen. Die sollten eigentlich gehen X1=Plus ca.10-20V 100Hz X2=minus. Der Oszillator muss 6MHz haben und eine Synchronisation mit 50 Hz brauchst Du auch. Nur zwei von den vier Dimmkanälen sind für 50 Hz geeignet. Lässt sich sicherlich umschreiben. Ich habe den Dimmer mit einem Pollin Net-IO angesprochen. Der Dimmer hat die I2C Adresse 174. Das Programm dafür ist noch nicht aufgeräumt. Schick mir einfach eine PN, wenn Du es trotzdem haben möchtest. Gruß Carsten
Hi, bei Interesse könnte ich diese Hardware in mein Projekt toiswitch (https://toiswitch.de) mit einbinden. Dann wäre eine Steuerung über WLAN via web/mqtt möglich. Allerdings läuft meine Software auf einem esp8266. Daher müssten wir die Kommunikation über i2c realisieren. Besteht da Interesse? Gruss tobi
Hi tobi, vielen Dank für Dein Interesse. Ich habe noch eine Bedienungsanleitung geschrieben. Vielleicht hilft Dir das weiter. Gruß Carsten
Hi Carsten, ich bräuchte den I2C Befehlssatz dokumentiert und wenn möglich ein Evalboard, dann könnte ich toiswitch darauf anpassen. gruß tobi
Hallo Tobi, wenn Du noch ein altes Atmel-Evaluations-Board von Pollin hast, kannst Du das nehmen. Um nur die I2C Schnittstelle zu testen, kannst Du Die Treiber http://www.avrfreaks.net/projects/usi-i2c-slave-attiny-cpus nehmen. Die habe ich auch genutzt und werden vermutlich auf allen alten ATTinys mit USI laufen. So ein kleiner 8- Beiner wie z.B. der ATTiny85 ist ja auch schnell auf Lochraster oder „fliegend“ verdrahtet. In ETH_M1284p_Dimmer.zip findest Du die Datei httpd.c , wo die I2C- Schnittstellen bedient werden. Wie deine C++ Befehle genau aussehen, hängt von Deinen Treibern ab. Zum Bedienen des Dimmers werden nie zwei aufeinander folgende Zeichen benötigt, obwohl es sinnvoll ist, z.B. für die Zeiten mehrere Byte hintereinander zu senden. ret = i2c_start(var_array[31]+I2C_WRITE); if ( ret ) { }else { if (zeitw == 0) {zeitw = 7;} //Sonntag soll 7 sein und nicht 0 i2c_start_wait(var_array[31]+I2C_WRITE);//set device address and write i2c_write(20); // erste Schreibadresse i2c_write(zeitm); // Minute i2c_write(zeith); // Stunde i2c_write(zeitt); // Tag i2c_write(zeitd); //Monat i2c_write(zeitw); //Wochentag i2c_stop(); } Mit dem Status-Byte kannst Du einiges einstellen oder ändern. Es folgt dem Adressbyte. In der Datei SRAM.pdf findest Du die Speicherbelegung. Du kannst jedes Byte direkt adressieren und lesen/schreiben. Bei Fragen gerne melden. Gruß Carsten
Hi Carsten-Peter, ich habe leider kein atmel eval board zur Verfügung. Vielleicht haben wir uns auch missverstanden. Ich selber habe keine konkrete Anwendung für das Projekt. Mein Angebot war, das in mein ESP basiertes Projekt toiswitch zu integrieren, um es so per web/mqtt via WLAN steuerbar zu machen, falls Interesse besteht. Dann bräuchte ich aber ein eval board und alle i2c Kommandos dokumentiert. Gruss tobi
Hallo Tobi, einen zweiten Dimmer habe ich leider nicht. Ohne Dimmer dürfte es schwierig werden, deine SW zum Laufen zu bekommen, weil Du nichts testen kannst. Du müsstest zuerst die Bibliothek für der I2C einbinden. Da findest Du auch die genauen I2C- Befehle. Um den Dimmer zu bedienen, schreibst Du zuerst entweder zum Schreiben ret = i2c_start(174+I2C_WRITE); oder zum Lesen ret = i2c_start(174+I2C_READ); Dann schaust Du, ob der Bus frei ist bzw. der Dimmer angesprochen wird. if ( ret ){} else dann startest Du den Schreib oder Lesevorgang mit i2c_start_wait(174+I2C_WRITE); oder mit i2c_start_wait(174+I2C_READ); je nachdem, ob Du schreiben oder lesen möchtest. Dann suchst Du die Speicherzelle, die Du lesen oder ändern möchtest. Z.B. 5 für soll3. i2c_write(5);// Adresse Helligkeitswert das 3. Dimmers Wenn Du da die Zahl 50 reinschreibst mit i2c_write(50); // Helligkeit wird sich die Helligkeit langsam auf 50% einstellen. mit i2cwert = (i2c_readNak());// read one byte and finish liest Du ein Byte, wobei Du das vorher mit unsigned int i2cwert; festlegen musst. Dann stoppst Du den Vorgang mit i2c_stop(); // Stop i2c Spezielle Befehle gibt es nicht. Du machst alles über den Speicher. Der ist ganz oben in der Datei SRAM.pdf beschrieben. Die roten Zahlen sind die Adressen im SRAM. Ab Adresse 29 fangen die Schaltzeiten an, also 6 Byte mal 32 Schaltzeiten = 192 Byte. Ich komme mit Assembler deutlich besser zurecht, als mit C++. Bringt mir auch viel mehr Spaß. Wenn jemand Interesse an den LED-Treibern hat, würde ich das dokumentieren und veröffentlichen. Viele Grüße Carsten
Hallo Bastler, hier noch eine einfache Zeichnung des Dimmers, falls das ganze Gedöns nicht gebraucht wird oder der Dimmer zum Testen auf Lochraster oder erstmal „fliegend“ aufgebaut werden soll. Der interne 8Mhz Quarz kann natürlich auch genutzt werden. Die Fuses müssen natürlich entsprechend gesetzt werden. Wenn alles funktioniert, kann man, wenn gebraucht, mit dem I2C -Zugang spielen. Die 4K7 Widerstände von + nach SCL und SDA müssen aber immer eingebaut werden. Gruß Carsten
Carsten-Peter C. schrieb: > Der interne > 8Mhz Quarz kann natürlich auch genutzt werden. Hallo, da hat sich ein Fehler eingeschlichen. Es sollte heißen: Der interne 8Mhz Oszillator kann natürlich auch genutzt werden. Gruß Carsten
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.