Arduino Asksin library

Begonnen von trilu, 06 August 2013, 10:02:17

Vorheriges Thema - Nächstes Thema

PeterS

Hallo Martin.
Auch schon eine zweite probiert zu steuern ?

Gruss Peter

mmatt

#226
Hallo Peter

Wenn man zwei LED unabhängig voneinnander schalten möchte, könnte man die Dimmer-Werte "misbrauchen"
zb. dim-wert 10 schaltet LED1, dim-wert 20 schaltet LED2...

Ich versuche als nächstens am Arduino eine Taste anzuschliessen und mit der Taste "on" und "off" an fhem zu senden.

Mache mir aber keinen Stress, habe noch den ganzen Winter Zeit :-)

Grüsse Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

trilu

Du könntest auch den zweiten Kanal nutzen. Derzeit ist der Sketch auf zwei Kanäle konfiguriert. Mit zwei peer tables. Man müsste FHEM nur sagen, dass noch ein weiterer Kanal da ist  ;D

PeterS

Hallo trilu

Danke für den Tip :-)

Ick kann bei allen Sensoren etc.  mitlauschen.
Wenn aber bei mir einmal die HM_Set_Cmd durchlaufen wird, kommen keine Nachrichten mehr an ?!
D.h. es wird auf dem Serial still  ???

Reset und alles geht wieder, bis einmal der HM_Set_Cmd ausgeführt wird ...

Gruss Peter

trilu

mhhh, still werden ist nicht gut!
das hört sich so an als würde das programm in irgend einer loop hängen bleiben.
schalte mal den cc_dbg ein, hier ist der receive interrupt gesteuert. d.h. wenn das programm in einer loop hängt müsstest du zumindest eine nachricht aus dem interrupt bekommen und ich hätte einen anhaltspunkt zum checken...

wenn ich dazu komme, bau ich mal aus dem derzeitigen example sketch einen einfachen dimmer.
vielleicht hilft das den hier beteiligten beim verstehen was ich mit dem jumptable mache :-)

PeterS

Hallo trilu

Der "cc_dbg" lässt sich nicht aktivieren !

Compilingfehler:
...\libraries\AskSin\/AskSin.h: In function 'Print& operator<<(Print&, T) [with T = char (*)()]':
...\libraries\AskSin\AskSin.cpp:169:   instantiated from here
...\libraries\AskSin\/AskSin.h:357: error: call of overloaded 'print(char (*&)())' is ambiguous

Läuft der bei dir ?

Gruss Peter

trilu

jetzt schon :-)
ich habe zwei klammern vergessen.

schau mal in asksin.cpp in der funktion
uint8_t CC::receiveData(uint8_t *buf) {

ziemlich weit unten
#if defined(CC_DBG) // debug message, string should be short, otherwise program stops
if (buf[0] > 0) Serial << pHex(&buf[1], buf[0]) << pTime();
#endif


und mach bei pTime die zwei klammern ran...

trilu

#232
Hallo Zusammen,

ich habe mal auf die schnelle einen Dimmer gebastelt :-)
Ist recht einfach gehalten, LED kann Ein- oder Ausgeschaltet werden oder in 20 Schritten gedimmt werden.
Egal ob von FHEM oder einer Fernbedienung.

Als Pin für die LED verwende ich Pin3 - also einen PWM Ausgang.

Viel Spass beim testen....

Horst

trilu

hey, kommt schon - 7 mal runter geladen und kein feed back?

mmatt

Hallo trilu

ist auf Pin3 nicht GD02 vom TRX868 ?
(siehe Deinen ersten Post)

Hast Du für die LED noch einen Vorwiderstand genommen ?

Gruss Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

shaddi

Ne, GD02 wurde wieder frei gemacht, weil beim PanSTAMP dieser auch nicht belegt ist. Bei mir klappt die Version super!
Habe ein 180Ohm Widerstand in Reihe geschaltet.

Ich lese mich aktuell in das Protokoll ein, um zu verstehen, was, wie und wann übertragen wird..

mmatt

#236
@shaddi
Ach so, hab die Stelle im Tread zwar gefunden, bin aber nicht ganz schlau daraus geworden.
Also GD02 ist nun frei, und was ist mit GD00, ist und bleibt der (beim Arduino) auf Pin2 ?

@trilu
Dein LED Dimmer läuft. (getestet ab fhem, Fernebdienung habe ich keine.)
Klasse  :D

Gruss Martin

- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

trilu

vorwiderstand brauchst du nur wenn die led spannung kleiner 3.3 volt ist.
ich habe zum testen eine blaue led dran, die brauchen 3.3 - 3.6 volt, damit brauche ich keinen vorwiderstand.
ist ja auch erst mal nur zum testen ob die software passt und das protokoll stimmt.

die led ist somit nur ein platzhalter für einen mosfet, damit kann man dann schön led lampen, oder diese stripes dimmen.

das trx868 modul hat einen GDO0 und GDO2 ausgang, beide sind einigermaßen frei konfigurierbar. anfangs hatte ich beide angeschlossen. um die library aber panstamp kompatibel zu halten habe ich dann GDO0 abgeschaltet.
somit brauchen wir derzeit auch nur den Pin2 am Arduino für GDO2. Pin3 ist frei.

mein ziel ist es in absehbarer zukunft einen rgb dimmer zu basteln. der arduino hat aber nicht wirklich viele pwm ausgänge, insofern bin ich froh das der pin3 jetzt frei ist :-)


PeterS

#238
Hallo trilu

Die letzen 2 Versionen laufen bei mir nicht mehr richtig:

Der Sketch startet mit:
Serial: PS00000001, Model ID: 00 57 , HMID: 2F B7 4A
Paired: F1 47 12

FreeMem: 1232 byte's
S- 0E 00 A4 10 2F B7 4A F1 47 12 06 01 00 00 00 (l:15)(1189)
<- sendStr (1191)
<- sendStr (1492)
<- sendStr (1793)
-> NA (2093)

dann ist Feierabend !
Habe nun mal einen downgrade auf die Version 131027 gemacht.
Sketch läuft !! Upgrade auf 131109. Sketch bleibt hängen !!
define CC_DBG aktiviert !!
Ergebnis:
Port open
CC1101_init: 12..............................................3 - ready

Available commands:
  p                - start pairing with master
  b[0] b[n] s      - send a string, b[0] is length (50 bytes max)

  i[0]. i[1]. e    - show eeprom content, i[0]. start address, i[1]. length
  i[0]. b[1] f     - write content to eeprom, i[0]. address, i[1] byte
  c                - clear eeprom complete, write 0 from start to end

  t                - gives an overview of the device configuration

  $nn for HEX input (e.g. $AB,$AC ); b[] = byte, i[]. = integer

Serial: PS00000001, Model ID: 00 57 , HMID: 2F B7 4A
Paired: F1 47 12

FreeMem: 1232 byte's
S- 0E 00 A4 10 2F B7 4A F1 47 12 06 01 00 00 00 (l:15)(1189)
<- 0E 76 F6 C2 B1 3A 5C C9 B0 8E 6C 49 25 01 A4 (l:15)(1199)
<- sendStr (1202)
<- 0E 76 F6 C2 B1 3A 5C C9 B0 8E 6C 49 25 01 A4 (l:15)(1501)
<- sendStr (1502)
<- 0E 76 F6 C2 B1 3A 5C C9 B0 8E 6C 49 25 01 A4 (l:15)(1803)
<- sendStr (1804)
-> NA (2104)

Mehr passiert nicht mehr ! Es werden direkt nach der Sequence keine Sensoren mehr erkannt und Befehle ausgeführt (endlos-loop) ?

Die Hardware ist ein Arduino Nano 328

Hast du noch einen Tip für mich :-)

Gruss Peter


mmatt

#239
@ trilu
Alles kar, habe hier nochmals die Pinbelegung für (Arduino Mini Pro 3.3V) den LED Dimmer Sketch:

kurze aber breitere TRX868 Variante:
TRX868   Arduino   Description
1        11        SPI Mosi
2        13        SPI SCK
3        12        SPI MISO
5        2         GD00
6        10        SPI chip select
7        GND       GND
8        VCC       3.3V
-        3         PWM ---LED---GND


schmale aber längere TRX868 Variante:
TRX868   Arduino   Description
1        VCC       3.3V
2        GND       GND
3        11        SPI Mosi
4        13        SPI SCK
5        12        SPI MISO
7        2         GD00
8        10        SPI chip select
-        3         PWM ---LED---GND 



Gruss Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM