Liebe FHEM-Gemeinde,
ich habe eine I2C-Verbindung zwischen dem BananaPi und dem ATMega328 hergestellt.
Der ATMega hat die Adresse 0x42.
Nach dem mit
define I2C_Bus RPII2C 1
der Bus definiert wurde, ist möglich folgendes bsp. anzugeben:
set I2C_Bus writeBlock 42 01 04 35
Das funtioniert sehr gut. An SCL und SDA werden die Werte ausgegeben und der ATmega reagiert wie erwartet.
Ich finde aber keine Möglichkeit die values als vorher berechnete Variablen anzugeben.
Bsp.:
set I2C_Bus writeBlock 0x42 $val1 $val2 $val3
Vielen Dank für Eure Hilfe
Klausi
Hi Klausi,
wo berechnest du die Variablen denn? Ich nehme an, du musst dir eine Perl-sub bauen, die die Variablen berechnet und dann den set Befehl ausführt.
Grüße,
Oli
Vielen Dank Oli für den Schubs auf das richtige Gleis.
Ich habe in meiner 99_myUtil.pm mit meinen dürftigen Perl-Kenntnissen eine sub write_I2C($$$$) gezimmert, in der ich am Ende den RPII2C writeBlock - Befehl mit Variablen aufrufen kann.
{fhem ("set I2C_Bus writeBlock 42 $c $x $y $len @hx")};
Jetzt kann ich von FHEM aus zum Beispiel mit einer DOIF folgendes aufrufen :
define di_I2C DOIF ([+00:01]) ({write_I2C (1, 25, 3, -21.456)}) oder auch
define di_I2C DOIF ([+00:01]) ({write_I2C (1, 25, 3, Aussen:Temperatur)})
und damit numerische Daten über I2C an den ATMega328 senden.
Das Ganze dient dazu um numerische Daten von FHEM an ein GLCD (T6963) zu senden, welches als LCD 8X40 verwendet wird.
Viele Grüße
Klausi
Hi Klausi,
freut mich, dass es geklappt hat. Wenn du keine weiteren Fragen zu disem Thema hast, setzt du es bitte auf gelöst? (Subject des ersten Posts ändern)