Elektrolyse Zelle mit BTS7960

Hallo,

da ich gerne meine eigene Elektrolyse Zelle für den Pool bauen möchte bin ich auf die Idee gekommen,
nim doch einfach den BTS7960. Der hat die nötige Leistungsreserve bei einer 24V 7A Zelle.
Da diese aber in regelmäßigen Abständen eine Poolumschaltung haben muss ist doch das teil Optimal dafür.

Nun habe ich erst einmal angefangen das ganze zu testen im Kleinformat.

(Hardware)
Arduino Leonardo ETH.
BTS7960
12V Netzteil
kleinen 12V DC Motor

das ganze habe ich erstmal hiermit getestet

#define RPWM 3 // define pin 3 for RPWM pin (output)
#define R_EN 4 // define pin 2 for R_EN pin (input)
#define R_IS A0 // define pin 5 for R_IS pin (output)

#define LPWM 6 // define pin 6 for LPWM pin (output)
#define L_EN 7 // define pin 7 for L_EN pin (input)
#define L_IS A1 // define pin 8 for L_IS pin (output)
#define CW 1 //do not change
#define CCW 0 //do not change
#define debug 1 //change to 0 to hide serial monitor debugging information or set to 1 to view

#include <RobojaxBTS7960.h>
RobojaxBTS7960 motor(R_EN,RPWM,R_IS, L_EN,LPWM,L_IS,debug);

void setup() {
  // BTS7960 Motor Control Code by Robojax.com 20190622
  Serial.begin(9600);// setup Serial Monitor to display information

   motor.begin();
   
    // BTS7960 Motor Control Code by Robojax.com 20190622 
}

void loop() {
  // slowly speed up the motor from 0 to 100% speed
    for(int i=0; i<=100; i++){ 
        motor.rotate(i,CCW);
          float current = analogRead(R_IS);               // Raw A0 analog reading
          float voltageRead = current * (5.0/1024.0/100); // Convert to voltage reading
          Serial.println(voltageRead/0.075);                 // Current Factor: 0.075V per Amp
        delay(50);
    } 
  
   // slow down the motor from 100% to 0 with 
    for(int i=100; i>0; i--){ 
        motor.rotate(i,CCW);
          float current = analogRead(R_IS);               // Raw A0 analog reading
          float voltageRead = current * (5.0/1024.0/100); // Convert to voltage reading
          Serial.println(voltageRead/0.075);                 // Current Factor: 0.075V per Amp
        delay(100);
    } 
    motor.stop();// stop motor
    delay(100); // stop for 3 seconds    

   for(int i=0; i<=100; i++){ 
        motor.rotate(i,CW);
          float current = analogRead(R_IS);               // Raw A0 analog reading
          float voltageRead = current * (5.0/1024.0/100); // Convert to voltage reading
          Serial.println(voltageRead/0.075);                 // Current Factor: 0.075V per Amp
        delay(50);
    } 
  
   // slow down the motor from 100% to 0 with 
    for(int i=100; i>0; i--){ 
        motor.rotate(i,CW);
          float current = analogRead(R_IS);               // Raw A0 analog reading
          float voltageRead = current * (5.0/1024.0/100); // Convert to voltage reading
          Serial.println(voltageRead/0.075);                 // Current Factor: 0.075V per Amp
        delay(100);
    } 
    motor.stop();// stop motor
    delay(1000); // stop for 3 seconds        

}

Mein Bestreben ist, das ich dem PWM Signal einen wert der Redox Messung gebe und dieser die Zelle regeln soll. Desweiteren soll über den Stromsensor in einer Scala von 0-100% (ist aber kein Bestanteil des Arduino) angezeigt werden mit welcher Leistung die Zelle Arbeitet. Aber genau da ist das Problem.
Der Stromsensor/Ausgang zeigt mit egal ob mit 0 oder 100% Leistung immer den selben Wert.
Nun weiss ich aber nicht ob das so überhaupt geht oder ich doch eher das PWM Signal abfragen soll mit wieviel % es dann die Zelle regelt.
So wie es jetzt gerade ist läuft der Motor von 0-100 und wieder zurück dann die andere Richtung. aber der wert liegt immer bei 0,25.

PWM ist ein Rechtecksignal mit veränderbaren Ein-Aus Verhältnis. Das ist kein Gleichspannungssignal.

Eine Strommessung eines PWM Signals wirt immer 0 oder 100% des Stroms anzeigen.

Mein Bestreben ist, das ich dem PWM Signal einen wert der Redox Messung gebe und dieser die Zelle regeln soll. Desweiteren soll über den Stromsensor in einer Scala von 0-100% (ist aber kein Bestanteil des Arduino) angezeigt werden mit welcher Leistung die Zelle Arbeitet. Aber genau da ist das Problem.
Der Stromsensor/Ausgang zeigt mit egal ob mit 0 oder 100% Leistung immer den selben Wert.
Nun weiss ich aber nicht ob das so überhaupt geht oder ich doch eher das PWM Signal abfragen soll mit wieviel % es dann die Zelle regelt.
So wie es jetzt gerade ist läuft der Motor von 0-100 und wieder zurück dann die andere Richtung. aber der wert liegt immer bei 0,25.

Was hast Du nun?
Einen Motor oder einem Elektrolysezelle?
Bitte erlähr den Aufbau und die Aufgabenstellung so daß man versteht was Du machen willst und was der Aufbau macht.
Einen Schaltplan und einen Link zum verwendeten Modul wären auch äußerst hilfrieich.

Grüße Uwe

Hallo Uwe,

Nein die Zelle habe ich noch nicht.
Zum Testen ob das überhaupt geht den Stromwert auzulesen habe ich nur einen Motor angeschlossen. Aber dieser liefert eben keine Plausible werte

Weil wenn ich diesen IS Pin nicht verwenden kann, brauch ich auch nicht über die Zelle Nachdenken und muss ein anderen weg gehen.

Ein Motor hat ganz eine ganz andere U-I Kennlinie als eine Elektrolysezelle und auch ein Widerstand hat eine andere Kennlinie als die beiden letztgenannten.

Außerdem ist eine PWM- Ansteuerung ein dauernder Ein-Ausschalten des Verbrauchers. Darum ist der Strom auch nicht dauerhaft sondern pulst mit der Spannung. Das Pulsen ist auch noch anders wenn der Verbraucher ein Widerstand, ein Motor oder eine Elektrolysezelle ist.

Die Stronmessung muß während der Ein-Zeit des PWM Signals erfolgen und mit dem Tastverhältnis auf einen vergleichbaren Gleichstrom umgerechnet werden.

Grüße Uwe