FHEM Forum

Verschiedenes => Bastelecke => Thema gestartet von: KarlHeinz2000 am 08 Juni 2016, 21:58:01

Titel: Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 08 Juni 2016, 21:58:01
Ich hatte auch meine liebe Not die Scheibe des Energiezählers mit dem bekannten China-Modul abzutasten. Vor allem am Anfang/Ende der Markierung gab es immer mehrfache Pulse. Schlud ist die nicht ganz optimale Beschaltung des Komparators auf der Platine. Dieser arbeitet gänzlich ohne Hysterese und hat einen überflüssigen Kondensator am Eingang. Beides lässt die Schaltung super schwingen.
Enfernt man den Kondensator (im Kreis oben rechts) und bestückt einen Widerstand (180k) zwischen Pin 5 und 7, dann gehören die Probleme der Vergangenheit an es gibt genau eine Flanke am Beginn/Ende der Markierung.
Als Widerstand bietet sich ein 1206er an. Der passt direkt auf die Pins. Ich habe 180k bestückt, da gerade verfügbar. Andere Werte in der Größenordung gehen auch.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Marlen am 13 September 2016, 12:33:35
Dann werde ich das auch mal versuchen, hab auch das Problem, dass es ständig hin und her springt (On/Off). In welchen Abstand hat du
die Lichtschranke zur Zählerscheibe? Wenn sie ganz nah dran ist geht garnichts!
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 13 September 2016, 13:21:34
Die Lichtschranke sitzt direkt auf der Scheibe vom Zähler.
Den Analogausgang zu verwenden macht eigentlich keinen Sinn, außer zum Einstellen der Schaltschwelle. Das macht aber auch der Komparator auf der Platine.
Also mit dem Poti die Schaltschwelle einstellen. Zur Kontrolle ist die grüne LED da. LED ist bei roter Markierung aus, sonst immer an.
Eingelesen in FHEM wird das mit einem 1-Wire-Zähler (AVR Nachbau) und Firmata. Läuft recht zuverlässig.
Zum Ausrichten des Reflexkopplers kann man gut ein Handy im Fotomodus nehmen. Damit sieht man das IR Licht.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Marlen am 14 September 2016, 14:20:04
Zitat von: KarlHeinz2000 am 13 September 2016, 13:21:34
Eingelesen in FHEM wird das mit einem 1-Wire-Zähler (AVR Nachbau) und Firmata. Läuft recht zuverlässig.

1-Wire-Zähler .... Firmata....gibt es da einen Bauplan? Oder eine andere Doku?
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 14 September 2016, 23:03:07
Die Pulse vom Reflexkoppler werden mit einem DS2423 (bzw. alternativ mit https://forum.fhem.de/index.php/topic,10962.msg63018.html#msg63018)gezählt.
Der DS2324 hat ein 1-Wire Interface, um seinen Zählerstand auszulesen. Dass heißt, man braucht noch einen 1-Wire Busmaster, der an FHEM angebunden ist, um die Anzahl Pulse aus dem Zähler auszulesen. Bei mir ist der Busmaster ein AVR mit Firmata (http://www.fhemwiki.de/wiki/Arduino_mit_OneWireFirmata). Da gibt es aber auch noch alternative 1-WIre Busmaster, z.B. mit I2C oder UART.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Marlen am 15 September 2016, 09:07:39
Ich hab gestern auf den Digitalausgang gesteckt, und die Schwelle eingestellt.
Den Digitalausgang vom TCR5000 hab ich direkt auf eine GPIO geschalten.
Funktioniert eigentlich, oder es ist nur Zufall?
Ich zähl das dann per notify in einen dummy hoch!
Wollte jetzt die Zeit ermitteln in der sich die Schiebe einmal dreht, um so die Watt zu errechnen die das Haus "zieht".
Hab aber keine Ahnung wie ich das mit Timestamp berechnen kann.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: rippi46 am 15 September 2016, 13:05:22
Hallo,

ich benutze auch einen Reflexkoppler zum Auslesen der Stromzähler.
Allerdings habe ich das ganze auf Basis von Mysensor geregelt.

Die Auswertung der Pulse läuft ziemlich stabil.
D.h. die Anzeige in fhem stimmt mit der Anzeige auf dem Stromzähler überein.

hier den Sketch den ich verwende:

// Use this sensor to measure KWH and Watt of your house meeter
// You need to set the correct pulsefactor of your meeter (blinks per KWH).
// The sensor starts by fetching current KWH value from gateway.
// Reports both KWH and Watt back to gateway.
//
// Unfortunately millis() won't increment when the Arduino is in
// sleepmode. So we cannot make this sensor sleep if we also want
// to calculate/report watt-number.

#include <SPI.h>
#include <MySensor.h> 

#define SENSOR_ANALOG_PIN_ENERGY 0  // analog pin for the sensor -> for energy meter
#define SENSOR_ANALOG_PIN_GAS 1 // gas sensor at pin 1

#define PULSE_FACTOR 75         // Nummber of blinks per KWH of your meter
#define PULSE_FACTOR_GAS 100    // Nummber of blinks per m3 of your meter (One rotation/liter)

#define MAX_WATT 10000          // Max watt value to report. This filetrs outliers.
#define MAX_FLOW 40             // Max flow (l/min) value to report. This filters outliers.

#define CHILD_ID 1              // Id of the sensor child ENERGY
#define CHILD_ID_GAS 2          // Id of the sensor child GAS

#define TRIGGERLEVELEHEIGH 303  // highest level -> greater than this, red mark detected
#define TRIGGERLEVELLOW 285     // lowet level -> lower than this, red mark is gone

boolean triggerState = false;   // false = not detected / true = detected
boolean triggerStateGas = false;// false = not detected / true = detected

unsigned long SEND_FREQUENCY = 20000; // Minimum time between send (in milliseconds). We don't wnat to spam the gateway.

MySensor gw;
double ppwh = ((double)PULSE_FACTOR)/1000;  // Pulses per watt hour
boolean pcReceived = false;     // energy value received from gateway
boolean pcGasReceived = false;  // gas value received from gateway

volatile unsigned long pulseCount = 0;
unsigned long oldPulseCount = 0;

double ppl = ((double)PULSE_FACTOR_GAS)/1000;       // Pulses per liter
volatile unsigned long pulseCountGas = 0;
unsigned long oldPulseCountGas = 0;
unsigned long lastPulseGas = 0;
unsigned long lastSendGas = 0;
volatile double flow = 0;
double oldflow = 0;
double volume = 0;                     
double oldvolume = 0;

volatile unsigned long lastBlinkEnergy = 0; // energy last detection of red mark
volatile unsigned long lastBlinkGas = 0;    // gas last detection of red mark

volatile unsigned long watt = 0;
 
unsigned long oldWatt = 0;
double oldKwh;
unsigned long lastSend;

#define DEBOUNCERARRAYENERGY 15
int debounceArray[DEBOUNCERARRAYENERGY];
byte debounceArrayIndex = 0;

#define DEBOUNCERARRAYGAS 20
int debounceGasArray[DEBOUNCERARRAYGAS];
byte debounceGasArrayIndex = 0;

MyMessage wattMsg(CHILD_ID,V_WATT);
MyMessage kwhMsg(CHILD_ID,V_KWH);
MyMessage pcMsg(CHILD_ID,V_VAR1);

MyMessage flowMsg(CHILD_ID_GAS,V_FLOW);
MyMessage volumeMsg(CHILD_ID_GAS,V_VOLUME);
MyMessage gasValueMsg(CHILD_ID_GAS,V_VAR1);

void setup() 
{
  // init debouncer array ENERGY
  for(int i = 0; i < DEBOUNCERARRAYENERGY; i++) {
    debounceArray[i] = 999;
  }
 
  // init debouncer array GAS
  for(int i = 0; i < DEBOUNCERARRAYGAS; i++) {
    debounceGasArray[i] = 999;
  }
 
  gw.begin(incomingMessage);

  // Send the sketch version information to the gateway and Controller
  gw.sendSketchInfo("Energy and Gas Meter", "1.0");

  // Register power sensor
  gw.present(CHILD_ID, S_POWER);

  // register gas meter
  gw.present(CHILD_ID_GAS, S_POWER);

  pulseCountGas = oldPulseCountGas = 0;

  // Fetch last known pulse count value from gw
  gw.request(CHILD_ID, V_VAR1);
  gw.request(CHILD_ID_GAS, V_VAR1);
 
  lastSend = millis();
 
  lastSendGas = lastPulseGas = millis();
}


void loop()     
{
  gw.process();
  unsigned long now = millis();
  // Only send values at a maximum frequency
  bool sendTime = now - lastSend > SEND_FREQUENCY;
  if (pcReceived && sendTime) {
    // New watt value has been calculated 
    if (watt != oldWatt) {
      // Check that we dont get unresonable large watt value.
      // could hapen when long wraps or false interrupt triggered
      if (watt<((unsigned long)MAX_WATT)) {
        gw.send(wattMsg.set(watt));  // Send watt value to gw
      } 
      Serial.print("Watt:");
      Serial.println(watt);
      oldWatt = watt;
    }
 
    // Pulse cout has changed
    if (pulseCount != oldPulseCount) {
      gw.send(pcMsg.set(pulseCount));  // Send pulse count value to gw
      double kwh = ((double)pulseCount/((double)PULSE_FACTOR));     
      oldPulseCount = pulseCount;
      if (kwh != oldKwh) {
        gw.send(kwhMsg.set(kwh, 4));  // Send kwh value to gw
        oldKwh = kwh;
      }
    }   
    lastSend = now;
  } else if (sendTime && !pcReceived) {
    // No count received. Try requesting it again
    gw.request(CHILD_ID, V_VAR1);

    lastSend=now;
  }

  if (pcGasReceived && sendTime) {
    if (flow != oldflow) {
      oldflow = flow;

      Serial.print("l/min:");
      Serial.println(flow);

      // Check that we dont get unresonable large flow value.
      // could hapen when long wraps or false interrupt triggered
      if (flow<((unsigned long)MAX_FLOW)) {
        gw.send(flowMsg.set(flow, 2));                   // Send flow value to gw
      } 
    }
   
    // No Pulse count received in 2min
    if(now - lastPulseGas > 120000) {
      flow = 0;
    }
   
    // Pulse count has changed
    if (pulseCountGas != oldPulseCountGas) {
      oldPulseCountGas = pulseCountGas;

      Serial.print("pulsecount:");
      Serial.println(pulseCountGas);

      gw.send(gasValueMsg.set(pulseCountGas));                  // Send  pulsecount value to gw in VAR1

      double volume = ((double)pulseCountGas/((double)PULSE_FACTOR_GAS));     
      if (volume != oldvolume) {
        oldvolume = volume;

        Serial.print("volume:");
        Serial.println(volume, 3);
       
        gw.send(volumeMsg.set(volume, 3));               // Send volume value to gw
      }
    }
   
    lastSendGas = now;
  } else if(sendTime && !pcGasReceived) {
  // No count received. Try requesting it again
    gw.request(CHILD_ID_GAS, V_VAR1);
  }
 
  // detect red mark and increment count
  CheckEnergyAnalogValueToDetect();

  // detect magnet at gas meter
  CheckGasAnalogValueToDetect();
}

void incomingMessage(const MyMessage &message) {
  if (message.type == V_VAR1 && message.sensor == CHILD_ID) { // energy meter

    pulseCount = oldPulseCount = message.getLong();
    Serial.print("Received last energy pulse count from gw: ");
    Serial.println(pulseCount);
    pcReceived = true;

  } else if (message.type == V_VAR1 && message.sensor == CHILD_ID_GAS) {  // gas meter

    pulseCountGas += message.getLong();
    Serial.print("Received last gas pulse count from gw: ");
    Serial.println(pulseCountGas);
    pcGasReceived = true;
  }
}

/**
* Detect the red mark at the energy meter
*/
void CheckEnergyAnalogValueToDetect() {

  unsigned long newBlink = micros(); 
  unsigned long interval = newBlink-lastBlinkEnergy;

  boolean nextState = triggerState;
  int val = analogRead(SENSOR_ANALOG_PIN_ENERGY);
  int debounceSum = 0;

  debounceArray[debounceArrayIndex] = val;
  for(int i = 0; i < DEBOUNCERARRAYENERGY; i++) {
    debounceSum += debounceArray[i];
  }

  if(debounceArrayIndex == DEBOUNCERARRAYENERGY-1)
    debounceArrayIndex = 0;
  else
    debounceArrayIndex++;
 
  // average of DEBOUNCERARRAYENERGY
  val = debounceSum / DEBOUNCERARRAYENERGY;

  if (val > TRIGGERLEVELEHEIGH) {
    nextState = true;
  } else if (val < TRIGGERLEVELLOW) {
    nextState = false;
  }
  if (nextState != triggerState) {
    triggerState = nextState;
    Serial.println(triggerState? 1 : 0);

    if(triggerState)
    {
      if (interval > 0) {
        watt = (3600000000.0 /interval) / ppwh;
      }
     
      lastBlinkEnergy = newBlink;

      pulseCount++;
           
      Serial.print("Pulse detected: ");
      Serial.println(pulseCount);
    }
  }
}

/**
* Detect the magnet at the gas meter
*/
void CheckGasAnalogValueToDetect() {

  unsigned long newBlink = micros(); 
  unsigned long interval = newBlink-lastBlinkGas;

  boolean nextState = triggerStateGas;

  int value = analogRead(SENSOR_ANALOG_PIN_GAS);
  Serial.print("GasSensor value: ");
  Serial.println(value);

  int debounceSum = 0;

  debounceGasArray[debounceGasArrayIndex] = value;
  for(int i = 0; i < DEBOUNCERARRAYGAS; i++) {
    debounceSum += debounceGasArray[i];
  }

  if(debounceGasArrayIndex == DEBOUNCERARRAYGAS-1)
    debounceGasArrayIndex = 0;
  else
    debounceGasArrayIndex++;

  // average of DEBOUNCERARRAYGAS
  value = debounceSum / DEBOUNCERARRAYGAS;

  // 145 old value
  if (value > 200) {
    nextState = false;
  } else if (value == 0) {
    nextState = true;
  }
   
  if(nextState != triggerStateGas) {
    triggerStateGas = nextState;

    if(triggerStateGas) {
      if (interval!=0) {
        lastPulseGas = millis();
        if (interval<1000000L) {
          // Sometimes we get interrupt on RISING,  1000000 = 1sek debounce ( max 60 l/min)
          return;   
        }
        flow = (60000000.0 / interval) / ppl;
      }
      lastBlinkGas = newBlink;
     
      pulseCountGas++;

      Serial.print("Pulse gas detected: ");
      Serial.println(pulseCountGas);
    }
  }
}


und hier ein typischer Plot in fhem:

Gruß rippi


Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Marlen am 16 September 2016, 07:18:32
Wow....ziemlich komplexer Code!!  ::)
Da steig ich nicht durch!
Habs gestern auch geschaft mit den Momentanen verbrauch berechnen zu lassen! Einfach mit time.

Aber was anderes? Brauchst du echt 15kWh am Tag?
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: rippi46 am 16 September 2016, 08:15:51
Hallo,

Code stammt aber nicht von mir. Habe ich im Mysensorforum gefunden.

Wasch-, Trocken-, Brotbacktag, dann kann das schon mal vorkommen!

Gruß rippi
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 02 Februar 2019, 22:59:48
Hier mal ein Bild von der aktuellen Montage des Sensors. Falls es jemanden interessiert  ;)
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: lufi am 07 Juli 2019, 09:40:08
Hallo Karl Heinz,

ich habe die Probleme mit dem Prellen dank deiner Tipps beseitigt, jetzt muss ich den Sensor aber alle 1-2 Tage nachjustieren.
Sonst hört er einfach auf zu zählen.

Hast du dazu eine Idee ?

Danke und Gruß

Lutz
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 08 Juli 2019, 10:30:16
Was musst du denn justieren? Die Empfindlichkeit auf der Platine, oder die Position über der Scheibe?
Zur Positionierung kann man auch wunderbar das Handy nehmen. Mit der Kamera sieht man das IR Licht.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Allodo am 10 Juli 2019, 09:06:43
Ich würde meinen TCRT5000 auch gerne entprellen.

Da ich jedoch nicht so firm bin bzgl. Widerständen, kann mir vielleicht jemand genau sagen, wonach ich suchen muss?
180K ist klar, aber wieviel mW/W usw.

Möchte da nix falsches anlöten ;)
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 10 Juli 2019, 23:07:49
Leistung, Toleranz, .... spielt bei dem Widerstand keine Rolle. Irgendwas um 180k sollte es sein. SMD Bauform 0603 oder 0805, müsste sich beides bestücken lassen. Ein bedrahteter R geht natürlich auch mit etwas Biege-Akrobatik.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: lufi am 11 Juli 2019, 20:23:20
Hallo Karl Heinz,

was ich immer mal wieder nachjustieren muss, ist die Empfindlichkeit.
Der Sensor hört einfach nach 2-3 tagen auf zu zählen.

Der Widerstand ist bei mir 220k weil ich keine 180k hatte.

Danke und Gruß

Lutz
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: flipse am 12 Juli 2019, 08:32:06
Zitat von: KarlHeinz2000 am 08 Juni 2016, 21:58:01
Ich hatte auch meine liebe Not die Scheibe des Energiezählers mit dem bekannten China-Modul abzutasten. Vor allem am Anfang/Ende der Markierung gab es immer mehrfache Pulse. Schlud ist die nicht ganz optimale Beschaltung des Komparators auf der Platine. Dieser arbeitet gänzlich ohne Hysterese und hat einen überflüssigen Kondensator am Eingang. Beides lässt die Schaltung super schwingen.
Enfernt man den Kondensator (im Kreis oben rechts) und bestückt einen Widerstand (180k) zwischen Pin 5 und 7, dann gehören die Probleme der Vergangenheit an es gibt genau eine Flanke am Beginn/Ende der Markierung.
Als Widerstand bietet sich ein 1206er an. Der passt direkt auf die Pins. Ich habe 180k bestückt, da gerade verfügbar. Andere Werte in der Größenordung gehen auch.

Guten Morgen,

ich habe leider auch die Probleme, dass mein TCRT5000, der als Wasserzähler eingesetzt werden soll, zu viele Impulse zählt.
Leider sieht meiner scheinbar anders aus, als deiner und ich bin auch nicht so firm im Löten dieser extrem kleinen Bauteile.
Was kann ich bei diesem Sensor machen?
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 12 Juli 2019, 21:48:34
DAs Modul kenne ich nicht. Anhand der Bauteile auf der Platine scheint die Schaltung leicht anders zu sein. Entweder die Schaltung auf Papier bringen, damit ich was zu sagen kann, oder noch einen Euro in CN in das andere Modul investieren.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 12 Juli 2019, 22:02:41
@lufi,
hast du die Schwelle richtig satt eingestellt? Beim roten Strich darf nicht gerade so umgeschaltet werden, sonst wird das zu empfindlich auf Umwelteinflüsse.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: lufi am 13 Juli 2019, 08:45:01
@KarlHeinz,

ich habe gestern etwas rumgebastelt, dabei ist mir aufgefallen, dass mit einem 168k Wiederstand, dass Signal invertiert ist.
Wenn ich also 220k habe schaltet das Modul, wenn die Rote Markierung kommt.
Bei einem Wiederstand von 168k (100k + 68k) unterbricht das Modul, wenn der Strich kommt.
In diesem Fall habe ich dann aber Probleme mit der Tasmota Software auf dem WeMos D1, da diese mit dem Signal beim Start nicht gut klar kommt.

Um weiter zu testen, habe ich dann einen 100k Wiederstand verwendet, auch da wollte das Modul nicht richtig arbeiten (Reflektionen) da habe ich dann die
Signaldioden etwas gebogen und das Modul wieder schräg auf die Scheibe gesetzt. Das hat erstmal Besserung gebracht aber auch Kratzer auf der Drehscheibe wurden gezählt.
Nachdem ich das Modul jetzt schräg und Horizontal ausgerichtet habe scheint es erstmal zu klappen.
Ich werde in den nächsten Tagen berichten, ob jetzt stabil gezählt wird.

OkOk Das ist jetzt nicht schön, aber es funktioniert erstmal "!


Gruß

Lutz
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KarlHeinz2000 am 14 Juli 2019, 10:00:52
Gut, wenn es erstmal geht.
Die Platine muss aber eigentlich 90° gedreht montiert werden. So wie du die verbaut hast, ist die Einstellung viel schwieriger.
Mit Klebeband habe ich am Anfang auch probiert. Damit lässt sich die Platine aber nicht langzeitstabil befestigen. Das dehnt sich immer etwas und der Schaltpunkt ist weg...
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: lufi am 14 Juli 2019, 12:32:17
Wenn die Platine senkrecht montiert wird, reagiert die Lichtschranke leider auf einige Kerben in der Drehscheibe.
Das konnte ich nur verhindern, wenn ich waagerecht montiere, dabei ist wichtig das nur eine Diode über der Drehscheibe ist.

Ergebnisse sind bisher stabil und präzise.

Gruß

Lutz
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: KiK am 01 Juni 2020, 23:23:01
Ich habe 2 Zähler. Einen mit gerändelter Disk und Kunststoff-Scheibe, einen mit glatter Disk und Glas-Scheibe. Beide reagieren ziemlich unterschiedlich auf verschiedene Gehäuse, Anordnungen, Masken etc.
Ich hatte Probleme mit Doppelpulsen, ständiges Nachjustieren ... und im Internet wurde ich auch nicht fündig....

Hier ein Tipp, wie ich diese TCRT5000 Platinen zum Laufen gebracht habe.

Schritt 1: Optik
Zunächst sollte die Optik so positioniert werden, dass ein max. Spannungshub entsteht zwischen Disk-normal und Disk-rote-Markierung. Am besten an der unverbastelten Platine an A0 <-> GND messen oder direkt an der Photodiode. Wegen Reflexionen an der Scheibe muss die Empfangs- und Sende-Diode möglichst nah an der Scheibe sein. Irgendwann war ich mit meinem Latein am Ende - die Kunststoffscheibe schien entweder kein Infrarotlicht durchzulassen oder die rote Markierung schien im Infrarot-Bereich ähnliche Remission zu haben, wie die Disk selbst. Jedenfalls kein ausreichender Spannungshub.
Ich kaufte also eine grüne LED (Superbright) da die rote Farbe die Wellenlänge des grünen Lichts sicherlich schlecht reflektiert und eine klare Photodiode, die einigermaßen auf grün reagiert....
Das Grün hat auch den Vorteil, dass man den Fokus-Punkt sieht (Bild). Hier fällt auf, dass man die Dioden sehr schräg anordnen muss, damit ein Fokus-Punkt von nur einigen Milimetern unter den Dioden entsteht (eben wie am Stromzähler). Im Nachhinein denke ich, das ist die eigentliche Lösung des optischen Problems - nicht die grüne Farbe. Alternativ könnte man die bestehenden Dioden drin lassen, die Halterung nach unten abziehen und die Dioden entsprechend zueinander biegen - sollte gehen, hab ich nicht getestet. Ich war zufrieden mit dem Grün, weil die Ausrichtung über der Disk jetzt kein Problem ist. Optische Trennung z.B. durch ein Stück schwarzes Isolierband (Bild)
Mein Zähler mit dem schlechteren Ergebnis brachte damit immerhin einen Spannungshub von 0,4V bei 3,3V Versorgung - sollte gehen.

Schritt 2: Schmitt Trigger
Hier https://forum.fhem.de/index.php/topic,54408.0.html (https://forum.fhem.de/index.php/topic,54408.0.html) ist schon eine gute Richtung beschrieben: Durch zusätzliche Beschaltung versucht man ein Schmitt Trigger Verhalten hin zu bekommen. Das Problem ist:
- Der Parallel-Kondensator zur Photodiode macht als Glättungskondensator Sinn - nicht entfernen
- Die Photodiode ist in erster Näherung eine Stromquelle (kein Widerstand). Der zusätzliche Widerstand allein bringt daher noch kein gutes Schmitt-Trigger Verhalten.
Mein Versuch: Erst mal einen Schmitt Trigger aufbauen mit R1 & R2 (Bild).
- Leiterbahn beim mittleren 10k Widerstand in Richtung LM393 durchtrennen
- R1 einlöten (am Besten zwischen Pin5 LM393 und Anschluss Photodiode
- R2 einlöten (da dieser evtl. später noch angepasst werden muss, am Besten an den Anschüssen D0 & A0)
Dimensionierung:
R1: sollte Faktor 5-10 größer sein als Impedanz der Photodiodenschaltung. Ich hab mal 68k gewählt
R2: wird nach gewünschter Hysterese berechnet - für 0,4V funktioniert 680k gut

Mit diesen Änderungen laufen bei mir beide Zählererfassungen recht gut. Keine Doppelpulse mehr nach der roten Markierung. Ich kann jetzt sogar den Zeitwert zwischen 2 Pulsen verwenden, um die genaue Leistung zu berechnen.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: zweiundzwanzig am 09 August 2020, 20:51:43
Zitat von: KarlHeinz2000 am 08 Juni 2016, 21:58:01
Ich hatte auch meine liebe Not die Scheibe des Energiezählers mit dem bekannten China-Modul abzutasten. Vor allem am Anfang/Ende der Markierung gab es immer mehrfache Pulse. Schlud ist die nicht ganz optimale Beschaltung des Komparators auf der Platine. Dieser arbeitet gänzlich ohne Hysterese und hat einen überflüssigen Kondensator am Eingang. Beides lässt die Schaltung super schwingen.
Enfernt man den Kondensator (im Kreis oben rechts) und bestückt einen Widerstand (180k) zwischen Pin 5 und 7, dann gehören die Probleme der Vergangenheit an es gibt genau eine Flanke am Beginn/Ende der Markierung.
Als Widerstand bietet sich ein 1206er an. Der passt direkt auf die Pins. Ich habe 180k bestückt, da gerade verfügbar. Andere Werte in der Größenordung gehen auch.

Das sieht auf dem Foto irgendwie aus als wäre der Widerstand zwischen PIN 6 und 8 gelötet. Ist das richtig?

Also bei mir klappt das auch garnicht über den digitalen output. Nicht mit den o.g. Mods, nicht mit schrägen LEDs (das habe ich sogar sehr präzise probiert durch 3d-Druckteile mit verschiedenen Winkeln. Das Problem ist einfach, dass meine Scheibe ein paar Macken hat und da löst der TCRT5000 aus. Ich kann ihn nicht "unempfindlich" genug einstellen. Mir ist in dem Zusammenhang aufgefallen, dass es anscheinend glatte und geriffelte Scheiben gibt. Kurze umfrage: https://forum.fhem.de/index.php/topic,113459.0.html
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Otto123 am 11 August 2020, 17:32:55
Hi,

Zitat von: zweiundzwanzig am 09 August 2020, 20:51:43
Das sieht auf dem Foto irgendwie aus als wäre der Widerstand zwischen PIN 6 und 8 gelötet. Ist das richtig?
Nur wenn Du falsch zählst :) IC Beinchen sind im positiven Drehsinn nummeriert:
8765
1234

Die 1 ist auf dem Gehäuse markiert.

Ganz entscheidend ist mMn der Abstand zwischen TCRT5000 und der Gehäusescheibe! Man müsste überlegen ob man Streulicht noch mehr verringern und den Sensor sogar irgendwie direkt an die Scheibe ankoppeln könnte.
Ich habe mit dem 3D Druck Gehäuse aus diesem Beitrag (https://forum.fhem.de/index.php/topic,61731.msg1076185.html#msg1076185) experimentiert. Es existieren ja unglaublich viele Varianten von TCRT5000 Platinen, meine passte nicht ganz exakt in das Gehäuse. Der Sensor hatte etwa einen Abstand von 1 mm zur Scheibe.
Damit hatte ich einen Spannungshub von 20 mV (160 zu 180 mV). Das war unbrauchbar!

Jetzt habe ich einen Hub von ca 400 mV (160 zu 560 mV) das schaltet offenbar relativ sauber.
Momentan zähle ich die Impulse einfach mit Tasmota, zwei Counter, einen als Zähler einen als Timer und ich habe CounterDebounceLow 10 und CounterDebounceHigh 1 gesetzt. Ohne Debounce gab es wenige zusätzliche ganz kurze Impulse am Tag.

Da man in jedem Fall Hand (Lötkolben) angelegen muss, würde ich eigentlich immer die Lösung (https://www.kompf.de/tech/emeir.html) empfehlen. Ich hatte die schon ein ganze Weile in fliegender Verdrahtung (https://heinz-otto.blogspot.com/2016/10/ferrariszahler-abtasten-ein-experiment.html) im Einsatz. Die gibt es jetzt auch mit Arducounter (Wiki).

Ich wollte beim Umbau mal testen, ob man sich auch was "zusammenstecken" kann und einfach Tasmota / MQTT2 macht. Aber so ist es offenbar nicht.

Btw: Ich habe geriffelte Drehscheibe und Plastikgehäuse.

Gruß Otto
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: zweiundzwanzig am 12 August 2020, 17:13:20


Zitat von: Otto123 am 11 August 2020, 17:32:55
Nur wenn Du falsch zählst :) IC Beinchen sind im positiven Drehsinn nummeriert:
8765
1234

Die 1 ist auf dem Gehäuse markiert.


Die Hitze muss mir auf den Kopp geschlagen haben. Ich habe früher jahrelang Audioschaltungen mit TL072 und Konsorten gebastelt und hab das inzwischen einfach so vergessen! So richtig vergessen! Danke für die Korrektur! :-)
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: presskopf am 02 Dezember 2020, 21:17:28
Ich mag auch mal mein Feedback geben, vielleicht hilft es bei der Fülle an TCRTs, die man so findet.

Ursprünglich hatte ich das Teil aus dem ersten Beitrag (https://forum.fhem.de/index.php/topic,54408.msg459962.html#msg459962 (https://forum.fhem.de/index.php/topic,54408.msg459962.html#msg459962) ohne Umbau in vielen verschiedenen Winkeln montiert.
Bei mir ist die Plastikscheibe recht stark getönt und relativ weit weg vom Ferraris.
Das hat aber nicht so toll funktioniert, also habe ich auch die Umlötung (1. Beitrag) vorgenommen. Damit wurde es besser, aber das Teil war immmer noch extrem empfindlich. Irgendwie haben sich dann immer Spikes in die Auswertesignale eingeschlichen und die Daten waren nicht brauchbar.

Dann bin ich auf einen TCRT-Line-Tracker gestoßen. 4 EUR als Experiment wurden mal in die Neugierde investiert.
https://www.ebay.de/itm/Infrarot-Line-Tracker-Reflexlichtschranke-TCRT5000-fur-Arduino-Raspberry-Pi-DIY/184264280946?hash=item2ae701cb72:g:ALEAAOSwY2peoVv6 (https://www.ebay.de/itm/Infrarot-Line-Tracker-Reflexlichtschranke-TCRT5000-fur-Arduino-Raspberry-Pi-DIY/184264280946?hash=item2ae701cb72:g:ALEAAOSwY2peoVv6)
Im Anhang noch ein Bild vom Probanden.

Jedenfalls habe ich die beiden Dioden parallel vor den Ferraris montiert, mit einem entsprechenden Winkel, der mir eine vernünftige Detektion bescheinigte.
Komischerweise, gibt es an diesem Teil nix einzustellen. Aber however: Bis jetzt (einige Tage) läuft die Möhre einwandfrei
Vielleicht hilft es noch jemandem bei der Sensorauswahl.


PS@Moderator Habe auf dem Bild und in Ebay kein (c) ausgemacht. Falls das Bild dennoch unerwünscht ist, nehme ich es selbstverständlich umgehend raus.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Gisbert am 20 Januar 2021, 12:46:33
Hallo Otto,

ZitatDamit hatte ich einen Spannungshub von 20 mV (160 zu 180 mV). Das war unbrauchbar!
Den Sensor in seinen Lötaugen etwas nach vorn geholt -> Kontakt zur Scheibe
Den Spannungsteiler (Poti) zur besseren Einstellung mit 10 kOhm zu VCC erweitert.
220 kOhm von zwischen 5 und 7 des LM393 gelötet

Jetzt habe ich einen Hub von ca 400 mV (160 zu 560 mV) das schaltet offenbar relativ sauber.

ich habe kürzlich einen TCRT5000 zur Strommessung in Betrieb genommen und wollte meine Erfahrung kurz schildern, sowie eine Frage loswerden.

Mein Aufbau ist ein TRCT5000 mit 200k an den Beinchen 5 und 7 des ICs. Die Auswertung läuft in einem ESP auf einem digitalen Eingang des ESPs mit ESPEasy. Dort läuft ein Pulse Counter. Die Signalerkennung is FALLING mit einer Debounce Time von 5000 ms.
Damit läuft die Strommessung sehr präzise und zumindest über einen halben Tag ohne Abweichung zum mechanischen Zähler, längere Beobachtungszeit habe ich noch nicht.

Die Einstellung des Potentiometers ist äußerst diffizil. Wo muss der 10k Widerstand gegen VCC genau eingelötet werden?

Viele​ Grüße​ Gisbert​
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Otto123 am 20 Januar 2021, 13:34:16
Hallo Gisbert,

das ist wieder so ein lustiges Projekt, schon die zweite Installation die ich provisorisch aufgebaut habe und die dann einfach läuft. Alles vergessen: nicht fertig gemacht, nicht richtig dokumentiert  ::)
In #21 hast Du ja den Schaltplan, der wird so ähnlich bei allen Modulen sein, obwohl die sich immer wieder unterscheiden. Der Widerstand muss quasi in Reihe zum Poti, damit geht das Poti nur noch von vcc/2 bis 0 Volt.

Ich habe bei mir den Leiterzug vom Poti auf der Unterseite neben dem Lötauge durchtrennt, dann kann man relativ gut einen Widerstand vom Poti nach unten zum VCC Anschluss löten.
Foto kann ich jetzt nicht machen, da wäre die Justage im Eimer :)

Gruß Otto
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Gisbert am 20 Januar 2021, 15:28:35
Hallo Otto,

ZitatDer Widerstand muss quasi in Reihe zum Poti, damit geht das Poti nur noch von vcc/2 bis 0 Volt.

Ich habe bei mir den Leiterzug vom Poti auf der Unterseite neben dem Lötauge durchtrennt, dann kann man relativ gut einen Widerstand vom Poti nach unten zum VCC Anschluss löten.
Foto kann ich jetzt nicht machen, da wäre die Justage im Eimer :)

Danke für die Erklärung, damit komme ich weiter. Leider komme ich auch nicht mehr gut an die Rückseite dran, da ich das 3D-Gehäuse teilweise mit PA-Schmelzkleber vergossen habe. Ich organisier mir mal was neues, und experimentiere dann weiter.

Viele​ Grüße​ Gisbert​
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: TheTrumpeter am 10 November 2021, 13:52:41
Ich wärme das Thema mal auf...

Habe vor einigen Monaten auch so eine TCRT5000-Schaltung zur Erfassung vom Stromzähler gebaut. Das Modul habe ich samt AC-DC-Wandler und D1mini in eine kleine Aufputz-Dose eingebaut und mittels Klebeband an den Zähler gepackt.
Es hat dann im ersten Versuch ohne große Ausrichtung und ohne am Poti herumzudrehen funktioniert, aber nur bis zu Momentanverbräuchen von ca. 3,5kW. Habe dann irgendwann versucht am Poti herumzudrehen, aber lösen konnte ich das Problem nicht.
Nach einiger Zeit musste ich das Teil dann von dem Zähler lösen, seitdem bekomme ich es nicht mehr zum Laufen, gleiches Problem wie hier weiter oben schon beschrieben. Der Einstellbereich vom Poti scheint so klein zu sein, dass am Übergang von "grüner LED an" zu "grüner LED aus" schon allein durch Ansetzen des Schraubendrehers mal in die eine oder andere Richtung verändert wird.

Wenn ich es richtig verstanden habe, soll durch Serienschaltung des Potis mit ca. R=10k die Einstellmöglichkeit verbessert werden, weil dann zwar die Spannung nach dem Poti reduziert wird, dafür aber der Bereich zwischen 0 und Max (dann ca. 2V) weiter gespreizt wird.

(Die zusätzlichen Modifikationen mit R zwischen Pins 5 und 7 sowie Entfernen des C habe ich noch nicht durchgeführt, weil ich mit der Flankensteilheit noch keine Probleme hatte und auch nicht grad ein Lötweltmeister bin, drum versuche ich Lötarbeiten bei so geringen Abständen möglichst zu vermeiden.)
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Papa Romeo am 10 November 2021, 14:59:05
Zitat von: TheTrumpeter am 10 November 2021, 13:52:41
Wenn ich es richtig verstanden habe, soll durch Serienschaltung des Potis mit ca. R=10k die Einstellmöglichkeit verbessert werden, weil dann zwar die Spannung nach dem Poti reduziert wird, dafür aber der Bereich zwischen 0 und Max (dann ca. 2V) weiter gespreizt wird.

...hallo Trumpeter,

das ist nicht ganz korrekt. Mit einem Serienwiderstand verschiebst und verringerst du den Einstellbereich.
Wenn du den Einstellbereich "empfindlicher" machen willst, musst du die Einstellmöglichkeit auf zwei Festwiderstände und einen variablen Widerstand (Poti) aufteilen.

z.B.   10 kOhm fest - 10 kOhm Poti - 10 kOhm fest

mit einem Widerstand überstreichst du einen Einstellbereich von 5 Volt über die 270 Grad.

Bei der Aufteilung einen Bereich von ca. 1.7 Volt über die 270 Grad.

Das ist jetzt nur ein Beispiel.

Du soltest vorher die Umschaltspannung messtechnisch feststellen und dann die Widerstandswerte daran anpassen.

LG
Papa Romeo
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 06 Juli 2022, 21:40:24
Zitat von: Gisbert am 20 Januar 2021, 15:28:35
.....
Danke für die Erklärung, damit komme ich weiter. Leider komme ich auch nicht mehr gut an die Rückseite dran, da ich das 3D-Gehäuse teilweise mit PA-Schmelzkleber vergossen habe. Ich organisier mir mal was neues, und experimentiere dann weiter.
.....

Hallo Gisbert
Ich wärme diesen Beitrag nochmal auf, um als Altzählerbesitzer nun doch noch den Verbrauch erfassen zu können. Keine Ahnung wie lange es noch mit den Zählertausch dauert.
Ich nehme gern dein Angebot an, deine Notizen zur Verfügung zu stellen.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Gisbert am 07 Juli 2022, 16:33:11
Hallo Ralf,

ich hänge hier meine Ergüsse an, die ich vor etwas mehr als einem Jahr gemacht habe. "Ergüsse" deshalb, weil ich selber nicht mehr ganz schlau werde, was ich mir da zusammengeschrieben habe. Laut angehängtem Dokument ist die beste Lösung keinen Widerstand einzulöten, aber das verbaute Teil hatte einen eingelöteten Widerstand - was soll man dazu sagen.
Andererseits habe ich alle gefundenen Literaturstellen zusammengetragen, und vielleicht kommst du damit und eigenen Messungen weiter.

Offensichtlich hatte ich auch mit Tasmota experimentiert, was aber weniger gut als ESPEasy funktioniert hatte. Die Einstellungen des Pulse counters sind auch vorhanden.
Da ich den ESP auch zur Türklingelauswertung benutze, lasse dich durch diese Infos nicht verwirren.
Zum Schmidt-Trigger habe ich auch was zusammengetragen und damals auch bestellt, aber nie benutzt.

TCRT5000 (1x mit Potentiometer und 2x ohne Potentiometer, sowie ein vermutlich defekter, mit Potentiometer) sowie reichlich Schmidt-Trigger sind vorhanden, Widerstände sowieso.
Sag Bescheid, wenn du was brauchst.

Viele Grüße Gisbert
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 08 Juli 2022, 20:56:20
Hallo Gisbert
Danke werde mir die Sachen mal zu Gemüte führen.

In der Zwischenzeit habe ich auch einen Teil des längeren Forumeintrags zum Modul ArduCounter von StefanStrobel gelesen. Der Ansatz scheint auch nicht schlecht zu sein.
https://forum.fhem.de/index.php/topic,19285.0.html (https://forum.fhem.de/index.php/topic,19285.0.html)     (Otto123 scheibt auch, damit experimentiert zu haben)
Dort werden direkt Fototransistor und IR-Diode am ESP angeschlossen (mal sehen ob meine BPW40 und SFH309 dafür reichen  ::)) und es wurde speziell ein Sketch zur Auswerung geschrieben.

Ich melde mich nochmal...
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 20 Juli 2022, 13:51:12
Zitat von: RalfRog am 08 Juli 2022, 20:56:20
Hallo Gisbert
Danke werde mir die Sachen mal zu Gemüte führen....

Danke an Gisbert für die Aushilfe mit den von ihm nicht mehr benötigten Teilen.

Meine ersten Experimente mit dem TCRT5000-Modul am Ferraris-Zähler (egal ob waagerecht oder senkrecht zur Drehscheibe) bringen erstmal die gleichen Ergebnisse wie #21 (kik) und #23 (otto123). Spannungshübe am analogen Ausgang im einstelligen Millivoltbereich - das dürfte nicht zu stabilen Resultaten führen.
Der Abstand der Frontscheibe (Kunststoff) zur Drehscheibe sind so 12-15mm sein. Die Drehscheibe ist (vermutlich Kunststoff ==> Edit: Danke Nobbynews natürlich Alu  :P) glatt und "silbern" mit rotem Bereich ca. 25mm.

Dann werde ich mich mal an die mechanischen Optimierungen aus #21/#23 geben.....  die grüne LED ist auch eine schöne Idee - obwohl es mich wundert, dass es funktioniert hat. LEDs sind ja doch recht "schmalbandig" und IR (880 bzw. 940) und grün (550) liegen ja doch 330 - 400 nm auseinander
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Nobbynews am 20 Juli 2022, 14:09:10
Zitat von: RalfRog am 20 Juli 2022, 13:51:12
Die Drehscheibe ist (vermutlich Kunststoff) glatt und "silbern" mit rotem Bereich ca. 25mm.
Die Scheibe ist aus Aluminium.
Ich habe hier für Strom- und Gaszähler jeweils einen TCRT5000 im Einsatz ohne Probleme.
Allerdings habe ich jedem einen Schmitt-Trigger 74HC14 gegönnt
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 24 Juli 2022, 01:40:16
Hallo Nobbynews

Hatte die Woche nicht so sehr viel Zeit. Aber die Tests die ich gemacht habe, haben mich noch nicht so recht vorwärts gebracht.
Welche Variante setzt du ein? Eine "Reflexlichtschranke / Tracker" mit Analog- und Digital-PIN (analog zu Beitrag #1) und dann an A0 den Schmitt-Trigger?

Ich messe am A0 ca. 0,16 Volt (mit oder ohne roter Markierung nur wenige Millivolt Änderung) - ich glaube, da lässt sich mit dem Schmitt-Trigger auch nichts mehr retten.
Der Grund liegt für mein Verständnis in dem hohen Widerstand von 10k vor dem Fototransistor. Da fallen schon bei 330µA die vollen 3,3 Volt am Widerstand ab - dieser Strom wird vermutlich schon bei kleinen reflektierten Lichtmengen erreicht. Da macht dann die rote Markierung auch nichts mehr.

Meine Idee ist, den Arbeitspunkt an dieser Stelle zu verschieben. Ich denke ich versuche hier mal mit 1k auf 3 mA hochzugehen. Ich hoffe, dass dann die Änderung der reflektierten Lichtmenge eine eine größere Spannungsänderung hervorruft (so im Bereich 0,2-0,5V bei einer Änderung von 0,2 - 0,5mA.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Nobbynews am 24 Juli 2022, 06:12:52
Zitat von: RalfRog am 24 Juli 2022, 01:40:16
Welche Variante setzt du ein? Eine "Reflexlichtschranke / Tracker" mit Analog- und Digital-PIN (analog zu Beitrag #1) und dann an A0 den Schmitt-Trigger?
Ich setzte diese hier ein:
https://www.makershop.de/sensoren/lichtsensor/tcrt5000-modul/ (https://www.makershop.de/sensoren/lichtsensor/tcrt5000-modul/)
Weiterhin habe ich die Schaltung für den Schmitt-Trigger von hier (bereits in der Doku von Gisbert benannt) umgesetzt:
https://nachbelichtet.com/so-funktioniert-der-tcrt5000-mit-espeasy-als-pulse-counter/ (https://nachbelichtet.com/so-funktioniert-der-tcrt5000-mit-espeasy-als-pulse-counter/)
Den Ausgang A0 benutze ich nicht, sondern nur den Ausgang D0.
In den Kommentaren ziemlich weit unten gibt es noch einen Hinweis auf einen 100 kOhm Widerstand zwischen A0 und D0 zur Verbesserung der Hysterese.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Papa Romeo am 25 Juli 2022, 09:07:23
Zitat von: RalfRog am 24 Juli 2022, 01:40:16
Ich messe am A0 ca. 0,16 Volt (mit oder ohne roter Markierung nur wenige Millivolt Änderung) - ich glaube, da lässt sich mit dem Schmitt-Trigger auch nichts mehr retten.

.... dann hast du bereits eine ständige Reflektierung und der Fototransistor steuert voll durch.
Eventuell bist du zu nahe an der Drehscheibe.

LG
Papa Romeo
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Nobbynews am 25 Juli 2022, 09:34:59
Zitat von: Papa Romeo am 25 Juli 2022, 09:07:23
.... dann hast du bereits eine ständige Reflektierung und der Fototransistor steuert voll durch.
Das müsste man aber doch auch an der Signal-LED erkennen können?
Das Ding ist doch so empfindlich, dass man beim vertikalen Verschieben über die Scheibe den Zwischenraum zwischen Scheibe und Zählerblende darüber angezeigt bekommt.
Und wieseo eigentlich den Analogausgang nehmen? Der LM393 ist doch als Komparator gedacht und erzeugt am D0 ein digitales Signal.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Papa Romeo am 25 Juli 2022, 18:53:49
Zitat von: Nobbynews am 25 Juli 2022, 09:34:59
Das müsste man aber doch auch an der Signal-LED erkennen können?

... was passiert, wenn du den Sensor einfach in die Luft hältst und dann den Daumen oder Finger auf die LED´s legst ... ändert sich an der LED was ?

LG
Papa Romeo
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Nobbynews am 25 Juli 2022, 19:38:55
Zitat von: Papa Romeo am 25 Juli 2022, 18:53:49
... was passiert, wenn du den Sensor einfach in die Luft hältst und dann den Daumen oder Finger auf die LED´s legst ... ändert sich an der LED was ?
Ist schon etwas länger her, dass ich das probiert habe, aber ich meine das es so war (ist).
Das passiert aber auch, wenn man den Sensor auf das schwarze Gehàuse des Zählers hält und in das Sichtfenster verschiebt.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Papa Romeo am 25 Juli 2022, 23:49:41
... um Seitenreflektionen zu verhindern, mach ich da immer ein Stück Schrumpfschlauch oder Instllationsrohr d´rüber ...

... siehe Anhang ...

LG

Papa Romeo
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 26 Juli 2022, 00:00:47
Zitat von: Papa Romeo am 25 Juli 2022, 09:07:23
.... dann hast du bereits eine ständige Reflektierung und der Fototransistor steuert voll durch.
Eventuell bist du zu nahe an der Drehscheibe.

LG
Papa Romeo

Hi Papa Romeo und Nobbynews

Ja das ist vermutlich das Problem.
Habe jetzt mit einer Trockenübung den Fototransistor mit 2,2k Vorwiderstand betrieben. Das sieht besser aus, hier komme ich bei 15/20mm Abstand auf 1 bis 1,5 Volt - der Transistor hat also noch nicht voll durchgesteuert (die Schaltschwelle am Komparator für D0 lässt sich so auch besser einstellen - ist aber erst Step 2).
Muss jetzt den Test noch am Zähler machen (ggfs. auch mal mit 1k).


Zitat von: Nobbynews am 25 Juli 2022, 09:34:59
Das müsste man aber doch auch an der Signal-LED erkennen können?
Das Ding ist doch so empfindlich, dass man beim vertikalen Verschieben über die Scheibe den Zwischenraum zwischen Scheibe und Zählerblende darüber angezeigt bekommt.
Und wieseo eigentlich den Analogausgang nehmen? Der LM393 ist doch als Komparator gedacht und erzeugt am D0 ein digitales Signal.

Den Zwischenraum bekomme ich mit vertikalem Verschieben scheinbar nicht fokussiert (zumindest im Originalzustand).
Der A0 dient erstmal nur zum Messen der Ausrichtung. Schaltungstechnisch liegt der A0 ja am + des Komparators und die Schwelle soll über das Poti (- des Komparators) eingestellt werden. Nur wenn der Transitor aufgrund des reflektierten Lichts (woher das auch immer kommt) schon sofort voll durch steuert kann man nicht mehr viel machen.


Zitat von: Papa Romeo am 25 Juli 2022, 18:53:49
... was passiert, wenn du den Sensor einfach in die Luft hältst und dann den Daumen oder Finger auf die LED´s legst ... ändert sich an der LED was ?

LG
Papa Romeo

Klar, das habe ich mit verschiedenen Materialien probiert. Im Originalzustand schaltet die Lichtschranke bzw. der Fototransistor schon bei 3 bis 4 cm voll durch.
Eventuell müsste auch der Strom durch die IR Diode etwas reduziert werden um die Sendeleistung zu reduzieren.


Jetzt kommt erstmal der Test mit höherem Arbeitstrom am Fototransistor.
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 26 Juli 2022, 00:08:43
Zitat von: Papa Romeo am 25 Juli 2022, 23:49:41
... um Seitenreflektionen zu verhindern, mach ich da immer ein Stück Schrumpfschlauch oder Instllationsrohr d´rüber ...

... siehe Anhang ...

LG

Papa Romeo
Schöne Beispiele.
Welche Spannungen an A0 hast Du den bei den zwei verschiedenen Abständen des "Zollstock".
Die Idee mit dem Schrumpfschlauch probier ich mal - wie der Einfluss auf das reflektierte IR Licht/ Nebenlicht ist.

P.S. siehe auch die beiden Antworten vorher
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Otto123 am 26 Juli 2022, 11:13:18
nach meinen Erfahrungen ist der größte Einfluss durch das Streulicht in der Plastescheibe. Der Fototransistor muss quasi auf die Scheibe und Licht von ringsherum muss ausgeschlossen werden!
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: Papa Romeo am 26 Juli 2022, 11:55:28
Zitat von: RalfRog am 26 Juli 2022, 00:08:43
Welche Spannungen an A0 hast Du den bei den zwei verschiedenen Abständen des "Zollstock".

... bei minimaler Empfindlichkeit:

ohne    -->  4.5 V
8.5 cm  -->  4.0 V
6.0 cm  -->  3.5 V
5.0 cm  -->  3.0 V
3.5 cm  -->  1.0 V
3.0 cm  -->  0.2 Volt --> LED geht an

... bei maximaler Empfindlichkeit:

ohne   --> 4.7 V
16 cm  -->  4.5 V
12 cm  -->  4.4 V
11 cm  -->  4.35 V -->  LED geht an


LG
Papa Romeo
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 26 Juli 2022, 18:40:02
Zitat von: Papa Romeo am 26 Juli 2022, 11:55:28
... bei minimaler Empfindlichkeit:
....
3.0 cm  -->  0.2 Volt --> LED geht an

... bei maximaler Empfindlichkeit:
...
11 cm  -->  4.35 V -->  LED geht an

LG   Papa Romeo

Ja so sieht es bei mir auch in etwa aus (allerdings arbeite ich mit 3,3V wegen dem ESP).
Das Material der reflektierenden Fläche spielt keine so große Rolle (ausser eine rauhe mattschwarze Fläche, die reflektiert fast nix) --> es bleibt um die 3 cm.

Die Sache ist aus meiner Sicht, dass der Sensor näher muss als die max. Empfindlichkeit (3.0 cm  -->  0.2 Volt) und dann noch nicht in der Sättgung sein darf. Aber bei 3cm hat der Transistor ja schon voll durchgesteuert.

Angeregt durch deinen Testaufbau habe ich mal mit 2,2k und 1k vor dem Fototransistor die Abstände gemessen.
Die 12mm dürften etwa der Abstand zur Drehscheibe sein (Ottos Rat hinsichtlich Streulicht werde ich berücksichtigen).
Vorausgesetzt der rote Bereich Drehscheibe reflektiert schlechter als silberne Bereich, sollte bei Änderung der reflektierten IR-Lichtmenge auf Basis der 1,4 V ein besserer Spannungshub zu messsen sein als wenn der Transsitor schon runter auf 0,2V ist.

Ich berichte.

P.S. bei 1,4 V lässt sich die Schaltschwelle für D0 auch besser einstellen



Test am Zähler, kleine Nachtschicht (Keller quasi dunkel, kaum Fremdlicht)

Das Ausrichten ist eine Angelegenheit, die nicht ganz eindeutig ist. Auch der "dunkle" Bereich über oder unter der Scheibe lässt sich nicht sicher finden.
Mit waagerechter Ausrichtung geht es etwas leichter als mit senkrechter Ausrichtung.

Mit 1k Widerstand liegt A0 bei 2,70V (ca. 0,6 mA fießen dann durch den Fototransistor). Wenn der rote Bereich vorbei fährt geht die Spannung auf 2,74V.
Also mit 1k ein deltaU von 40 mV, hervorgerufen durch eine Stromänderung des Fototransistors  von 0,04 mA .

Mit 2,2k liegt die Spannung bei 2,20V (0,5 mA) und ändert sich auf 2,34V. Noch eindeutiger  ;)
Also ein deltaU von 140 mV durch eine Stromänderung von 0,63 mA.

Immerhin viel eindeutiger als ohne die Modifikation - da lag der Unterschied so bei 0,162V auf 0,165V - quasi im Bereich in dem es sowieso schwankt.

So lässt sich am Poti im Mittelbereich auch ganz gut die Schwelle für den Komparator einstellen. Ob ein Schmitt-Trigger (oder Hysterese) nötig ist muss man nochmal separat schauen.

Die Berichte, dass es bei dem Einen besser klappt und beim Anderen schlechter sind vermutlich in Abhängigkeit vom Typ der Lichtschranke, Exemplarstreuung und Gegebenheiten am Zähler durchaus "zufällig".
Siehe mein Exemplar, dass von vornherein beim gegebenen Abstand Drehscheibe zur Frontscheibe (& Ausführung der Drehscheibe) voll durchsteuert.

Soweit graue Theorie - noch ist kein Counter angeschlossen ::)
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 29 Juli 2022, 17:43:13
So hab an einen "Arducouter" FHEM-Modul und ESP32-SW mit der TCRT5000 Reflexionslichtschranke verbunden.
Aufkleben und ausrichten ist etwas tricky. Leider ist der Spannunghub nur 100mV.

Bin mal auf das Ergebnis nach ein paar Stunden gespannt. Man kann aber jetzt schon am Arducounter sehen (er sieht "Spikes"), dass High und Low nicht so ganz zuverlässig gezählt werden. Da wackelt der Komparator wohl ein bischen - ok hat auch keine Hysterese.

Edit 1.8:
Sieht nach gut 2 Tagen ganz anständig aus. Nicht ganz 100%ig aber der Fehler liegt in der Nachkommastelle bei 0,1-0,2 kWh.
Das heisst der Verbrauch im Tagesverlauf wird "odentlich erfasst". Sicher auch dem FHEM-Arducounter geschuldet der die zu kurzen Pulse des Komparators (ohne Hysterese) auf D0 ausfiltert.
Interessehalber werde ich nochmal mit der analogen Messung experimentieren und die Schaltung (Foto Anhang) mit dem TCRT5000 aus einer Lichtschranke mal auf eine Platine setzen.
Ist ja im Prinzip die "Reflexionslichtschranke" ohne Komparator und mit dem kleinerem Vorwiderstand vor dem Forotranssistor.
(siehe Verweis beim Arducounter https://www.kompf.de/tech/emeir.html (https://www.kompf.de/tech/emeir.html))

Edit 9.8:
mit der Zeit läuft das doch stärker auseinander...
Nach nun 10 Tagen sind es 34kWh. Das ist viel :(   Der Unterschied ist sogar mehr als ich im 10-Tageschnitt brauchen dürfte  :-\     ...hmmm

> Doch kein Wunder seit 5 Tagen ist der ESP disconnected. Die FritzBox hat ihm ne neue IP geggeben. Das läßt sich ja beheben  :D

Edit 26.8:
Schon wieder seit ein paar Tagen ein Disconnect. Jetzt hat die Namensauflösung der FritzBox nicht mehr funktioniert. Feste IP und fertig  :P

Edit 10.11:
Läuft. Aber zählt zuviel. Abweichung +20% bis +30%
Titel: Antw:Optimierung TCRT5000 Reflexionslichtschranke für Stromzähler o.ä.
Beitrag von: RalfRog am 01 August 2022, 18:35:19
Zitat von: presskopf am 02 Dezember 2020, 21:17:28
.....
Dann bin ich auf einen TCRT-Line-Tracker gestoßen. 4 EUR als Experiment wurden mal in die Neugierde investiert.
Im Anhang noch ein Bild vom Probanden.

Jedenfalls habe ich die beiden Dioden parallel vor den Ferraris montiert, mit einem entsprechenden Winkel, der mir eine vernünftige Detektion bescheinigte.
Komischerweise, gibt es an diesem Teil nix einzustellen. Aber however: Bis jetzt (einige Tage) läuft die Möhre einwandfrei
Vielleicht hilft es noch jemandem bei der Sensorauswahl.

....

Den habe ich von Gisbert auch bekommen und hatte kein Glück damit.
Der analoge Teil ist im Prinzip analog zur "TCRT5000 Reflexionslichtschranke". Die Spannung des "theoretischen A0" wird hier auf einen invertierenden Schmitt-Trigger (74HC14) mit Hysterese von ca. 0,8V (bei 3,3V Betriebsspannung) geführt. Da ist leider nichts einstellbar. Das heisst wenn die Verhältnisse am eigenen Zähler nicht passen geht es gar nicht - da funktioniert es eher mit dem am Komparator einstellbaren Teil.

Mein Fazit mit den Lichtschranken und Linetrackern ist:
Im Prinzip sind sie für den benannten Zweck gebaut.
Ob und wie gut das am Zähler klappt, ist stark davon abhängig wie die Gegebenheiten bei einem tatsächlich sind.
Am meisten Erfolg verspricht aus meiner Sicht bei einer "TCRT5000 Reflexionslichtschranke" mit vier PINs den analogen Ausgang zu messen und wenn nötig mit Veränderung des Vorwiderstandes in einen Bereich von 1V bis 2,8V zu justieren. Dann kann man am Komparator über das Poti auch passabel die Referenzspannung einstellen. Gggfs. helfen die Tipps noch um dem Teil eine kleine Hysterese beizubringen (das habe ich nicht probiert).

Datenblätter TCRT5000 angehängt, TCRT5000_Datenblatt.pdf enthält einige Beispielapplikationen mit den entsprechenden Vorwiderständen.