Forum: Projekte & Code 4-fach Dimmer 2Stromstoßschalter Schaltuhr


von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

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

von Jörg R. (solar77)


Lesenswert?

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
von Charly B. (charly)


Lesenswert?

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
von Jörg R. (solar77)


Lesenswert?

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
von Charly B. (charly)


Lesenswert?

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
von Carsten-Peter C. (carsten-p)


Lesenswert?

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

von Helmut H. (der_andere)


Lesenswert?

Welche Last Dimmer mit PWM-Eingang nutzt Du? Würden Eltako LUD12 sich 
steuern lassen?

von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

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

von hacker-tobi (Gast)


Lesenswert?

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

von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

Hi tobi,
vielen Dank für Dein Interesse.
Ich habe noch eine Bedienungsanleitung geschrieben. Vielleicht hilft Dir 
das weiter.
Gruß Carsten

von hacker-tobi (Gast)


Lesenswert?

Hi Carsten,

ich bräuchte den I2C Befehlssatz dokumentiert und wenn möglich ein 
Evalboard, dann könnte ich toiswitch darauf anpassen.

gruß

tobi

von Carsten-Peter C. (carsten-p)


Lesenswert?

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

von hacker-tobi (Gast)


Lesenswert?

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

von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

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

von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

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

von Carsten-Peter C. (carsten-p)


Lesenswert?

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
Noch kein Account? Hier anmelden.