Hab mir für den 24V akku ein Kiprim DC310S gekauft, das ist ein umgelabeltes OWON. Das lässt sich vom PC über usb fernsteuern. SCPI protokoll, 115200 baud, CR am ende nicht vergessen und das läuft.
Drin ist ein usb-seriell wandler und dann ein opto-potentialtrenner, feine sache. Um das mit einem arduino zu steuern müsste man RX und TX, 5V und gnd zwischen opto und usb-chip anzapfen. Leider kein stecker eingebaut. Die TX leitung müsste man auftrennen?
Ist das eine gute idee die ladesteuerung über das DC310S zu machen? Man kann volt und amp setzen, messen und ein-ausschalten. Sicher, 10A sind mager, aber dafür ist es billig !
Interessant, was man heute schon für 99 Euro bekommt. Hast du das Teil mal aufgeschraubt und geschaut, ob das halbwegs ordentlich aufgebaut ist?
Ich hatte vor 30 Jahren mal ein Billignetzteil aus China gekauft, dass sah wirklich übel innen aus. Habs gleich wieder zurückgeschickt und mir ein gebrauchtes Markengerät über Ebay gekauft.
Ja habs aufgemacht und das sieht ordentlich aus. Negativ ist dass bei maximallast der lüfter sehr laut wird.
Soft dazu ist der hammer, da kann man 10sek 23V 10A und dann 30sek 5V 2A und dann 1V 10A programieren und der fährt das dann ab. Das display ist eigentlich ein kleiner langsamer KO mit V und A angezeigt. Und eine memorybank für einstellungen.
Das netzteil hat innen einen usb-seriell wandler und einen potentialtrenner opto drin. Das kleine platinchen hinten drin. Dort kannst du einen esp32 direkt (über potentialtrennung falls noch anderswo verbunden) anschliessen. Das klappt bestens. Das protokoll ist öffentlich.
// ESP32S2 usb cdc on boot on, usb dfu on boot off, upload mode internal usb.
const int RXD1=11, TXD1=12;
const int LED = 15;
// netzteil protokoll, Kiprim/Owon 30V 10A, 80 eur.
// id = #*idn?
// reset = *rst
// getvolt = MEAS:VOLT?
// getcurrent = MEAS:CURR?
// getpower = MEAS:POW?
// on/off = OUTP ON or OUTP OFF
// set current = CURR 1.3 (in A)
// set voltage = VOLT 10.2 (in V)
void setup()
{
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
Serial.begin(115200);
Serial1.begin(115200, SERIAL_8N1, RXD1, TXD1);
Serial1.println("*idn?");
delay(200);
Serial.println(Serial1.readString());
}
void loop()
{
Serial1.println("MEAS:VOLT?");
delay(100);
Serial.println(Serial1.readString());
delay(3000);
digitalWrite(LED, !digitalRead(LED));
}