[gelöst] Frage zur Programmierung der HM-Sensor-StepUp Platine

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

Moderator: Co-Administratoren

Antworten
Jack01
Beiträge: 77
Registriert: 01.02.2017, 17:08
Hat sich bedankt: 13 Mal
Danksagung erhalten: 7 Mal

[gelöst] Frage zur Programmierung der HM-Sensor-StepUp Platine

Beitrag von Jack01 » 06.02.2020, 18:34

Nachdem ich jetzt mehrere Platinen dieses Typs aufgebaut habe, möchte ich verschiedene Sketche laden.
In einem Fall möchte ich das Board ohne den Stp-Up Wandler sondern mit 2 AA-Zellen betreiben (3V).Dazu steht in der Anleitung, dass man die Widerstände R4 und R5 nicht benötigt und man die Batteriemessung am AVR-VCC nutzen kann.
Dazu habe ich folgende Fragen:
1. Was muss man dazu in den Verschieden Sketches eintragen wenn man die Messung via ARM-VCC machen will?
2. Was muss man in den Sketches einfügen, wenn man trotzdem die Batteriemessung am Pin A3 haben möchte (wahrscheinlich auch die Werte für R4 und R5 anpassen)?
Reicht es, wenn man in den Sketch folgendes einträgt ( das habe ich dem Sketch "HM-Sec-RHS" entnommen:

Code: Alles auswählen

class SwitchSensor {
  InternalVCC internal;
  ExternalVCC<17,7,LOW,3000> external;
  uint8_t mod;
public:
  typedef uint16_t ValueType;
  static const int DefaultDelay = 250;

  SwitchSensor() : mod(0) {}

  void mode (uint8_t m) {
    mod = m;
    init();
  }

  void init () {
    if( mod == 0 ) {
      internal.init();
      DPRINTLN("InternalVCC");
    }
    else {
      external.init();
      DPRINTLN("Stepup - ExternalVCC");
    }
  }

  void start () {
    if( mod == 0 ) internal.start();
    else external.start();
  }

  uint16_t finish () {
    return mod == 0 ? internal.finish() : external.finish();
  }
};

#ifdef BATTERY_IRQ
  typedef IrqInternalBatt BatSensor;
#else
  typedef BattSensor<AsyncMeter<SwitchSensor> > BatSensor;
#endif
und weiter unten:

Code: Alles auswählen

// set battery low/critical values
    battery().low(getConfigByte(CFG_BAT_LOW_BYTE));
    battery().critical(getConfigByte(CFG_BAT_CRITICAL_BYTE));
    #ifndef BATTERY_IRQ
    // set the battery mode
    battery().meter().sensor().mode(getConfigByte(CFG_STEPUP_BYTE));
    #endif
Gruß

Hans-Jürgen
Dateianhänge
HM-Sensor-Stepup.JPG
Zuletzt geändert von Jack01 am 07.02.2020, 16:29, insgesamt 1-mal geändert.
1 x CCU2 und 26 Geräte (5 x HomeBrew)
Amazon Alexa, ioBroker
RaspberryMatic als Back-Up
Remote Control via TinyMatic und VPN

der-pw
Beiträge: 202
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 43 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Frage zur Programmierung der HM-Sensor-StepUp Platine

Beitrag von der-pw » 06.02.2020, 18:46

Jack01 hat geschrieben:
06.02.2020, 18:34
1. Was muss man dazu in den Verschieden Sketches eintragen wenn man die Messung via ARM-VCC machen will?
Kannst du die Frage spezifischer stellen?
Um welche(n) Sketch(e) geht es dir genau?
EInige Sketche haben ja schon "Schalter" im Programmcode, bei anderen muss man ggf. nur die Batterieklasse ändern.
Jack01 hat geschrieben:
06.02.2020, 18:34
2. Was muss man in den Sketches einfügen, wenn man trotzdem die Batteriemessung am Pin A3 haben möchte (wahrscheinlich auch die Werte für R4 und R5 anpassen)?
Warum willst du das? Der µC misst doch die "Bordspannung". Über den analogen Eingang gehst du doch nur, wenn du eine fixe Betriebsspannung in dem Fall durch den Step-up bereit stellst.
Grüße,
Patrick

Jack01
Beiträge: 77
Registriert: 01.02.2017, 17:08
Hat sich bedankt: 13 Mal
Danksagung erhalten: 7 Mal

Re: Frage zur Programmierung der HM-Sensor-StepUp Platine

Beitrag von Jack01 » 06.02.2020, 19:37

also,
zurzeit geht es mir um diesen 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

#define EI_NOTEXTERNAL
#include <EnableInterrupt.h>
#include <SPI.h>  // after including SPI Library - we can use LibSPI class
#include <AskSinPP.h>
#include <LowPower.h>

#include <MultiChannelDevice.h>
#include <Remote.h>


// we use a Pro Mini
// Arduino pin for the LED
// D4 == PIN 4 on Pro Mini
#define LED_PIN 4
#define LED_PIN2 5
// Arduino pin for the config button
// B0 == PIN 8 on Pro Mini
#define CONFIG_BUTTON_PIN 8
// Arduino pins for the buttons
// A0,A1,A2,A3 == PIN 14,15,16,17 on Pro Mini
#define BTN1_PIN 14
#define BTN2_PIN 15


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

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

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
  {0x02, 0xBF, 0x01},     // Device ID
  "JPPB2FM001",           // Device Serial
  {0x00, 0xBF},           // Device Model
  0x14,                   // Firmware Version
  as::DeviceType::Remote, // Device Type
  {0x00, 0x00}            // Info Bytes
};

/**
   Configure the used hardware
*/
typedef LibSPI<10> SPIType;
typedef Radio<SPIType, 2> RadioType;
typedef DualStatusLed<LED_PIN2, LED_PIN> LedType;
typedef AskSin<LedType, BatterySensor, RadioType> HalType;
class Hal : public HalType {
    // extra clock to count button press events
    AlarmClock btncounter;
  public:
    void init (const HMID& id) {
      HalType::init(id);
      // get new battery value after 50 key press
      battery.init(50, btncounter);
      battery.low(22);
      battery.critical(19);
    }

    void sendPeer () {
      --btncounter;
    }

    bool runready () {
      return HalType::runready() || btncounter.runready();
    }
};

typedef RemoteChannel<Hal, PEERS_PER_CHANNEL, List0> ChannelType;
typedef MultiChannelDevice<Hal, ChannelType, 2> RemoteType;

Hal hal;
RemoteType sdev(devinfo, 0x20);
ConfigButton<RemoteType> cfgBtn(sdev);

void setup () {
  DINIT(57600, ASKSIN_PLUS_PLUS_IDENTIFIER);
  sdev.init(hal);
  remoteISR(sdev, 1, BTN1_PIN);
  remoteISR(sdev, 2, BTN2_PIN);
  buttonISR(cfgBtn, CONFIG_BUTTON_PIN);
  sdev.initDone();
}

void loop() {
  bool worked = hal.runready();
  bool poll = sdev.pollRadio();
  if (worked == false && poll == false ) {
    hal.activity.savePower<Sleep<>>(hal);
  }
}
Wenn hier die "Batterie Messung am AVR-VCC" , wie in der Beschreibung zur HM-Sensor-Stepup Platine gemeint ist, dann ist das ja OK. Ich will ja nicht unbedingt zusätzliche Komponenten auflöten.
Macht es überhaupt Sinn, dieses Board mit 2 AA Batterien zu nehmen ( den Platz habe ich) oder hält eine CR2030 in einem Taster, der 2 mal am Tag betätigt wird ausreichend lange (> 1 Jahr)?
Sorry für die vielen Fragen, habe bis jetzt immer mit Netzbetriebenen Geräten gearbeitet.

Gruß

Hans-Jürgen
1 x CCU2 und 26 Geräte (5 x HomeBrew)
Amazon Alexa, ioBroker
RaspberryMatic als Back-Up
Remote Control via TinyMatic und VPN

der-pw
Beiträge: 202
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 43 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: Frage zur Programmierung der HM-Sensor-StepUp Platine

Beitrag von der-pw » 06.02.2020, 20:03

Das ist der Sketch für den Wandtaster 2 fach, richtig?

Dort ist die Batterieklasse so definiert, dass nur intern die Spannung im AVR gemessen wird.
Da brauchst du also nichts ändern.
Jack01 hat geschrieben:
06.02.2020, 19:37
Macht es überhaupt Sinn, dieses Board mit 2 AA Batterien zu nehmen ( den Platz habe ich)
Wenn du den Platz hast, ist meine Antwort, "ja, nimm zwei AA, oder meinetwegen auch zwei AAA".
Warum? Du hast den Platz ;-) , die Zellen sind günstiger, ggf. kannst du Akkus nehmen und du hast viel mehr Kapazität.
Ich habe gerade heute erst wieder ein Projekt auf HM-Sensor mit 2 AA fertiggestellt. Immer dort wo Platz ist nehme ich AA oder AAA.
Jack01 hat geschrieben:
06.02.2020, 19:37
oder hält eine CR2030 in einem Taster, der 2 mal am Tag betätigt wird ausreichend lange (> 1 Jahr)
Das lässt sich leider pauschal nicht sagen.
Hast du DIrektverknüpungen an dem Sender? Vermutlich. Bei nur einer DV verdoppelt sich die "Sendelast" weil ja einmal an das DV-Gerät und einmal an die CCU gesendet werden muss. Prinzipiell könnte (das sind meine Beobachtungen) eine CR2032 den AVR auf ewig versorgen. Nur wenn das Sendemodul mit seinen 30mA loslegt, bricht die Spannung sehr schnell in einen kritischen Bereich. So ist es aktuell bei einigen meiner Drehgriffsensoren, die per DV an das Heizkörperthermostat das Wandthermostat und zusätzlich natürlich auch an die CCU senden müssen.
Grüße,
Patrick

Jack01
Beiträge: 77
Registriert: 01.02.2017, 17:08
Hat sich bedankt: 13 Mal
Danksagung erhalten: 7 Mal

Re: Frage zur Programmierung der HM-Sensor-StepUp Platine

Beitrag von Jack01 » 07.02.2020, 12:49

Moin #der-pw,

vielen Dank für Deine Ausführungen.
Ich werde mich dann für die "AA" Lösung entscheiden.
Und bezüglich der Spannungsmessung habe ich etwas durcheinander gebracht :? . Ich hatte die die Ausführungen von #TomMajor zum Thema Babbling Idiot im Kopf. Hier hatte er eine "Batterie Spannungsmessung unter Last" beschrieben. Das habe ich mit der Spannungsmessung auf der HM-Sensor-StepUp durcheinander gebracht.

Gruß

Hans-Jürgen
1 x CCU2 und 26 Geräte (5 x HomeBrew)
Amazon Alexa, ioBroker
RaspberryMatic als Back-Up
Remote Control via TinyMatic und VPN

TomMajor
Beiträge: 818
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 40 Mal
Danksagung erhalten: 125 Mal
Kontaktdaten:

Re: [gelöst] Frage zur Programmierung der HM-Sensor-StepUp Platine

Beitrag von TomMajor » 07.02.2020, 17:31

ich hatte mal beim UniSensor1 eine kleine Übersicht über die möglichen Batt.spanunngsmessungen gemacht, vielleicht hilft das noch Jack01 bzw. dem nächsten der die gleichen Fragen hat:
https://github.com/TomMajor/SmartHome/t ... iespannung
Viele Grüße,
Tom

Jack01
Beiträge: 77
Registriert: 01.02.2017, 17:08
Hat sich bedankt: 13 Mal
Danksagung erhalten: 7 Mal

Re: [gelöst] Frage zur Programmierung der HM-Sensor-StepUp Platine

Beitrag von Jack01 » 08.02.2020, 14:26

Danke Tom,
genau das hatte ich gemeint.

Gruß

Hans-Jürgen
1 x CCU2 und 26 Geräte (5 x HomeBrew)
Amazon Alexa, ioBroker
RaspberryMatic als Back-Up
Remote Control via TinyMatic und VPN

Antworten

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