HB-UNI-RGB-LED-CTRL (Controller für adressierbare RGB-LEDs WS2811, WS2812B, NEOPIXEL,...)

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Peter-HER
Beiträge: 20
Registriert: 25.04.2019, 09:33
Hat sich bedankt: 5 Mal

Re: HB-UNI-RGB-LED-CTRL (Controller für adressierbare RGB-LEDs WS2811, WS2812B, NEOPIXEL,...)

Beitrag von Peter-HER » 21.12.2022, 15:49

Vielen Dank für die schnelle Rückmeldung.

Wer lesen kann ist klar im Vorteil :o . Man muss nur die richtige Stelle finden.
Dann werde ich mich mal bei Gelegenheit ans Basteln begeben.

Viele Grüße

Peter
RaspberryMatic mit RPI-RF-MOD;
XML-Api; CUxD; RedMatic; EMail;CCU-Historian
6 x HM-TC-IT-WM-W-EU; 8 x HM-CC-RT-DN; 12 x HM-Sec-SCo
2 x HM-LC-Sw1PBU-FM; 1 x HM-LC-Sw2PBU-FM; 2 x HM-PB-2-WM55-2
2 x HM-ES-PMSw1-DR
0,3 x Erfahrung
DebMatic auf RaspPi 3B+ mit RPI-RF-MOD und LTE-Router als Alarmanlage
1 x HmIP-SWDO-I
1 x USV mit apcupds
1 x VPN (zum Heimnetz)
Test mit DebMatic auf RaspPi 3B ohne Funkmodul
3 x SwissOne SH140 Steckdosenleiste (Tasmota)
2 x Gosuna SP1 (Tasmota)

ivo-int
Beiträge: 301
Registriert: 13.04.2020, 08:55
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 37 Mal
Danksagung erhalten: 16 Mal

Re: HB-UNI-RGB-LED-CTRL (Controller für adressierbare RGB-LEDs WS2811, WS2812B, NEOPIXEL,...)

Beitrag von ivo-int » 29.04.2023, 10:17

Hallo zusammen

Ich komme mit der Anpassung des Sketschs nicht weiter.

Mein Ziel ist, dass ich mit 2 zusätzlichen Tasten die LED Ein/Ausschalten/Dimmen und das Leuchtprogramm umschalten kann.

Taste 1 für das Ein/Aus/Dimmen
Taste 2 für Leuchtprogramm

Zur Zeit sieht es folgendermassen aus

Code: Alles auswählen

#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <SPI.h>
#include <AskSinPP.h>
#include <LowPower.h>
#include <Register.h>
#include "analog.h"

// #define ENABLE_RGBW              // for SK6812 LEDs Adressirbare LED-Streifen (RGB, RGBW, RGBWW)

#define WSNUM_LEDS    64          //Anzahl angeschlossener LEDs
#define WSLED_PIN     9           //GPIO Pin LED-Signal Anschluss bie proMini direkt "9"
#define WSLED_TYPE    WS2812B     //LED Typ, Standard "WS2812B"
#define WSCOLOR_ORDER GRB         //Farbreihenfolge, Standard "GRB"
#define WATERFALL_PROGRAM_LEDS 54 //Amount of LEDs for waterfall effect. Must not be less than WSNUM_LEDS -10 !!!

/*
#define PWM_ENABLED           
#define PWM_RED_PIN     3
#define PWM_GREEN_PIN   5
#define PWM_BLUE_PIN    6
#define PWM_WHITE_PIN   9       //Pin für weiße LED, auskommentieren, wenn keine weiße LED vorhanden ist
#define PWM_WHITE_ONLY  true    //Wenn weiße LED vorhanden ist, soll nur diese angesteuert werden wenn die Farbe weiß ist?
*/

#define SLOW_PROGRAM_TIMER     30     //ms Wartezeit für den Übergang
#define NORMAL_PROGRAM_TIMER   15     //ms Wartezeit für den Übergang
#define FAST_PROGRAM_TIMER     0      //ms Wartezeit für den Übergang
#define FIRE_PROGRAM_COOLING   55
#define FIRE_PROGRAM_SPARKLING 120

#if defined __AVR_ATmega2560__
#define CONFIG_BUTTON_PIN 13    //GPIO Config Taster Pin Anschluss bei Mega2560 direkt "13"
#else
#define CONFIG_BUTTON_PIN 8     //GPIO Config Taster Pin Anschluss bei proMini direkt "8"
// PINs für externe Taster
#define BTN1_PIN 6
#define BTN2_PIN 7
#endif
#define ONBOARD_LED_PIN   4     //GPIO Pin LED Anschluss bie proMini direkt "4"

#ifdef ENABLE_RGBW
#include "FastLED_RGBW.h"
#endif
#include "RGBCtrl.h"

#define PEERS_PER_CHANNEL 4

using namespace as;

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
  {0xF3, 0x41, 0x01},     // Device ID
  "IJRGB00001",           // Device Serial
  {0xF3, 0x41},           // Device Model
  0x25,                   // Firmware Version
  as::DeviceType::Dimmer, // Device Type
  {0x01, 0x00}            // Info Bytes
};

/**
   Configure the used hardware
*/
#if defined __AVR_ATmega2560__
typedef AskSin<StatusLed<ONBOARD_LED_PIN>, NoBattery, Radio<LibSPI<53>, 2>> HalType;
#else
typedef AskSin<StatusLed<ONBOARD_LED_PIN>, NoBattery, Radio<LibSPI<10>, 2>> HalType;
#endif

DEFREGISTER(Reg0, MASTERID_REGS, 0x20, 0x21)
class Ws28xxList0 : public RegList0<Reg0> {
  public:
    Ws28xxList0(uint16_t addr) : RegList0<Reg0>(addr) {}

    void defaults () {
      clear();
    }
};

typedef RGBLEDChannel<HalType, PEERS_PER_CHANNEL, Ws28xxList0> ChannelType;
typedef RGBLEDDevice<HalType, ChannelType, 3, Ws28xxList0> RGBLEDType;

HalType hal;
RGBLEDType sdev(devinfo, 0x20);
ConfigButton<RGBLEDType> cfgBtn(sdev);

// Anpassung
InternalButton<RGBLEDType> btn1(sdev, 1); // 4
InternalButton<RGBLEDType> btn2(sdev, 3); // 5
// Anpassung

void setup () {
  DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);
  sdev.init(hal);
//Anpassung
  sdev.channel(1).peer(btn1.peer());
  sdev.channel(1).peer(btn2.peer());
// Anpassung
  
  buttonISR(cfgBtn, CONFIG_BUTTON_PIN);

// Anpassung
  buttonISR(btn1, BTN1_PIN);
  buttonISR(btn2, BTN2_PIN);
// Anpassung
  sdev.initDone();
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if ( worked == false && poll == false ) {
#ifndef PWM_ENABLED
    hal.activity.savePower<Idle<true>>(hal);
#endif
  }
  
  sdev.handleLED();
}
Das Ein/Ausschalten funktioniert, aber das Dimmen ist etwas träge.

Die Programmumschaltung geht noch nicht.

Kann mir jemand behilflich sein?

Gruss Ivo
_______________________________________________________________________________________________________
Raspberrymatic auf einem Raspi 4 4GB (HB-RF-USB-2) mit 2 LAN Gateways,
42 RF Geräte, 4 IP Geräte und 21 Cuxd Geräte, 24 RF Eigenbau Geräte
hm_pdetect, E-Mail, XML-API, JB HB Devices, HB-TM-Devices-AddOn, CUx-Daemon, CCU-Historian auf einem separaten Raspi

ivo-int
Beiträge: 301
Registriert: 13.04.2020, 08:55
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 37 Mal
Danksagung erhalten: 16 Mal

Re: HB-UNI-RGB-LED-CTRL (Controller für adressierbare RGB-LEDs WS2811, WS2812B, NEOPIXEL,...)

Beitrag von ivo-int » 01.05.2023, 17:42

Hallo Patrick
hmpatman hat geschrieben:
18.05.2021, 20:49
ich habe für mich den "pacifica"-Effekt https://github.com/FastLED/FastLED/blob ... cifica.ino als "Waterfall" implementiert. Weiß nicht, ob das die ursprüngliche Intension von dir für die leere Funktion war. Läuft stabil mit 125 RGBW (SK6812) LEDs auf einem 328p. Ich würde einen Pullrequest aufbereiten, wenn das von Interesse für dich ist.
Wie sieht dein Programm-Teil für den Wasserfall aus?

Ich möchte diesen bei mir ebenfalls mit den SK6812 LED's integrieren.

Gruss Ivo
_______________________________________________________________________________________________________
Raspberrymatic auf einem Raspi 4 4GB (HB-RF-USB-2) mit 2 LAN Gateways,
42 RF Geräte, 4 IP Geräte und 21 Cuxd Geräte, 24 RF Eigenbau Geräte
hm_pdetect, E-Mail, XML-API, JB HB Devices, HB-TM-Devices-AddOn, CUx-Daemon, CCU-Historian auf einem separaten Raspi

hmpatman
Beiträge: 66
Registriert: 13.04.2016, 19:06
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 7 Mal

Re: HB-UNI-RGB-LED-CTRL (Controller für adressierbare RGB-LEDs WS2811, WS2812B, NEOPIXEL,...)

Beitrag von hmpatman » 28.05.2023, 17:20

Hallo Ivo!
ivo-int hat geschrieben:
01.05.2023, 17:42
Hallo Patrick
Wie sieht dein Programm-Teil für den Wasserfall aus?
Ich möchte diesen bei mir ebenfalls mit den SK6812 LED's integrieren.
Wie auch persönlich geschrieben, mein Stand ist jetzt hier: https://github.com/patman15/HB-UNI-RGB-LED-CTRL
Leider bin ich mir nicht mehr sicher, ob das wirklich der ist, der bei mir läuft. Zumindest kompiliert er.
Wenn du da noch Probleme hast, sag Bescheid, vielleicht kann ich helfen. Bin leider nie dazugekommen, sauber aufzuräumen und einen PR zu erstellen. Letzteres hat mir mein Qualitätsanspruch untersagt. ;-)

Viele Grüße,
Patrick

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“