FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: silver-side am 12 September 2014, 21:38:31

Titel: Arduino Firmata PWM RGB Led Steuerung
Beitrag von: silver-side am 12 September 2014, 21:38:31
Hi
Da ich das ganze schonmal hier http://forum.fhem.de/index.php/topic,14824.msg95162.html#msg95162 mit dem Netto von Polin gebastelt habe und lange suchen und probieren musste bis es lief, möchte ich euch hier den Code für Arduino zum Steuern von RGB Strips zur Verfügung stellen. Mit Sicherheit geht das alles auch schöner aber zumindest Funktioniert das ganze so reibungslos bei mir.
Mein Arduino ist ein Mega2560 mit Configurabel Firmata drauf der über Usb am Odroid U3 hängt und mittels Fhem angesteuert wird.
Hardwareseitig steuert der Arduino 4 Pwm Kanäle an. 3 für ROT,Grün,Blau und einen für Weiß.Der Weiße ist nur für mein Nächtlich im Flur.

In Fhem nutze ich pro Farbe einen Slider (0-255), es gibt feste Tasten für feste Farben (Rot,Grün,Blau,Gelb...usw.)
Sollte eigentlich aus dem Code unten ersichtlich sein hoffe ich zumindest  ;)

Hier mal ein Auszug aus meinee cfg.

#Hardware--------------------------------------------------------------------------------

#Arduino
define FRM_0 FRM /dev/ttyACM0@57600
attr FRM_0 sampling-interval 1000


#RGB Led Steuerung

define weiss1 FRM_PWM 11
attr weiss1 IODev FRM_0
attr weiss1 room PWM
attr weiss1 stateFormat value

define rot1 FRM_PWM 9
attr rot1 IODev FRM_0
attr rot1 room PWM
attr rot1 stateFormat value

define gruen1 FRM_PWM 8
attr gruen1 IODev FRM_0
attr gruen1 room PWM
attr gruen1 stateFormat value

define blau1 FRM_PWM 10
attr blau1 IODev FRM_0
attr blau1 room PWM
attr blau1 stateFormat value

define blau1_Dimmen dummy
attr blau1_Dimmen room PWM
attr blau1_Dimmen setList state:slider,0,1,255
attr blau1_Dimmen webCmd state

define gruen1_Dimmen dummy
attr gruen1_Dimmen room PWM
attr gruen1_Dimmen setList state:slider,0,1,255
attr gruen1_Dimmen webCmd state

define rot1_Dimmen dummy
attr rot1_Dimmen room PWM
attr rot1_Dimmen setList state:slider,0,1,255
attr rot1_Dimmen webCmd state

define weiss1_Dimmen dummy
attr weiss1_Dimmen room PWM
attr weiss1_Dimmen setList state:slider,0,1,255
attr weiss1_Dimmen webCmd state

define blau1_Dimmen_weiterreichen notify blau1_Dimmen {fhem"set blau1 value %"}
define gruen1_Dimmen_weiterreichen notify gruen1_Dimmen {fhem"set gruen1 value %"}
define rot1_Dimmen_weiterreichen notify rot1_Dimmen {fhem"set rot1 value %"}
define weiss1_Dimmen_weiterreichen notify weiss1_Dimmen {fhem"set weiss1 value %"}


define blau FS20 12344444 1a
attr blau IODev FRM_0
attr blau dummy 7
attr blau room PWM
attr blau webCmd on


define blau_dummy_weiterreichen notify blau {fhem "set blau1 value 255;;set gruen1 value 0;;set rot1 value 0" }

define orange FS20 12344444 1b
attr orange IODev CUL_1
attr orange dummy 8
attr orange room PWM
attr orange webCmd on

define orange_dummy_weiterreichen notify orange {fhem "set blau1 value 0;;set gruen1 value 90;;set rot1 value 255" }

define pink FS20 12344444 1c
attr pink IODev CUL_1
attr pink dummy 9
attr pink room PWM
attr pink webCmd on

define pink_dummy_weiterreichen notify pink {fhem "set rot1 value 149;;set gruen1 value 0;;set blau1 value 50" }

define gelb FS20 12344444 1d
attr gelb IODev CUL_1
attr gelb dummy 10
attr gelb room PWM
attr gelb webCmd on

define gelb_dummy_weiterreichen notify gelb {fhem "set rot1 value 255;;set gruen1 value 255;;set blau1 value 0" }

define rot FS20 12344444 1e
attr rot IODev CUL_1
attr rot dummy 11
attr rot room PWM
attr rot webCmd on

define rot_dummy_weiterreichen notify rot {fhem "set rot1 value 255;;set gruen1 value 0;;set blau1 value 0" }

define weiss FS20 12344444 1f
attr weiss IODev CUL_1
attr weiss dummy 12
attr weiss room PWM
attr weiss webCmd on

define weiss_dummy_weiterreichen notify weiss {fhem "set rot1 value 255;;set gruen1 value 255;;set blau1 value 255" }

define gruen FS20 12444444 1a
attr gruen IODev CUL_1
attr gruen dummy 13
attr gruen room PWM
attr gruen webCmd on

define gruen_dummy_weiterreichen notify gruen {fhem "set rot1 value 0;;set gruen1 value 255;;set blau1 value 0" }

define tuerkis FS20 12444444 1b
attr tuerkis IODev CUL_1
attr tuerkis dummy 14
attr tuerkis room PWM
attr tuerkis webCmd on

define tuerkis_dummy_weiterreichen notify tuerkis {fhem "set rot1 value 0;;set gruen1 value 255;;set blau1 value 255" }

define rosa FS20 12444444 1c
attr rosa IODev CUL_1
attr rosa dummy 15
attr rosa room PWM
attr rosa webCmd on

define rosa_dummy_weiterreichen notify rosa {fhem "set rot1 value 255;;set gruen1 value 75;;set blau1 value 255" }

define lila FS20 12444444 1d
attr lila IODev CUL_1
attr lila dummy 16
attr lila room PWM
attr lila webCmd on

define lila_dummy_weiterreichen notify lila {fhem "set rot1 value 70;;set gruen1 value 0;;set blau1 value 255" }

define aus FS20 12444444 1e
attr aus IODev CUL_1
attr aus dummy 17
attr aus room PWM
attr aus webCmd on

define aus_dummy_weiterreichen notify aus {fhem "set blau1 value 0;;set gruen1 value 0;;set rot1 value 0" }
/code]

Hoffe es Hilft dem ein oder Anderen wie gesagt vll. nicht Perfekt aber läuft  ;)

Grüße Peter
Titel: Antw:Arduino Firmata PWM RGB Led Steuerung
Beitrag von: justme1968 am 12 September 2014, 21:51:13
schau mal hier. vielleicht findest du ein paar ideen ...

http://www.fhemwiki.de/wiki/Color

und

http://www.fhemwiki.de/wiki/DMXControl

gruss
  andre
Titel: Antw:Arduino Firmata PWM RGB Led Steuerung
Beitrag von: silver-side am 13 September 2014, 00:28:52
Hi
Danke für die Links hatte ich mir vor längerem schonmal angeschaut.
Bin von dem ganzen Arduino PWM zeug weg zu Mi-Light warum auch immer nutze jetzt Wifilight und versuche den Colorpicker einzubauen bisher ohne Erfolg  :'(
Wollte den Arduino code nur mal Posten bevor ich ihn aus meiner cfg entferne. Wie gesagt vll braucht es einer oder es hilft jemanden  :)

Grüße peter