FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Klausi am 08 Mai 2017, 14:12:16

Titel: Gelöst: RPII2C-Frage
Beitrag von: Klausi am 08 Mai 2017, 14:12:16
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


Titel: Antw:RPII2C-Frage
Beitrag von: KernSani am 08 Mai 2017, 20:38:22
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
Titel: Antw:RPII2C-Frage
Beitrag von: Klausi am 10 Mai 2017, 19:04:05
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



Titel: Antw:RPII2C-Frage
Beitrag von: KernSani am 10 Mai 2017, 19:43:53
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)