Ich lese mit meinem arduino mega die Daten vom victron energy Bmv700 ein und möchte den Ladezustand in % an eine Steuerung mit einem 0-10V signal senden.
Das einlesen der Daten am Arduino funktioniert. Den Ladezustand (im Code VE_soc) möchte ich am Pin 13 980Hz als Pwm Signal an einen Pwm/0-10V Wandler senden und mit meiner Comexio Steuerung einlesen.
Verwendeter Wandler:
1-3KHZ 0-10V PWM Digital Analog Wandler Modul, PWM zu Spannung Converter Modul https://amzn.eu/d/6VTTO19
Kalibriert habe ich den Wandler laut Beschreibung. Tastverhältnis 50% und auf 5,4 V einstellen (hab auch schon 5V versucht).
Das Senden sowie das Signal umwandlen funktioniert soweit. Doch alle werte unter 90% weichen vom echten Wert der Anzeige ab (10%).
An was kann es liegen?
Liegt es an der Frequenz?
Liegt es am delay?
Liegt es am verwendeten Datentyp des Ladezustandes?
Ich sehe in deinen Links nirgend wo die Wandlung Analog zu PWM, jede Wandlung ist behaftet mit Fehlern, Verlust, gerade mit günstigen Teilen, glaube nicht das es klappt unter 10% Genauigkeit.
Vielleicht kommt der Comexio mit Hex zu recht dann braucht man keine Wandlung.
Leider hat die Steuerung nur Analog Eingänge mit 0-10V.
Einen einfachen Prozentwert von 0-100 muss doch über Pwm /0-10V wandlen gehn ohne großartigen Verluste oder nicht?
ISt hier nicht kleiner Denkfehler?
AnalogWrite erzeugt ein PWM Signal 0 bis 255, mit % ist der Wert aber 0 bis 100.
Versuch mall die % map'en dadurch wird der wert nicht so 'Schmal'
signal = map(VE_soc, 1,100,1,255);
AnalogWrite(13,signal);
Kann sein das der Compiler meckert wegen VE_soc wen ja, dann die Variablere umbenennen . Mache Schluss für Heute, viel Erfolg
Was ich nicht so ganz verstehe ist, dass das verlinkte Modul für ein Signal zwischen 1kHz und 3kHz ausgelegt ist, es aber mit 13,980kHz angesteuert werden soll. Da passt doch etwas nicht.
Gibt es ein link dazu? Ich habe nur gefunden dass das min 12V VCC braucht, habe kein Eingang für externe Frequenz gesehen, oder soll das PWM Signal die 19 KHz haben?
Danke für den Vorschlag, ich werde es mal versuchen.
Ja das Modul ist für 1-3kHz ausgelegt (steht zumindestens in dieser Amazon Chinesisch-Englischen Beschreibung. Sind diese 20 Hz Unterschied das Problem? Mann kann doch die Frequenz des Pwm Signals auch ändern, falls es noteendig ist.
Das Wandler Modul habe ich mit 24VDC versorgt.
Was ich nicht verstehe, ist warum den SOC Wert wandeln, der wird doch von analog in % umgerechnet im Victron, also ist schon fehlerhaft, ist nicht besser den Analogen Wert benutzen?. Einziger Problem könnte sein die GND verbindung zw den Gerätschaften wen der Victron intern mit Plus als GND arbeitet, was so manche Regler machen.
Also ich lese sämtliche Daten vom victron BMV700 (Ladeanzeige) über die serielle Schnittstelle ein (serial3 am Board). Diesen Wert habe ich Analog am Arduino . Das Problem is nun, dass ich diesen Wert in die neben verbaute Steuerung bringen muss. Deshalb der PWM / 0-10V Wandler. Die Steuerung (Comexio I/O Server) hat nur einen 0-10v analog Eingang. Ansonsten keine Chance dieses serielle Uart Signal vom victron einzulesen. Hoffe ich uabs verständlich erklärt.