Gleichstrom Sicherheitstrafo 8V

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

Moderator: Co-Administratoren

fanavity
Beiträge: 243
Registriert: 18.07.2017, 16:42
Hat sich bedankt: 63 Mal
Danksagung erhalten: 3 Mal

Gleichstrom Sicherheitstrafo 8V

Beitrag von fanavity » 19.02.2021, 19:46

Hallo,

ich suche einen 8V Sicherheitstrafo um einen Klingelgong damit zu betreiben. Zusätzlich möchte ich damit einen Arduino Pro Mini damit versorgen, da ich damit die Klingel schalte ( 3.3v Relais, welches für 1 Sek schaltet). Scheinbar zieht das Relaisboard eine ganze Menge Strom. Ich habe bereits zwei rote LED entlötet, welche dauerhaft leuchteten wenn das Relais angezogen ist.Aktuell scheinen die Batterien ( 2x 1,5V AA Varta) etwa 0,05V/Std zu verlieren. Daher wollte ich das ganze mit einem Hutschienentrafo versorgen, allerdings steht in der Anleitung des Gongs, dass man einen Sicherheitstrafo verwenden "muss". Kennt jemand einen solchen Trafo mit dem ich auch den Arduino versorgen kann? Danke im voraus :)

rbeudel
Beiträge: 277
Registriert: 29.06.2018, 17:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Essen
Hat sich bedankt: 27 Mal
Danksagung erhalten: 14 Mal

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von rbeudel » 19.02.2021, 20:20

Hallo,
aus einem Trafo kommt Wechselspannung. Braucht der Gong Gleichspannung? Mit Sicherheitstrafo ist gemeint, das ein galvanisch getrennter Trafo benutzt werden soll, zb ein Klingeltrafo.
Viele Grüße,
Ralf


Debmatic und Openhab 4 in Proxmox 8 VM debian x86_64 auf Intel NUC mit influxdb und Grafana zur Visualisierung

fanavity
Beiträge: 243
Registriert: 18.07.2017, 16:42
Hat sich bedankt: 63 Mal
Danksagung erhalten: 3 Mal

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von fanavity » 19.02.2021, 20:50

Mein Gong kann sowohl mit Wechsel als auch mit Gleichspannung betrieben werden. 8-12v
Dachte an einen 8v Netzteil, damit ich den pro mini ebenfalls mit Strom versorgen kann.

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von klassisch » 20.02.2021, 04:00

Vor einem Kauf wüde ich mit einem Labornetzteil testen, ob die Klingel mit Gleichspannung funktioniert wie gewünscht, mit welcher Spannung und welchen Strom sie zieht.
Günstige Hutschienenetzteile sind zb. B. Meanwell Mean Well HDR-15-12 oder Mean Well HDR-30-15 (habe ich gerade kürzlich gekauft). Die haben eine ganze Menge (auch unabhängiger) Prüfzeichen und Du kannst ja sehen, ob das geforderte dabei ist.
Ich habe das größere bei Voelkner gekauft, weil es zu jenem Zeitpunkt dort günstig war und ich noch anderen Kram brauchte. Ab 29 EUR Versandkostenfrei mit einer Bezahlart. Derzeit 13 EUR für die "30W" Variante, 10.35 für "15W". Dort findest Du auch das Datenblatt. Einstellbar zwischen 10.8 und 13.8V.
Falls Du aus dieser Spannung verlustarm weitere Spannungen für Deine Boards ableiten möchtest, empfehle ich "Mini DC-DC 24V 3A" Wandler wie aliexpress 33003405546 oder ebay 402179513275 .

dondaik
Beiträge: 12924
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1597 Mal
Danksagung erhalten: 222 Mal

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von dondaik » 20.02.2021, 07:35

:-)
ist das relaisbord eigentlich tauglich für das a-miniboard ?
welche rote leds? sind raus - leds ziehen ja soooo einen megastrom..... :mrgreen:
da ist wieder mal eine frage mit wasserglasbeschreibung ist.. sagt meine zauberkugel das das ein a-mini und co untauglich relaisboard ist bzw falsch angeschlossen ist.
ein "sicherheitstrafo" ist ein trafo mit zulassingskennzeichnungen ..... und sicherheitstrafos mit diesem profil gibt es etliche man muss halt die anforderung klar seinem fachhändler formulieren !!!
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

fanavity
Beiträge: 243
Registriert: 18.07.2017, 16:42
Hat sich bedankt: 63 Mal
Danksagung erhalten: 3 Mal

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von fanavity » 20.02.2021, 09:23

Vielen Dank für die Meldungen.
Ich versuche sie mal beantworten.

Ich habe folgende Klingel:
https://www.grothe.de/out/media/iba_cro ... -04-10.pdf
Auf Seite 3 wird beschrieben, dass sowohl 8-12V AC als auch DC möglich sind. Aktuell liegen 12,5V AC an.
Ich habe die dauerhaft leuchtende LED ausgelötet, da es bei Batteriebetrieb auch auf dem Arduino ausgelötet werden soll, daher dachte ich es seit ratsam dies auch auf dem Relaisboard zu tun. Ich verwende folgendes Board https://www.ebay.de/itm/1-Kanal-3V-Rela ... 2749.l2649
Ich habe gestern Abend noch mal neue Batterien eingelegt und heute morgen gemessen. Die Schaltung hat nun in 11 Stunden 0,07V verbraucht. Das erscheint mir immer noch viel zu viel.

LDO und LED vom Arduino sind runter. Ich verwende HMLCSW1SM1 als Sketch. Das Relaisboard ist an 3,3V, GND und P5 angeschlossen. Es schaltet über die CCU auch problemlos. Die Klingel ist am NC Ausgang angeschlossen und zieht das Relais für 1 Sek an.
Bei etwa 2,6v scheint das Relaisboard nicht mehr zu funktionieren, daher wollte ich das ganze nun dauerhaft mit Strom versorgen. Ich habe aber keine Möglichkeit eine Steckdose neben der Klingel zu platzieren, deshalb wollte ich den Strom direkt von der Klingel abgreifen. Daher die Idee mit einem neuen Netzteil. Wenn ich also ein HDR-15-12 nehme + einen Stepdown für den Arduino ist alles super? Dann muss ich entweder auf 3,3v runter oder einen neuen Arduino nehmen, da der LDO nun runter ist :)

Hoffe das ich damit etwas Licht ins dunkle bringe?

Benutzeravatar
stan23
Beiträge: 2038
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 580 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von stan23 » 20.02.2021, 10:04

fanavity hat geschrieben:
20.02.2021, 09:23
LDO und LED vom Arduino sind runter. Ich verwende HMLCSW1SM1 als Sketch.
Welchen Sketch verwendest du genau?
Das ist vermutlich kein Batteriegerät, und deswegen wird der Pro Mini nicht einschlafe gehen und deswegen zu viel Strom brauchen. Da bringt auch das Entfernen der LED nicht genug.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

fanavity
Beiträge: 243
Registriert: 18.07.2017, 16:42
Hat sich bedankt: 63 Mal
Danksagung erhalten: 3 Mal

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von fanavity » 20.02.2021, 11:14

Das ist der Sketch

Code: Alles auswählen

//- -----------------------------------------------------------------------------------------------------------------------
// AskSin++
// 2016-10-31 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
//- -----------------------------------------------------------------------------------------------------------------------

// define this to read the device id, serial and device type from bootloader section
// #define USE_OTA_BOOTLOADER

// number of relays by defining the device
#define HM_LC_SW1_SM 0x00,0x02
#define HM_LC_SW2_SM 0x00,0x0a
#define HM_LC_SW4_SM 0x00,0x03

#define CFG_LOWACTIVE_BYTE 0x00
#define CFG_LOWACTIVE_ON   0x01
#define CFG_LOWACTIVE_OFF  0x00

#define DEVICE_CONFIG CFG_LOWACTIVE_OFF

// #define HM_SENSOR_RELAY

#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>

#include <Switch.h>


// we use a Pro Mini
// Arduino pin for the LED
// D4 == PIN 4 on Pro Mini
#define LED_PIN 4
// Arduino pin for the config button
// B0 == PIN 8 on Pro Mini
#define CONFIG_BUTTON_PIN 8

#ifdef HM_SENSOR_RELAY
  // relay pins for the HMSensor Relay Board
  #define RELAY1_PIN 17
  #define RELAY2_PIN 16
  #define RELAY3_PIN 15
  #define RELAY4_PIN 14
  #define BUTTON1_PIN 6
  #define BUTTON2_PIN 3
  #define BUTTON3_PIN 19
  #define BUTTON4_PIN 18
#else
  // relay output pins compatible to the HM_Relay project
  #define RELAY1_PIN 5
  #define RELAY2_PIN 6
  #define RELAY3_PIN 7
  #define RELAY4_PIN 3
#endif

// number of available peers per channel
#define PEERS_PER_CHANNEL 8


// all library classes are placed in the namespace 'as'
using namespace as;

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
    {0x12,0x34,0x56},       // Device ID
    "HMLCSW1SM1",           // Device Serial
    {HM_LC_SW1_SM},         // Device Model
    0x16,                   // Firmware Version
    as::DeviceType::Switch, // Device Type
    {0x01,0x00}             // Info Bytes
};

/**
 * Configure the used hardware
 */
typedef AvrSPI<10,11,12,13> RadioSPI;
typedef AskSin<StatusLed<LED_PIN>,NoBattery,Radio<RadioSPI,2> > Hal;

// setup the device with channel type and number of channels
typedef MultiChannelDevice<Hal,SwitchChannel<Hal,PEERS_PER_CHANNEL,List0>,4> SwitchType;

Hal hal;
SwitchType sdev(devinfo,0x20);
#ifdef HM_SENSOR_RELAY
ConfigButton<SwitchType> cfgBtn(sdev);
InternalButton<SwitchType> btn1(sdev,1);
InternalButton<SwitchType> btn2(sdev,2);
InternalButton<SwitchType> btn3(sdev,3);
InternalButton<SwitchType> btn4(sdev,4);
#else
ConfigToggleButton<SwitchType> cfgBtn(sdev);
#endif

// if A0 and A1 connected
// we use LOW for ON and HIGH for OFF
bool checkLowActive () {
  pinMode(14,OUTPUT); // A0
  pinMode(15,INPUT_PULLUP);  // A1
  digitalWrite(15,HIGH);
  digitalWrite(14,LOW);
  bool result = digitalRead(15) == LOW;
  digitalWrite(14,HIGH);
  return result;
}

void initPeerings (bool first) {
  // create internal peerings - CCU2 needs this
  if( first == true ) {
    HMID devid;
    sdev.getDeviceID(devid);
    for( uint8_t i=1; i<=sdev.channels(); ++i ) {
      Peer ipeer(devid,i);
      sdev.channel(i).peer(ipeer);
    }
  }
}

void initModelType () {
  uint8_t model[2];
  sdev.getDeviceModel(model);
  if( model[1] == 0x02 ) {
    sdev.channels(1);
    DPRINTLN(F("HM-LC-SW1-SM"));
  }
  else if( model[1] == 0x0a ) {
    sdev.channels(2);
    DPRINTLN(F("HM-LC-SW2-SM"));
  }
  else {
    DPRINTLN(F("HM-LC-SW4-SM"));
  }
}


void setup () {
  DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
  bool first = sdev.init(hal);
#ifdef HM_SENSOR_RELAY
  bool low = false;
#else
  bool low = (sdev.getConfigByte(CFG_LOWACTIVE_BYTE) == CFG_LOWACTIVE_ON) || checkLowActive();
#endif
  DPRINT("Invert ");low ? DPRINTLN("active") : DPRINTLN("disabled");
  sdev.channel(1).init(RELAY1_PIN,low);
  sdev.channel(2).init(RELAY2_PIN,low);
  sdev.channel(3).init(RELAY3_PIN,low);
  sdev.channel(4).init(RELAY4_PIN,low);

  buttonISR(cfgBtn,CONFIG_BUTTON_PIN);
#ifdef HM_SENSOR_RELAY
  buttonISR(btn1,BUTTON1_PIN);
  buttonISR(btn2,BUTTON2_PIN);
  buttonISR(btn3,BUTTON3_PIN);
  buttonISR(btn4,BUTTON4_PIN);
#endif
  initModelType();
  initPeerings(first);
  sdev.initDone();
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if( worked == false && poll == false ) {
    hal.activity.savePower<Idle<> >(hal);
  }
}
Dann nehme ich jetzt mal folgenden Sketch und beobachte das noch mal :)

Code: Alles auswählen

//- -----------------------------------------------------------------------------------------------------------------------
// AskSin++
// 2016-10-31 papa Creative Commons - http://creativecommons.org/licenses/by-nc-sa/3.0/de/
// ci-test=yes board=328p aes=no
//- -----------------------------------------------------------------------------------------------------------------------

// define this to read the device id, serial and device type from bootloader section
// #define USE_OTA_BOOTLOADER

#define USE_WOR
#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <AskSinPP.h>
#include <LowPower.h>

#include <Switch.h>
#include <ResetOnBoot.h>

// we use a Pro Mini
// Arduino pin for the LED
// D4 == PIN 4 on Pro Mini
#define LED_PIN 4
// Arduino pin for the config button
// B0 == PIN 8 on Pro Mini
#define CONFIG_BUTTON_PIN 8

#define RELAY1_PIN 5

// number of available peers per channel
#define PEERS_PER_CHANNEL 8

// all library classes are placed in the namespace 'as'
using namespace as;

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
    {0x42,0xA2,0xB7},       // Device ID
    "papa42a2b7",           // Device Serial
    {0x00,0x6c},            // Device Model
    0x10,                   // Firmware Version
    as::DeviceType::Switch, // Device Type
    {0x01,0x00}             // Info Bytes
};

/**
 * Configure the used hardware
 */
typedef AvrSPI<10,11,12,13> RadioSPI;
typedef AskSin<StatusLed<LED_PIN>,BattSensor<AsyncMeter<InternalVCC>>,Radio<RadioSPI,2> > Hal;

DEFREGISTER(Reg0,DREG_INTKEY,DREG_LEDMODE,MASTERID_REGS,DREG_LOWBATLIMIT)
class SwList0 : public RegList0<Reg0> {
public:
  SwList0(uint16_t addr) : RegList0<Reg0>(addr) {}
  void defaults () {
    clear();
    lowBatLimit(28);
  }
};

// setup the device with channel type and number of channels
class SwitchType : public MultiChannelDevice<Hal,SwitchChannel<Hal,PEERS_PER_CHANNEL,SwList0>,1,SwList0> {
public:
  typedef MultiChannelDevice<Hal,SwitchChannel<Hal,PEERS_PER_CHANNEL,SwList0>,1,SwList0> DevType;
  SwitchType (const DeviceInfo& i,uint16_t addr) : DevType(i,addr) {}
  virtual ~SwitchType () {}

  virtual void configChanged () {
    DevType::configChanged();
    uint8_t lowbat = getList0().lowBatLimit();
    DDECLN(lowbat);
    if( lowbat > 0 ) {
      battery().low(lowbat);
    }
  }
};

Hal hal;
SwitchType sdev(devinfo,0x20);
ResetOnBoot<SwitchType> resetOnBoot(sdev);
ConfigToggleButton<SwitchType> cfgBtn(sdev);
#ifndef USE_WOR
BurstDetector<Hal> bd(hal);
#endif

void initPeerings (bool first) {
  // create internal peerings - CCU2 needs this
  if( first == true ) {
    HMID devid;
    sdev.getDeviceID(devid);
    for( uint8_t i=1; i<=sdev.channels(); ++i ) {
      Peer ipeer(devid,i);
      sdev.channel(i).peer(ipeer);
    }
  }
}

void setup () {
  DINIT(57600,ASKSIN_PLUS_PLUS_IDENTIFIER);
  bool first = sdev.init(hal);
  sdev.channel(1).init(RELAY1_PIN);
  buttonISR(cfgBtn,CONFIG_BUTTON_PIN);
  initPeerings(first);
#ifndef USE_WOR
  // start burst detection
  bd.enable(sysclock);
#endif
  // stay on for 15 seconds after start
  hal.activity.stayAwake(seconds2ticks(15));
  // measure battery every hour
  hal.battery.init(seconds2ticks(60UL*60),sysclock);
  resetOnBoot.init();
  sdev.initDone();
  //if (sdev.getMasterID() == HMID::broadcast) { DPRINTLN(F("START PAIRING")); sdev.startPairing(); } // start pairing of no master id is present
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if( worked == false && poll == false ) {
    hal.activity.savePower<Sleep<> >(hal);
  }
}

Martin62
Beiträge: 681
Registriert: 09.12.2019, 21:24
Hat sich bedankt: 151 Mal
Danksagung erhalten: 61 Mal

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von Martin62 » 20.02.2021, 11:53

Der Batterie-Aktor HM LC SW1 BA BCP funktioniert. Starte damit meinen Rasenroby. :wink:
Gruß Martin

Benutzeravatar
stan23
Beiträge: 2038
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 580 Mal
Danksagung erhalten: 336 Mal
Kontaktdaten:

Re: Gleichstrom Sicherheitstrafo 8V

Beitrag von stan23 » 20.02.2021, 12:01

Man sieht es unter anderem an der Zeile in der Schleife, fast am Ende des Sketches:

HM-LC-SW1-SM:

Code: Alles auswählen

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if( worked == false && poll == false ) {
    hal.activity.savePower<Idle<> >(hal);
  }
}

HM-LC-SW1-BA-PCB:

Code: Alles auswählen

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if( worked == false && poll == false ) {
    hal.activity.savePower<Sleep<> >(hal);
  }
}
<Idle> spart nur ein bisschen Strom, <Sleep> schickt den ATmega in den Schlaf.

Und natürlich muss das auch zum Gerätetyp passen, denn die CCU muss ja wissen ob sie den (Batterie-)Aktor per WoR aufwecken muss, ob ob er auf Dauerempfang ist. Man kann also die Zeile nicht beliebig austauschen.
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

Antworten

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