[Home]
[SpannungsVersorgung]
[Labornetzteile]
[ESP32]
[SchrittmotorTechnik]
[TemperaturSensoren]
[Delay oder Millis() ?]
[I2C - Bus]
[Eigenbau Geräte]
[Multiprocessing  32Bit]
[Schalten & Regeln]
[Temp. od. Licht Kontr.]
[D>A Convert 0-10 V]
[Die Uhr DS3231]
[Sensor Schield]
[Töne ausgeben]
[Ultraschall -Sensoren]
[LCD Display]
[SMS über GSM]
[Fehler- & Störungssuche]
[Voltmeter]
[Lüfter-Steuerung]
[Raumluft CO2]
[Frästisch]
[Akkubox für 5 Volt]
[Controllino]
[Siemens Logo 8]
[Arduino FAN´s]
[Woran ich  Arbeite]
[Alte Technik]
[Kontakt]

 

Zum Technik Forum

Banner_2021

Über das Thema Fehler & Störungssuche bin ich auf dieses Thema gekommen.
Gleichspannungen messen.

Es ist in meinen Augen einfach nur Schwachsinn, dass man z.B. an einem PWM Ausgang mit einem Messgerät nicht die tatsächliche Maximale Ausgangsspannung messen kann. Ja natürlich, man kann sie messen, aber dazu braucht man einen Oszillographen. PWM heißt PulsWeitenModuliert, und ist nichts weiter, als gepulste Gleichspannung. Meistens nur so um die 1000Hz Rechteck Spannung, mit veränderlicher Pulsweite. Ich möchte jetzt versuchen, mit dem Arduino ein Messgerät zu bauen, das diese Maximale Spannungshöhe darstellen kann, denn es ist ja unmöglich, dass man mit einem normalen Messgerät nur DC Spannungen in maximaler Höhe messen kann, wenn es ein sauberer DC-Verlauf ohne Unterbrechungen ist. In dem Moment, wo die Spannung gepulst ist, sagt das blöde Messgerät, das ist eine Wechselspannung und liefert den Wert einer Durchschnitts-Spannung. Also wenn es 5 Volt DC sind, sind es plötzlich nur noch 2,5 Volt DC. Mit so einem Schwachsinns Messergebnis kann man nur verlieren. Nehmen wir an es ist eine PWM Spannung von 10 Volt, das Messgerät macht daraus 5 Volt, ich hänge diese vermeintlichen “5Volt” zur Weiterverarbeitung auf den Eingang eines Arduinos, der ja diese “5Volt” verträgt und schon reicht der Arduino seinen Abschied ein, und ich weiß nicht warum, weil ich immer noch glauben darf, alles richtig gemacht zu haben. Der Fehler war einfach nur ein Messgerät zu verwenden das nichts kann. Deshalb mache ich jetzt hier erste Versuche mit dem Selbstbau eines Messgerätes, das kaum was kostet, aber beim Thema DC Puls-Messung mehr kann als so manches 100,- Euro Teil, das man bei dieser Aufgabenstellung besser nur zum Fliegen erschlagen verwendet. Da kann es wenigstens keinen Schaden anrichten, außer ein paar unschöne Flecken an der Wand.

Ich habe jetzt hier unten mal eine erste Schaltung meines Voltmeters, das aber mit Sicherheit noch um einiges erweitert wird. Ich muss mich aber auch erst mal rantasten, um über den Weg, “gute und schlechte Ergebnisse”, zu lernen wie es geht. Also diesen Schaltplan bitte mal nicht zu ernst nehmen, es ist nur ein Anfang, ich konnte das noch nicht mal mit Hardware aufbauen und Testen, weil mir noch das dafür bestellte Material für die Referenzspannung und für den Mess-Spannungsteiler fehlt. In ein paar Tagen wird es eintreffen und die Arbeit daran kann dann beginnen.

Hier habe ich das derzeit dafür erstellte Programm für den Messteiler 30k zu 10k also für etwas mehr als 16 Volt

Arduino Messgerät bis 16 Volt4
Arduino UNO Messgerät bis 16 Volt_klein

Ich habe inzwischen mehr Test´s gemacht und die Software ein wenig erweitert. In 1-2 Tagen bekomme ich nochmal bessere 0,1% Zehnerdioden für Referenzspannung und bessere 0,1% Widerstände für den Spannungsteiler. Ich möchte den auch noch erweitern auf 11 zu 1. Das heißt, auf einen Messbereich von 45 Volt. Wie ich das dann mit der Bereichs-Umschaltung handhabe, ist noch nicht ganz klar. Jedenfalls wird es wohl zwei Bereiche geben. Bis 16 Volt und bis 45 Volt. Die Anzeige hat sich inzwischen auf die gleichzeitige Anzeige von Spannung Max, Min und Durchschnitt geändert. Ich trage mich noch mit dem Gedanken, auch noch zu prüfen ob es eine gepulste Spannung ist, und wenn das so ist, auch noch die Frequenz bis etwa 20.000 Hz anzuzeigen. Aber das kommt, wenn überhaupt, später.
Wichtig für die exakte Spannungsmessung ist die Spannung, die man am Referenzeingang des Arduino anlegt. In meinem Fall sind das 4,096 Volt. Diese Spannung wird aus den 5 Volt gemacht, indem man eine sehr genaue Zehnerdiode einsetzt. Hier ist es eine LM4040A Das A am Ende steht für die Genauigkeit. Dazu gehört auch dieser Widerstand von 560 Ohm. So kommt am AREF Pin. eine Spannung von 4,096 Volt zustande. Die Analogeingänge können somit nur noch bis zu dieser Spannung messen und der Arduino gibt bei dieser Spannung den Wert 1023 aus. Um diese Spannung am  AREF Eingang als Referenspannung zu nutzen muss im “
void setup(void)” dieser Zeile eingefügt werden -> “ analogReference(EXTERNAL);”

 

Ich habe jetzt hier mal drei Bilder eingefügt. Das erste zeigt den Wert, wie es der Oszillograph darstellt, was natürlich das genialste ist. Da sieht man die wirklich Spannungshöhe, ob es Gleichsp., Wechselsp., Rechteck, Sinus, Sägezahn ist, und die echte Höhe der Spannung. 4,64 Volt.

OK, ganz klar, ein Oszi sollte zur Ausstattung gehören, wenn man auf dem Gebiet viel arbeiten will, muss.

messung_rechteck_1000Hz_DC_Oszi

Aber, wenn man nur manchmal ein bisschen auf dem Sektor arbeitet, und sich so einen Oszi nicht unbedingt leisten möchte, kann, dann ist das Gerät zum Spannungsmessen mit den Arduino selbstgebaut eine alternative.

Ausserdem dachte ich auch, dass man mit dem kleinen Projekt wieder ein bischen was über den Umgang mit dem Arduino lernt. Das ist ja auch kein Fehler, wenn man den Teil damit besser kennen lernt.

Man sieht hier die Max Spannung, also die Spannung die an dem Anschluss wirklich anliegt, und die Min Spannung, die bei gepulster Gleichsp., also bei einem Rechteck Signal in der regel Null Volt beträgt.

Wenn der Min Wert nicht auf Null ist, ist das eine Besonderheit, auf die ich noch eingehen werde.

Hier ist der Normale Messwert, den man mit einem Multi-Messgerät an dieser Spannungsquelle sieht. Das kann also ganz schön in die Irre führen. Und das ist der Grund, für das Voltmeter mit dem Arduino. Der zeigt ja, wie man oben sieht, auch diesen Wert 2,32 Volt an. Der ist für diesen Fall unbedeutend, denn wenn man sich auf diese Messung mit dem Multizet verlässt, ist man verlassen. Denn dann sieht man ja den echte Max Wert nicht, der am Anschluss herrscht.

Wenn man sich jetzt überlegt, dass die echte Max Spannung nicht 5 Volt ist, sondern z.B. 10 Volt, dann hat man mit diesem Messgerät ein großes Problem. Man bekommt nur 5 Volt angezeigt, und glaubt dadurch mit dieser Spannung direkt an einen Pin des Arduinos gehen zu können. Was das sicher Ende des Arduinos ist. Mehr zu dem Thema gibt es auch im Forum. Dort kann man sich gerne anmelden und dann dort fragen zum Thema stellen.

messung_rechteck_1000Hz_DC_Arduino
messung_rechteck_1000Hz_DC_Messgeraet

Sooooo, ich habe jetzt dieses Messgerät weiterentwickelt. Ich wollte einen zweiten Messeingang für eine etwas höhere Spannung. Also habe ich für diese höhere Spannung einen zweiten Spannungsteiler eingebaut, der anstelle von 10KOhm + 30KOhm für 16,39 Volt, jetzt auch noch mit 10KOhm + 100KOhm bestückt ist. Es ergibt sich daraus eine Eingangsspannung von 4,096 Volt x 11. Das sind dann also 45,06 Volt. Ich habe mich für einen extra analogen Eingang für diesen Teiler entschieden. Und in der Software habe ich einen Erkennung eingebaut, die automatisch erkennt, auf welchem der beiden Eingänge A0 oder A1 Spannung anliegt. Dieser Eingang bleibt dann solange der aktive Eingang, bis am anderen Eingang Spannung anliegt. Man darf aber nur auf einem Eingang Spannung anlegen. Die Mess-Software kann nur immer eine Messung ausführen. Hier kommt mal die neue Schaltung. Die Spannung wird erst ab 0,5 Volt erkannt!

Arduino UNO Messgerät 16 + 45 Volt1

Ich habe folgende Anzeigen am Display:
Zeile eins: Die maximale Spannung.
Zeile zwei: Die minnimale Spannung.
Zeile drei: Die Spannung, die ein "normales Geräte" anzeigen würde.
Zeile vier: Der Messeingang der im Moment bedient wird.

Die Anzeige in Zeile zwei, zeigt bei einfach Gleichspannung den  Minimalen Messwert an, der da meist nur ein paar Millivolt niedriger  ist, als die Maxspannung in Zeile eins. Bei gepulster Spannung zeigt die Zeile zwei die Spannung an, die unten am Rechteck herrscht. In der  Regel 0 Volt. Kann aber auch mehr sein. Es gibt ja auch Rechteck,  Sägezahn, Sinus, bei denen die Unterkannte nicht auf der Nullinie verläuft.

Hier noch das Programm dafür.

Hier sieht man die Anzeige einer Rechteckspannung, also gepulste Gleichspannung. Der Maximal Wert zeigt die echte anliegende Spannung 5,18 Volt an. Der Minimal Wert ist in dem Fall 0,00 Volt an, weil die Rechteck Spannung auf  der Nulllinie beginnt. Es könnte auch sein, dass die unterste Linie des Rechteck Signales nicht auf Null beginnt, sondern höher, dann wird das hier als Mindest Wert angezeigt. Der “Normalwert” ist unwichtig, der zeigt nur, was ein Normales Messgerät anzeigen würde. In der vierten Zeile wird der automatisch ausgewählte Messeingang angezeigt. Indem man von Außen den Eingang bis 16 Volt benutzt und das Messgerät eine Spannung auf diesem Eingang automatisch erkennt.

In diesem Beispiel habe ich ein reines Gleichspannungs-Signal  gemessen. Da diese reine Gleichspannung keine Unterbrechungen aufweist, ist der Maximal - Wert eben diese Spannung, der Minimal Wert der kleinste Anteil in dieser Spannung, und der “Normalwert” zeigt wieder an, was ein normales Messgerät anzeigen würde. Was völlig bedeutungslos ist. Die vierte Zeile ist wieder der von der Software automatisch ausgewählte Messeingang. Dieser wird dadurch ausgewählt, dass auf diesem Eingang eine Spannung größer 0,5 Volt anliegt. Eine kleinere Spannung kann man daher mit diesem Gerät nicht messen.

DSC01190
DSC01191

Hier habe ich noch eine Testmessung, mit einem Rechteck Signal dessen Untere Linie nicht auf Null ist. Dadurch hat das Max Signal das eigentlich nur 5 Volt hoch ist, fast 6,2 Volt. Die “Null-Linie” dieses Signales beginnt bei 1,06 Volt. Zu den 5,12 Volt von Sinus sind das dann 6,18 Volt. ein normales Messgerät würde den Durchschnitt des Sinus Signales anzeigen, also 6,18 Volt geteilt durch 2 ist 3,09 Volt.

Hier im Bild unten hatte ich noch einen kleinen Fehler im Programm. Deshalb zeigt das Display im Bild 2,56 Volt anstelle von 3,09 Volt. Ich lege keinen großen Wert auf diese “Normalmessung” weil sie ja nichts bringt, außer Irritationen. Aber er sollte natürlich in etwa passen.

RecheckSignal über Null Oszi
RechteckSignal über Null Arduino

Soooo, ich habe das Gerät fertiggestellt, habe ihm noch ein Relais spendiert und eine Software Erweiterung. Das Gerät geht nach dem Einschalten erstmal auf den großen Eingang 45 Volt. Der liegt immer dann an, wenn das Relais nicht aktiv ist. Also der Kontakt in Ruhestellung ist. Dann wird gemessen welche Spannung anliegt. Ist diese Spannung größer 10 Volt, dann bleibt es auf dem großen  Messbereich bis 45 Volt. Ist die Spannung kleiner 10 Volt, wird das Relais betätigt, so dass der Messeingang bis 16 Volt ausgewählt wird. Ist man auf bis 16 Volt und erhöht die Spannung auf über 13 Volt, wird wieder Automatisch der 45 Volt Eingang gewählt.

Wenn man das Gerät ohne dieses Relais montiert, kann man den selben Code benutzen, man muss dann aber zwei Messeingänge nach außen führen und immer beim Anstecken den entsprechenden Messbereich auswählen. Wer Fragen hat, stellt diese am besten im Forum.

Messgerae_45_Volt_fertig
Messgerae_45_Volt_fertig2
Arduino UNO Messgerät 16 + 45 Volt mit Relais

Arduino, Uno, Mega, RC3231, Schrittmotor, Treiber, RFID, DC, RC, 5 Volt, 3,3 Volt, PWM, Pin, Analog Pin, https://www.nof-schule.de/forum/