PIN 3, 5 und 6 lassen sich sauber manuell Dimmen sobald man
hal.activity.savePower<Idle<true> >(hal);
raus nimmt.
Der nächste Schritt wäre jetzt das Verhalten vom HM-LC-DW-WM entsprechend umzusetzen.
Entgegen dem HM-DW-WM.ino für den STM32 habe ich nun versucht den Sketch für den ATMega zu übernehmen aber dies klappt so nur so lala:
* In der CCU wird der HM-DW-WM erkannt aber mir werden 6 Channels angezeigt?
Warum sind das 6 Chans?
* Mit rumspielen konnte ich mal den einen mal den anderen PIN über die CCU Dimmen.
Lange Rede kurzer Sinn, wie verwendet man die Dimmer.h für zwei Channels?
Ggf. hat es auch was damit zu tun, dass man bei der ELV-Version zwischen 2-Ch und CW+WW umschalten kann?
Code: Alles auswählen
#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>
#include <Dimmer.h>
// we use a Pro Mini
#define LED_PIN 4
#define CONFIG_BUTTON_PIN 8
#define DIMMER_PIN 5
#define DIMMER_PIN_2 6
#define PEERS_PER_CHANNEL 4
using namespace as;
const struct DeviceInfo PROGMEM devinfo = {
{0x11,0x12,0xaa}, // Device ID
"PsiDim2a01", // Device Serial
{0x01,0x09}, // Device Model
0x2C, // Firmware Version
as::DeviceType::Dimmer, // Device Type
{0x01,0x00} // Info Bytes
};
typedef AvrSPI<10,11,12,13> SPIType;
typedef Radio<SPIType,2> RadioType;
typedef StatusLed<LED_PIN> LedType;
typedef AskSin<LedType,NoBattery,RadioType> HalType;
typedef DimmerChannel<HalType,PEERS_PER_CHANNEL> ChannelType;
typedef DimmerDevice<HalType,ChannelType,6,3,PWM8<> > DimmerType;
HalType hal;
DimmerType sdev(devinfo,0x20);
ConfigToggleButton<DimmerType> cfgBtn(sdev);
void setup () {
DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
if( sdev.init(hal, DIMMER_PIN, DIMMER_PIN_2 ) ) { // HM-LC-Dim1PWM
sdev.channel(1).peer(cfgBtn.peer());
}
buttonISR(cfgBtn, CONFIG_BUTTON_PIN);
sdev.initDone();
}
void loop() {
bool worked = hal.runready();
bool poll = sdev.pollRadio();
}