Induktiver Positionssensor - Fragen dazu

#7645818
Lesenswert?

Andreas S. schrieb:

1
Der Sketch verwendet 12674 Bytes (41%) des Programmspeicherplatzes. Das
2
>> Maximum sind 30720 Bytes.
3
>> Globale Variablen verwenden 1669 Bytes (81%) des dynamischen Speichers,
4
>> 379 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
5
>>

Nur keine Sorge - das ist die Grafik-Lib, die so viel Appetit auf Deinen Flash und Dein RAM hat.

Oh doch Sorge, der dynamische Bereich ist eher geschätzt denn real und hat mich heftig gekniffen. Spannungsmessung läuft, OLED spielt. Dann SD-Karte dazu (erprobtes Programm) und der Kram stürzte ab, obwohl die A*-IDE noch immer eine erträgliche Auslastung zeigte.

Ich habe stundenlang verschiedene Dinge auskommentiert, im Endeffekt war es so, dass der dynamische Speicher crasht. OLED am Nano oder Uno fasse ich so bald nicht wieder an, wenn es mehr als ein simples Thermometer werden soll.

Andreas S. schrieb:

Davon würde ich Dir dringend abraten, sonst verzetteln wir uns hier.

Hatten wir das nicht schon?

Ich würde immer nur eine Funktionalität in den Nano einbauen (z.B. nur Strommessen oder nur Oszillatorfrequenz messen) und erst am Ende den gesamten Code aller einzelnen Funktionalitäten in einem Code zusammenführen.

Genau so! Ich war so mutig und habe ein Komplettgebilde geschrieben, beim Start funktionierte so ziemlich nichts. Also Rolle rückwärts, erste Funktion lauffähig, dann die nächste dazu gepackt und so weiter.

Erfahrene Programmierer mögen das anders sehen, ich bin dafür nicht erfahren genug und muß stückweise arbeiten.

OP #7645843
Lesenswert?

Manfred P. schrieb:

Genau so! Ich war so mutig und habe ein Komplettgebilde geschrieben, beim Start funktionierte so ziemlich nichts. Also Rolle rückwärts, erste Funktion lauffähig, dann die nächste dazu gepackt und so weiter.

Ich schrieb ja schon, dann kommt ein zweites Board hinzu. So ein Mini Pro kaufe ich schon mal für knapp über einen Euro. Das macht den Kohl nicht mehr fett. Dann kommt die ganze Ausgabe und der Sensor auf einen eigenen Controller. Ist auch billiger als einen größeren zu nehmen.

#7645855
Lesenswert?

Ich habe inzwischen die Pulsmessung "pulseIn()" aus den Arduino-Bibibliotheken durch eine eigene Pulsmessung ersetzt. Dadurch beträgt die Auflösung jetzt nicht mehr 1us, sondern 1/16us.

So konnte ich die Bestimmung der Riegel-Position um einen Faktor von mehr als 10 steigern. Jetzt kann man vermutlich sogar millimetergenau die Riegel-Position bestimmen - jedenfalls fühlt es sich so an, wenn ich meinen Ferrit-Kern in die Spule hineinschiebe bzw. herausziehe.

Leider fallen jetzt auch andere Effekte auf, die vorher verborgen waren: der Oszillatorpuls variiert um bis zu 3%. Ob das an meinem "windigen" Aufbau liegt, oder prinzipbedingt ist, weiß ich nicht. Für Deine Anwendung, Frank O., ist das natürlich irrelevant, aber für andere Anwendungen wäre das schon etwas ärgerlich.

Habe aktuell noch keine Idee, woran das liegen könnte - die Tage werde ich den Oszillator einmal aus einer separaten Batteriespannung betreiben - evtl. wird's dann ja besser / stabiler.

Viele Grüße

Igel1

OP #7645858
Lesenswert?

Moin Andreas! Man muss auch immer die Ausgangslage betrachten. Wenn du die Anforderungen an die Genauigkeit hoch schraubst, dann wirst du auch einen anderen Schwingkreis bauen müssen. Vielleicht einfach einen Komparator am Ausgang davor schalten? Würde ich jetzt als einfachsten Versuch so machen. Oder einfach die Zeit um die Hälfte verlängern? Koppelkondensator?

OP #7646276
Lesenswert?

Andreas S. schrieb:

Meine "Hochauflösung" ist, zugegeben, nur "Schmuck am Nachthemd"

Vielleicht nicht!

Ich habe heute den Bremsmagneten mit nach Hause geschleppt. Nebenbei bemerkt, an meinem neuen Labornetzteil, mit 60V/5A zuckt der nicht einmal.

Jedenfalls hat der einen Weg von ~6,5mm. Angeblich soll der einen Millimeter im Sensor stecken. Das muss aber mehr sein. Ich kann mich erinnern, dass der Sensor deutlich tiefer im Gehäuse saß und nicht wirklich viel Abstand zum Bremsmagneten war. Der Hub ist aber eindeutig messbar und man kann es auch auf dem Diagramm, im Bild des Eingangsposts sehen.

#7646316
Lesenswert?

Okay, dann gibt's hier schon mal meinen "Quick-and-Dirty-Alpha-Pre-Version"-Code.

Der Code ist noch nicht wieder in die ursprüngliche Version mit dem Fortschrittsbalken eingebaut. Hier ging es mir erst einmal darum, die Pulslänge, so genau wie mit einem Nano möglich, zu vermessen.

Ich nutze hier also nicht die pulseIn() Funktion der Arduino-Libs, sondern eine eigene ISR-Routine, welche die Hardware Input Capture Möglichkeiten vom Timer1 des Atmega328p voll ausschöpft.

(Disclaimer: "eigene ISR-Routine" ist hier ziemlich "relativ" - Falk und andere haben mir in dem weiter oben zitierten Thread massiv unter die Arme gegriffen, um diese Routine in die Gänge zu bringen.)

Zusätzlich mittle ich die Pulslängenmessungen über 80 Pulse - das bringt viel mehr Ruhe in das Ergebnis als es bei nur einer Pulsmessung der Fall wäre.

Den gesamten Code findest Du im Anhang - inklusive Doku zum Anschluss meines SPI-basierten, SSD1309-controllergesteuerten Display sowie zum Anschluss des Oszillators.

Viele Grüße

Igel1

PS: Code ohne Doku:

1
#include <Arduino.h>
2
#include <U8g2lib.h>
3
#include <SPI.h>
4
#include <Wire.h>
5
#include <avr/io.h>
6
#include <util/delay.h>
7
#include <util/atomic.h>
8
#include <avr/interrupt.h>
9

10
// Set pinout
11
int pin = 8;                 // pin for puls input from oscillator
12
int pout = 3;                // pin for PWM output (just a reference-signal for testing) - must be a "pwm-capeable" pin.
13

14
// Constructor - for OLED display library - see u8g2 documentation
15
U8G2_SSD1309_128X64_NONAME0_F_4W_HW_SPI u8g2(U8G2_R0, 10, 9, 7);
16

17
volatile uint16_t pulse_width;
18
volatile bool isFinished;
19
char buffer[32];
20
uint16_t min;
21
uint16_t max;
22
uint8_t noOfPulses = 80;            // number of pulses to use for a measurement.  Do not choose
23
                                    // to large values as sum of all pulseLength must fit in a uint16_t variable
24
                                    // i.e.:   noOfPulses x pulseLenth < 65536
25

26
void setup() {
27
  pinMode(pin, INPUT);
28
  pinMode(pout, OUTPUT);
29

30
  u8g2.begin();                // start the u8g2 library
31
  u8g2.setBitmapMode(1);
32
  u8g2.setFont(u8g2_font_helvB08_tr);
33

34
  analogWrite(pout, 6);      // just for testing: set up a 50% PWM at pout pin
35

36
  TCCR1A  = 0;
37
  TCCR1B  = (1<<ICNC1) | (1<<ICES1) | (1<<CS10);
38
  TIMSK1 |= (1<<ICIE1);
39
  
40
  min = 800;
41
  max = 200;
42
}
43

44
void loop() {
45
    
46
    uint16_t pulseLength;
47

48
    pulseLength = measurePulseLength();
49

50
    if(pulseLength > max) {
51
      max = max + (pulseLength - max) / 2 + 1;
52
    } 
53
    if(pulseLength < min) {
54
      min = min - (min - pulseLength) / 2 - 1;
55
    }
56
    u8g2.clearBuffer();
57
    u8g2.setFont(u8g2_font_helvB08_tr);
58
    sprintf(buffer, "Pulse: %u x 1/16us", pulseLength);
59
    u8g2.drawStr(15, 64, buffer);
60
    sprintf(buffer,"min: %u", min);
61
    u8g2.drawStr(0, 10, buffer);
62
    sprintf(buffer,"max: %u", max);
63
    u8g2.drawStr(80, 10, buffer);
64

65
    u8g2.sendBuffer();
66

67
    delay(100);
68
}
69

70
// function to query the pulse length ISR
71
uint16_t measurePulseLength() {
72
    uint16_t sum = 0;
73
    uint16_t pulseLength;
74

75
    for(byte i=0; i<noOfPulses; i++) {
76
      isFinished = false;
77

78
      while(!isFinished);
79

80
      ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
81
          pulseLength = pulse_width;
82
      }
83
    sum += pulseLength;
84
    }
85
    return sum/noOfPulses;
86
}
87

88
// ISR to capture time for falling/rising edge and calculate pulse length
89
ISR(TIMER1_CAPT_vect)
90
{
91
    static uint16_t tr;
92
    uint16_t tf;
93

94
    if (TCCR1B & (1<<ICES1) ) {             // rising edge
95
        tr = ICR1;                          // tr: time of rising edge
96
        TCCR1B  = (1<<ICNC1) | (1<<CS10);   // next trigger on falling edge
97
    } else {                                // falling edge
98
        tf = ICR1;                          // tf: time of falling edge
99
        TCCR1B  = (1<<ICNC1) | (1<<ICES1) | (1<<CS10);  // next trigger on rising edge
100
        pulse_width = tf-tr;                // calculate pulse_width
101
        isFinished = true;                  // flag marks end of pulse measurement
102
    }
103
    TIFR1 = (1<<ICF1);                      // just to fullfill datasheet requirement (required when edge detection is changed (rising <-> falling) )
104
}
Angehängte Dateien:
#7646441
Lesenswert?

Frank O. schrieb:

Wenn man zwei Controller nutzt, dann kann man vielleicht besser SPI fürs Display nehmen (die größeren sind SPI) und IIC für den Austausch unter den Controllern verwenden.

Das Programm von SPI auf I2C umzurüsten ist kein Ding, weil Oliver Kraus seine u8g2-Bibliothek praktisch Protokoll-neutral konstruiert hat.

Einfach den SPI-Constructor im Code aus meinem letzten Posting ...

1
// Constructor (SPI) - for OLED display library - see u8g2 documentation
2
// U8G2_SSD1309_128X64_NONAME0_F_4W_HW_SPI(rotation, cs, dc [, reset]) [full framebuffer, size = 1024 bytes]
3
U8G2_SSD1309_128X64_NONAME0_F_4W_HW_SPI u8g2(U8G2_R0, 10, 9, 7);

... ersetzen durch den korrespondierenden I2C-Constructor:

1
// Constructor (I2C) - for OLED display library - see u8g2 documentation
2
// U8G2_SSD1309_128X64_NONAME0_F_HW_I2C(rotation, [reset [, clock, data]]) [full framebuffer, size = 1024 bytes]
3
U8G2_SSD1309_128X64_NONAME0_F_HW_I2C u8g2(U8G2_R0, 7,  19, 18);
4
// Maybe this works also:
5
// U8G2_SSD1309_128X64_NONAME0_F_HW_I2C u8g2(U8G2_R0, 7);

Natürlich müssen dann die Kabel für I2C-Betrieb ebenfalls leicht umgesteckt werden. Folgende Änderungen sind m.M.n. nötig (testen kann ich es wg. fehlendem I2C-Display ja nicht - ich müsste sonst an meinem Display rumlöten, um es umzurüsten):

1
SSD1309                     Nano
2
---------------------------------
3
CS                          -
4
DC                          -
5
RES                         7
6
SDA   (serial data)         18
7
SCLK  (clock)               19
8
VDD                         +5V
9
VSS                         GND

Referenzen:

Viele Grüße

Igel1

OP #7646477
Lesenswert?

Andreas S. schrieb:

Natürlich müssen dann die Kabel für I2C-Betrieb ebenfalls leicht umgesteckt werden. Folgende Änderungen sind m.M.n. nötig (testen kann ich es wg. fehlendem I2C-Display ja nicht - ich müsste sonst an meinem Display rumlöten, um es umzurüsten):

Ja ich weiß, aber danke! Die ganzen 2.42" Displays muss man erstmal "umstricken", damit die I2C können. Derweil habe ich heute Abend noch ein wenig geschaut, wie das mit der Datenübertragung zwischen zwei µCs ist. Dabei bin ich über JSON gestolpert. Natürlich geht das auch anders relativ einfach (na ja, zumindest solange man nur zuschauen muss). Das ganze Konstrukt wächst sich hier wohl noch ziemlich aus. Nur um zwei Magnete anzusteuern. Eigentlich völlig krank. Habe gerade über zusätzlichen Speicher gelesen. Das scheint dann aber auch erstmal mit einem zusätzlichen Lernaufwand verbunden zu sein.

Ich weiß auch noch nicht wie ich eine Kurzschlussmessung machen muss. Hier wurde anfangs über die Stromanstiegszeit gesprochen. Aber ich habe noch keinen Plan wie man das umsetzt und gefunden habe ich auch noch nichts dazu. Nun könnte ich vielleicht messen, wie schnell die Spannung des gemessenen Stromes ansteigt. Der Transistortester misst sehr genau, ob bei einem Drehstrommotor eine Spule durch ist. Viel einfacher und schneller als das unser sündhaft teures Metrahit mit Coilmessung kann. Das benutze ich auch gar nicht. Habe immer noch mein altes Metrahit. Da es jetzt ruhiger wird, werde ich irgendwann ein Fahrzeug raus ziehen und einmal die Messungen am eingebauten Sensor machen, mit dem Peda-Oszillator. Jetzt habe ich erstmal den Magneten hier. Ich hoffe ich bekomme noch einen 12V-Magneten. Habe einen Kollegen in der Werkstatt angehauen, der soll mal die Augen aufhalten. Ich habe nur ein Fahrzeug mit 12V und das geht jetzt auch wieder weg.

#7646531
Lesenswert?

Frank O. schrieb:

Ja ich weiß, aber danke!

Ah - sorry, dann habe ich Eulen nach Athen getragen.

Die ganzen 2.42" Displays muss man erstmal "umstricken", damit die I2C können.

Jein - der Aliexpress-Händler, von dem ich mein Display bezogen hatte, bot beide Versionen an.

Derweil habe ich heute Abend noch ein wenig geschaut, wie das mit der Datenübertragung zwischen zwei µCs ist. Dabei bin ich über JSON gestolpert.

JSON ist einfach nur ein Daten(austausch)format, das ich eigentlich mehr aus dem Umfeld REST-Services kenne. Bevor Du Dich um Daten-Austauschformate kümmerst, müsstest Du Dich m.M.n. erst einmal um die OSI-Ebenen darunter kümmern - z.B. ob Du I2C, oder Seriell oder CAN oder, oder, oder als unterliegende Protokolle nimmst.

Natürlich geht das auch anders relativ einfach (na ja, zumindest solange man nur zuschauen muss). Das ganze Konstrukt wächst sich hier wohl noch ziemlich aus. Nur um zwei Magnete anzusteuern. Eigentlich völlig krank.

Bei allem Respekt: so interessant das mit mehreren Arduinos auch sein mag - das übersteigt ganz eindeutig das Einsteigerniveau, auf dem wir hier aktuell diskutieren. Mein Rat: verwirf die Idee bitte - sonst fliegen wir nicht nur über Berlin von Köln nach Bonn sondern über den Mond von Köln nach Bonn.

Habe gerade über zusätzlichen Speicher gelesen. Das scheint dann aber auch erstmal mit einem zusätzlichen Lernaufwand verbunden zu sein.

Ich verstehe Deine Speichersorgen nicht. Wenn der Nano "fertig" ist, so nimm doch einfach das nächstgrößere Arduino-Board - Du hast ja sogar ein Mega2560 bei Dir rumfliegen - damit sind doch alle Sorgen verflogen, oder?

Ansonsten schau Dir diese Tabelle einmal mit Blick auf Flash- und RAM-Größe an: https://de.wikipedia.org/wiki/Liste_von_Arduino-Boards

Ich weiß auch noch nicht wie ich eine Kurzschlussmessung machen muss. Hier wurde anfangs über die Stromanstiegszeit gesprochen. Aber ich habe noch keinen Plan wie man das umsetzt und gefunden habe ich auch noch nichts dazu.

Hmmm - Starkstrom ist leider nicht so mein Gebiet, da gibt es hier berufenere Leute in diesem Forum (oder in meiner Verwandschaft ...). Wenn Du genau beschreiben kannst, was Dein Ziel ist und was Du da messen musst (ich konnte es Deinen bisherigen Beschreibungen nicht entnehmen - oder alternativ - hab's schon wieder vergessen), so würde ich dazu einen separaten Thread aufmachen. Hier - nach >600 Posts - lesen ja nur noch die ganz Hartgesottenen (wie ich :-) mit.

Dann aber bitte gaaanz viel Liebe und Mühe in die Problem- und Zielbeschreibung investieren, sonst fährst Du direkt mit einem "Finger weg vom Starkstrom"-Ticket wieder nach Hause.

Nun könnte ich vielleicht messen, wie schnell die Spannung des gemessenen Stromes ansteigt. Der Transistortester misst sehr genau, ob bei einem Drehstrommotor eine Spule durch ist. Viel einfacher und schneller als das unser sündhaft teures Metrahit mit Coilmessung kann.

Ach so - geht's nur darum den Innenwiderstand und die Induktivität Deines Motors zu vermessen? Das wiederum könnten wir hinbekommen, indem wir das Messprinzip des Transistor-Testers übernehmen.

Das benutze ich auch gar nicht. Habe immer noch mein altes Metrahit.

Ich liebe mein erstes Metrahit (24S) auch heiß und innig. Hatte ich vor 20 Jahren für 100€ (oder waren's gar noch D-Mark?) mal total verschmiert ersteigert.

Da es jetzt ruhiger wird, werde ich irgendwann ein Fahrzeug raus ziehen und einmal die Messungen am eingebauten Sensor machen, mit dem Peda-Oszillator.

Au ja - das wird spannend. Bitte vermesse den eingebauten Sensor zusätzlich auch mit Deinem Transistor-Tester.

Jetzt habe ich erstmal den Magneten hier. Ich hoffe ich bekomme noch einen 12V-Magneten. Habe einen Kollegen in der Werkstatt angehauen, der soll mal die Augen aufhalten. Ich habe nur ein Fahrzeug mit 12V und das geht jetzt auch wieder weg.

Der aktuelle Magnet benötigt 60V und ?? Ampere?

Viele Grüße

Igel1

OP #7646928
Lesenswert?

Andreas S. schrieb:

Ach so - geht's nur darum den Innenwiderstand und die Induktivität Deines Motors zu vermessen?

Es geht immer nur um den großen Magneten. Der kleine Magnet und der Sensor sind von außen austauschbar. Dagegen ist der große Magnet in der Achse verbaut, man kann ihn nicht sehen, nur hören, wenn er anzieht und die Bremse frei gibt. Der Magnet hat einen Widerstand von ca. 2 Ohm, was einen Strom von ungefähr 42A entsprechen würde. Tatsächlich wird er (ich habe schon Anderes gehört) mit 10A angesteuert, um dann nach kurzer Zeit auf 5A (Haltestrom) runter geregelt zu werden. Darum geht es überhaupt bei der ganzen Sache. Ich muss zweifelsfrei feststellen, das dieser Magnet in Ordnung ist. Sowohl elektrisch als auch mechanisch. Ob dieser Magnet, wenn die elektrische Prüfung abgeschlossen ist (Kurzschluss, Windungsschluss oder kein Durchgang), auch mechanisch richtig funktioniert, dafür muss der zweite Magnet den großen Magneten im angezogenen Zustand verriegeln. Das wird über den Sensor festgestellt. Ist der große Magnet verriegelt, so wird dieser stromlos. Die Bremse ist jetzt frei. Danach wird der kleine Magnet stromlos. Dann muss der große Magnet noch einmal anziehen und die Verrieglung löst sich, was wiederum über den Sensor angezeigt wird. Danach wird der große Magnet wieder stromlos. Die Bremse ist jetzt angezogen. Diesen Vorgang will ich nachbilden. Dazu aber schon vorher elektrisch feststellen, ob die beiden Magnete und der Sensor elektrisch in Ordnung sind. Der Funktionstest ist auch sehr wichtig. Wenn ich mit dem Speicher nicht hinkommen würde, könnte ich auch ganz auf ein Display verzichten. Dann würden mir auch sogar Leds reichen. Es geht nicht darum, dass das besonders toll aussieht (schön wäre es schon), sondern darum, dass die Bremse geprüft wird und das Ergebnis frei von jedem Zweifel ist.

#7647127
Lesenswert?

Danke für die ausführliche Beschreibung der Verriegelungsfolge - das hilft sehr, den Test zu verstehen!

Hast Du denn inzwischen schon eine Idee, wie Du die Spule des großen Magneten durchmessen willst?

Verstehe ich Dich richtig, dass Du im Test die Anschlüsse beider Spulen quasi "in der Hand" hast - will sagen: dass Du die ohne Rücksicht auf die restliche Fahrzeugelektronik bestromen kannst?

Viele Grüße

Igel1

PS: Ich habe inzwischen die ISR-gesteuerte feine Pulslängenmessung in meine ehemalige Software (die mit dem Balken) eingebaut und einige weitere Verbesserungen vorgenommen. Die Tage kommt dann mal ein Video dazu.

#7647135
Lesenswert?

Frank O. schrieb:

Der Magnet hat einen Widerstand von ca. 2 Ohm, was einen Strom von ungefähr 42A entsprechen würde. Tatsächlich wird er (ich habe schon Anderes gehört) mit 10A angesteuert, um dann nach kurzer Zeit auf 5A (Haltestrom) runter geregelt zu werden.

Über 3500 Watt Leistung aufbringen zu müssen, nur um mit gelöster Bremse fahren zu können, erscheint mir sowieso zuviel! Selbst 400 Watt müssen erst einmal 8 Stunden lang ohne zu überhitzen, am Magneten in Wärme verheizt werden können!

OP #7647633
Lesenswert?

Hallo Enrico! Nein, das hat man vielleicht früher so gemacht. Dann hast du meinen Text nicht richtig verstanden. In kurzen Worten: Um die Bremse zu lösen, muss der große Magnet anziehen. Wenn der Magnet gelöst ist, wird dieser verriegelt, sodass er anschließend stromlos geöffnet bleibt. Das ganze Verfahren ist etwas komplexer. Kann ich hier aber nicht nennen und ist für den Test irrelevant. Wenn wir die 10A zu Grunde legen, das ist bei uns "ein kleines Bisschen" Strom. Bei uns gibt es Spitzenströme um die 1000A.

Als ich mit Mikrocontrollern anfing und dieses Forum entdeckte, da war 1 Ampere gar kein Strom für mich und hier im Forum war es schon nahezu Starkstrom. Im Mittel haben die Batterien 600Ah. Wir haben auch Batterien in den Fahrzeugen mit über 1000Ah.

OP #7647644
Lesenswert?

Andreas S. schrieb:

Verstehe ich Dich richtig, dass Du im Test die Anschlüsse beider Spulen quasi "in der Hand" hast - will sagen: dass Du die ohne Rücksicht auf die restliche Fahrzeugelektronik bestromen kannst?

Hallo Andreas. Die Batterie wird komplett vom Fahrzeug getrennt. Sie versorgt dann nur den Tester und die Bremsanlage. Am Ende werde ich über einen Stecker, der mit den beiden Magneten verbunden ist und eine extra Stecker (Leider nicht der selbe Kabelbaum) zum Sensor auf die vorhandenen Kabel gehen. Die ganze Ansteuerung der Magnete ist ziemlich trivial. Erst Recht, seit ich die Stromaufnahme der kleineren Magneten kenne. Also nur einmal PWM für den großen Magneten, an und aus, für den kleinen Magneten. Theoretisch bräuchte ich nicht einmal Strom messen und könnte das über Sicherungsautomaten gegen Kurzschluss absichern. Dann wüsste ich indirekt, ob ein Kurzschluss vorliegt. Das was ich vorhabe, das ist quasi die high end Lösung. Ursprünglich hatte ich das so geplant. Das kann ich alles mit verfügbaren Teilen machen. Die ich auch sogar gekauft habe. Aber ich will es so machen, zumindest fast so, wie das Steuergerät es tut. Für die Messung der Magnete werde ich vermutlich das Verfahren aus dem Transistortester nehmen, obwohl ich es lieber am Strom "erkennen" möchte, in welchem Zustand sich die beiden Magnete befinden. Unterbrechung kann ich schon über den Strom erkennen (lach). Im Moment hatte ich erst "deinen Sensor" weiter gemacht. Wenn ich den ADC und die Timer richtig benutzen kann,Timer hatte ich damals auch gerade erst angefangen, dann denke ich, kann ich den Kurzschluss über den Stromanstieg messen und danach entscheiden, ab wann es ein Kurzschluss ist und ob die Bremse dann noch anziehen darf. Im schlimmsten Fall kommt die Sicherung. Beim kleinen Magneten werde ich den Strom so begrenzen, dass die Strombegrenzung höher liegt, als der Magnet maximal an Strom braucht. Also da kann ich jetzt schon einen Kurzschluss messen.

#7647888
Lesenswert?

Hmmm - könnte man den großen Magneten vielleicht auch mit der Oszillator-Methode vermessen? Denn auch der wird eine charakteristische Induktivität haben, die sich ändert wenn die Spule einen Kurzschluss hat.

Wie erfasst denn das Steuergerät solche Kurzschlüsse?

Für Strom-Anstiegsmessungen benötigst Du übrigens keinen ADC - Du willst ja schließlich keine Kurve aufnehmen, sondern nur wissen, nach wieviel us die Spannung an Deinem Vorwiderstand auf x Volt angestiegen ist.

Für solche Dinge gibt's in den MC's Komparatoren, die bei Spannungsüberschreitung etwas auslösen können: in jedem Falle einen Interrupt - da bin ich sicher. Und wenn's gut läuft kann der ATmega vielleicht sogar auch seinen Timer1 Zählerstand absichern (müsste man nochmals genauer im Datenblatt nachschauen - ich meine, bei den STM32 z.B. geht das).

Soweit meine Gedanken dazu.

Viele Grüße

Igel1

OP #7647900
Lesenswert?

Andreas S. schrieb:

Hmmm - könnte man den großen Magneten vielleicht auch mit der Oszillator-Methode vermessen? Denn auch der wird eine charakteristische Induktivität haben, die sich ändert wenn die Spule einen Kurzschluss hat.

Klar, das wird gehen, aber das will ich nicht. Da ich den Strom sowieso messe, muss ich auch daraus Rückschlüsse ziehen können. Bei allen Ladegeräten wird Unterbrechung und Kurzschluss erkannt und die messen auch nur über einen Shunt. Deshalb will ich das mit dem ADC vom ATMega328 auch genau wissen, wenngleich der höchstwahrscheinlich nicht verwendet werden wird. Ich habe mir noch verschiedene Sachen bestellt. Zwei verschiedene ADCs und zwei verschiedene Instrumentenverstärker. Die ADCs funktionieren ähnlich, nur hat der eine 18Bit und nur einen ADC-Kanal, während der andere 16Bit und vier ADC-Kanäle hat. Die ADCs laufen über I2C. Leider schon eine Weile auf diese Sachen.

Ich möchte eigentlich am liebsten über einen Shunt messen, weil das für spätere, eigene Entwicklungen, von Vorteil ist. Damals habe ich über eine Ladetechnik geschrieben, die ich für möglich hielt. Ob nun dieser Hersteller das von mir hat, kann ich nicht sagen, aber ich weiß, dass es schon einige Produkte aus meinen Ideen gegeben hat, an denen ich leider nichts verdient habe und ein jetzt-nicht-mehr-Freund, hat an zwei Ideen reichlich verdient. Das soll mir nicht mehr passieren.

Ich denke dieses Wochenende werde ich ein wenig Zeit haben und mich wieder mehr dem Strom widmen.

Andreas S. schrieb:

Wie erfasst denn das Steuergerät solche Kurzschlüsse?

Wie das geschieht, steht nirgends. Könnte ich aber sowieso nichts drüber schreiben. Nur so viel ist klar, das funktioniert grundsätzlich einwandfrei, aber wie ich darauf Zugriff habe, damit bin ich nicht zufrieden. Deshalb gibt es diesen Beitrag überhaupt erst.

#7647901
Lesenswert?

Vor der Heia hier noch schnell ein paar Impressionen des aktuellen Software-Standes in Bildern und auch ein etwas ausführlicheres Filmchen, das vermutlich den besten Eindruck vermittelt: https://www.dropbox.com/scl/fo/6g3v3mv2zimqnfrmt8hx0/AO6VsmFIx9dbvI5imT7_GrQ?rlkey=vuuyt5zt2ukk0z2z1urlhfo64&st=dkm1sths&dl=0 (Datei: OLED_2_42 ....)

Hier die neuen Features der Software:

  • Auflösung durch Einsatz der Timer-Capture-Methode von ca. 12 auf >120 (!) Schritte hochgedreht

  • Anzeige zittert nicht mehr - steht wie festgenagelt. Erreicht habe ich das in der Hauptsache durch 2 Maßnahmen:

    • Mittelung über N=200 Werte (N ist frei konfigurierbar)
    • Hysterese von H=1 (H ist ebenfalls frei konfigurierbar)
  • Kalibrierungsroutine ist inzwischen deutlich eleganter und benutzerfreundlicher gelöst. Routine kann per Knopfdruck gestartet werden und kalibriert dann die jeweilige Endposition auf 0% oder 100%.

  • 2 Triggerlevel für offen/geschlossenen Zustand eingebaut (Toffen=20%, Tgeschlossen=80% - beide frei konfigurierbar)

  • Symbole zeigen bei Über-/Unterschreiten der Triggerlevel den Zustand (geschlossen/indifferent/offen) an.

Ich denke, so langsam habe ich einen Stand erreicht, der mir schon fast genügt - ich will ja schließlich nicht in die Serienfertigung einsteigen.

Viele Grüße

Igel1

OP #7648014
Lesenswert?

Also dann los. Vorweg: Technisch toll gelöst!

Punkt 1. Der Sensor wird nur ein einziges Mal kalibriert. Zum Glück scheinen die ziemlich genau zu sein. Alle zwei, drei Steps oben und unten müssen als Null oder Hundert erkannt werden. Du misst den ja nicht für ein neues Fahrzeug ein, denn dann wäre es vollkommen richtig. Du kommst zu einem defekten Fahrzeug. Mit zur Prüfung gehört der Sensor. Wenn der außerhalb dieser Messung liegt, ist der Sensor defekt und auszutauschen. Das wird ein Diagnosegerät und das muss anhand der Werte entscheiden was kaputt oder intakt ist.

Punkt 2. Leider würde das die meisten Techniker verwirren, wenn da unten noch so kryptische Werte angezeigt werden, außerdem können viele gar kein Englisch oder nur schlecht. Das muss da in Deutsch stehen.

Punkt 3. Eigentlich ist das keine Kritik, denn den Ansatz finde ich gut und da kann man was draus machen. Der Verrieglungs- und Entrieglungsbereich mit den Strichen wäre schöner auf dem Balken gewesen. man könnte da auch den Balken verändern, aber es wäre schon ok, wenn die Striche im Balken stehen würden.

Das werde ich dann auch überlegen.

Punkt 4. Lockstateanzeige. Ich habe das auch noch drin, muss aber für das fertige Gerät raus. Da reicht der Balken und die Anzeige "Verriegelt" oder eben "Entriegelt" Für den Test ist das ok so, aber für ein fertiges Gerät, welches vielleicht einige Techniker nutzen sollen, ist das zu viel. Und eigentlich, das ist jetzt Selbstkritik, ist die Bremse dann noch gar nicht verriegelt. Das kann natürlich nur kommen, wenn die Verrieglung aktiv ist. Die "Entriegelt"-Anzeige ist richtig. Wenn der Sensor dort steht, ist er entweder defekt oder der Magnet ist tatsächlich entriegelt. /Ende Kritik

#7648886
Lesenswert?

Frank O. schrieb:

Also dann los. Vorweg: Technisch toll gelöst!

Danke.

Punkt 1. Der Sensor wird nur ein einziges Mal kalibriert.

Und dann stellen sich folgende Szenarien ein:

  • Dein Diagnosegerät altert und der Oszillator verändert seine Frequenz mit der Zeit um 10%
  • Es gibt neue Sensoren, deren Induktivitäten doch leicht anders sind.
  • Das alles passiert, wenn Du schon lange nicht mehr weißt, wie Deine Schaltung und Deine Software funktioniert und Du hast keine Ahnung mehr, wo Du diese dusseligen Max/Min-Werte damals in Deiner Software irgendwo hinterlegt hast - geschweige denn, dass Du weißt, wie Du die Software noch wieder in Deinen Arduino gebrannt bekommst.
  • Oder noch schlimmer: Deine Nachfolger stehen vor dem Gerät und kratzen sich am Kopf.

Genau dann kommt der eine Kalibrierungsknopf gaaaanz groß raus und Du klopfst Dir auf die Schulter, dass Du damals so vorausschauend entwickelt hast :-)

Daher finde ich den Kalibrier-Knopf schon recht charmant. Und es wird ja niemand gezwungen, den zu drücken ...

Ansonsten: Jeweils einmal Riegel auf und Riegel zu an einem bekanntermaßen funktionierenden Sensor machen und dann jeweils auf den Kalibriert-Knopf drücken und schon werden die Eckwerte abgespeichert (inzwischen sogar dauerhaft im EEPROM - habe ich gerade eingebaut).

Zum Glück scheinen die ziemlich genau zu sein. Alle zwei, drei Steps oben und unten müssen als Null oder Hundert erkannt werden.

Das wäre super einfach in die Software einzubauen (hatte ich ursprünglich auch schon drin), widerstrebt mir aber etwas, weil man dann "echte Fehler" nicht mehr sehen würde:

Stell Dir z.B. vor, die Spule hätte eine Macke und die Werte bei geöffnetem/geschlossenem Riegel wären weit unter/über dem Minimum/Maximum, so würde man das nicht sehen, weil all diese Werte auf 0% bzw. 100% gekappt werden.

Nichts desto trotz - wenn's so sein soll, kann ich das trotzdem gerne einbauen und die Werte bei Unterschreitung/Überschreitung auf 0% / 100% kappen. So recht gefallen täte mir das aber nicht.

Akuell erlaube ich dem Balken tatsächlich aus seinem umgebenden Kasten nach links oder rechts herauszufahren, wenn die gemessenen Werte die Min/Max-Endwerte unter- bzw. überschreiten. Zudem erscheint der Hinweis "Ggf. Kalibrieren". Trotzdem kann man den Hinweis ignorieren und ungehindert weitermessen.

Du misst den ja nicht für ein neues Fahrzeug ein, denn dann wäre es vollkommen richtig. Du kommst zu einem defekten Fahrzeug. Mit zur Prüfung gehört der Sensor. Wenn der außerhalb dieser Messung liegt, ist der Sensor defekt und auszutauschen. Das wird ein Diagnosegerät und das muss anhand der Werte entscheiden was kaputt oder intakt ist.

In diesem Fall wäre es vermutlich gut, wenn ich bei Überschreitung/Unterschreitung statt "Ggf. Kalibrieren" lieber eine "Sensor defekt"-Meldung ausgebe, oder?

Punkt 2. Leider würde das die meisten Techniker verwirren, wenn da unten noch so kryptische Werte angezeigt werden, außerdem können viele gar kein Englisch oder nur schlecht. Das muss da in Deutsch stehen.

Kleinigkeit - ist schon geändert.

Punkt 3. Eigentlich ist das keine Kritik, denn den Ansatz finde ich gut und da kann man was draus machen. Der Verrieglungs- und Entrieglungsbereich mit den Strichen wäre schöner auf dem Balken gewesen. man könnte da auch den Balken verändern, aber es wäre schon ok, wenn die Striche im Balken stehen würden.

Dazu hatte ich eine nette Idee - ist bereits umgesetzt, sieht gut aus und wird im nächsten Video zu sehen sein: ich zeichne die bisherigen weißen "Triggerschwellen"-Linien jetzt mit "schwarzer Tinte" und erhalte dadurch 2 Schwarze Striche im Fortschrittsbalken und im Rahmen drum herum. Sieht gut aus und ist tatsächlich visuell einfacher zu erfassen.

Das werde ich dann auch überlegen.

Punkt 4. Lockstateanzeige. Ich habe das auch noch drin, muss aber für das fertige Gerät raus. Da reicht der Balken und die Anzeige "Verriegelt" oder eben "Entriegelt" Für den Test ist das ok so, aber für ein fertiges Gerät, welches vielleicht einige Techniker nutzen sollen, ist das zu viel.

Kleinigkeit - kein Problem, habe ich schon gemacht.

Und eigentlich, das ist jetzt Selbstkritik, ist die Bremse dann noch gar nicht verriegelt. Das kann natürlich nur kommen, wenn die Verrieglung aktiv ist. Die "Entriegelt"-Anzeige ist richtig. Wenn der Sensor dort steht, ist er entweder defekt oder der Magnet ist tatsächlich entriegelt. /Ende Kritik

Öhm - habe ich nicht 100%ig verstanden. Schau Dir einfach die neue Version auf den anliegenden Fotos an und schreibe, was Du noch geändert haben möchtest.

Für ein Video samt Konvertierung ist es mir jetzt schon ein wenig spät, dann das dauert dann doch immer 20-30 Minuten, bis alles im Kasten bzw. auf der Dropbox ist.

Viele Grüße

Andreas

Angehängte Dateien:
#7648966
Lesenswert?

aber ich weiß, dass es schon einige Produkte aus meinen Ideen gegeben hat, an denen ich leider nichts verdient habe und ein jetzt-nicht-mehr-Freund, hat an zwei Ideen reichlich verdient. Das soll mir nicht mehr passieren.

Das ist natürlich gemein. Aber ich halte Dich für so fair, dass Du das mit mir nicht machen würdest und mich im Falle einer Vergütung angemessen beteiligen würdest :-)

Viele Grüße

Igel1

#7648969
Lesenswert?

Leider hat meine Software noch einen großen Haken:

Wenn keine Pulse reinkommen, so hängt die Software, weil dann die Messroutine einfach unendlich lang wartet, bis sie ihre 200 Messungen zusammengesammelt hat. Während dieser Zeit "hängt" die Software in einem Unterfunktionsaufruf.

Ich benötige also noch eine - wie auch immer geartete - "Sensor fehlt"-Erkennung. Das wird gar nicht so einfach ... Das muss ich wirklich nochmals genau durchdenken.

#7648981
Lesenswert?

Ach ja - und dann hatte ich noch 2 glorreiche Ideen. Kannst ja mal sagen, was Du davon hältst:

1.) Wenn ich messe, so habe ich oftmals meine liebe Not, gleichzeitig am Messobjekt herumzufummeln und auf mein Messgerät zu schauen. Da wünscht man sich manchmal eine akustische Anzeige.

1
So vielleicht auch bei dieser Riegel-Sensor Software. 
2

3
Was hältst Du davon, wenn das Teil bei Unter-/Überschreiten der
4
Schwellen jeweils einen Piepton via Piezo-Summer ausgibt:
5

6
Verriegelt (440Hz):   " ===  ===  === "
7
Entriegelt  (880Hz):  " =  =  =  =  = "
8

9
Kein Dauerton - das nervt - nur dieses "Morsesignal"
10

11
Man könnte sich natürlich auch jede andere Tonfolge und Morsefolge
12
für weitere Zustände überlegen (z.B. auch ein Sensor-Defekt-Signal).

2.) Manchmal ist so eine kleine LED-Ampel (grün-gelb-rot) schneller aus den Augenwinkeln erkannt als ein OLED-Display.

1
Weil mein Händler, von dem  ich den ADS1115 gekauft habe, mir
2
netterweise noch 6 Neopixel-LEDs beigelegt hat, könnte ich so
3
eine Ampel ebenfalls dazubauen.

Interesse an 1.) oder 2.) ?

Oder lieber erst einmal Strommessung?

Viele Grüße

Igel1

#7648985
Lesenswert?

Was für ein Aufriss. Über 630 Postings für einen dämlichen induktiven Positionssensor.

Was haben Freundschaften oder irgendwelche schickimicki Anzeigen, die man genauso gut mit einem 2x16 LDC und ein paar benutzerdefinierten Zeichen erledigen kann, mit dem Thema des Threads zu tun? Da ging es um Starthilfe für das Auslesen eines Sensors mit einem µC - schon vergessen in dem ganzen Aufruhr?

Divide et impera - dann bleibt das Thema auch überschaubar.

#7649002
Lesenswert?

Rainer W. schrieb:

Was für ein Aufriss. Über 630 Postings für einen dämlichen induktiven Positionssensor.

Na ja - jetzt, wo Du die 630 Postings schon mal gelesen hast, da kannst Du ja auch gerne mitmachen ;-)

Aber Scherz beiseite:

Ist halt eher ein kleines Projektchen geworden, das wir aus Spaß an der Freude weiter vorantreiben. Ich denke, dass passiert hier in so einigen Threads.

Ich persönlich finde das nicht schlimm und freue mich immer, wenn bei solchen Threads auch einmal längere Austausche, ja vielleicht sogar Hobby-Freundschaften entstehen - warum auch nicht? Jeder Jeck ist da anders gestrickt.

Wenn es Spezialthemen gibt - wie z.B. die ISR-Routine zur Pulserfassung oder die Bestromung und Ansteuerung des SSD1309-Displays, so machen wir (in diesem Falle: ich) dann auch ab und an kleinere separate Threads auf, die wir dann hier lediglich verlinken.

Ansonsten: einfach den Thread hier ignorieren, wenn wir Dir zu umständlich/aufwändig/ausschweifend an die Sache rangehen - wir sind da ganz tolerant :-)

Viele Grüße

Igel1

OP #7649112
Lesenswert?

Andreas S. schrieb:

Daher finde ich den Kalibrier-Knopf schon recht charmant. Und es wird ja niemand gezwungen, den zu drücken ...

Ok, im Gerät macht das einen Sinn. Aber es hörte sich für mich so an, als gingest du davon aus jedes Mal zu kalibriern.

Andreas S. schrieb:

(inzwischen sogar dauerhaft im EEPROM - habe ich gerade eingebaut).

Sehr gut!

Andreas S. schrieb:

Dazu hatte ich eine nette Idee - ist bereits umgesetzt, sieht gut aus und wird im nächsten Video zu sehen sein: ich zeichne die bisherigen weißen "Triggerschwellen"-Linien jetzt mit "schwarzer Tinte" und erhalte dadurch 2 Schwarze Striche im Fortschrittsbalken und im Rahmen drum herum.

Das sieht sehr gut aus. Du hast dich mit der Lib. schon richtig auseinander gesetzt.

Andreas S. schrieb:

widerstrebt mir aber etwas, weil man dann "echte Fehler" nicht mehr sehen würde:

Glaube mir, das macht keinen Unterschied. Ich habe gestern übrigens auch noch ein bisschen mit dem Sensor "gespielt". Warum das funktioniert weiß ich nicht, denn Pulsln braucht, soweit ich weiß einen Timer. Ich habe direkt vor der Messung die Interupts abgeschaltet und danach wieder ein. Schon wird das ruhiger. Die Prozentanzeige habe ich noch nicht auskommentiert, wird aber gemacht. Das mit den Linien, mal sehen ob ich es raus finde, werde ich dann auch noch einbauen. Aber im Moment zeigt der Sensor oben und unten das ruhig an. Das brauche ich und außer uns, weiß keiner, dass das ein Software-Trick ist. Der Anwender (bin ich zwar selbst) sieht das nicht.

Andreas S. schrieb:

Stell Dir z.B. vor, die Spule hätte eine Macke und die Werte bei geöffnetem/geschlossenem Riegel wären weit unter/über dem Minimum/Maximum, so würde man das nicht sehen, weil all diese Werte auf 0% bzw. 100% gekappt werden.

Jetzt fällt mir gerade ein, mein Kollege hatte sicher etwas Ähnliches, denn das wurde auch nicht angezeigt. Aber man könnte das "unsichtbar" in die Software einbauen und dann die Meldung ausgeben: "Sensor außer Toleranz - Sensor tauschen!"

Andreas S. schrieb:

Öhm - habe ich nicht 100%ig verstanden. Schau Dir einfach die neue Version auf den anliegenden Fotos an und schreibe, was Du noch geändert haben möchtest.

Hahaha! "Was ich geändert haben möchte ..." Es ist dein Sensor, meiner ist hier und wird etwas anders funktionieren. Du hast das Prima gelöst. Bei mir steht dann dort: "1Y45 verriegelt!"

Andreas S. schrieb:

Aber ich halte Dich für so fair, dass Du das mit mir nicht machen würdest und mich im Falle einer Vergütung angemessen beteiligen würdest :-)

Wenn wir das gemeinsam machen würden (ich kann dich leider nicht in alles einweihen, Betriebsgeheimnisse) und es würde Geld dafür geben, natürlich. Ich teile immer Halbe/Halbe und egal wer nun mehr Arbeit hatte oder die Grundidee.

Andreas S. schrieb:

und dann hatte ich noch 2 glorreiche Ideen.

Grundidee ist gut, aber der Sensor ist wirklich nachrangig. Die Ohren des Kollegen sind entscheidend. :-). Aber trotzdem hast du mich damit auf eine Idee gebracht. Da ich mir den Strom für den Tester vor der dicken Sicherung abzweigen werde, wären zwei Leds noch ganz gut. Eine dafür, dass die Stromversorgung angeschlossen ist und eine Led für den Hauptstrom.

OP #7649126
Lesenswert?

Rainer W. schrieb:

Divide et impera

Irgendwie passt das nicht ganz zu deinem Textinhalt, aber sehr gut zum Thema. Genau das mache ich doch, ich teile das (und auch Sachen am Rande, die dich so stören) und ich herrsche über das Projekt. Wie du erkennen kannst, ist es nicht nur mehr der Sensor. Der ist für mich eigentlich durch. Da aber Andreas mich quasi herausgefordert hat (ein nettes Herausfordern), ist der Sensor immer noch Thema. Insgesamt geht es jetzt aber um das Testgerät oder vielmehr auch darum, wieder den Einstieg an dem und mit dem Projekt hinzubekommen.

Lieber Rainer, natürlich hast du recht, es ist lang geworden und die Anekdoten am Rande sind vielleicht "dem alten Mann" geschuldet. Doch jeder hat seine Art sich mitzuteilen, wie auch du das Recht hast, das erst gar nicht zu lesen. Wie du unschwer erkennen kannst, ist hauptsächlich noch Andreas und ich selbst hier anwesend. Aber es macht sich immer gut, mal eben in einen Thread reinzukotzen.

Im Übrigen:

Frank O. schrieb:

Hier wäre der Thread nun zu Ende.

Wer will, kann ja noch ein bisschen schauen. Ich werde hier weiter posten.

OP #7649431
Lesenswert?

So, heute ist (ganz schnell sogar) ein 1.5" Display, full color, angekommen. Ein 1.3" hatte ich vorher schon bestellt, aber das 1.5" ist schneller hier. Ebenso die MCP3421, Messverfahren ist Delta-Sigma.

Ist SPI in Hinblick auf zukünftige Projekte sinnvoller, weil schneller und andere Vorteile (z.B. CS)?

#7649556
Lesenswert?

Frank O. schrieb:

So, heute ist (ganz schnell sogar) ein 1.5" Display, full color, angekommen. Ein 1.3" hatte ich vorher schon bestellt, aber das 1.5" ist schneller hier. Ebenso die MCP3421, Messverfahren ist Delta-Sigma.

Mann-oh-Mann - das kann ich gar nicht alles kaufen, sonst gehe ich hier langsam pleite.

Ist SPI in Hinblick auf zukünftige Projekte sinnvoller, weil schneller und andere Vorteile (z.B. CS)?

SPI soll tatsächlich etwas schneller sein (schau einfach die max. Taktfrequenzen selber nach), aber Du hast halt mehr Hantier, wenn Du mehrere Geräte an einen SPI-Bus klemmen willst: https://en.wikipedia.org/wiki/Serial_Peripheral_Interface#Bus_topologies I2C ist in dieser Hinsicht einfach unschlagbar.

Ansonsten würde ich sagen: für das bisschen Mini-Anzeigen, die wir hier steuern reicht auch I2C allemal.

Ich habe mein Display eher per Zufall in der SPI-Variante gekauft (hatte beim Kauf nicht so genau hingeschaut). Das hat im Nachhinein aber den Vorteil, dass mein SPI-Display durch Umlöten und Entfernen von ein paar (bereits auf dem Board vorhandenen) Widerständen in I2C verwandelt werden kann - umgekehrt fehlen Dir genau diese Widerstände.

Soweit meine 10 Cent zu Deiner Frage.

Viele Grüße

Igel1

#7649572
Lesenswert?

So - hier das versprochene Video meiner aktuellsten Softwareversion zur Riegel-Positionsanzeige:

https://www.dropbox.com/scl/fo/6g3v3mv2zimqnfrmt8hx0/AO6VsmFIx9dbvI5imT7_GrQ?rlkey=vuuyt5zt2ukk0z2z1urlhfo64&st=z20d2ddz&dl=0 (Video: OLED_2_42_SSD1309_test_igel1_v006e.001.mp4)

Folgende Dinge/Features sind neu hinzugekommen:

  • eine LED-Ampel aus Neopixels zeigt zusätzlich den Riegel-Zustand an

  • Die Anzeigen sind nun noch etwas logischer und hoffentlich auch übersichtlicher geworden

  • Ein komplett defekter Sensor oder eine unterbrochene Leitung zum Sensor führt nun nicht mehr zum Einfrieren der Anzeige/Software, sondern zu einer "? Sensor defekt ?" und "... kein Sensor erkannt ..."-Anzeige.

Kurzum: aus meiner Sicht bin ich so langsam am Ziel angelangt. Jetzt vielleicht noch ein bisschen im Code Dokumentieren und das war's dann. Wärst Du, Frank O., am Code interessiert?

Viel Grüße

Igel1

OP #7649662
Lesenswert?

Andreas S. schrieb:

I2C ist in dieser Hinsicht einfach unschlagbar.

Moin Andreas! Ich habe mich da heute schon drin eingelesen. Das einzige was mich überlegen ließ, dass I2C für die Kommunikation zwischen Platinen gedacht war und es damit bei größeren Leitungslängen Probleme geben soll. Die Längen erreiche ich sowieso nicht, die hier möglich sind und alles was weiter weg ist, würde ich sowieso per Funk oder onewire machen.

Am Rande bemerkt, auch wenn es Rainer stören wird, ich bin an ATTiny10 Fan. Mich fasziniert, dass das kleine Ding richtig programmiert werden kann. Jedenfalls wollte oder will ich noch, einmal etwas für die KFZ-Elektronik bauen. Mit ganz vielen Tinys. Da bekommt dann jede Lampe einen eigenen Controller. Dafür will ich dann auch einen Minimal-Bus entwickeln. µBus, wenn es die Bezeichnung noch nicht gibt. Der hat dann wirklich nur einen Draht.

Andreas S. schrieb:

umgekehrt fehlen Dir genau diese Widerstände.

Das stimmt, habe ich aber hier. Ich muss vielleicht auch noch die gängigen SMD in kleiner kaufen. Aber im Moment kriege ich die noch so gerade überall drauf gelötet. Das Video ist toll! Die Ampel ist schön, aber eine rote Led, für den unsicheren Zustand, würde reichen. Was mir aber sehr gut gefällt, statt des Balkens, die Anzeige "Sensorfehler". Ich habe, bis auf die Striche, leider nichts gemacht. Habe selten Kopfschmerzen und so wie heute, vielleicht alle 5 Jahre. Aber die Striche haben mich Nerven gekostet. In meinem dunen Schädel wollte ich "schwarze" Striche haben, so wie du. Man, man, man ...

Andreas S. schrieb:

Mann-oh-Mann - das kann ich gar nicht alles kaufen, sonst gehe ich hier langsam pleite.

Musst du doch gar nicht. Das war auch wirklich teuer. Und die Fets, die ich verwende, sende ich dir zu. Einiges werde ich mit dir per Mail austauschen.

Andreas S. schrieb:

Die Anzeigen sind nun noch etwas logischer und hoffentlich auch übersichtlicher geworden

Sieht wirklich richtig gut aus!

Andreas S. schrieb:

Ein komplett defekter Sensor oder eine unterbrochene Leitung zum Sensor führt nun nicht mehr zum Einfrieren der Anzeige/Software, sondern zu einer "? Sensor defekt ?" und "... kein Sensor erkannt ..."-Anzeige.

Defekte Leitungen gibt es immer wieder, wenn die irgendwo vor fahren. Das würde man spätestens dann sehen, wenn man den Sensor an das Diagnosegerät anschließen würde. Ein Defekt im Sensor halte ich für sehr unwahrscheinlich, aber ein nicht sichtbarer Kabelfehler, sprich eine Unterbrechung, das ist sicher der häufigste Zustand, wenn der Sensor nicht funktionieren sollte. Deshalb ist es auch so gut, dass du das mit dem Text im Fortschrittsbalken hast. Das würde man sofort sehen. Das muss ich auch noch einbauen. Übrigens, fällt mir gerade so ein, dann sollte das Programm zum Ende springen und die Anzeige Sensorfehler sollte bestehen bleiben. Denn schaut man gerade nicht hin, bei einem Wackelkontakt, dann übersieht man das schnell. Oder aber zumindest sollte es deutlich länger als der Fehler zu sehen sein. Eine Led ist eigentlich nicht nötig. Du musst dir vorstellen, wenn er das Gerät in die Hand nimmt und den Start bestätigt, dann dauert die Messung vielleicht, wenn überhaupt, ein paar Sekunden. Dann kommt schon der Funktionstest. Der dauert auch sicher nicht länger als 1 Minute. Hängt vom Techniker ab, der das testet. Beim ersten Mal braucht er vielleicht 3 Minuten (weil er noch ein Rad drehen muss). Es soll ja gerade auf schnelle und einfache Weise diese Feststellbremsanlage prüfen. Das Anklemmen und Stapler aufbocken, das wird die meiste Zeit in Anspruch nehmen. Die Kabel kann man am besten unterm Fahrzeug erreichen.

Andreas S. schrieb:

Kurzum: aus meiner Sicht bin ich so langsam am Ziel angelangt. Jetzt vielleicht noch ein bisschen im Code Dokumentieren und das war's dann. Wärst Du, Frank O., am Code interessiert?

Weit über den Vorgaben, aber besser ist immer schöner als schlechter. Dokumentiert habe ich gerade. So sehr es mich reizt, aber gerade das nachzubilden, was der andere gemacht hat, mit eigenen Ideen, das macht doch gerade den Reiz aus. Oder findest du nicht? Hatte schon ansatzweise versucht etwas auszulagern. Aber das kann ich im Moment noch nicht. Es war auch immer zu spät oder ich hatte keinen Kopf dafür. Jetzt werde ich mich aber die nächste Zeit an den Strom machen. Da ich jetzt gesehen habe, wie viel es ausmacht, die Interrupts auszustellen, werde ich mich zunächst noch mit dem eingebauten ADC auseinander setzen.

Ich muss mir aber auch über den Ablauf noch Gedanken machen. Das Display ist längst nicht abgeschlossen. Denn ich muss ja immer wieder die Anzeigen wechseln. Da kommen Fragen, die beantwortet werden müssen und Meldungen. Wenn einmal alles Durchgemessen worden ist, dann kommt die Frage, ob der Funktionstest jetzt starten soll. Während des Funktionstest kommt wieder eine Frage und bei "Ok!", wird dann weiter gemacht. Ansonsten kommen Anweisungen. Das muss dann alles auch abwechselnd auf dem Display ausgegeben werden. Kann man die Referenz von u8g2 als PDF bekommen? Ich habe leider nichts gefunden.

Angehängte Dateien:
OP #7649679
Lesenswert?

Dass ich so viele Sachen bestelle, das ist nicht für dieses Projekt allein. Ich will doch wieder richtig anfangen. Diese Displays werden meine zukünftigen Anzeigeelemente werden. Auch alles um Strom zu messen, das brauche ich vor allem für Ladegeräte. Ich werde mir dann ein Batterieladegerät mit meinem Ladeverfahren bauen. Wie ich schon schrieb, so ähnlich macht es ein führender Hersteller schon. Bleibatterien kenne ich wirklich sehr gut und ich habe schon früher viel getestet und ich habe schon einige Batterien wiederbelebt, die andere schon lange aufgegeben hatten. Das wird dann mein nächstes Projekt werden.

#7649697
Lesenswert?

Frank O. schrieb:

I2C ist in dieser Hinsicht einfach unschlagbar.

Ich habe mich da heute schon drin eingelesen. Das einzige was mich überlegen ließ, dass I2C für die Kommunikation zwischen Platinen gedacht war und es damit bei größeren Leitungslängen Probleme geben soll.

I2C war primär Kommunikation innerhalb einer Platine. Ich habe Aufbauten mit China-Platinchen innerhalb eines Gehäuses und den China "DuPont-Kabeln", da kommen maximal 30cm zusammen und der Kram spielt problemlos.

Im Ursprung redest Du von einem Testgerät, da wird das kaum länger werden müssen. Im Anhang wird das OLED per I2C bedient, der ADS1115 ist auf der Lochrasterkarte. Die SD ist per SPI angebunden, alles auf 3,3 Volt mit einem ProMini-8MHz.

Frank O. schrieb:

Dass ich so viele Sachen bestelle, das ist nicht für dieses Projekt allein. Ich will doch wieder richtig anfangen. Diese Displays werden meine zukünftigen Anzeigeelemente werden. Auch alles um Strom zu messen, das brauche ich vor allem für Ladegeräte.

Du verzettelst Dich schon wieder. Bringe erstmal Deine Induktivitätsmessung zu einer stabilen Funktion, anstatt mit stylischem OLED einfach per serieller Ausgabe zum PC. Dieser Wettstreit, wer den schönsten Balken anzeigt, ist albern oder sollte Euch peinlich sein.

Bei alledem, was er sonst so ablässt, fällt es mir extrem schwer, (rawi) zuzustimmen. Hier gibt es keinen Weg dran vorbei, er trifft den Kern:

Rainer W. schrieb:

Was für ein Aufriss. Über 630 Postings für einen dämlichen induktiven Positionssensor.

Was haben Freundschaften oder irgendwelche schickimicki Anzeigen, die man genauso gut mit einem 2x16 LDC und ein paar benutzerdefinierten Zeichen erledigen kann, mit dem Thema des Threads zu tun?

Angehängte Dateien:
OP #7649706
Lesenswert?

Manfred P. schrieb:

I2C war primär Kommunikation innerhalb einer Platine.

Hallo Manfred! Das schrieb ich doch schon und das Display bleibt sicher auch für diese Anwendung, so wie es jetzt ist. Außerdem schrieb ich weiter oben, dass der Sensor, samt Anzeige, fertig ist.

Manfred P. schrieb:

Dieser Wettstreit, wer den schönsten Balken anzeigt, ist albern oder sollte Euch peinlich sein.

Auch dazu schrieb ich, dass das weit übers Ziel hinaus ist, aber deshalb muss uns das auf keinen Fall peinlich sein. Ich muss das nicht bauen, aber ich baue das, weil es nützlich ist, mir Spaß macht und ich wieder in die Thematik einsteigen will. Natürlich hatte ich nicht vor das mit dem Sensor so weit zu treiben. Aber was ist schlimm daran? Ich habe keinen Abgabetermin. Ich muss das nicht einmal zu Ende bauen. Aber wenn ich mich an irgendeinem Punkt festhalte, was macht das? Schadet es irgendwem? Vor allem hier im Forum. Halten wir einmal fest was ich schon hinbekommen habe. Natürlich mit Hilfe beim Sensor. Ich habe den Oszillator von Peter gebaut und er funktioniert mit dem Sensor. Den Sensor kann ich mit dem Mikrocontroller messen. Außerdem habe ich erfolgreich das OLed am laufen und kann die Sensordaten ausgeben. Dafür, dass ich damals erst angefangen hatte zu lernen und jetzt gerade einmal seit Februar, bei wirklich wenig investierter Zeit, jetzt schon etwas auf dem Bildschirm sehen kann, das auch noch so funktioniert, wie ich es brauche und wie ich es sehen will, das ist mir nicht peinlich. Ganz im Gegenteil, ich bin darauf stolz. Wie viele die du von der Straße holst, hätten das geschafft? Meine Kollegen haben nur große Augen gemacht. Von denen kann das keiner und da sind auch ne Menge Elektrotechniker drunter.

#7649779
Lesenswert?

Frank O. schrieb:

Ganz im Gegenteil, ich bin darauf stolz.

Richtig so!

Wir feiern unsere Erfolge - auch wenn sie in Euren Augen vielleicht klein sind. Kleine Schritte führen ebenfalls zum Ziel. Und der Weg dahin ist ja bekanntlich oftmals wichtiger als das Ziel selbst - so auch in diesem Fall hier.

Was für ein Aufriss. Über 630 Postings für einen dämlichen induktiven Positionssensor.

Und was ist eigentlich Eure Motivation, uns diese Erfolge madig zu reden? Denkt einmal gaaanz lang darüber nach und dann schreibt uns Eure Antwort. Ich bin sehr gespannt.

Viele Grüße

Igel1

OP #7649831
Lesenswert?

Andreas S. schrieb:

Und der Weg dahin ist ja bekanntlich oftmals wichtiger als das Ziel selbst

Moin Andreas!

Das ist ein sehr guter Punkt! Es heißt beim Motorradfahren: "Der Weg ist das Ziel!" Ich fahre selbst Motorrad. Es ist für die meisten kein Fortbewegungsmittel, sondern etwas, um Spaß zu haben.

Und zum verzetteln beim Display. Schade, leider habe ich mir die Stunden zu allen Sachen nicht aufgeschrieben. Das Lesen und die Informationsbeschaffung außen vor gelassen, bin ich seit Beginn des Projektes vielleicht etwas über zehn Stunden da dran. Das Display hat davon, zugegebenermaßen ungefähr 2 Stunden gebraucht. Ich habe noch einen Job, mein Training, soziale Kontakte (ich bin sicher nicht so ein Kellerkind, wie so mancher hier), Haushalt, diverse andere Verpflichtungen und (!) manchmal habe ich auch schlicht keinen Bock, abends um 22:00 Uhr noch anzufangen. Und dann gibt es noch die Tage, da geht es mir einfach mal nicht so gut. Weder sehe ich mich als Entwickler, Programmierer und auch nicht als Elektroniker. Und ich muss auch nicht davon leben, was das Beste an der Sache ist. Aber es macht mir Spaß und ich habe seit Februar auch bestimmt, mit Labornetzgerät und Oszilloskop (das Owon) für dieses Hobby 1000 oder mehr Euro ausgegeben. Es ist nämlich das, was ich machen werde, wenn ich vielleicht doch bald nicht mehr kann und im besten Fall werde ich das als Rentner in ein paar Jahren viel intensiver ausüben, dieses Hobby. Ich bin mir sicher, dass es den einen oder anderen nervt, dass da jemand ist, der so gar keine Ahnung hat, aber so viel mehr für sein Hobby ausgibt, wie sie es selbst vielleicht nicht können. Aber diese Leute sollten erstmal schauen, ob da nicht eine Packung Zigaretten oder ein alkoholisches Getränk neben ihnen steht. Das einzige was ich sonst neben meiner Arbeit gemacht habe, war das Bodybuilding. Ich war seit Corona nicht mal mehr zu Skifahren. Natürlich muss ich mich hier nicht rechtfertigen, aber ich finde, dass ich dann ruhig mal etwas mehr ausgeben darf und noch ein Display kaufen kann oder einen weiteren Stromsensor.

OP #7649841
Lesenswert?

Jetzt wieder zurück zum Thema. Gestern habe ich mir noch das Messverfahren von Kübi, zur Messung von Induktivitäten angeschaut. Logarithmusrechnung hatte ich nicht in der Schule. Da muss ich mich noch einlesen. Aber das ist auch gar nicht der Punkt, es bestätigt mir genau das, was ich selbst vor habe, das über den Strom zu messen. Also wird mein nächstes Thema ADC, Timer, Strommessung und das berechnen von Induktivitäten sein. Ich werde sicher etwas weniger schreiben, weil ich erstmal viel lesen muss und noch mehr ausprobieren muss. Damit dann hier auch wieder etwas Ruhe einkehrt. Und jetzt muss ich erstmal zum Training.

#7650005
Lesenswert?

Frank O. schrieb:

Das Lesen und die Informationsbeschaffung außen vor gelassen, bin ich seit Beginn des Projektes vielleicht etwas über zehn Stunden da dran.

Dann bist Du ein Effizienzwunder - ich habe hier schon sicherlich mehr als 100h investiert. Allein das Schreiben der vielen Posts frisst schon sehr viel Zeit.

Das Display hat davon, zugegebenermaßen ungefähr 2 Stunden gebraucht.

... mich ca. 8-10h.

Aber es macht mir Spaß und ich habe seit Februar auch bestimmt, mit Labornetzgerät und Oszilloskop (das Owon) für dieses Hobby 1000 oder mehr Euro ausgegeben. Es ist nämlich das, was ich machen werde, wenn ich vielleicht doch bald nicht mehr kann und im besten Fall werde ich das als Rentner in ein paar Jahren viel intensiver ausüben, dieses Hobby.

Na das ist doch was, worauf Du Dich freuen kannst.

Ich bin mir sicher, dass es den einen oder anderen nervt, dass da jemand ist, der so gar keine Ahnung hat, aber so viel mehr für sein Hobby ausgibt, wie sie es selbst vielleicht nicht können.

Ist ja Dein hart verdientest Geld. Und auch ich darf gar nicht daran denken, wieviel Geld ich schon für Elektronik/Bauteile ausgegeben habe, die ich am Ende dann doch nicht verbaut/eingesetzt habe.

Das einzige was ich sonst neben meiner Arbeit gemacht habe, war das Bodybuilding. Ich war seit Corona nicht mal mehr zu Skifahren.

Du Umwelt dankt es Dir. Hier ein schönes Video von Sven Plöger dazu: https://www.youtube.com/watch?v=sA8Wz_loTf4

Natürlich muss ich mich hier nicht rechtfertigen, aber ich finde, dass ich dann ruhig mal etwas mehr ausgeben darf und noch ein Display kaufen kann oder einen weiteren Stromsensor.

Daran wird die Welt nicht zugrunde gehen - übertreiben sollten wir's mit dem "Horten" natürlich auch nicht. Wenn nicht das "Haben-Wollen" immer so stark wäre :-)

Viele Grüße

Igel1

#7650011
Lesenswert?

Frank O. schrieb:

Jetzt wieder zurück zum Thema.

Gute Idee ...

Gestern habe ich mir noch das Messverfahren von Kübi, zur Messung von Induktivitäten angeschaut.

Och Frank - bitte verlinke doch mal Deine Quellen (!). Ich kenne Hr. Kübi nicht - googeln brachte mich auch nicht zu ihm.

Logarithmusrechnung hatte ich nicht in der Schule. Da muss ich mich noch einlesen. Aber das ist auch gar nicht der Punkt, es bestätigt mir genau das, was ich selbst vor habe, das über den Strom zu messen.

Ja schon - aber wie genau willst Du das über den Strom messen? Beschreibe bitte einmal genau das Verfahren, das Dir vorschwebt oder - noch besser - sende einen Link, wo dieses Verfahren genau beschrieben wird - dann können wir weiterdiskutieren, ansonsten wird das hier wilde Spekulation.

Ich spekuliere z.B., dass Du über die Zeit und Anstieg des Stroms bei vorgegebener Spannung die Induktivität bestimmen möchtest:

Also wird mein nächstes Thema ADC, Timer, Strommessung und das berechnen von Induktivitäten sein.

Prima, da freue ich mich drauf.

Ich werde sicher etwas weniger schreiben, weil ich erstmal viel lesen muss und noch mehr ausprobieren muss.

Vermutlich wirst Du Dich etwas mit den Lade-/Entladekurven von Kondensatoren - und noch mehr - von Spulen beschäftigen wollen.

Wenn Du keine Potenzrechnung (und das Gegenteil davon, nämlich den Logarithmus) in der Schule hattest, so wirst Du Dir das vorab erst einmal draufschaufeln müssen. Das ist wirklich essentiell (und macht zudem noch Spaß, wenn man es dann endlich richtig verstanden hat).

Wenn Du Literatur oder Link-Empfehlungen dazu haben möchtest, sag' Bescheid - ich suche nämlich auch für mich bzw. meine Robotics AG immer Quellen, die solche Sachverhalte didaktisch besonders gut rüberbringen.

Damit dann hier auch wieder etwas Ruhe einkehrt. Und jetzt muss ich erstmal zum Training.

Dann tu mal was für die Muckis :-)

Viele Grüße

Igel1

OP #7650167
Lesenswert?

Andreas S. schrieb:

Allein das Schreiben der vielen Posts frisst schon sehr viel Zeit.

Die habe ich nicht mitgezählt, sondern nur die Schaltung von Peter bauen, das Probieren verschiedener Sachen und die Progammiererei. Ich meinte wirklich nur die reine Arbeit am Projekt.

Andreas S. schrieb:

Und auch ich darf gar nicht daran denken, wieviel Geld ich schon für Elektronik/Bauteile ausgegeben habe, die ich am Ende dann doch nicht verbaut/eingesetzt habe.

Da wäre der sündhaft teure J-Link (zumindest war der damals sehr teuer), den ich noch nie benutzt habe. Bestimmte Bauteile reichen für zwei oder drei Leben. Aber da gibt es hier bestimmt mehrere, die das ähnlich haben.

Andreas S. schrieb:

Du Umwelt dankt es Dir. Hier ein schönes Video von Sven Plöger dazu: https://www.youtube.com/watch?v=sA8Wz_loTf4

Den habe ich schon gesehen. Was die für eine Energie verbraten, mit den Schneekanonen, das habe ich immer selbst gesehen. Man darf aber nicht dabei vergessen, bevor die Touristik dort hin kam, waren die Menschen dort bettelarm und hatte selbst kaum zum Essen. Das künstlich hoch zu halten, das halte ich auch für falsch. Um es mit James Brown zu sagen. How will you stop a runaway train?

Andreas S. schrieb:

Daran wird die Welt nicht zugrunde gehen - übertreiben sollten wir's mit dem "Horten" natürlich auch nicht.

Man kann ja leider nie voraussehen was alles passiert. Wäre das mit Richard nicht passiert, gäbe es diesen Beitrag nicht und selbst die größeren Bestände wären weniger als die Hälfte. Denn dann wäre ich viel weiter. Wenn du extrapolierst wo ich heute wäre, wenn ich die 10 Jahre genutzt hätte. Aber zu unserem Bisschen, das wir vielleicht zu viel haben, sehe ich auch heute noch in der Industrie, wie fertige Teile weggeworfen werden. Nur das Wenige, das ich mit eigenen Augen gesehen habe, würde auf meinen überflüssigen Verbrauch wohl mehr als 100 Leben ausmachen.

Andreas S. schrieb:

Och Frank - bitte verlinke doch mal Deine Quellen (!). Ich kenne Hr. Kübi nicht - googeln brachte mich auch nicht zu ihm.

Der Transistortester sagt dir doch auch etwas. K-H. Kübbler (liebevoll hier oft Kübi genannt). https://www.mikrocontroller.net/attachment/200645/ttester_ger109k.pdf War hier schon verlinkt. Von Rainer. Danke dafür!

Andreas S. schrieb:

Ich spekuliere z.B., dass Du über die Zeit und Anstieg des Stroms bei vorgegebener Spannung die Induktivität bestimmen möchtest:

Da habe ich noch nichts gefunden was mir weiter hilft. Das muss ich evtl. noch entwickeln. Ich will auch gar nicht die Induktivität in diesem Sinne messen, sondern nur feststellen, ob mit der Induktivität etwas nicht stimmt. Also, ob ein Kurzschluss oder Windungsschluss vorliegt. Ideen habe ich schon, aber die will ich hier noch nicht sagen. Wegen der Unkenrufer. Dazu werde ich noch viele Tests machen. Der Grundgedanke ist, da eine Induktivität den Strom "bremst", müsste man das über den Strom/Zeitverlauf sehen können. Gerne über PWM, auch wenn überall steht, dass man Induktivitäten damit nicht messen kann. Was ich aber sicher messen kann, ist der Spannungsabfall. In meinem Fall hätte ich damit schon den Fehler gefunden.

#7650190
Lesenswert?

Frank O. schrieb:

Da habe ich noch nichts gefunden was mir weiter hilft. Das muss ich evtl. noch entwickeln.

Lies Dir das evtl. einmal durch: https://www.leifiphysik.de/elektrizitaetslehre/elektromagnetische-induktion/grundwissen/ein-und-ausschalten-von-rl-kreisen

Das hilft, das Prinzip der L-Messung über den Stromanstieg zu verstehen und die Formel zu kennen.

Viele Grüße

Igel1

OP #7650314
Lesenswert?

Andreas S. schrieb:

Das hilft, das Prinzip der L-Messung über den Stromanstieg zu verstehen und die Formel zu kennen.

Super! Das beantwortet meine Fragen, die mir im Kopf rum schweben schon fast vollständig. Ich hatte nämlich vor, den Fet für den großen Magneten kurz anzustellen und dann den maximalen Strom zu vergleichen. Wäre natürlich besser, wenn ich das vorher berechnen kann, aber dafür gibt es ja auch LtSpice. Wenn also der Strom in dieser Zeit (die muss ich noch herausfinden, da ich nicht bis zum Auslösen der Sicherung kommen möchte) mehr als 50% des zu erwartenden Stromes ansteigt, dann kommt die Meldung: "1Y45" ist defekt. Beim kleinen Magneten (der Strom liegt unter 1A), lass ich den Strom bis zum Anschlag ansteigen, wobei der Anschlag ein entsprechender Widerstand ist.

Andreas S. schrieb:

Dann tu mal was für die Muckis :-)

Dringend nötig, ich habe in der Krankheit 3 Kilo Gewicht verloren, da ich nicht so viel essen konnte. Die meisten freuen sich, wenn sie Gewicht verlieren. Weißt du was der Bodybuilder antwortet, wenn du ihn fragst wie viel er wiegt?

OP #7650317
Lesenswert?

Andreas S. schrieb:

Das hilft, das Prinzip der L-Messung über den Stromanstieg zu verstehen und die Formel zu kennen.

Super! Das beantwortet meine Fragen, die mir im Kopf rum schweben schon fast vollständig. Ich hatte nämlich vor, den Fet für den großen Magneten kurz anzustellen und dann den maximalen Strom zu vergleichen. Wäre natürlich besser, wenn ich das vorher berechnen kann, aber dafür gibt es ja auch LtSpice. Wenn also der Strom in dieser Zeit (die muss ich noch herausfinden, da ich nicht bis zum Auslösen der Sicherung kommen möchte) mehr als 50% des zu erwartenden Stromes ansteigt, dann kommt die Meldung: "1Y45" ist defekt. Beim kleinen Magneten (der Strom liegt unter 1A), lass ich den Strom bis zum Anschlag ansteigen, wobei der Anschlag ein entsprechender Widerstand ist.

Andreas S. schrieb:

Dann tu mal was für die Muckis :-)

Dringend nötig, ich habe in der Krankheit 3 Kilo Gewicht verloren, da ich nicht so viel essen konnte. Die meisten freuen sich, wenn sie Gewicht verlieren. Weißt du was der Bodybuilder antwortet, wenn du ihn fragst wie viel er wiegt? So viel kann ich dir verraten, er antwortet das gleiche, wenn du fragst wie viel Gewicht er auf der Hantel hat.

#7650438
Lesenswert?

Huch - ich glaube, ich habe heute Abend doch einen über den Durst getrunken - ich sehe plötzlich Beiträge doppelt - hicks ...

Ich antworte trotzdem nur 1x, wenn das okay ist :-)

Frank O. schrieb:

Andreas S. schrieb:

Das hilft, das Prinzip der L-Messung über den Stromanstieg zu verstehen und die Formel zu kennen.

Super!

Gelle, ist ganz gut dargestellt auf der Seite.

Das beantwortet meine Fragen, die mir im Kopf rum schweben schon fast vollständig. Ich hatte nämlich vor, den Fet für den großen Magneten kurz anzustellen und dann den maximalen Strom zu vergleichen.

Yep - der Strom wird genauso ansteigen, wie in den Kennlinien meiner verlinkten Seite aufgezeigt.

Wäre natürlich besser, wenn ich das vorher berechnen kann, aber dafür gibt es ja auch LtSpice. Wenn also der Strom in dieser Zeit (die muss ich noch herausfinden, da ich nicht bis zum Auslösen der Sicherung kommen möchte) mehr als 50% des zu erwartenden Stromes ansteigt, dann kommt die Meldung: "1Y45" ist defekt.

Klingt plausibel. Du solltest Dir dann allerdings noch überlegen, wie der FET einen deutlich erhöhten Stromanstieg überlebt (eben den besagten Kurzschlussfall).

Der umgekehrte Fall gilt allerdings auch: nämlich wenn der Stromanstieg in der Zeit deutlich unter Deinen Erwartungen bleibt - auch dann wird der Magnet oder die Zuleitungen zum Magneten irgendwo fratze sein.

Besonders einfach wird es, wenn Du die Zeit tau misst, bis der Strom auf 63% von I0 angestiegen ist (z.B. mit dem Komparator des ATmega). Dann gilt nämlich:

$$\tau_{63\%} = L/R \Rightarrow L = \tau_{63\%} * R \\ \tau_{63\%} : ~~~~~ \text{Zeit, in der} I \text{auf 63% von} I_{0} \text{ansteigt} \\ I_{0} = U/R = U/(R_{vorwiderstand} + R_{spule})$$

Einziges Problem: Änderungen von R_vorwiderstand (z.B. in den Zuleitungen oder in den Verbindungen der Zuleitungen zur Spule) wirken sich natürlich massiv auf die Formel und somit auf die gemessene Zeit tau aus.

Beim kleinen Magneten (der Strom liegt unter 1A), lass ich den Strom bis zum Anschlag ansteigen, wobei der Anschlag ein entsprechender Widerstand ist.

Andreas S. schrieb:

Dann tu mal was für die Muckis :-)

Dringend nötig, ich habe in der Krankheit 3 Kilo Gewicht verloren, da ich nicht so viel essen konnte. Die meisten freuen sich, wenn sie Gewicht verlieren. Weißt du was der Bodybuilder antwortet, wenn du ihn fragst wie viel er wiegt? So viel kann ich dir verraten, er antwortet das gleiche, wenn du fragst wie viel Gewicht er auf der Hantel hat.

??? jetzt bin ich echt überfordert/überfragt ???

Viele Grüße

Igel1

OP #7650459
Lesenswert?

So Andreas, ich habe mal ein wenig mit LTSpice simuliert. Sicher sind die Einstellungen nicht ganz richtig. Beim Einschalten des Mosfets gehen die Ampere ins Minus. Ich habe aber auch einfach einen 100V-Type genommen. Da muss ich noch einmal das Tutorial lesen. Der Transitortester eignet sich nicht so gut für die Messung des Magneten. Ich habe dann noch mit meinem LCR-Messgerät gemessen (Peaktech 2170) damit komme ich dann auf 24,09mH/1,354R, bei 1kHz. Der TT zeigt leider immer unterschiedliche Werte an und um die 55mH. Denke das Peaktech ist mit den Kelvinklemmen da doch die bessere Wahl. Dennoch kann man das gut über den Strom messen. Wenn ich den Fet für 3ms einschalte, dann messe ich ~6A, bei einem intakten Magneten kommen. Den Maximalstrom erreicht der Magnet nach ~75ms, mit etwas über 59A. Bei einem Kurzschluss messe ich nach 3ms aber schon ~20A Wenn die Simulation einigermaßen stimmt.

Auch wenn der Strom vielleicht bei einem Windungsschluss nicht ganz so schnell und hoch ansteigen würde, müsste sich das aber auch deutlich von einem intakten Magneten zu unterscheiden sein. Mein Plan ist daher, den Fet einschalten, Strom messen und bei 20A den Fet abschalten. Die Zeit, die für das Erreichen der 20A gebraucht wird, mit der Vorgabe zu vergleichen und danach die Meldung, ob der Magnet defekt ist oder aber, ob es weiter im Programm geht.

LtSpice ist echt ein tolles Programm. Da lohnt es sich, sich dort einzuarbeiten.

Mist schon fast 2 Uhr. Ich muss ins Bett.

OP #7650491
Lesenswert?

Frank O. schrieb:

24,09mH/1,354R, bei 1kHz.

Mit Brille, Licht und morgens sieht man besser. 1.345kHz nicht Ohm, das Gerät war auf "Auto" eingestellt. Nun bin ich aber etwas unsicher bei welcher Frequenz man messen sollte. bei 100Hz und 120Hz komme ich in die Nähe der Werte, die auch der TT misst. Ich würde mich zwar eher auf den Peaktech verlassen, aber etwas stutzig macht mich das schon. Bei dem Sensor komme ich mit dem Peaktech auch auf andere Werte. 5.9mH ohne Kern und 19.5mH mit Kern. Allerdings misst das Peaktech den unteren Wert mit einer Frequenz von ~800Hz ohne Kern und mit Kern 1957Hz. Vielleicht kann mal jemand dazu etwas sagen? Offensichtlich (hab gerade gelesen) machen die LCR Messgeräte das alle so. bisher habe ich das noch nie anders benutzt, als auf "Auto". Auch neue Batterien haben das Ergebnis nicht beeinflusst.

#7650831
Lesenswert?

Frank O. schrieb:

So Andreas, ich habe mal ein wenig mit LTSpice simuliert. Sicher sind die Einstellungen nicht ganz richtig. Beim Einschalten des Mosfets gehen die Ampere ins Minus. Ich habe aber auch einfach einen 100V-Type genommen. Da muss ich noch einmal das Tutorial lesen.

Ohne LTspice-Datei kann selbst meine Glaskugel hier nicht weiterhelfen. Die sagt mir nur, dass sich die Strom-Zählrichtung von LTspice an Transistorbeinchen manchmal etwas von dem unterscheidet, was man erwarten würde und man dann tatsächlich negative Ströme angezeigt bekommt. Und? Hat die Glaskugel wieder recht?

Der Transitortester eignet sich nicht so gut für die Messung des Magneten. Ich habe dann noch mit meinem LCR-Messgerät gemessen (Peaktech 2170) damit komme ich dann auf 24,09mH/1,354R, bei 1kHz. Der TT zeigt leider immer unterschiedliche Werte an und um die 55mH. Denke das Peaktech ist mit den Kelvinklemmen da doch die bessere Wahl.

Nicht unbedingt - ich glaube tatsächlich, dass beide Messgeräte recht haben.

Die Induktivität einer Spule kann tatsächlich frequenzabhängig sein: Beitrag "Ist die Induktivität frequenzabhängig?" https://de.wikipedia.org/wiki/Magnetkern https://de.wikipedia.org/wiki/Magnetische_Permeabilit%C3%A4t#Abh%C3%A4ngigkeit_von_der_Frequenz:_Komplexe_Permeabilit%C3%A4t,_Permeabilit%C3%A4tszahl

Allerdings fehlt mir die praktische Erfahrung, um einschätzen zu können, ob dies bei einer Frequenzsteigerung von 100Hz -> 1,3 KHz tatsächlich schon zu einer Halbierung der Induktivität führen kann.

Hört sich für mich im ersten Moment aber auch nicht völlig unrealistisch an - insbesondere da ja Deine große Spule auf(?) oder in(?) der Achse sitzt und so (wie ich Dich verstanden hatte) einen puren Eisenkern hat.

Dennoch kann man das gut über den Strom messen. Wenn ich den Fet für 3ms einschalte, dann messe ich ~6A,

Du meinst, Du simulierst ~6A, oder?

bei einem intakten Magneten kommen. Den Maximalstrom erreicht der Magnet nach ~75ms, mit etwas über 59A. Bei einem Kurzschluss messe ich nach 3ms aber schon ~20A Wenn die Simulation einigermaßen stimmt.

Ohne die Simulation zu sehen, kann ich nichts dazu sagen.

Auch wenn der Strom vielleicht bei einem Windungsschluss nicht ganz so schnell und hoch ansteigen würde,

Eher umgekehrt: er steigt noch schneller an, weil Dir ja Teile der Windungen Deiner Spule durch den Kurzschluss verloren gehen und somit die Spule eine kleinere Induktivität hat, was wiederum zu einem schnelleren Stromanstieg führt.

müsste sich das aber auch deutlich von einem intakten Magneten zu unterscheiden sein.

Wäre auch meine Überlegung. Aber hier wären Starkstromleute sicherlich die besseren Berater.

Mein Plan ist daher, den Fet einschalten, Strom messen und bei 20A den Fet abschalten. Die Zeit, die für das Erreichen der 20A gebraucht wird, mit der Vorgabe zu vergleichen und danach die Meldung, ob der Magnet defekt ist oder aber, ob es weiter im Programm geht.

Scheint mir stimmig, aber ich bin in einigen Punkten unsicher, ob das wirklich reproduzierbare, plausible Ergebnisse liefert. Insbesondere spielt der Schleifenwiderstand bei so einer Konstellation eine erhebliche Rolle - bitte denke an tau = L/R.

Wenn also Dein Schleifenwiderstand wg. einer nicht perfekt angezogenen Klemme vielleicht statt 0,1 Ohm mal 0,2 Ohm beträgt, so hast Du direkt 100% Abweichung bei der tau-Messung, was Dich dazu verleiten könnte, die Spule als "defekt" zu markieren. Wenn Du also den Vorwiderstand nicht hinreichend genau festlegen kannst (z.B. indem Du einen 100 Ohm Widerstand zusätzlich vorschaltest und dann die 0,1 Ohm Differenz keine Geige mehr spielt), so wird das mit der Zeitmessung m.M.n. ein Zufallsspiel werden.

Da ist so eine Messung per Schwingkreis m.M.n. die bessere Wahl - zumal bei einem Reihenschwingkreis der Widerstand in der Formel der zur Berechnung der Resonanzfrequenz nicht auftaucht (im Gegensatz zu dem von uns verwendeten Parallelschwingkreis).

LtSpice ist echt ein tolles Programm. Da lohnt es sich, sich dort einzuarbeiten.

Sach' ich ja ...

Mist schon fast 2 Uhr. Ich muss ins Bett.

Yep - wir schlagen uns hier die Nächte ganz schön um die Ohren - nix gut für Gesundheit. Aber die Technik-Leidenschaft interessiert das leider nicht, was die Gesundheit dazu meint ...

Viele Grüße

Igel1

OP #7651014
Lesenswert?

Frank O. schrieb:

1.345kHz nicht Ohm, das Gerät war auf "Auto" eingestellt.

Wieder falsch. Die 1.345 sind der "Qualitätsfaktor". Was auch immer das für die Bewertung des Bauteiles bedeutet. Entschuldigung an alle Leser. Das war heute Morgen, vor der Arbeit; also unter Zeitdruck.

Jetzt habe ich das Gerät kalibriert und nochmal gemessen. Etwas verstehe ich nicht so ganz. Im "Auto Rs" Modus wird ein Widerstand von 111.65 Ohm angezeigt. Ist das der Gesamtwiderstand, der sich durch den ohmschen Widerstand + Blindwiderstand ergibt? In der DCR-Messung zeigt das Gerät 2.24 Ohm an. Das zeigt auch das Metrahit oder mein Tischmultimeter an. Leider steht nichts Näheres im winzig kleinen Handbuch dazu.

OP #7651054
Lesenswert?

Andreas S. schrieb:

Und? Hat die Glaskugel wieder recht?

Volle Punktzahl. Ich hoffe das klappt mit der LtSpice-Datei. Geht beim Einschalten des Fet ganz kurz in den negativen Bereich. Allerdings hatte ich auch keinen Anspruch auf absolute Genauigkeit, da ich nur sehen wollte, ob überhaupt eine Messung über den Strom möglich ist und wie das aussehen würde. Und ob /ich/ damit arbeiten kann.

Andreas S. schrieb:

Eher umgekehrt: er steigt noch schneller an,

Klar! Völlig verkehrt ausgedrückt.

Andreas S. schrieb:

Scheint mir stimmig, aber ich bin in einigen Punkten unsicher, ob das wirklich reproduzierbare, plausible Ergebnisse liefert.

Habe ich heute drüber nachgedacht. Den Fet für eine Kurze Zeit einschalten (ich weiß, die Umladung des Gates und die Anstiegs und Abfallzeiten vom Fet kommen hinzu), und dann wieder ausschalten und den gemessenen Strom vergleichen. Das sollte mit den 18-Bit-ADC machbar sein. Muss ich alles noch ausgiebig testen.

Andreas S. schrieb:

so wird das mit der Zeitmessung m.M.n. ein Zufallsspiel werden.

Deshalb jetzt feste Zeit und den Spitzenstrom vergleichen. Alles in meinem Bereich, auch die Sicherheitsabschaltungen funktionieren irgendwie über den Strom. Da gibt es keine zusätzlichen Messkreise. Das wird alles in Software erledigt. Wenn das alle hinbekommen, die Ladegeräte bauen und Antriebstechnik, werde ich das auch können. Wenn vielleicht auch nicht so schnell.

Andreas S. schrieb:

nix gut für Gesundheit.

Ich glaube durchwachte Nächte sind da mein kleinstes Problem. Zum Glück bin ich heute nicht mehr ganz so exzessiv. Da gab es ganz andere Zeiten.

So Andreas, jetzt habe ich aber eine ganz einfache Frage, die dir und den meisten hier sicher banal vorkommen mag. Du hast so eine schöne Spule in deinen Videos. Ich scheitere schon am Suchbegriff. Auch konnte ich nichts finden, wie man die Spulen unterscheidet. Drosselspule, da kommen zig Bilder. Ich würde mir gerne eine Spule, mit den Henry-Werten des Magneten bestellen. Natürlich für weniger Strom und Spannung, sodass ich das hier im kleinen Format testen kann. Wo bekomme ich das?

Angehängte Dateien:
#7651229
Lesenswert?

Die LTspice-Schaltung ist schon ganz gut - Du wirst langsam warm damit. Nur beim Gate-Pulse hat Du die Dinge vertauscht (bewusst?):

Statt das Gate kurz einzuschalten hast Du es dauerhaft durchgeschaltet und nur einmal kurz abgeschaltet - also genau umgekehrt, wie Du es eigentlich beschrieben hattest.

Ich habe daher jetzt alles etwas angepasst und ins Gegenteil verdreht - sprich: den MOSFET 3ms durchgeschaltet.

Außerdem habe ich noch eine Schottky-Diode + Widerstand zum "Löschen" des Induktionsstromes hinzugefügt und einen MOSFET ausgesucht, der die richtige Spannungsfestigkeit hat.

  • grün: Strom durch die Spule
  • blau: Spannung an Drain des MOSFETS

War's das, was Du testen wolltest?

Viele Grüße

Igel1

#7651246
Lesenswert?

Frank O. schrieb:

Andreas S. schrieb:

Scheint mir stimmig, aber ich bin in einigen Punkten unsicher, ob das wirklich reproduzierbare, plausible Ergebnisse liefert.

Habe ich heute drüber nachgedacht. Den Fet für eine Kurze Zeit einschalten (ich weiß, die Umladung des Gates und die Anstiegs und Abfallzeiten vom Fet kommen hinzu), und dann wieder ausschalten und den gemessenen Strom vergleichen. Das sollte mit den 18-Bit-ADC machbar sein. Muss ich alles noch ausgiebig testen.

Wie gesagt: ich meine, dass das andere Verfahren einfacher (und sicherer) ist:

  • MOSFET einschalten und per Komparator des Mikrocontrollers an einem Shunt prüfen, wann der Strom 63% seines Maximallevels erreicht. Genau diese Stromanstiegszeit mit dem MC messen und dann mit der Formel tau = L/R die Induktivität berechnen.

Wenn Dir 63% zu viel Strom sind, kannst Du das Level auch niedriger setzen - mit den Formeln aus der von mir zitierten Webseite kannst Du dann trotzdem auf L zurückrechnen - ist halt dann etwas komplizierter - immer vorausgesetzt, Du kennst R.

Andreas S. schrieb:

so wird das mit der Zeitmessung m.M.n. ein Zufallsspiel werden.

Deshalb jetzt feste Zeit und den Spitzenstrom vergleichen.

Neee - das Problem bleibt das gleiche, nur wird dann halt der Spitzenstrom mit dem Widerstand variieren statt vormals die Zeit.

Alles in meinem Bereich, auch die Sicherheitsabschaltungen funktionieren irgendwie über den Strom. Da gibt es keine zusätzlichen Messkreise. Das wird alles in Software erledigt. Wenn das alle hinbekommen, die Ladegeräte bauen und Antriebstechnik, werde ich das auch können. Wenn vielleicht auch nicht so schnell.

Vergiss nicht: da werden auch Meister ihres Fachs dahinterstecken und wir sind nur Freizeitkapitäne.

Andreas S. schrieb:

nix gut für Gesundheit.

Ich glaube durchwachte Nächte sind da mein kleinstes Problem. Zum Glück bin ich heute nicht mehr ganz so exzessiv. Da gab es ganz andere Zeiten.

So Andreas, jetzt habe ich aber eine ganz einfache Frage, die dir und den meisten hier sicher banal vorkommen mag. Du hast so eine schöne Spule in deinen Videos. Ich scheitere schon am Suchbegriff. Auch konnte ich nichts finden, wie man die Spulen unterscheidet. Drosselspule, da kommen zig Bilder. Ich würde mir gerne eine Spule, mit den Henry-Werten des Magneten bestellen. Natürlich für weniger Strom und Spannung, sodass ich das hier im kleinen Format testen kann. Wo bekomme ich das?

Nimm doch einfach Deine Sensorspule und teste damit "im Kleinen" ein wenig herum. Die Strom-Anstiegszeiten solltest Du auch damit ausprobieren können.

Ansonsten: es dürfte schwierig werden, genau Deine große Spule durch ein äquivalentes Bauteil zu ersetzen, denn wie Du selbst festgestellt hast, ändert sich deren Induktivität mit der Frequenz - das ist kaum nachzustellen.

Ansonsten: einfach die große Spule mit dem Transistortester durchmessen und eine Spule mit ähnlicher Henry-Zahl und R <= R_spule bestellen - auf die max. Strombelastbarkeit achten.

Ansonsten: hier lesen Beitrag "Drossel, Speicherspule, Induktivitäten was ist der unterschied?"

Viele Grüße

Igel1

OP #7651251
Lesenswert?

Andreas S. schrieb:

Du die Dinge vertauscht (bewusst?):

Ne, es war spät und ich habe einfach rum probiert.

Andreas S. schrieb:

MOSFET ausgesucht, der die richtige Spannungsfestigkeit hat.

Ich hatte einen 100V-Typen dort ausgesucht oder nicht?

Kann man überhaupt so kurz den Pin einschalten? Wenn ich den Pin für 100ns einschalte, bin ich bei ungefähr 40A Kurzschlussstrom. 100ns sind 10MHz. Kann man das so kurz einschalten? Ich muss das einmal ausprobieren und den Pin HIGH schalten und sofort wieder LOW, dann mal messen wie lange der on ist.

Lieben Dank Andreas, für die richtige Simulation!

#7651263
Lesenswert?

Frank O. schrieb:

Andreas S. schrieb:

Du die Dinge vertauscht (bewusst?):

Ne, es war spät und ich habe einfach rum probiert.

... und mir dann die Kraut und Rüben LTspice-Datei zugesandt ... na danke ... grummel.

Andreas S. schrieb:

MOSFET ausgesucht, der die richtige Spannungsfestigkeit hat.

Ich hatte einen 100V-Typen dort ausgesucht oder nicht?

Yep - und 100V sind in meiner Schaltung tatsächlich zu wenig (bei Deiner Schaltung hätte auch 100kV-MOSFET nicht ausgereicht :-) - schau Dir die Simulation einmal ganz genau an und versuche zu verstehen, warum die Spannung am MOSFET über 100V ansteigt.

Kann man überhaupt so kurz den Pin einschalten? Wenn ich den Pin für 100ns einschalte, bin ich bei ungefähr 40A Kurzschlussstrom. 100ns sind 10MHz.

Wo nimmst Du diese Zahlen her? Ich habe mit Deinen Werten simuliert und komme bei 3ms (nicht ns!) Einschaltzeit auf Ströme unter 10A.

Kann man das so kurz einschalten?

Profis schon, wir nicht. Ich bin dann jedenfalls raus.

Ich muss das einmal ausprobieren und den Pin HIGH schalten und sofort wieder LOW, dann mal messen wie lange der on ist.

Hmmm - verstehe nicht ganz, was Du meinst, aber Du wirst mir ja das Ergebnis zeigen, vielleicht verstehe ich es dann.

Lieben Dank Andreas, für die richtige Simulation!

You are welcome.

OP #7651266
Lesenswert?

Andreas S. schrieb:

Wo nimmst Du diese Zahlen her? Ich habe mit Deinen Werten simuliert und komme bei 3ms (nicht ns!) Einschaltzeit auf Ströme unter 10A.

Wenn ich einen Kurzschluss in der Induktivität erzeuge (die Induktivität auf einen kleinen Wert einstelle)

Andreas S. schrieb:

Hmmm - verstehe nicht ganz, was Du meinst, aber Du wirst mir ja das Ergebnis zeigen, vielleicht verstehe ich es dann.

Im Moment benutze ich doch noch Arduino.

1
void loop() {
2
  digitalWrite(13, HIGH); // Setzt den Digitalpin 13 auf HIGH = "Ein"
3
  delay(1000);            // Wartet eine Sekunde
4
  digitalWrite(13, LOW);  // Setzt den Digitalpin 13 auf LOW = "Aus"
5
  delay(1000);            // Wartet eine Sekunde

Nur dass ich sofort wieder LOW schalten will. Das werde ich einmal am Oszi anschauen. Mal sehen, ob ich das darstellen kann. Wenn ich tatsächlich einen Kurzschluss habe, fliegt bei 50A die Sicherung. Ob es den Fet weg haut, werde ich beim ersten Test sehen. Ich werde mal "ganz dünne Leitungen" benutzen, um den Kurzschluss zu simulieren.

Andreas S. schrieb:

und mir dann die Kraut und Rüben LTspice-Datei zugesandt ... na danke ... grummel.

Tut mir leid! Aber wenn ich alles erstmal durchlesen muss, bevor ich einen Handschlag tue, dann komme ich nicht vorwärts. Und bei LtSpice gibt es zumindest keinen Rauch.

#7651384
Lesenswert?

Frank O. schrieb:

Andreas S. schrieb:

Wo nimmst Du diese Zahlen her? Ich habe mit Deinen Werten simuliert und komme bei 3ms (nicht ns!) Einschaltzeit auf Ströme unter 10A.

Wenn ich einen Kurzschluss in der Induktivität erzeuge (die Induktivität auf einen kleinen Wert einstelle)

Ah sooo - na dann claro. Könntest Du nicht bei Deinen Tests einen 2-10 Ohm Widerstand vor Deinen MOSFET schalten? Der würde dann auch im Falle eines Kurzschluss überleben. Und die Anstiegszeit mit Spule wäre dann auch etwas langsamer und könnte besser vermessen werden. Außerdem würden minimale Änderungen des Schleifenwiderstandes (z.B. durch nicht bombenfest festgezogene Klemmen) Dir die Messung nicht verhageln.

Andreas S. schrieb:

Hmmm - verstehe nicht ganz, was Du meinst, aber Du wirst mir ja das Ergebnis zeigen, vielleicht verstehe ich es dann.

Im Moment benutze ich doch noch Arduino.

1
> void loop() {
2
>   digitalWrite(13, HIGH); // Setzt den Digitalpin 13 auf HIGH = "Ein"
3
>   delay(1000);            // Wartet eine Sekunde
4
>   digitalWrite(13, LOW);  // Setzt den Digitalpin 13 auf LOW = "Aus"
5
>   delay(1000);            // Wartet eine Sekunde
6
>

Nur dass ich sofort wieder LOW schalten will. Das werde ich einmal am Oszi anschauen. Mal sehen, ob ich das darstellen kann.

Ja klar, kannst Du. Du kannst es auch ausrechnen, denn jeder Maschinenbefehl dauert eine definierte Anzahl von Zyklen.

Wenn ich tatsächlich einen Kurzschluss habe, fliegt bei 50A die Sicherung. Ob es den Fet weg haut, werde ich beim ersten Test sehen.

Wirst Du evtl. nicht sehen, weil der FET auch "vorgeschädigt" werden kann - als nicht sofort kaputt geht.

Ich werde mal "ganz dünne Leitungen" benutzen, um den Kurzschluss zu simulieren.

Aha, soso - wie gesagt: ich bin kein Starkstrommann und habe wenig Ahnung in diesen Stromstärken.

Andreas S. schrieb:

und mir dann die Kraut und Rüben LTspice-Datei zugesandt ... na danke ... grummel.

Tut mir leid! Aber wenn ich alles erstmal durchlesen muss, bevor ich einen Handschlag tue, dann komme ich nicht vorwärts. Und bei LtSpice gibt es zumindest keinen Rauch.

Ja, stimmt, aber man muss sich auch bei LTspice (und sogar gerade dort) genügend Zeit nehmen um zu verstehen/zu interpretieren, warum die Kurven genau so verlaufen, wie sie halt verlaufen: z.B. warum Du über 100V am MOSFET bekommen wirst oder warum in Deiner Simulation >100kV am MOSFET ankam, oder, oder, oder ...

Viele Grüße

Igel1

OP #7651670
Lesenswert?

Andreas S. schrieb:

Und die Anstiegszeit mit Spule wäre dann auch etwas langsamer und könnte besser vermessen werden. Außerdem würden minimale Änderungen des Schleifenwiderstandes (z.B. durch nicht bombenfest festgezogene Klemmen) Dir die Messung nicht verhageln.

Ungerne, denn dann müsste ich den Test "umleiten". Aber da steckt insgesamt noch ein Denkfehler zwischen Simulation und dem was passieren wird. Mist, habe gerade mit meinem Kollegen zusammen gearbeitet. Der sollte mir noch ein Schütz da lassen.

Andreas S. schrieb:

Ja klar, kannst Du. Du kannst es auch ausrechnen, denn jeder Maschinenbefehl dauert eine definierte Anzahl von Zyklen.

Ich habe noch etwas von 4 Takten im Kopf, aber ich weiß nicht mehr worauf sich die 4 Takte bezogen. Ich werde es einfach ausprobieren. Einmal als Kurzschluss. Da werde ich wohl eine kleine Batterie nehmen, um Ähnlichkeiten zur großen Batterie herzustellen. Aber zuerst mit dem Labornetzgerät. Dann über die Spule.

Andreas S. schrieb:

Aha, soso - wie gesagt: ich bin kein Starkstrommann und habe wenig Ahnung in diesen Stromstärken.

Verbrannte Kabel sind nicht so schlimm, als würde ich eine Batterie für ungefähr 10K in die Luft jagen. Kurzschlussstrom so ca. 30000A. Ich habe früher einmal zwei kleine Batterien (45Ah) abgeschossen, die sich gegenüberstanden und in Reihe waren. Konnte eine Woche kaum etwas hören. Früher hatten die Zellen noch Verbinder aus Blei. Natürlich nicht isoliert. Batteriewechsel mit Ketten wurde auch oft gemacht. Ich habe es noch nie selbst erlebt (kann ich auch gut drauf verzichten), aber oft genug die Resultate gesehen. Feine Arbeit; wenig Arbeit, aber viel Umsatz.

Andreas S. schrieb:

Ja, stimmt, aber man muss sich auch bei LTspice (und sogar gerade dort) genügend Zeit nehmen um zu verstehen/zu interpretieren, warum die Kurven genau so verlaufen, wie sie halt verlaufen: z.B. warum Du über 100V am MOSFET bekommen wirst oder warum in Deiner Simulation >100kV am MOSFET ankam, oder, oder, oder ...

Wenn ich das hier fertig habe, dann fange ich richtig von vorne an. Ich habe auch wieder richtig Bock auf die Tiny10. Assembler würde ich auch gerne noch lernen. Dann könnte ich hinterher deutlich mehr mit dem Tiny10 machen. Ich werde übrigens das jetzt alles auf den ATMega2560 übertragen. Die globalen Variablen (kann ich sicher später noch optimieren) fressen ihren Speicher auf. Dann kann ich den anderen Kempel (PedaOsc, Stromsensoren und Fets) auf ein Shield bauen. Hatte gestern noch ein wenig in der Referenz zur u8g2 gelesen. Da kann man auch Pins direkt ansprechen. Ich habe nirgends ein PDF mit der Referenz gesehen. Würde mir das gerne ausdrucken. Auch seitenweise etwas auf das Display zu übertragen, das kommt sowieso der Anwendung entgegen. Das muss ich in der Referenz noch genau lesen. Vielleicht reicht der Speicher dann doch so gerade. Globale Variablen müssen da auch nicht mehr viele sein. Ist halt ein Nachteil an Arduino. Die Unkenrufer haben schon recht. Wenn es anfängt richtig zur Sache zu gehen, kommst du damit schnell an die Grenzen.

#7651889
Lesenswert?

Anbei meine Schaltung zur Messung der Anstiegszeit. Kann man bestimmt noch deutlich optimieren, aber auf die Schnelle fiel mir nix Besseres ein (Schutzschaltung fehlt auch noch komplett):

  • blau: Gatespannung
  • rot: Stromverlauf an R1 (1 Ohm)
  • grün: Ausgangssignal OpAmp

Das Ausgangssignal des OpAmps kann man per Spannungsteiler an den Eingang des ATmega legen und dann quasi dasselbe Programm zur Pulslängenmessung verwenden wie zurvor beim Peda-Oszillator.

Viele Grüße

Igel1

Angehängte Dateien:
OP #7652041
Lesenswert?

Andreas S. schrieb:

Das Ausgangssignal des OpAmps kann man per Spannungsteiler an den Eingang des ATmega legen und dann quasi dasselbe Programm zur Pulslängenmessung verwenden wie zurvor beim Peda-Oszillator.

Moin Andreas! Erstmal danke für deine Arbeit!

Ich hatte zuletzt geschrieben, dass ich für eine definierte Zeit den Pin einschalten will und dann den Strom messen. Zuvor hatte ich auch schon einmal geschrieben, dass ich das am liebsten über einen Shunt machen möchte, weil im Grunde alle Ladegeräte, auch sehr moderne Ladegeräte, noch immer über einen Shunt messen. Die Teile sind gestern gekommen, Shunt hatte ich schon vorher. Was spricht aus deiner Sicht dagegen den Widerstand /im/ Strompfad zu haben? Messung starten Pin HIGH (evtl. eine Zeit dazwischen) Pin LOW Messwert in einer Variablen speichern.

Angehängte Dateien:
#7652072
Lesenswert?

Frank O. schrieb:

Hatte gestern noch ein wenig in der Referenz zur u8g2 gelesen. Da kann man auch Pins direkt ansprechen.

Wofür willst Du das verwenden? Mir fällt gerade kein Anwendungsfall ein. Ich bin eigentlich heilfroh, dass ich genau das - nämlich Pins einzeln ansprechen - nicht machen muss und dass Olivers Lib das für mich erledigt.

Ich habe nirgends ein PDF mit der Referenz gesehen. Würde mir das gerne ausdrucken.

Die Referenz findest Du ja im Wiki unter u8g2reference: https://github.com/olikraus/u8g2/wiki/u8g2reference

Oliver Kraus hat geschickterweise die gesamte Referenz auf einer Webseite in seinem Wiki abgelegt (mit Intra-Page-Links am Anfang der Seite). Das hat den Vorteil, dass Du genau das tun kannst, was Du machen möchtest - nämlich Dir die Referenz als PDF ausdrucken.

Voraussetzung: Du hast den Acrobat PDF Reader auf Deinem PC installiert (PDF-Browser-Plugins werden dann zumeist automatisch mitinstalliert).

Dann öffnest Du die Seite in Deinem Browser und versuchst sie auszudrucken - als Drucker verwendest Du dabei nicht Deinen "echten" Drucker, sondern wählst "Save as PDF". Und schwupps, schon kannst Du die u8g2reference-Seite als PDF-File "ausdrucken".

Die Seitenumbrüche sind dabei vielleicht nicht ganz so optimal gesetzt wie bei einem richtigen Buch, aber zum Offline-Lesen reicht's allemal.

Auch seitenweise etwas auf das Display zu übertragen, das kommt sowieso der Anwendung entgegen. Das muss ich in der Referenz noch genau lesen.

Hmmm - ich schreibe einfach alles in den Buffer und lasse den Buffer am Ende jedes Loop-Durchgangs auf das Display ausgeben.

Das entsprechende Beispiel dazu findest Du hier: https://github.com/olikraus/u8g2/wiki/setup_tutorial#full-screen-buffer-mode

Vielleicht reicht der Speicher dann doch so gerade. Globale Variablen müssen da auch nicht mehr viele sein.

Ich komme bislang noch mit dem Nano hin und bin mir ziemlich sicher, dass ich die Vermessung des großen Magneten über die Stromanstiegszeit da auch noch reinbekommen.

Ansonsten: einfach den nächstgrößeren Hobel nehmen (z.B. Deinen Mega2560) und aus die Maus. Darauf würde ich wirklich keine Zeit verwenden.

Ist halt ein Nachteil an Arduino.

Jetzt, wo ich weiß, dass man in Arduino-Programmen auch die volle avrgcc lib verwenden kann, stehen einem eigentlich alle Wege offen. Du kannst ganz tief die Register des ATmega einzeln setzen und ganz MC-nahen Code schreiben oder schlicht die Arduino-Libs mit ihren fertig konfektionierten Funktionen verwenden. Alles ist möglich.

Die Unkenrufer haben schon recht. Wenn es anfängt richtig zur Sache zu gehen, kommst du damit schnell an die Grenzen.

Wenn Du nur die Funktionen aus den Arduino-Libs verwendest, dann ja. Wenn Du allerdings - wie z.B. in meinem Code zur genauen Vermessung der Pulslänge gezeigt (Beitrag "Re: Induktiver Positionssensor - Fragen dazu") - einfach selber auf die Register des MC zugreifst, so kannst Du eigentlich alles machen, was Du willst.

Viele Grüße

Igel1

OP #7652086
Lesenswert?

Andreas S. schrieb:

Anbei meine Schaltung zur Messung der Anstiegszeit.

Ich müsste mich jetzt mehr mit LtSpice auseinander setzen, aber nicht zu diesem Zeitpunkt. Andreas, der Strom, der durch den Magneten fließt, der interessiert mich eigentlich kaum. Den messe ich einmal und damit weiß ich was ich zu erwarten habe. Wenn ich jetzt deine Simulation nehme und die Werte des Magneten gleich Null setze, dann bleiben immer nur noch ~7A als Spitzenstrom. Auch wenn ich die Schottky-Diode raus nehme, ändert sich nichts am Wert. Woran liegt das?

Nachtrag: Habe jetzt doch noch im Tutorial geguckt und deine Schaltung komplett kastriert, sodass nur noch der Fet, der Magnet oder der Kurzschluss über blieb. Was für ein Unterschied so ein Fet ausmacht! Ich habe extrem kurze Schaltzeiten genommen (so wie bei dem von dir gewählten IPB065N15N3 ungefähr ist; etwas länger) und dann habe ich den Fet einmal gegen einen mit einem sehr niedrigen RDSon und einmal mit einem sehr hohen RDSon genommen. Irre was das bei den kurzen Schaltzeiten ausmacht. So, mit LtSpice, kann man auch eine Menge lernen.

#7652111
Lesenswert?

Frank O. schrieb:

Andreas S. schrieb:

Das Ausgangssignal des OpAmps kann man per Spannungsteiler an den Eingang des ATmega legen und dann quasi dasselbe Programm zur Pulslängenmessung verwenden wie zurvor beim Peda-Oszillator.

Moin Andreas! Erstmal danke für deine Arbeit!

Ich hatte zuletzt geschrieben, dass ich für eine definierte Zeit den Pin einschalten will und dann den Strom messen.

Yep - das ist Dein Ansatz. Ich finde die andere Methode allerdings eleganter und vermutlich sogar auch genauer: Miss die Zeit, bis ein bestimmter Strom erreicht ist und berechne daraus unter Verwendung des bekannten Widerstands rückwärts die Induktivität.

Zuvor hatte ich auch schon einmal geschrieben, dass ich das am liebsten über einen Shunt machen möchte, weil im Grunde alle Ladegeräte, auch sehr moderne Ladegeräte, noch immer über einen Shunt messen.

Genau das macht die Simulation - der Shunt ist hier R2. An ihm steigt die Spannung proportional zum Strom an.

Meine Simulation funktioniert dann wie folgt:

Beim Einschalten der Gate-Spannung auf 12V wird der nicht-invertierende Eingang des OpAmps über den Spannungsteiler R3-R4 auf ca. 6V gezogen (R6 vernachlässigen wir hier gerade erst einmal).

Da im Moment des Durchschaltens des MOSFETs noch quasi kein Strom fließt, ist die Spannung am Shunt R2 ganz niedrig und somit führt der Spannungsteiler aus R7 und R5 auch nur 1,2V an den invertierenden Eingang des OpAmps.

Und weil gilt 6V > 1,2V, so geht der OpAmp an seinem Ausgang in diesem Moment auf "High".

Steigt nun der Strom am Shunt R2, so zieht das auch das Potential am invertierenden Eingang des OpAmps hoch, der dann irgendwann (nämlich bei ca. 6V an seinem Eingang) auf "Low" kippt. R6 stellt dabei nur eine Mitkopplung da, die den Kippeffekt noch etwas beschleunigt.

Den Spannungsteiler aus R7 und R5 benötige ich eigentlich nur deshalb, damit der OpAmp auf "Low" bleibt, wenn die Gatespannung auf 0V liegt und somit der nicht-invertierende Eingang ebenfalls auf ca. 0V liegt. Sonst könnte der OpAmp in dieser Phase ggf. unbeabsichtig auf "High" gehen, wenn seine beiden Eingänge auf 0V liegen.

Die Teile sind gestern gekommen, Shunt hatte ich schon vorher.

Bitte schreibe mir nochmals als Text, was für Teile das sind - das Bild ist dafür nicht gut genug belichtet:

  • welchen Widerstand hat der Shunt? (75mV bei 100A = 0,75 Milliohm ??!!)
  • welche Boards sind auf dem Bild zu sehen? (genaue Bezeichnungen?)

Was spricht aus deiner Sicht dagegen den Widerstand /im/ Strompfad zu haben?

Nichts - wenn er denn deutlich größer ist als mögliche Widerstands-Änderungen, die durch "Randeffekte" entstehen können (z.B. durch nicht fest angezogene Verbinder oder durch Variationen des Widerstandes der Magnetspule, oder, oder, oder ...).

Denn es gilt ja für einen Stromanstieg bis 63%: tau = L/R => L = tau * R

... und R ist nun mal die Summe aller Widerstände in Deiner Stromschleife. Wenn also z.B. eine nicht bombenfest angezogene Verbindung den Gesamtwiderstand um 30% erhöht, so erscheint es Dir bei der Messung so, als ob L einen um 30% größeren Wert hat (das ergibt sich direkt aus der Formel).

Da bei ist es völlig Wurscht, ob Du nun die Zeit misst, in der der Strom auf ein bestimmtes Level ansteigt (z.B. auf 63%) oder ob Du die Zeit fest definierst und dafür misst, um wieviel der Strom in dieser Zeit ansteigt (wobei ich erstere Messmethode für einfacher und genauer halte). Bei jeder Messmethode verderben Dir große Variationen von R den Brei.

Daher würde ich einen Shunt nehmen, der deutlich größer ist als alle möglichen Widerstandsvariationen, die sich sonst noch so im Stromkreis einschleichen können. Dann hast Du ein definiertes R in Deiner Formel und alles ist gut.

Ich glaube daher, dass Dein 0,00075 Ohm Shunt für diesen Zweck nicht gut geeignet ist. Im Dauerbetrieb, wenn möglichst wenig Spannung an einem Shunt "verbraten" werden soll, mag der Shunt evtl. passen, aber im Messbetrieb, halte ich ihn aus den zuvor genannten Gründen für viel zu gering.

Messung starten Pin HIGH (evtl. eine Zeit dazwischen) Pin LOW Messwert in einer Variablen speichern.

Kann man so machen, doch - wie gesagt - halte ich die andere Methode für einfacher (braucht keinen AD-Wandler) und sogar auch genauer (Messergebnis verfälschende Verzögerungen durch Wandler und Interrupts entfallen):

Messung starten Pin HIGH (=Gate des MOSFETS wird durchgestartet) Zeitgleich eine Stopuhr starten Warten bis Strom einen bestimmten Wert X erreicht In diesem Moment die Stopuhr stoppen Pin LOW (=Gate des MOSFETS wird abgebunden)

Dann kannst Du über die Formeln (https://www.leifiphysik.de/elektrizitaetslehre/elektromagnetische-induktion/grundwissen/ein-und-ausschalten-von-rl-kreisen) die Induktivität Deiner Spule bestimmen.

Allerdings musst Du die Formeln dafür nach L auflösen. Wenn Du dafür Hilfe benötigst (weil Du ja keine Potenz/Logarithmen-Rechnungen in der Schule hattest), so melde Dich nochmals. Ist kein Hexenwerk, braucht aber halt etwas Einarbeitung in die Mathematik von Potenzen und Logarithmen - und ich will Dir ja auch nicht sämlichen Ehrgeiz nehmen :-) (hoffe dabei natürlich, dass jetzt nicht wieder irgendein Schlaukopf hier im Forum daherkommt und Dir die Musterlösung hinpinselt).

Viele Grüße

Igel1

OP #7652164
Lesenswert?

Andreas S. schrieb:

Bitte schreibe mir nochmals als Text, was für Teile das sind - das Bild ist dafür nicht gut genug belichtet:

  • welchen Widerstand hat der Shunt? (75mV bei 100A = 0,75 Milliohm ??!!)

Jau!

  • welche Boards sind auf dem Bild zu sehen? (genaue Bezeichnungen?)

MCP3421 I2C SOT23-6 delta-sigma ADC (das lila Board) 18-Bit-ADC.

AD620 Microvolt Millivolt uV mV Small Signal Instrumentation Amplifier Board (Das mit den zwei Potis) Shunt, wie du schon richtig gesehen hast 100A/75mV.

Der ist jetzt nicht auf dem Bild: INA219 Bi-directional DC Current Power Supply Sensor Breakout Module Damit messe ich dann den kleinen Magneten. Als Strombegrenzung bekommt der Magnet einen Vorwiderstand, der in etwa des doppelten Stromes entspricht. Der kleinere Magnet ist damit komplett. Den INA219 hatte ich schon ausprobiert und das ist für den kleinen Magneten perfekt.

Andreas S. schrieb:

"Randeffekte" entstehen können (z.B. durch nicht fest angezogene Verbinder oder durch Variationen des Widerstandes der Magnetspule, oder, oder, oder ...).

Solche "Randeffekte" siehst oder fühlst du sehr schnell in meinem Gewerbe. Da ich das ja alle anziehen werde, die Stecker dafür ausgelegt sind (denn ich benutze extern natürlich den Kabelbaum, der an die ganzen Elemente der Bremse geht.

Andreas S. schrieb:

Ich glaube daher, dass Dein 0,00075 Ohm Shunt für diesen Zweck nicht gut geeignet ist.

Wird in über 80% aller Ladegeräte eingesetzt. Die "erkennen" am Strom, ob du den Stecker ziehst. Auch Kurzschluss sollen sie erkennen. Habe ich aber nie ausprobiert. Theoretisch sollst du ein Kabel durchtrennen können, in dem Moment würde zuerst ein Kurzschluss entstehen und die sollen rechtzeitig abschalten. Wie gesagt, nie getestet und möchte ich auch nicht testen.

Danke für den Link! Ist interessant. Aber ich möchte gar nicht so die Induktion so genau messen. Man sieht bei uns beiden mittlerweile einen deutlichen Unterschied. Ich sehe es aus den Augen des Praktikers (im Übrigen mein Kollege auch, was den Sensor anbetrifft) und du eher wie ein Entwickler. Das bestätigt sich darin, dass der Sensor auch in der Diagnose sehr genau ausgewertet wird. Habe ich schon bei ausgebautem Sensor ausprobiert. So wie bei uns, über den ganzen Weg verfolgbar, aber am Laptop, in der Diagnosesoftware. Dabei reicht eigentlich die Anfang- und die Endstellung. So auch bei den Magneten. Du willst eher genau bestimmen, ob da eine Abweichung besteht. Ich will nur wissen, ob der Magnet keinen Kurzschluss oder Windungsschluss hat. Und auch nur, damit ich den Funktionstest durchführen kann, ohne das ein zu hoher Strom fließen wird. Und es geht eigentlich um den Funktionstest. Andreas, ich sag das nicht gerne und viele hier halten mich für ziemlich blöd, aber ich bin auf diesem Sektor, also der Elektronik, von allen Technikern die ich so kenne, da bin ich die Spitze des Eisberges. Du kannst denen nicht mit Henry kommen. Bei Millihenry denken die, das ist der Sohn vom Henry. Sicher etwas übertrieben, aber da muss eine grüne Lampe kommen wenn alles ok ist, wenn nicht, muss die rot leuchten und am besten steht genau eine Anleitung, was der Techniker jetzt zu tun hat. Wenn das alles zuverlässig klappt, dann bist du bei den Jungs der Held im Erdbeerfeld. Es ist auch wirklich schön und lieb von dir, dass du mich zum lernen von Grundlagen verleiten willst. Das mache ich auch noch, aber nicht bei diesem Projekt. Da geht es in erster Linie um Funktionalität. Wenn die Jungs auf den Taster drücken und die Bremse, die vorher keinen Mucks von sich gab, macht auf einmal Klack, Klack, Klack, Klack, Klack. Und wenn sie danach noch den Magneten verriegelt und alles funktioniert, dann wirst du in sehr glückliche Gesichter schauen, denn dann wissen sie, dass die die Achse nicht auseinander bauen müssen. Und nur darum geht es bei diesem Projekt. Es gibt auch andere mögliche Fehler vor der Bremse. Aber um zweifelsfrei ausschließen zu können, dass es nicht an der Bremse in der Achse liegt (oder im Umkehrschluss eben doch), muss eine Funktion her, die diese Bremse ansteuern kann. Stell dir vor du bist dir sicher, dass es an der Bremse in der Achse liegt! Jetzt baust du sie aus, die neue ein und dann funktioniert es immer noch nicht. Von den Kosten will ich erst gar nicht reden (der Kunde oder die Fullservice-Abteilung wird dich umbringen), aber stell dir deinen Gesichtsausdruck vor, wenn du nach drei Tagen harter Arbeit, dann kein Klacken der Bremse hörst. Verstehst du das jetzt vielleicht etwas besser? Wenn der Magnet 20 oder 20 mH hat, dann jage ich da Strom drauf. Macht der sein Klacken, ist die Achse erstmal außen vor (denn alles andere kann man von außen wechseln). Selbst wenn das Steuergerät hinterher doch meint, dass 20mH zu wenig sind oder 30mH zu viel sind. So ein Steuergerät ist vergleichsweise in nullkommanix gewechselt und wenn es nicht dran lag, entstehen keine Kosten, außer die für die Arbeit. Wenn du den Magneten aus der Achse ausgebaut hast, der nicht kaputt war, den ausgebauten wirst du nicht wieder einbauen. Der Fall, der eine Fall, dass mein Fenster der Messung zu groß ist, wird, wenn überhaupt, nur einmal vorkommen. Diese Bremsen gehen nicht ständig kaputt. Sie funktionieren sogar sehr zuverlässig, wie das ganze Fahrzeug. (Ich glaube wir hatten noch nie so gute Fahrzeuge, wie sie heute sind; schon fast geschäftsschädigend, so selten geht was kaputt). Nur hatte ich einen Fall, und das war mein erster und einziger Fall, da hätte ich mit meinem Diagnosegerät sofort und sicher gewusst, was defekt ist. Es soll helfen die Unsicherheit zu nehmen. Vor einiger Zeit habe ich einen Generator getauscht. Der kostet ca. 11K. Da musst du dir schon sicher sein. Transport, Ersatzteil, vier Tage Arbeit für zwei Mann. Da will man hinterher nicht sagen: "Tut mir leid, das war eine Fehldiagnose!".

#7652165
Lesenswert?

Frank O. schrieb:

Andreas S. schrieb:

Anbei meine Schaltung zur Messung der Anstiegszeit.

Ich müsste mich jetzt mehr mit LtSpice auseinander setzen, aber nicht zu diesem Zeitpunkt. Andreas, der Strom, der durch den Magneten fließt, der interessiert mich eigentlich kaum. Den messe ich einmal und damit weiß ich was ich zu erwarten habe.

Hmmm - dann verstehe ich jetzt langsam nicht mehr, was Du überhaupt machen/messe/untersuchen willst.

Ich hatte Dich bislang so verstanden (bitte korrigiere, wenn ich falsch liege):

  • Du willst messen, ob die große Magnetspule in Ordnung ist

  • Es sind folgende Fälle möglich:

1.) Leitungsbruch auf dem Weg zur Spule -> Kein Strom fließt -> easy

2.) Leitung zu hochohmig auf dem Weg zur Spule -> Ohmmessung -> easy

3.) Kurzschluss auf dem Weg zur Spule

4.) Spule hat einen totalen oder teilweisen Windungsschluss

Im Fall 3.) und 4.) wird sich jeweils die von außen gemessene Induktivität der Spule massiv verändern. Und genau das möchtest Du über den Anstieg des Stromes während eines Spannungspulses auswerten.

Dazu hast Du die Anschlüsse, die zur Spule führen, frei verfügbar zur Messung vor Dir liegen - kannst also damit machen, was Du willst.

Habe ich das korrekt verstanden/wiedergegeben?

Wenn ich jetzt deine Simulation nehme und die Werte des Magneten gleich Null setze, dann bleiben immer nur noch ~7A als Spitzenstrom. Auch wenn ich die Schottky-Diode raus nehme, ändert sich nichts am Wert. Woran liegt das?

Das liegt am Shunt R2 und der begrenzten Einschaltzeit des MOSFETs ... Schaltest Du den MOSFET länger ein, so steigt der Strom so lange an, bis er nur noch vom Shunt begrenzt wird - also bis 84A.

Nachtrag: Habe jetzt doch noch im Tutorial geguckt und deine Schaltung komplett kastriert, sodass nur noch der Fet, der Magnet oder der Kurzschluss über blieb. Was für ein Unterschied so ein Fet ausmacht! Ich habe extrem kurze Schaltzeiten genommen (so wie bei dem von dir gewählten IPB065N15N3 ungefähr ist; etwas länger) und dann habe ich den Fet einmal gegen einen mit einem sehr niedrigen RDSon und einmal mit einem sehr hohen RDSon genommen. Irre was das bei den kurzen Schaltzeiten ausmacht.

Na ja, bei 0 Ohm Widerstand im gesamten Kreis gilt folgende Formel:

$$u(t) = L * di(t)/dt$$

Und wenn Du das ein bisschen integrierst, um die Gleichung nach I aufzulösen erhälst Du:

$$i(t) = 1/L \int u(t) dt$$

Und das wiederum wird, wenn Du u(t) konstant auf dem Wert Uss hälst zu:

$$i(t) = 1/L * U_{ss} * t$$

Und genau das wirst Du beobachten: I wird linear mit der Zeit ansteigen - je kleiner L, desto krasser der Anstieg von I. Und bei einer Spule von 24mH und einer Spannung von 84V wird das

$$i(t)/t = 1/L * U_{ss} = \frac{1}{0,024 A/Vs} * 84 V = 3500 A/s$$

Der Strom nimmt also um 3500A pro Sekunde zu. Entsprechend kurz darfst Du die Spule nur an Deine 84V legen, damit Dir das Teil nicht um die Ohren fliegt.

So, mit LtSpice, kann man auch eine Menge lernen.

... ist aber auch gefährlich, weil trügerisch.

Hier eine kleine Analogie:

Du wirst niemals aus LTspice das "Newton'sche Gesetz (F = m * a)" lernen, sondern immer nur beobachten, dass der Apfel vom Baum auf die Erde (oder eben auf Deinen Kopf :-) fällt.

Warum das so ist, wird Dir LTspice nicht verraten. Du kannst also nicht voraussehen, was passiert, wenn Du das Experiment in 2000m Höhe auf einem Berg wiederholst und dass Du dann eine minimal höhere Chance hast, dem fallenden Apfel auszuweichen.

Zwar könntest Du auch das simulieren, wüsstest dann aber immer noch nicht um das tatsächliche Ursache-Wirkungsprinzip, was Dir nur Newtons Formel offenlegt.

Die oben von mir verwendeten einfachen Formeln rund um Induktivitäten wirst Du ebenfalls nicht aus LTspice lernen. Das wiederum halte ich persönlich für wichtig, um Schaltungen zu entwerfen. LTspice wird Dir keine Schaltung entwerfen - dafür braucht's eben genau das Wissen über Ursache-Wirkungsprinzipien - kurzum Formeln wie das Ohmsche Gesetz oder die Induktionsgesetze.

Mit LTspice kannst Du dann lediglich überprüfen, ob Deine Gedanken und die Anwendung der Ursache-Wirkungsprinzipien richtig waren. So jedenfalls meine 10 Cent zu diesem Thema.

Viele Grüße

Igel1

OP #7652185
Lesenswert?

Andreas S. schrieb:

1.) Leitungsbruch auf dem Weg zur Spule -> Kein Strom fließt -> easy

2.) Leitung zu hochohmig auf dem Weg zur Spule -> Ohmmessung -> easy

3.) Kurzschluss auf dem Weg zur Spule

4.) Spule hat einen totalen oder teilweisen Windungsschluss

Im Fall 3.) und 4.) wird sich jeweils die von außen gemessene Induktivität der Spule massiv verändern. Und genau das möchtest Du über den Anstieg des Stromes während eines Spannungspulses auswerten.

Dazu hast Du die Anschlüsse, die zur Spule führen, frei verfügbar zur Messung vor Dir liegen - kannst also damit machen, was Du willst.

Habe ich das korrekt verstanden/wiedergegeben?

Klar will ich natürlich auch wissen, ob die Spule Durchgang hat. Das ist die Bedingung für den Funktionstest. Die Kabel werden natürlich nach außen geführt. Aber ich will nicht so genau dabei sein.

Kein Durchgang oder Kurzschluss lässt sich ziemlich leicht ermitteln. Richtig?

Sollte die Magnetspule einen teilweise Windungsschluss haben (was eigentlich nur theoretisch möglich ist), dann würde der Strom ansteigen, aber der Magnet nicht oder nur schlecht anziehen. In dem Fall würde ich das auch am Strom sehen und der Monteur hören.

Ist ein Teil der Magnetspule verbrannt (das kommt schon vor; bei ähnlichen Magneten ist das in all den Jahren schon passiert. Liegt aber nicht am Magneten, sondern ist ein Folgefehler), dann fließt ein geringer Strom. Der Magnet zieht nicht an oder sehr schwach. Auch das hört wiederum der Monteur. Und der Magnet lässt sich ebenfalls nicht verriegeln. Gleichfalls habe ich einen geringeren Strom gemessen. Angenommen ich soll ca. 10A Strom dort messen, es sind aber maximal 3A. Dann ist auch klar, dass der Magnet defekt ist. Das messe ich aber dann beim Funktionstest. Zuvor will ich nur wissen, kann ich den Magneten gefahrlos einschalten. Also nur schauen, ob ein Kurzschluss vorliegt (oder eben kein Strom fließt). Es ist quasi der Eingangstest für den Magneten.

OP #7652198
Lesenswert?

Andreas S. schrieb:

Na ja, bei 0 Ohm Widerstand im gesamten Kreis gilt folgende Formel:u(t)=L∗di(t)/dt u(t) = L * di(t)/dt Und wenn Du das ein bisschen integrierst, um die Gleichung nach I aufzulösen erhälst Du:i(t)=1/L∫u(t)dt i(t) = 1/L \int u(t) dt Und das wiederum wird, wenn Du u(t) konstant auf dem Wert Uss hälst zu:i(t)=1/L∗Uss∗t i(t) = 1/L * U_{ss} * t Und genau das wirst Du beobachten: I wird linear mit der Zeit ansteigen - je kleiner L, desto krasser der Anstieg von I. Und bei einer Spule von 24mH und einer Spannung von 84V wird dasi(t)/t=1/L∗Uss=10,024A/Vs∗84V=3500A/s

Herzlichen Dank für die Formel und die Berechnung! Das habe ich eigentlich die ganze Zeit gesucht.

Bei 50A kommt die Sicherung. Hattes du eigentlich meine Mail gelesen?

Bei dem Rest gebe ich dir natürlich zu 100% Recht und ich hasse es, wenn ich was nicht weiß. Im Grunde mag ich auch nicht, was ich da gerade mache. Nur will ich nicht bis zur Rente an dem Gerät sitzen. Wenn ich erstmal alles genau lernen muss. Es gibt viele Menschen, die fahren Auto. Die können meistens nicht einmal die Flüssigkeiten, außer Kraftstoff, ergänzen. Sie wissen auch nicht was genau der Motor dort macht. Es reicht ihnen. Im Moment ist es bei mir ein bisschen so, wie bei diesen Autofahrern. Einzig beim Strom, da schaue ich jetzt schon genauer hin. Deshalb habe ich ganz bewusst einen 100A Shunt gewählt. Deine Bedenken wegen möglicher Verluste, die teile ich nicht. Wenn ich die tatsächlich haben sollte, dann kenne ich auch den Schuldigen. Der sitzt hier gerade und tippt den Text. Wie du schon sagst, Starkstrom ist nicht dein Bereich. Meiner seit 36 Jahren.

Angehängte Dateien:
OP #7652227
Lesenswert?

Gerade habe ich ein interessantes Skript gefunden. https://ei.uni-paderborn.de/fileadmin-eim/elektrotechnik/fg/lea/Lehre/GDA/Dokumente/Geregelte_Drehstromantriebe_DE.pdf

"Pulssperre" oder "Impulssperre" ist das Zauberwort. https://publikationen.dguv.de/widgets/pdf/download/article/3500

Das werde ich dann auch so umsetzen müssen. Bezieht sich zwar mehr auf Frequenzumrichter, aber das habe ich auch schon überlegt. Ich habe noch viele Stunden Arbeit vor mir.

#7652365
Lesenswert?

Frank O. schrieb:

Kein Durchgang oder Kurzschluss lässt sich ziemlich leicht ermitteln. Richtig?

Jetzt geht's gerade etwas durcheinander und ich bin mehr als verwirrt (trotz Studium Deiner Email):

Diese obige Frage hätte ich eher an Dich, als dass Du sie mir stellen solltest.

Ich hatte Dich so verstanden, dass Du schnell erfassen kannst, ob kein Durchgang ist (weil dann ja kein Strom fließt) oder ob Kurzschluss herrscht (weil dann sofort Dein Sicherungsautomat auslöst).

Sollte die Magnetspule einen teilweise Windungsschluss haben (was eigentlich nur theoretisch möglich ist), dann würde der Strom ansteigen, aber der Magnet nicht oder nur schlecht anziehen. In dem Fall würde ich das auch am Strom sehen und der Monteur hören.

Okay, dann ist auch das geklärt.

Ist ein Teil der Magnetspule verbrannt (das kommt schon vor; bei ähnlichen Magneten ist das in all den Jahren schon passiert. Liegt aber nicht am Magneten, sondern ist ein Folgefehler), dann fließt ein geringer Strom. Der Magnet zieht nicht an oder sehr schwach. Auch das hört wiederum der Monteur. Und der Magnet lässt sich ebenfalls nicht verriegeln.

Okay, dann ist auch das geklärt.

Gleichfalls habe ich einen geringeren Strom gemessen. Angenommen ich soll ca. 10A Strom dort messen, es sind aber maximal 3A. Dann ist auch klar, dass der Magnet defekt ist. Das messe ich aber dann beim Funktionstest.

Okay, dann ist auch das geklärt.

Zuvor will ich nur wissen, kann ich den Magneten gefahrlos einschalten. Also nur schauen, ob ein Kurzschluss vorliegt (oder eben kein Strom fließt). Es ist quasi der Eingangstest für den Magneten.

Jetzt siehst Du mich mehr als verwirrt. Ich habe Dich oben so verstanden, dass Du diesen Kurzschluss ganz einfach mit einem Sicherungsautomaten ausprobierst.

Sorry - vielleicht bin ich gerade etwas begriffsstutzig, aber irgendwie verstehe ich nicht ganz, was hier das genaue Ziel ist.

Könntest Du das in wenigen, aber möglichst klaren Worten nochmals für ganz Dumme beschreiben?

Viele Grüße

Igel1

OP #7652469
Lesenswert?

Andreas S. schrieb:

Jetzt siehst Du mich mehr als verwirrt.

Vielleicht kann ich das auch nicht so aufbereiten, wie ich es im Kopf habe.

Nochmal anders. Anfangs messe ich den Sensor und schaue, ob ein grundsätzlich plausibler Wert vorliegt. Damit ist der Eingangstest vom Sensor abgehakt.

Dann lasse ich den kleinen Magneten anziehen (auch wenn jetzt keine Verrieglung statt finden kann) und das mit dem doppelten Strom. Nimmt dieser nur die den Strom auf, den er aufnehmen kann, dann ist der Magnet zumindest elektrisch in Ordnung. Damit ist der Eingangstest vom kleinen Magneten abgehakt.

Jetzt kommt der große Magnet. Erst bekommt dieser eine kurze Zeit Strom, in der Zeit messe ich den Strom. Ist kein Strom messbar - Unterbrechung, Kabel oder Magnet defekt. Ist der Strom sehr hoch, höher als er im Mittel bei einem intakten Magneten sein darf, dann liegt ein Windungs- oder Kurzschluss vor. Damit ist der Eingangstest vom großen Magneten abgehakt. Aber mit dem Unterschied, dass bei einem Kurzschluss oder Windungsschluss kein Funktionstest mehr stattfinden darf. Ich hoffe, dass ich das jetzt genau genug erklärt habe.

Heute habe ich das Programm auf den Mega2560 portiert (siehe Bild).

1
Sketch uses 13404 bytes (5%) of program storage space. Maximum is 261632 bytes.
2
Global variables use 1627 bytes (19%) of dynamic memory, leaving 6565 bytes for local variables. Maximum is 8192 bytes.

Erst war mir das gar nicht recht, aber jetzt bin ich ein Freund dieser Idee geworden, denn nun kann ich den Rest oben als Shield drauf bauen. Der Stromsensor ist auch die Tage angekommen.

Angehängte Dateien:
OP #7652493
Lesenswert?

Andreas S. schrieb:

Ich habe Dich oben so verstanden, dass Du diesen Kurzschluss ganz einfach mit einem Sicherungsautomaten ausprobierst.

Der Sicherungsautomat ist nur für die Testphase. Nur, falls was schief gehen sollte. Im Falle, dass das alles zuverlässig klappt, kommt eine Sicherung 50A-Streifensicherung in den Tester, statt des Sicherungsautomaten. Die Sicherung soll eigentlich nie auslösen müssen.

#7652626
Lesenswert?

So da'le - ich glaube ich setze mal ein bisschen aus. Scheine eine kleine "Blockade" im Kopf zu haben vor lauter ToDo's, die sich vor mir auftürmen. Mein MC-Forum Escapismus bringt mich sonst noch an den Abgrund ...

Heute Nacht daher keine große Email von mir - statt dessen lieber etwas mehr Bubu machen, auch nicht schlecht.

Bin die nächste Zeit leider absehbar beruflich ziemlich busy, wird also vermutlich etwas stiller um mich werden. Werde versuchen, Deinen Fortschritt trotzdem etwas zu verfolgen - bin gespannt, wie Du weiter voranschreiten wirst.

Wenn Du Dringendes von mir benötigst, so melde Dich, ich versuche Dir dann zu helfen (wobei es ja auch viele andere nette Helfer hier gibt).

Viele Grüße

Igel1

OP #7652652
Lesenswert?

Andreas S. schrieb:

wobei es ja auch viele andere nette Helfer hier gibt

Hallo Andreas!

Ich muss jetzt auch ins Bett. Die Helfer sind bestimmt schon raus. Klar, Job geht immer vor. Jetzt stehen sowieso viele Tests an. Ich muss die ganze Hardware testen und das einbauen, was ich später verwenden will. Dann werde ich ein Shield bauen. mit allem drauf, was ich brauche. Wenn ich die Teilaufgaben der Programmierung gelöst habe, kommt wohl der schwerste Teil für mich, dann muss ich das alles irgendwie zu einem lauffähigen Programm zusammen fügen. Also, gute Nacht!

OP #7654731
Lesenswert?

Da der Sensor nun mehr als fertig ist und deutlich über den Anforderungen liegt, möchte ich euch auch nicht weiter belästigen. Den Rest dieses Projektes schaffe ich auch ohne weitere Unterstützung.

Da ich sowieso keine Einzelheiten sagen darf und kann, macht es auch keinen Sinn mehr, hier weiter zu posten und euch hier voll zu müllen. Insgesamt ist diese Bremse viel komplexer, als ich hier angegeben habe.

Daher noch einmal meinen Dank an alle die hier geholfen haben und insbesondere an Peter Dannegger, für den Oszillator und Andreas S., vor allem dafür, dass du mich dazu gebracht hast, mich ein wenig mehr anzustrengen.

Aber auch die anderen hier, die mich auch mal ausgebremst haben. Das brauche ich sicher auch ab und zu. Entschuldigt, dass ich mich anfangs so blöd angestellt habe. Auch wenn ich euer Ingenieur-Wissen nicht aufholen kann, so bin ich aber wieder einigermaßen im Thema. Es hat mir sehr viel Spaß gemacht (macht es noch) und ich ziehe den Hut symbolisch, so tief ich kann, vor eurem Wissen.

Liebe Grüße Frank

OP #7654781
Lesenswert?

Spess53 .. schrieb:

Der Mohr hat seine Arbeit getan, der Mohr kann gehen

Ich denke ich habe hier alle mit dem nötigen Respekt behandelt und bedankt habe ich mich sicher auch genug.

Ich habe mir noch einmal den gesamten Thread angesehen, außer Bedenken zu äußern, hast du hier nichts beigetragen. Du hast bis jetzt immer noch einen bei mir gut gehabt, weil du mir damals deine Layouts für den AVR-Dragons gegeben hast. Deshalb will ich mal nicht so sein ...

Beitrag #7654784 wurde von einem Moderator gelöscht.
#7655060
Lesenswert?

Hallo Frank,

Du wolltest ja gerne Deine Spule über die Strom-Anstiegsmethode vermessen.

Dein Ansatz war es, den Strom nach einer Zeit X zu messen und dann via Formeln auf L zurückzuschließen.

Mein Ansatz ist es, die Zeit tx zu messen, die benötigt wird, bis der Strom eine ganz bestimmte Stromstärke Ix erreicht hat und dann ebenfalls über Formeln auf L zurückzuschließen.

Der Vorteil meiner Methode ist, dass ich dafür keinen ADC benötige. Wenn es mir zusätzlich gelingt, eine Schaltung zu bauen, die einen hübschen Puls ausgibt, welcher genau die Länge der Zeit tx repräsentiert - also der Zeit in der der Strom von 0 bis zum festgelegten Wert Ix ansteigt, so kann ich sogar das vorhandene Pulslängen-Messprogramm zur Auswertung benutzen und muss keine neue Software schreiben.

Und genau so eine Schaltung habe ich inzwischen entwickelt: Sie gibt einen 5V-Puls aus der die Dauer tx des Stromanstiegs bis zu einem gewissen Level Ix in der Spule repräsentiert. Funktioniert in der Simulation erstaunlich gut - die Realitätscheck steht allerdings noch aus.

  • rot: PWM-Eingangssignal (vom Arduino) zum Öffnen/Schließen des MOSFETS
  • grün: Strom durch die Spule L1
  • blau: Spannungsanstieg am oberen Punkt von R2
  • türkis: Ausgangssignal am Punkt "Out"

Die einzelnen Funktionsblöcke sind:

  • linker gestrichelter Kasten: Puls-Bestromung der Spule
  • mittlerer gestrichelter Kasten: Komparator
  • rechter gestrichelter Kasten: Ausgangsstufe/Level-Shifter

Viele Grüße

Igel1

Angehängte Dateien:
OP #7655221
Lesenswert?

Andreas S. schrieb:

Und genau so eine Schaltung habe ich inzwischen entwickelt:

Lässt dich ja doch nicht los. Ich habe inzwischen auch ein bisschen was gemacht. Den ADC habe ich jetzt im Griff. Mit dem Sleep Modus, ADC Noise Reduction, ist der ADC absolut brauchbar. Aber trotzdem mag ich die fertigen Platinen lieber. Alles schön über I2C. Gerade habe ich den MCP3421 im Test. Sehr schön funktioniert das auch dabei mit dem Shunt. Runter bis 20mA und rauf ohne Zappeln. Probiert mit dem 100A/75mV Shunt. Aber ich habe noch einen anderen, der ist adressierbar über Software und hat vier Kanäle. Macht das alles kompakter. Mein neuer Ansatz war, den Spannungsabfall am Magneten zu messen, wenn ich eine kleine Spannung und einen geringen Strom auf den Magneten gebe. Leider ist das beim 12V Magneten nicht mehr so einfach zu messen. Den habe ich mittlerweile auch und damit ist klar, ich muss mir erstmal alle Werkstatthandbücher durchlesen. Es las sich so, als könnte man auf die anderen Systeme Rückschlüsse ableiten. Aber da funktioniert doch einiges anders. Da der Tester aber für alle Systeme sein soll, ist noch etwas Arbeit nötig. Dennoch bin ich auf einem guten Wege. Zwischendurch lenke ich mich jetzt mit dem ESP32 ab (um mal auf andere Gedanken zu kommen) und mit Phyton. Das ist für die weitere Zukunft interessant. Das war jetzt aber wirklich das Schlusswort. Liebe Grüße Frank

#7655750
Lesenswert?

Frank O. schrieb:

Andreas S. schrieb:

Und genau so eine Schaltung habe ich inzwischen entwickelt:

Lässt dich ja doch nicht los.

Yep - macht einfach Spaß. Und wenn ich etwas Zeit habe oder etwas gute Laune benötige, so bastle ich halt ein wenig.

Das war jetzt aber wirklich das Schlusswort. Liebe Grüße Frank

Och - das wäre aber zu schade. Lass doch einfach weiterlaufen. Wer immer Zeit und Lust hat, kann ja seine neuesten Erkenntnisse/Bastelleien hier um Besten geben.

Ich bin schon noch interessiert, wie es bei Dir weitergeht.

Habe halt nur nicht mehr so viel Zeit wie vorher - aber "auf kleinerer Flamme" würde ich schon gerne noch ein wenig weiterbrutzeln.

Viele Grüße

Igel1

OP #7655829
Lesenswert?

Andreas S. schrieb:

Ich bin schon noch interessiert, wie es bei Dir weitergeht.

Wenn es fertig ist, gibt es Bilder von dem Gerät im Einsatz. Auch wenn es scheint, dass ich hier ziemlich klar beschrieben habe, wie diese Bremse funktioniert, war es doch sehr rudimentär. Ich kann, darf und möchte auch nicht genau hier darauf eingehen. Das wird jeder verstehen, der seinen Arbeitsplatz behalten will. Hinterher kommt noch jemand auf die Idee so ein Gerät zu bauen und will das womöglich an meinen Arbeitgeber verkaufen. Da würde sich natürlich jeder Arbeitgeber gleich die Frage stellen, woher jemand so viele und richtige Informationen hat. Außerdem, wenn tatsächlich Interesse bestehen würde (ich kann jetzt schon versichern, dass das eher zu Unmut führen wird und sich diverse Leute auf den Schlips getreten fühlen werden), möchte ich das Geschäft alleine machen.

#7655877
Lesenswert?

Ich habe die Schaltung zur Stromanstiegs-Messung inzwischen aufgebaut und die Bauteile in der Simulation den real vorhandenen Bauteilen meiner Bastelkiste angepasst.

Dabei war ich Dir, Frank, echt dankbar für die Transistorspende - ohne die hätte ich neue Transistoren bestellen und wieder ewig warten müssen.

Hier also die Beschreibung der Bilder aus dem Anhang:

Bild1 (1Y45_STrommessung.igel1.v005b.png):

Simulation der aktuellen Schaltung:

1
     - gelb/braun:    Spannung an R2 (repräsentiert Strom durch L1
2
                         in der Anstiegsphase, danach nicht mehr)
3

4
     - rot       :    Spannung am Ausgang "Out"
5
                  
6
     - blau      :    PWM zur Gatesteuerung des MOSFETS
7
                      (100Hz, Duty-Cycle: 4% entsprechend 400us Puls)

Bild 2 (Gesamtaufbau.jpeg):

Gesamtaufbau - mein Drahtverhau mit der 12V Speisung, dem Signalgenerator
und dem Oszi. Aktuell kümmere ich mich erst einmal darum, dass der reine Analogteil der Schaltung funktioniert - also derjenige Teil, der den Stromanstieg in der Spule in einen Ausgangspuls variabler Länge (je nach Induktivität der Spule) umsetzt.

Das Steckbrett zur Auswertung mit dem ATmega und dem Display, auf dem später ein Balken die Pulslänge repräsentieren soll, liegt bereits rechts außerhalb des Bildes bereit. Wenn ich es angeschlossen habe, so werde ich hier nochmals einen Post dazu schreiben.

Bild 3 (Nahaufnahme.jpg):

Nahaufnahme vom Drahtverhau.

Bild 4 (Oszi_Stoessel_draussen.100us_Aufloesung.jpg):

Signale bei ausgefahrenem Stößel und 100us/cm Oszi-Auflösung (mit L1: 1,2mH). Die untere Bildhälfte ist wegen Flimmern meiner CRT-Röhre etwas unterbelichtet.

Bild 5 (Oszi_Stoessel_draussen.10us_Aufloesung.jpg):

Signale bei ausgefahrenem Stößel und 10us/cm Oszi-Auflösung (mit L1: 1,2mH). Die untere Bildhälfte ist etwas unterbelichtet.

Bild 6 (Schaltung_Stoessel_drin.jpg)

Schaltungsaufbau mit eingefahrenem Stößel.

Bild 7 (Oszi_Stoessel_drin.10us_Aufloesung.jpg)

Signale bei eingefahrenem Stößel und 10us/cm Oszi-Auflösung. (L1: 4,2mH)

Folgende 2 Dinge kann man wunderbar auf den Oszi-Bildern beobachten:

1.) Man sieht gut, wie sich die Pulslänge des Ausgangssignals mit der Position des Stößels verändert:

1
  Stößel draußen (Spule 1,2mH) -> ca. 25us Pulsdauer
2
  Stößel drinnen (Spule 4,2mH) -> ca. 77us Pulsdauer

2.) Man sieht gut, dass der Ausgangspuls stets dann endet, wenn der Strom durch L1 (bzw. die Spannung an R2) ein gewisses Level erreicht hat (markiert durch die gestrichelte 7,1V-Linie) auf dem Oszilloskop).

Die Spule selbst hat ca. Rl1 = 3 Ohm Innenwiderstand. Wenn man dann alle Werte (Rl1=3Ohm, R2=47Ohm, Vcc=12V, Vtrigger=7,1V) in die entsprechend angepassten Formeln (z.B. von hier: https://www.elektroniktutor.de/analogtechnik/l_gleich.html) hineinwirft, so stellt man fest, dass die 7,1V Triggerspannung lustigerweise ziemlich genau der 63%-Wert ist, bei dem gilt:

L1 = tx * Rges

mit tx = Ausgangspulslänge und mit Rges = 3 Ohm + 47 Ohm = 50 Ohm.

Unter Nutzung dieser Super-Simpel-Formel hier also die Berechnung der Induktivität aus den gemessenen Pulslängen:

a) Stößel draußen:

1
L1 = 25us * 50 Ohm = 1,3mH     (mein Transistortester maß: 1,2mH)

b) Stößel drin:

1
L1 = 77us * 50 Ohm = 3,9mH     (mein Transistortester maß: 4,2mH)

Keine Frage, dass ein ATmega diese Berechnung im Handumdrehen erledigen kann - da braucht es noch nicht einmal Fließkommaarithmetik.

Kurzum: ich bin recht zufrieden mit dem Experiment, die Induktivität über die Zeitlänge zu bestimmen. Trotz windigem Netzverhau und der Vernachlässigung einige Störeffekte (z.B. dürfte der Rds des 2N7000'er MOSFETS bei Strömen um die 150mA nicht mehr völlig vernachlässigbar sein), passen die Ergebnisse halbwegs zur Theorie.

Mit dieser Schaltung wäre man also prinzipiell ebenfalls in der Lage, die Induktivität einer Spule grob zu vermessen.

Viele Grüße

Igel1

OP #7656057
Lesenswert?

Hallo Andreas!

Wirklich beachtenswert und bemerkenswert!

Leider ist das völlig an dem vorbei, was in meinem Diagnosegerät passieren muss. Habe heute nochmal einen etwas anderen ADC bestellt. Etwas ärgerlich, weil ich gleich zweimal bestellt habe. Man sollte nicht immer der ersten Antwort auf den Suchbegriff folgen. Jedenfalls misst der schneller und so wie ich es vor habe, wird das mit dem Shunt und dem neuen ADC für alle Fahrzeug erschlagen werden. Lediglich die Software macht am Ende die Unterscheidung zwischen den einzelnen Fahrzeugen. Die Hardware wird für alle Fahrzeuge gleich funktionieren. Mal sehen, ob ich nach dem ersten Mai mir die 12V-Anlage in real vornehmen kann. Will dann den Strom messen und schauen, ob /nur/ der Magnet anders ist. Auf jeden Fall muss ich das jetzt machen, da das Fahrzeug wahrscheinlich bald weg ist. Mit den Teilen hast du recht. Entweder man wartet ewig oder man bezahlt ein irres Geld. Ich habe sowieso schon viel Geld investiert, selbst wenn man davon absieht, dass ich das Oszi und das Labornetzgerät auch eigentlich aus diesem Grund gekauft habe. Aber wer A sagt, der muss auch B machen.

#7656094
Lesenswert?

Frank O. schrieb:

Leider ist das völlig an dem vorbei, was in meinem Diagnosegerät passieren muss.

Egal - hat trotzdem Spaß gemacht und war für mich interessant und lehrreich.

Ich versteh halt einfach nicht, wie Du mit einem einfachen Shunt und einem ADC (der ja nichts anderes ist, als ein Voltmeter, mit dem Du dann die Spannung am Shunt messen kannst und somit ein Amperemeter bekommst), eine Magnetspule vermessen willst.

Interessieren Dich (neben dem ohmschen Widerstand) die Henry's der Magnetspule so gar nicht?

Wäre es Dir möglich/erlaubt, einfach einmal den prinzipiellen Schaltkreis aufzumalen und Dein Messprinzip zu erläutern. Wir sprechen hier ja nicht über Raketentechnik.

Mein neuer Ansatz war, den Spannungsabfall am Magneten zu messen, wenn ich eine kleine Spannung und einen geringen Strom auf den Magneten gebe.

Beides kannst Du nicht vorgeben - das eine wird das andere bewirken: entweder gibst Du eine kleine Spannung drauf und misst den Strom, oder Du gibst einen kleinen Strom drauf und misst die Spannung.

Leider ist das beim 12V Magneten nicht mehr so einfach zu messen.

Vermutlich weil der einen super geringen Widerstand hat und um Widerstände im Milliohm Bereich zu messen, bedarf es etwas besserer Technik und Wissen. Aber ich wollte ja eigentlich nicht mehr raten ...

Viele Grüße

Andreas

OP #7656781
Lesenswert?

Andreas S. schrieb:

Ich versteh halt einfach nicht, wie Du mit einem einfachen Shunt und einem ADC (der ja nichts anderes ist, als ein Voltmeter, mit dem Du dann die Spannung am Shunt messen kannst und somit ein Amperemeter bekommst), eine Magnetspule vermessen willst.

Hallo Andreas!

Heute war es etwas stressig bei der Arbeit. Dass ich den Strom /berechnen/ kann, aus der gemessenen Spannung, ist ja klar. 0,75mV sind ein Ampere Strom. Wenn die Auflösung hoch genug ist. 1A würde, bei 18 Bit, immerhin 78 Schritte bedeuten. Da voraussichtlich 12 Bit nehmen werde (so ganz im Klaren bin ich mir bis jetzt nicht, weil dieser ADC fehlt), ist es nur noch 1 Schritt. Da diese Dinger aber Verstärker haben, ist das Ergebnis auch wieder besser. Ich will keine mA messen. 1-2 Ampere Genauigkeit reicht völlig.

Ganz witzig finde ich (habe mir heute die 12V-Anlage angeschaut; also die Diagnose dazu), dass dein Denken das gleiche ist, wie das der Ingenieure, die den ganzen Kram entwickelt haben. Andreas, ich will keine Bremse bauen, denn die gibt es ja schon. Es geht um einen Funktionstest. Die soll "Klack, Klack" machen. Dabei muss ich nur feststellen, ob der Magnet anzieht, nicht anzieht oder einen Kurzschluss hat. Windungsschluss halte ich für unwahrscheinlich. Wenn das passiert, ist der Magnet eh verbrannt und hat keinen oder fast keinen Durchgang. Natürlich kann man das messen und "Raumfahrttechnik" bauen, um deine Worte zu benutzen. Wenn ich einen Messkreis bauen will, dann muss ich den für den Funktionstest trennen. So viel Aufwand will ich doch gar nicht betreiben. Was macht ein KFZ-Mechaniker, wenn er ein Relais testen will? Richtig! Er verbindet die Spule mit der Batterie. Dann misst er allenfalls noch den Durchgang, bei geschlossenen Kontakten. Es ging nie um mehr, als um eine einwandfreie Funktionsprüfung. Natürlich ist das schön anzusehen, wenn der Balken sich analog zum Positionssensor bewegt, aber auch da hätten zwei Leds es getan. Das Teil bräuchte grob genommen nicht einmal ein Display. Der Techniker schließt die Komponenten an den Tester, dann an die Batterie und schaltet mit einem Schalter das Gerät ein. Zwei Leds für den Sensor. Zwei Leds für den großen Magneten Zwei Leds für den kleinen Magneten. Eine rückstellbare Sicherung. Rote Led - irgendwas stimmt mit dem Bauteil oder der Verkablung nicht. Sicherung fliegt - der große Magnet hat einen Kurzschluss. Alles andere macht das Programm. Dass ich das mit einem Display versehen habe ist nur dem Umstand geschuldet, dass ich gerne einmal mit Display arbeiten möchte. Und es macht etwas her. Eigentlich liebe ich Elektronik (und so baue ich meine Sachen für gewöhnlich), die ihre Aufgaben erfüllt, ohne dass du überhaupt etwas davon mitbekommst. Sie darf dir grundsätzlich erst auffallen, wenn der Strom weg ist. Ich messe die Eingangsspannung, damit ich die richtigen Parameter für die entsprechende Anlage aufrufen kann. Dann messe ich den Strom vom großen Magneten. Damit ich feststellen kann, ob überhaupt ein Strom fließt. Den Kurzschluss muss ich auch nicht mehr messen, habe ich mir überlegt. Wenn der Strom so hoch ist, dass der Magnet zweifelsfrei anziehen muss, dann frage ich den Anwender (ich habe jetzt ja ein Display), ob der Magnet angezogen war. Bestätigt er das mit der "Ja-Taste", dann ist der Magnet in Ordnung und der Test kann weiter gehen. Bei der "Nein-Taste" kann ich anbieten den Test zu wiederholen (falls er versehentlich auf "Nein" gedrückt hat). Bei "Nein" kommt dann der Satz. "1Y45 ist defekt!" "Kurzschluss oder mechanisch blockiert, bitte Achse ausbauen und prüfen!" Sollte der Magnet funktionieren, dann geht es weiter mit der Verrieglung und der Freigängigkeit der Bremse. Meine Kollegen verdienen alle genug Geld, um noch ein wenig selbst zu denken. Wenn das Gerät fertig ist und so wie gewünscht funktioniert, dann sind mindestens 98% der möglichen Fehler damit abgedeckt. Die zwei Prozent der Fehler sitzen dann vor dem Diagnosegerät. Und einen Schaltplan, wie es im Steuergerät funktioniert, den gibt es nicht für uns. Ist auch völlig Wuppe. Der große Magnet bekommt einen richtig fetten N-Chanel Mosfet und natürlich kommen noch Freilaufdioden an die beiden Magnete. Vielleicht kommt auch noch eine TVS-Diode vor den großen Magneten. Wenn ich eine hier habe, auf jeden Fall. Der kleine Magnet bekommt einen Widerstand zur Strombegrenzung und auch einen, in dem Fall viel zu großen Mosfet. Da könnte ich mir sogar die Diode sparen (mache ich aber nicht). Die Schaltung für den Sensor hat Peter beigesteuert. Zwei Stromschienen für Plus und Minus. Sicherung; erst Automat, später Streifensicherung. Sollte ich mehrere Geräte bauen. Alles wird so massiv ausgelegt, dass ich die Berechnungen mit den zehn Finger machen kann. Liegt auch ein bisschen daran, dass ich mir schon das Material zusammen geschnorrt habe. Das was ich da baue, das hat ja nur indirekt mit der gesamten Bremsanlage zu tun. Steuerung und Stromversorgung für das Fahrzeug sind ganz bewusst komplett ausgeklammert. Ich will ja nicht verantwortlich sein, wenn einer es doch schafft, das Fahrzeug abzufackeln. Die höchste Priorität ist, dass in keinem Fall ein Schaden durch den Tester am Fahrzeug oder den Komponenten entstehen können darf. Das muss von vorneherein komplett ausgeschlossen sein. Auch wenn sich 50A für viele Leute hier nach viel Strom anhören mag, das ist bei mir ein bisschen Strom.

#7657133
Lesenswert?

Ah sooooo ...!

Nach Deinem letzten Post habe ich auf jeden Fall viel besser verstanden, was Du überhaupt machen/messen/untersuchen willst - danke also für die Erläuterungen.

Na das hört sich in der Tat nicht ganz so kompliziert an, wie ursprünglich von mir vermutet.

Ein oder zwei Ideen hätte ich vielleicht noch beizusteuern:

Idee 1:

Sicherlich ist es ziemlich einfach, die Funktion des großen Bremsmagneten zu prüfen, indem man das "Klicken" durch sein Anziehen hört.

Evtl. könnte man die Funktion aber auch rein elektrisch prüfen - nämlich ob der Magnet angezogen hat oder nicht: wenn man den Magneten nämlich bestromt, dann wird auch dort irgendein Klöppel/Stößel bewegt (wenn ich das richtig verstanden habe).

In diesem Fall wird die Induktivität des Magneten wiederum ihren Wert verändern, was wir mit dem Oszillator wiederum vermessen könnten (vermutlich geht das sogar auch bei "fließendem Strom", indem wir das Signal entsprechend einkoppeln - wie genau, das schreibe ich, wenn's tatsächlich von Interesse sein sollte).

In diesem Fall könnte man die Messung vollautomatisch durchführen - kein Mensch muss das Ohr an den Stapler halten. Ob das gewollt ist oder nicht, das musst Du natürlich entscheiden.

Idee 2:

Zum Thema Shunt kann ich nur sagen: wenn Du halbwegs verlässliche Messwerte aus Deinem ADC auslesen willst, so sollten nicht die letzten 3 Bits von insgesamt 16 Bit den gesamten Messbereich abdecken (stark überspitzt formuliert). Vielmehr ist es günstig, die Messspannung so anzupassen, dass sie zum Messbereich des ADC "passt".

Und wenn Dir die Spannung über den Shunt für den ADC also zu gering ist, so bau einfach einen Operationsverstärker davor, der löst das Problem. Schaltungen dafür gibt es wie Sand am Meer (zumal es bei Dir in Sachen Messgenauigkeit ja "nicht auf einen Schnapps" ankommt)

Idee 3:

Um induzierte Ströme einer Spule nach deren Abschaltung möglichst schnell abzubauen, ist eine alleinige, antiparallel geschaltete Freilaufdiode nicht so günstig - an Ihr werden nur weniger als 1V "verbraten" und der Strom fließt daher noch eine ganze Weile durch sie und den Magneten im Kreis, bevor die Energie verbraten ist. Ein Widerstand oder eine Z-Diode in Reihe (siehe meine letzte Schaltung) kann das Problem lösen - dann wird mehr Energie verbraten und somit der induzierte Strom deutlich schneller geringer als ohne Widerstand.

Soweit meine 3 Cent/Ideen. Vielleicht ist ja etwas dabei, was Du gebrauchen kannst.

Viele Grüße

Igel1

OP #7657219
Lesenswert?

Andreas S. schrieb:

Evtl. könnte man die Funktion aber auch rein elektrisch prüfen - nämlich ob der Magnet angezogen hat oder nicht: wenn man den Magneten nämlich bestromt, dann wird auch dort irgendein Klöppel/Stößel bewegt (wenn ich das richtig verstanden habe).

Hallo Andreas!

Klar bewegt sich da was, aber nichts was du irgendwie vermessen könntest. Der Magnet ist vollkommen unzugänglich. Deshalb ja das Testgerät. Wenn der anzieht, dann kannst du den wahrscheinlich noch hören, wenn du dir die Ohren zuhältst.

Andreas S. schrieb:

In diesem Fall könnte man die Messung vollautomatisch durchführen - kein Mensch muss das Ohr an den Stapler halten. Ob das gewollt ist oder nicht, das musst Du natürlich entscheiden.

Kann ich natürlich vollautomatisch machen, in dem ich versuche den Magneten zu verriegeln, wenn der entsprechende Strom ansteht.

Andreas S. schrieb:

Und wenn Dir die Spannung über den Shunt für den ADC also zu gering ist, so bau einfach einen Operationsverstärker davor, der löst das Problem. Schaltungen dafür gibt es wie Sand am Meer (zumal es bei Dir in Sachen Messgenauigkeit ja "nicht auf einen Schnapps" ankommt)

Ist mit auf dem ADC. Bei dem 18 Bit ADC kann die Verstärkung bis 8-fach eingestellt werden. Bei dem, den ich verwenden will, kann ich das ziemlich gut für den Shunt einstellen. FSR = ±0.256 V. Außerdem könnte ich noch einen kleineren Shunt nehmen. 50A Shunt würde den Messbereich verdoppeln.

Andreas S. schrieb:

Um induzierte Ströme einer Spule nach deren Abschaltung möglichst schnell abzubauen, ist eine alleinige, antiparallel geschaltete Freilaufdiode nicht so günstig - an Ihr werden nur weniger als 1V "verbraten" und der Strom fließt daher noch eine ganze Weile durch sie und den Magneten im Kreis, bevor die Energie verbraten ist. Ein Widerstand oder eine Z-Diode in Reihe (siehe meine letzte Schaltung) kann das Problem lösen - dann wird mehr Energie verbraten und somit der induzierte Strom deutlich schneller geringer als ohne Widerstand.

Hat man früher bei den Schützen so gemacht. Bei den Thyristorschaltungen waren immer nur Freilaufdioden drin. Da kommt eine fette Schottky-Diode parallel zum Magneten. Damit es im ungünstigsten Fall bei der PWM nicht doch zu hohen Spannungen kommt, kommt vor dem Magneten noch eine TVS-Diode. Eigentlich komme ich nicht in den Bereich. Bei 80% PWM komme ich auf etwas über 60V Effektivspannung, Spitzenspannung nochmal 10V oben drauf. Dann bin ich immer noch 10V unter der Batterie. Was mir noch besser gefällt, eine Highside Überwachung. Da suche ich gerade noch nach dem passenden Bauteil. Vielleicht schalte ich aber auch einen zweiten Fet, noch vor dem für die PWM. Einen Komparator, der den Fet weg schaltet, wenn der Alarmausgang vom ADC high ist. Dann sollte es beim Kurzschluss auch nicht zum Auslösen der Sicherung kommen.

OP #7657411
Lesenswert?

So, heute mal die ersten Versuche mit dem ADS1115 gemacht. Bin noch nicht ganz durch damit. Da kann man sehr viel einstellen.

Andreas, ich weiß gar nicht was du gegen die Shuntmessung hast. Seit 36 Jahren mache ich jetzt meinen Job und so lange kenne ich bei uns Shunts in den Ladegeräten. Mit dem ADS1115 habe ich runter bis 0,01mA gemessen. Vielleicht solltest du dich einmal damit beschäftigen? Ich finde das kann man doch klasse messen. Ich brauch nicht einmal eine Umwandlung, denn ich kenne U=R*I und kann das bei soundsoviel Millivolt abschalten oder daraus die nötigen Konsequenzen ziehen. Der Anwender soll den Strom gar nicht sehen. Vielleicht später einmal, in der Version 1.x oder Version 2.0. Leider habe ich zwei ADS1115 abgeschossen und einen Nano. Durch den Nano war der zweite ADC dann auch weg. Manchmal sollte man zweimal denken, auch wenn man denkt, dass man richtig gedacht hat. Aber wie Regen beim Motorradfahren ab und zu dazu gehört, scheint es hier so zu sein, dass magischer Rauch aufsteigt. Bestellt habe ich noch den ADS1015. Der ist im Wesentlichen gleich, kann aber 3300 Messungen pro Sekunde machen. Der ADS1115 kann /nur/ 860 Messungen pro Sekunde. Damit sollte dann auch der Kurzschluss bei langsameren PWM-Frequenz (490Hz) einzufangen sein. Außerdem hat der einen Alarmausgang, den man auf High oder Low stellen kann. Damit lässt sich sicher auch eine Kurzschlussabschaltung realisieren; wie mit einem Profet.

#7659051
Lesenswert?

Bei der Kurzschlussbehandlung würde ich evtl. nicht über den Weg Shunt -> ADC -> MC -> MosFet-Treiber -> MOSFET gehen.

Bis dieser Weg durch ist, könnten ein paar ms zu viel ins Land gegangen sein (wieviel Zeit darf denn eigentlich vergehen, bis der MOSFET abgeschaltet haben muss?).

Du kannst auch ein analoges Monoflop an Deinen Shunt dranbauen, das bei X mV kippt und den MosFet sofort und dauerhaft abschaltet (ggf. über seinen vorgeschalteten Treiber).

Das könnte dann per Schalter/Taster zurückgesetzt werden.

Oder hat der eine von Dir zitierte ADC mit seinem Alarmausgang genau diese Funktionalität eingebaut? Und wenn ja - wieviel Verzögerung hat dieser Ausgang max.?

VG

Igel1

OP #7659108
Lesenswert?

Andreas S. schrieb:

Oder hat der eine von Dir zitierte ADC mit seinem Alarmausgang genau diese Funktionalität eingebaut? Und wenn ja - wieviel Verzögerung hat dieser Ausgang max.?

Moin Andreas!

Beide (ADS1115 und ADS1015) brauchen 8µs. Der raste auch ein (latching), wenn man das einstellt. Das hat den Vorteil, wenn man single-shot-Messungen macht, bleibt der Alert-Ausgang eingerastet. Du kannst sowohl sowohl auf dem I²C-Bus ausgeben als auch mit dem Ausgang was schalten. Das muss ich jetzt erst alles ausprobieren. Ich habe schon oft mit PWM gearbeitet, aber noch nie einen Kurzschluss in Betracht gezogen. Das muss ich natürlich bei dieser Batterie beachten. Die Batterie will ich nicht abschießen und was eher wahrscheinlich wäre, dass das Diagnosegerät in den Händen explodiert. Das muss ich verhindern. Im Moment ist mein Plan das als Interrupt auf den Controller zurück zu führen. Einen Low-side-switch als "Sicherung" einbauen (alles andere ist schwer zu bekommen und dann auch sehr teuer), der gleich zu Beginn eingeschaltet wird und nur durch den Interrupt oder eben durch Abschalten des Stroms abschaltet wird. Ich denke ein paar µSekunden kommen noch oben drauf. Im schlimmsten Fall löst die Sicherung aus. 80A-100A Sicherungen sind /kleine/, gängig Sicherungen bei uns. Außerdem werde ich auch noch den ACS758 testen. Ist ein Hallgeber und gibt es bis 200A. Allerdings sind die Platinen etwas zu mickrig für solche Ströme. Ob der 50A mit dieser Platine schaffen kann, bezweifle ich sehr. Jedenfalls nicht dauerhaft. Für die normale Funktion würde das völlig reichen und ich lass mir da eh noch was einfallen, dass das ein bisschen mehr Strom vertragen kann. Gestern ist der ADS1015 angekommen und da werde ich die Samplerate ausprobieren und mal schauen, was ich davon so auf dem Oszi dargestellt bekomme. Aber man braucht auch 'Mut zur Lücke', denn sonst kommt man zu nix. Wären die Brüder Wright und alle deren Mitstreiter so vorsichtig gewesen, wie wir es heute sind, würden wir noch immer mit dem Schiff über den Atlantik müssen.

#7659156
Lesenswert?

Frank O. schrieb im Beitrag #7659108: Wären die Brüder Wright und alle deren Mitstreiter so vorsichtig

gewesen, wie wir es heute sind, würden wir noch immer mit dem Schiff über den Atlantik müssen.

Und wäre Otto Lilienthal etwas vorsichtiger gewesen, so hätte er das 20. Jahrhundert vielleicht noch erlebt. :-)

Aber ich seh schon: Du gehst das mit dem Kurzschluss recht gewissenhaft an - dann wird das schon gutgehen.

Viele Grüße

Igel1

OP #7660110
Lesenswert?

Auch wenn einige hier sicher schon lange den Kopf schütteln, aber ich probiere die Dinge gerne selbst aus. Gestern habe ich diesen Alegro ACS758 getestet. Mir ist immer mehr klar, wieso diese Shunt-Messung immer noch so zahlreich verwendet wird. Der gleiche Aufbau, nur statt des Shunt, jetzt diesen ACS758-050B. Während der ADS1115 beim Shunt schön ruhig bleibt, nur Gezappel beim ACS758. Die Messung sollte mit dem Alegro deutlich besser werden und der misst auch recht gut, aber eben unruhig. Auch wenn das für die Anwendung im Moment völlig übertrieben ist, ich werde noch zwischen dem ADC und dem Shunt einen Instrumentenverstärker dazwischen bauen und dann einmal schauen, ob da noch mehr rauszuholen ist. Denn im Moment nutze ich den, wenn auch kleinen Messbereich von 256mV nicht voll aus. Mit dem Instrumentenverstärker kann ich das sicher einstellen und meinen Messbereich verbessern. Da ich noch viele Sachen vor habe, ist das alles keine verschwendete Zeit.

#7660212
Lesenswert?

Frank O. schrieb:

Der gleiche Aufbau, nur statt des Shunt, jetzt diesen ACS758-050B. Während der ADS1115 beim Shunt schön ruhig bleibt, nur Gezappel beim ACS758.

Ah - interessant.

Auch wenn das für die Anwendung im Moment völlig übertrieben ist, ich werde noch zwischen dem ADC und dem Shunt einen Instrumentenverstärker dazwischen bauen und dann einmal schauen, ob da noch mehr rauszuholen ist.

Kannst ja mal die Instrumentenverstärkerschaltung hier posten - würde mich interessieren.

Viele Grüße

Igel1

OP #7660262
Lesenswert?

Andreas S. schrieb:

Kannst ja mal die Instrumentenverstärkerschaltung hier posten - würde

https://www.ebay.de/itm/116128631519?mkcid=16&mkevt=1&mkrid=707-127634-2357-0&ssspo=VoHG-SihSGy&sssrc=2047675&ssuid=&widget_ver=artemis&media=COPY

Habe ich auch ausprobiert. Bekomme ich kaum auf Null eingestellt.

Den ADS1115 kann man auf einen Messbereich von 256mV beschränken. Das ist schon ganz gut. Was ich nicht verstehe, wieso die Hersteller nicht gleich auch einen Wertebereich von 75mV, wie für einen Shunt passende, da mit einbauen.

Hier noch ein schönes Video zum ADS1115: https://www.youtube.com/watch?v=zl7zJAq9nj8&t=26s

#7673448
Lesenswert?

Hallöchen Frank, hallo in die Runde,

hoffe es geht Dir und allen anderen Beteiligten gut und Du bist gut mit Deinem Projekt vorangekommen! Kannst ja mal wieder eine kleine Wasserstandsmeldung geben, wenn Du Lust hast.

Bevor ich es ganz vergesse: ich wollte ja noch immer meine Software hier eingestellt haben. Das Programm markiert sicherlich keinen Meilenstein in der Softwaregeschichte - es ist eher nach dem Motto "Hauptsache läuft und hinreichend kommentiert" geschrieben, also bitte nicht zu viel davon erwarten.

Anbei also die letzte Version meiner Software vom 07.05.2024, deren Oberfläche ich bereits in diesem Post beschrieben hatte (inkl. Video-Link): Beitrag "Re: Induktiver Positionssensor - Fragen dazu"

Viele Grüße

Igel1

Angehängte Dateien:
OP #7673578
Lesenswert?

Moin Andreas! Wow! Da hast du dir sehr viel Mühe gegeben. Atomic.h, da musste ich erstmal nachlesen. War noch etwas im Hinterkopf, aber ich wusste nicht mehr was. Mit deiner LED ist mir auch schon gekommen. Ich glaube, dass das doch eine gute Idee ist. Ebenfalls bin ich schon wieder (fast) von den Tastern weg und will da Touch-Sensoren nehmen. Hab da mal ein halbes Kilo bestellt. Natürlich habe ich mir auch die WS2812 bestellt. Es wird auch nur wenige Entscheidungen von dem Anwender geben. Weniger als geplant. Das wird im Wesentlichen auf das klacken der Bremse reduziert werden (selbst da könnte man noch ein Mikrofon einbauen), und die Frage, ob die Räder sich frei drehen lassen.

Zwischendurch habe ich mit den ESP32C3 gespielt (so als Ablenkung). Teilweise hattest du recht, mit dem was du schriebst. Aber diese Mini Dinger funktionieren doch so wie ich will und die könnten die Zukunft meiner Projekte werden. Das mit dem Speicher ärgert mich nämlich sehr.

Mein Wasserstand sieht so aus, dass ich im Grunde die wichtigen Module fertig habe. Die Ansteuerung der Fet's wird in Loop stattfinden, deshalb brauche ich dafür (vorerst) keine Funktion. Bei mir ist alles nicht so schön wie bei dir, du hast alles kalibriert und mit Sicherheiten. Einfach erstmal nur funktionabel. Wo ich mich noch ein bisschen drücke, das alles zu einem lauffähigen Programm zusammen zu bringen. Da ich nur theoretisch weiß wie das geht, denn dort hatte ich damals aufgehört. Ich bin aber immer noch mit dem Strom zugange. Auch die ACS758 sind gar nicht so übel. Das war wohl mehr mein Fehler oder eher die falschen Hinweise. Nachdem ich den ohne Modul getestet hatte, habe ich mir auch mal einen Schaltplan besorgt, für diese Module. Danach war mir klar, dass ich die anders messen muss. Im Moment steht auf meiner Agenda folgendes:

  • Den Einfluss vom Kurzschluss bei PWM zu messen und den richtigen Duty Cycle zu finden, bevor der Strom überschießt. Die Sicherung soll ja nur zur Beruhigung da sein, auslösen soll sie nie. Auch ist die Idee von einem zweiten Fet (highside muss der bei mir gar nicht sein, da es ein Tester ist und somit nicht der Maschinenvorschriften unterliegt; außerdem auch nur erstmal mein eigenes Gerät) ist noch im Rennen, denn die Module haben auch einen Alarmausgang. -Die Displayansteuerung so hinzubekommen, dass ich die globalen Variablen reduzieren kann, sodass ich genug Speicher für den Nano habe. Ich möchte das nicht auf dem Mega2560 machen, obwohl ich schon ein paar von den Dingern hier habe. Also ist meine Hauptaufgabe erstmal die Library von U.K. genau zu studieren und nötigenfalls selbst etwas daraus abzuwandeln. Dazwischen probiere ich schon, wie man Programmteile als Library auslagert. Klappt auch schon testweise. Leider hatte ich aber die letzte Zeit sehr wenig Zeit. Ich habe viel gearbeitet (viel zu viel), weil keiner da war (alle in ka-na-da). Was mich am meisten raus wirft, wenn es mir nicht so gut geht, habe ich auch nicht so den Kopf für die Sachen. Schwer zu denken, wenn man den Bauch im Kopf hat. Aber ich bin trotzdem dran.
OP #7673647
Lesenswert?

Andreas S. schrieb:

(inkl. Video-Link): Beitrag "Re: Induktiver Positionssensor - Fragen dazu"

Gerade habe ich mir noch einmal dein letztes Video angesehen. Das hast du wirklich gut gemacht! In dem Video (OLED_2_42_SSD1309_test_igel1_v006e.001) hast du nun erkannt, dass der Sensor auch der Fehler sein kann. Dann hast du nun also das also richtig umgesetzt. Auch wenn ich das nicht so machen werde und nur ein einziges Mal kalibrieren muss, so habe ich doch erkannt, dass das Abschneiden der Balkenwerte sicher für die Darstellung gut ist, aber einen evtl. Sensorfehler schlecht beschreiben würde. Daher werde ich wohl doch wieder die echte prozentuale Anzeige hinzufügen. Da würde ein evtl. Fehler, der ober- oder unterhalb der von der eigentlichen Steuerung akzeptierten Werte liegt, nicht gut erkannt werden. Es gab zumindest einen Fall, da wurde der Sensor in der (echten) Diagnose als intakt erkannt und nach Austausch des Sensors war der Fehler weg. Also kann der Techniker selbst, an den Erfahrungswerten entscheiden, ob er den Sensor tauscht. Aber wie schon oft geschrieben, der Sensor ist mein geringstes Problem. Alles was von außen zu tauschen ist, ist nicht das eigentliche Testfeld.

Für mich selbst brauche ich das alles gar nicht mehr, da ich das System mittlerweile so gut kenne, dass ich das auch völlig ohne Diagnose überprüfen kann. Deshalb wird eine genaue Beschreibung der Fehler und der Zustände dem Techniker dabei helfen, die richtige Entscheidung zu treffen. Es soll dem Techniker die absolute Sicherheit geben, ob er die Achse ausbauen und zerlegen muss. Man stelle sich vor, der (oder besser die beiden Techniker) baut die Achse aus, einen neuen Magneten ein, um dann festzustelle, dass der Magnet nicht der Fehler war und der Fehler außerhalb der Achse liegt. Deshalb ist der Funktionstest des Magneten so überaus wichtig.

#7673694
Lesenswert?

Hi Frank,

aus Deinen zwei letzten Posts kann ich grob entnehmen, woran Du tüftelst - da kann ich nur sagen: Du bist beharrlich und kommst offenbar langsam aber stetig voran.

Wenn Du nochmals etwas Unterstützung brauchst, so melde Dich hier gerne mit konkreten Themen, dann kann ich (oder ggf. auch andere) nochmals wieder einsteigen.

Ansonsten: good luck weiterhin ...

Viele Grüße

Igel1

OP #7673925
Lesenswert?

Andreas, ich habe gerade ein umfangreichen Testsatz zu dir geschickt. Den INA219 verwende ich zwar nicht, auch den MCS1800 nicht, aber sicher schön auszuprobieren. Leider konnte ich dir kein Shunt dabei legen. Eigentlich hatte ich drei, aber das eins habe ich nicht wieder gefunden. Da ich eins zum testen brauche und eins für das Projekt, musst du leider drauf verzichten. ADS1015 und ADS1115 sind in der Anwendung gleich, der ADS1015 hat aber eine max. Samplerate von 3300 Samples. Du wirst sicher auch feststellen, dass der ADC1115 ruhiger misst. Da zappelt hinten nicht so viel rum. Ein kleines Display ist auch dabei, dass du das auch in I2C machen kannst.

Danke für den Arschtritt, bin jetzt wieder motiviert!

#7674501
Lesenswert?

Frank O. schrieb:

Andreas, ich habe gerade ein umfangreichen Testsatz zu dir geschickt.

Oh, toll - das ist aber nett!! Dankeschön! Dabei ist Weihnachten doch erst in 7 Monaten ...

Viele Grüße

Igel1

PS:

Ich schreibe dir gleich eine Mail. Schaue in dein Postfach.

Bislang ist noch nichts angekommen, oder habe ich Deine Email verpasst? (ich stehe mit meinem Thunderbird-Mailclient ab und an auf Kriegsfuß)

OP #7674523
Lesenswert?

Die Mail müsstest du bekommen haben. Ich denke der Brief wird Samstag bei dir ankommen. Wie schon geschrieben, da ist alles dabei (bis auf den Shunt) was ich hier verwenden werde oder schon verwende und alles was ich getestet hatte. Bin auf deine Bewertungen gespannt. Vor allem, ob du auch den "kleinen" Unterschied zwischen den beiden ADCs feststellen wirst. Der ist minimal und 3300 Samples sind nun mal das Dreifache von dem höchsten Wert des 1115. Die Alarmfunktion habe ich bei beiden noch nicht getestet, aber bei dem MCS1800 stellt man die Schaltschwelle über ein Poti ein. Der schaltete dann auch zügig um, allerdings ohne, dass ich die Zeit gemessen hätte. Die Strommessung und dass ich damit sehr viel Zeit verbringe, ist für mein späteres Ladegerät wichtig. Ich hatte schon damals das richtige Ladeverfahren . Hätte ich besser gleich schützen lassen sollen. Aber die zusätzlichen Erfahrungen, die ich die letzten zehn Jahre gemacht habe, haben mich schon wieder auf ganz neue Ideen gebracht. Das wird das beste Ladegerät für Bleibatterien, dass es je gegeben hat.

Heute ist eine Leiste mit 8 WS2812 LEDs gekommen. Tolle Sache. Für die meisten hier ein alter Hut, aber für mich sind die neu. Ich glaube normale LEDs werde ich in Zukunft nicht mehr brauchen. Gestern habe ich noch in der U8G2 Bibliothek gelesen. Da kann man noch einiges an Speicher sparen. Heute hatte ich keine Zeit. Musste eine Freundin ins Krankenhaus fahren und mich dann zu Hause um sie und ihren Hund kümmern. Morgen ist auch schon verplant. Will noch mit meiner Mutter was unternehmen. Wer weiß wie lange das noch geht. Sie ist 88 Jahre alt. Aber es wird weiter gehen.

#7674543
Lesenswert?

Frank O. schrieb:

Die Mail müsstest du bekommen haben.

Leider nicht - könntest Du sie netterweise nochmals schicken?

Ich denke der Brief wird Samstag bei dir ankommen. Wie schon geschrieben, da ist alles dabei (bis auf den Shunt) was ich hier verwenden werde oder schon verwende und alles was ich getestet hatte. Bin auf deine Bewertungen gespannt.

Puhhh - jetzt fühle ich mich etwas unter Druck gesetzt, weil ich aktuell nicht mehr so viel Zeit für's Hobby abknappsen kann, wie noch vor ein paar Wochen. Habe hier gerade einen ziemlichen Umbruch im Job und muss da einiges an Zeit investieren, um nicht unter die Räder zu kommen. Mach Dir also bitte nicht allzu große Hoffnungen ...

Viele Grüße

Igel1

OP #7674581
Lesenswert?

Andreas S. schrieb:

Leider nicht - könntest Du sie netterweise nochmals schicken?

Brauch ich nicht. Stand nur drin, dass ich dir die Sachen schicken wollte und dass ich dankbar dafür bin, dass du mich indirekt in den Arsch getreten hast. Habe ich dann später hier geschrieben, weil das letztes Mal auch schon mit der Mail nicht so ganz geklappt hat. Schreib doch WhatsApp. Ich habe deine Nummer nicht mehr.

OP #7674663
Lesenswert?

Enrico E. schrieb:

Die Filmchen mit der grafischen Darstellung von der Position der Bremse auf dem LCD-Display, sieht schon mal genial aus 👍

Der Film ist nicht von mir. Meins sieht sehr ähnlich aus und ich habe die Anzeige nicht beruhigt. Dafür habe ich, statt zu kalibrieren, die Enden abgeschnitten. Mir geht es ja immer noch am wenigsten um den Sensor.

Habe gerade mit der Lib von U.K. einiges ausprobiert. Die Frage geht natürlich an alle, aber vorwiegend an Andreas. Im Moment habe ich FullFrame. Das braucht aber irre Speicher. Wenn ich das seitenweise übertrage, dann brauche ich die Hälfte vom Speicher.

Deshalb die Frage, hat einer einen Beispielcode. Ich weiß, das steht alles im Manual zur Library. Aber vielleicht hast du, Andreas, das schon mal im Zusammenhang mit dem Projekt gemacht. Ich brauche ja nur "Progress" und "Verriegelt" oder "Gelöst" aktualisieren.

OP #7675532
Lesenswert?

Das mit dem F() Makro hatte ich mal probiert, führt aber zu Fehlermeldungen. Zu viel Argumente. Mit der "first page" hatte ich gelesen und das will ich machen. Bei der niedrigsten Display-Einstellung konnte ich über 50% bei den Belegung der Variablen sparen. Da waren statt 80% nur noch 37% belegt.

Ich hätte das Handbuch gerne als PDF, aber habe nichts gefunden. So was drucke ich mir gerne aus. Leider finde ich nichts.

Aber dir und deinem Anhang wünsche ich erstmal ein fantastisches Wochenende!

Werde mich mit der Lib auseinander setzen, aber ich muss mich gerade auch mit Shelly beschäftigen. Da gibt es gerade wieder einen Spezialauftrag. Türöffnen über Internet.

#7675857
Lesenswert?

Erst auf page mode wechseln - das bringt die meiste Einsparung. Wenn dann immer noch Einsparung nötig ist, dann erst die anderen Dinge angehen.

Aber vertu Dich nicht: auch wenn der full page mode bei Dir aktuell 80% memory verbraucht (flash oder RAM?), so kann man mit den restlichen 20% noch immer riesige Programme schreiben.

Erst wenn dann noch weitere große Libs dazukommen (z.B. für die AD-Converter), dann erst könnte es knapp werden.

VG Andreas

PS: warum willst Du nicht auf den Arduino Mega 2560 wechseln? Formfaktor zu groß?

OP #7677029
Lesenswert?

Habe mich heute mit der u8g2 Library auseinandergesetzt und das ist das Ergebins: Sketch uses 13162 bytes (42%) of program storage space. Maximum is 30720 bytes. Global variables use 761 bytes (37%) of dynamic memory, leaving 1287 bytes for local variables. Maximum is 2048 bytes.

43% bei derzeitigem Stand eingespart.

Jetzt muss ich das nur noch mit allen anderen Anzeigen hinbekommen. Denn so richtig habe ich das noch nicht verstanden. Aber auch schwer sich zu konzentrieren, wenn man dauernd dazwischen zur Toilette muss. Dennoch, der Anfang ist gemacht und der Rest wird dann auch klappen. Ich freue mich tatsächlich ein bisschen.

#7677575
Lesenswert?

Frank O. schrieb:

Andreas, ich habe gerade ein umfangreichen Testsatz zu dir geschickt. Den INA219 verwende ich zwar nicht, auch den MCS1800 nicht, aber sicher schön auszuprobieren.

Bin wieder zurück zu Hause und mein Nachbar hat mir Dein Paket gebracht. Wow - da hast ja wirklich jede Menge schöne Bauteile reingepackt. Das ist sehr nett (und auch sehr großzügig) von Dir - Dankeschön!

Ich habe gerade erst einmal alles inventarisiert - war teilweise gar nicht so leicht, die genauen Chip-Bezeichnungen zu lesen.

Leider konnte ich dir kein Shunt dabei legen. Eigentlich hatte ich drei, aber das eins habe ich nicht wieder gefunden. Da ich eins zum testen brauche und eins für das Projekt, musst du leider drauf verzichten.

Kein Problem. Ich kann ja z.B. auch den Shunt auf dem INA219 verwenden. Wieviel Milliohm hat Dein Shunt?

ADS1015 und ADS1115 sind in der Anwendung gleich, der ADS1015 hat aber eine max. Samplerate von 3300 Samples. Du wirst sicher auch feststellen, dass der ADC1115 ruhiger misst. Da zappelt hinten nicht so viel rum.

Welche Lib verwendest Du für den jeweiligen ADC? Ansonsten unterscheiden sich die beiden Kandidaten schon ziemlich, denn der ADC1015 ist ja nur ein 12-bit ADC, wohingegen der ADC1115 ein 16-bit ADC ist. Da liegt es vermutlich in der Natur der Sache, dass der ADC1115 ruhiger misst - denn wenn das letzte Bit (=LSB) beim ADC1015 flattert, so macht das vom Messwert direkt 16x mehr aus, als wenn das LSB beim ADC1115 flattert.

Ein kleines Display ist auch dabei, dass du das auch in I2C machen kannst.

Wow - danke.

Danke für den Arschtritt, bin jetzt wieder motiviert!

Hätte auch wieder Lust, etwas mit Deinen Bauteilen zu basteln, habe aber aktuell leider nur sehr wenig Zeit.

Viele Grüße

Igel1

#7677583
Lesenswert?

Frank O. schrieb:

Habe mich heute mit der u8g2 Library auseinandergesetzt und das ist das Ergebins: Sketch uses 13162 bytes (42%) of program storage space. Maximum is 30720 bytes. Global variables use 761 bytes (37%) of dynamic memory, leaving 1287 bytes for local variables. Maximum is 2048 bytes.

43% bei derzeitigem Stand eingespart.

Also von full screen buffer mode auf page buffer mode umgestellt?

Jetzt muss ich das nur noch mit allen anderen Anzeigen hinbekommen.

?? Mit welchen anderen Anzeigen ?? Ich dachte, Du verwendest nur diese 0,96'' OLEDs mit SSD1306?

Ich freue mich tatsächlich ein bisschen.

Yep - kannst Du auch, definitiv!

Viele Grüße

Igel1

OP #7677776
Lesenswert?

Andreas S. schrieb:

Wieviel Milliohm hat Dein Shunt?

Milliohm müsste ich rechnen. Die sind normalerweise immer 75mV bei vollen Ampere. Also ein 50A/75mV Shunt hat 75mV bei 50A. Der 100A dann halt 75mV bei 100A.

Andreas S. schrieb:

Welche Lib verwendest Du für den jeweiligen ADC?

Die haben unterschiedliche Libs: #include <ADS1115_WE.h> #include<ADS1015_WE.h> Klar, der eine kann 16Bit. Was ich meinte, dass die von der Funktion ansonsten gleich sind. Auch mit der Verstärkung. Der 1015 kann halt 3300 Samples. Das wollte ich ausprobieren, falls der Kurzschluss sonst nicht eingefangen wird. Aber mein bevorzugter ADC wird der 1115 in Zukunft sein. Grundsätzlich werde ich auch beim Shunt bleiben, wobei die ACS758 (Unidirectional) auch nicht so schlecht finde. Die würden dann bei einem 12V Ladegerät, wenn es klein werden soll, rein kommen.

Andreas S. schrieb:

Also von full screen buffer mode auf page buffer mode umgestellt?

Ja.

Jetzt muss ich das nur noch mit allen anderen Anzeigen hinbekommen.

?? Mit welchen anderen Anzeigen ??

Ich hatte bis jetzt noch nie etwas mit Interaktion und Display. Der Anwender wird zu bestimmten Zeiten zu Aktionen aufgefordert und daraufhin muss, während und nach diesen Aktionen, das Display andere Anzeigen ausgeben. Damals war mein erstes Projekt etwas aufwändiger, aber ohne Display. Danach waren die Sachen eigentlich überschaubar. Und außerdem habe ich bisher immer das Ziel verfolgt, dass meine Hard- und Software möglichst ohne Aktionen und unauffällig ihre Arbeit verrichtet. Grundsätzlich bin ich immer dafür, dass alles einfach funktioniert und dass der Anwender höchstens was merkt, wenn diese Elektronik ausfällt. Eigentlich bin ich komplett dagegen jeden Mist anzuzeigen. Wenn ich hier solche Beiträge lese, dass die ihre Heizungs- und Sonnenkollektorendaten sogar auf ihr Handy bekommen, das finde ich albern. Meine Elektronik soll das Beste aus allem rausholen und das Beste aus jeder Situation machen, ohne das ich das merke. Vielleicht kennst du dieses Nest Thermostat? Das ist so etwas. Es lernt an deinen Einstellungen. Irgendwann musst du vielleicht gar nichts mehr einstellen. Als (blödes) Beispiel: Eine Frau, wenn sie ihre Regel bekommt, braucht sie es immer 2 Grad wärmer im Haus. Irgendwann kann das Teil selbstständig die richtige Temperatur einstellen und ihr ist dann nicht mehr kalt. Hier wollte ich auch unbedingt einmal etwas mit OLED machen. Es ist ja nicht nur ein Testgerät, sondern auch ein Lernprojekt.

Ich dachte, Du verwendest nur diese 0,96'' OLEDs mit SSD1306?

Bin noch etwas unschlüssig. Das 1.3" (SSD1309) Display ist von der Größe optimal. Aber die sind nicht so hell. Was ich nun auch rein bauen werde, diese WS2812 (SH6812). Da bin ich aber noch nicht schlüssig, ob es ein Streifen mit 8 Leds sein wird oder nur vier im Quadrat. Aber ich denke die vier im Quadrat werden es werden. Da kann ich die im Kreis drehen lassen, wenn ein Test läuft (gelb) und wenn abgeschlossen und ok, dann alle grün anzeigen lassen. Bei Fehler blinken alle rot. So in der Art. Für die 12V Spannung, zur Überwachung, brauche ich kein Programm, da habe ich so schöne Anzeigen gefunden: 0.28 Zoll Mini Digital Voltmeter Display 7-Segment Spannungsmesser 2.5V-30V Ebay-Artikel: 144028183376. Sind nicht super genau, aber um zu wissen, ob da überhaupt Spannung ist und die halbwegs ausreichend ist, dafür sind die mehr als gut.

#7678042
Lesenswert?

Frank O. schrieb:

Andreas S. schrieb:

Wieviel Milliohm hat Dein Shunt?

Milliohm müsste ich rechnen. Die sind normalerweise immer 75mV bei vollen Ampere. Also ein 50A/75mV Shunt hat 75mV bei 50A. Der 100A dann halt 75mV bei 100A.

Ah so - jetzt verstehe ich das endlich. Ich hatte mich schon immer gewundert - aber im Starkstrombereich ist die Auszeichnung in mV/A natürlich sinnvoll.

Andreas S. schrieb:

Welche Lib verwendest Du für den jeweiligen ADC?

Die haben unterschiedliche Libs: #include <ADS1115_WE.h> #include<ADS1015_WE.h>

Okay, danke.

Klar, der eine kann 16Bit. Was ich meinte, dass die von der Funktion ansonsten gleich sind. Auch mit der Verstärkung. Der 1015 kann halt 3300 Samples. Das wollte ich ausprobieren, falls der Kurzschluss sonst nicht eingefangen wird.

Ich würde den ADC1115 nehmen und den Überstrom über einen separaten Komparator am Shunt detektieren. Der spricht dann < 1us an und Du hast noch etwas Zeit um Deinen MOSFET abzuschalten (musst ja auch erst einmal die Ladung von dessen Gate wegpumpen, auch das dauert).

Aber mein bevorzugter ADC wird der 1115 in Zukunft sein. Grundsätzlich werde ich auch beim Shunt bleiben, wobei die ACS758 (Unidirectional) auch nicht so schlecht finde. Die würden dann bei einem 12V Ladegerät, wenn es klein werden soll, rein kommen.

Andreas S. schrieb:

Also von full screen buffer mode auf page buffer mode umgestellt?

Ja.

Ah prima.

Jetzt muss ich das nur noch mit allen anderen Anzeigen hinbekommen.

?? Mit welchen anderen Anzeigen ??

Ich hatte bis jetzt noch nie etwas mit Interaktion und Display. Der Anwender wird zu bestimmten Zeiten zu Aktionen aufgefordert und daraufhin muss, während und nach diesen Aktionen, das Display andere Anzeigen ausgeben.

Ah so - wenn die Interaktionen aufwändiger werden, so muss man da natürlich strukturierter rangehen, als ich das in meinem Programm getan habe.

Ich bin auch kein Frontend-Programmer und kenne die best practice in diesem Fall nicht.

So rein intuitiv würde ich in diesem Fall vielleicht einen State- Machine Ansatz fahren (a la Moore-Machine oder Mealy-Machine).

Bei größeren Interaktionen lohnt es sich sicherlich, erst einmal die typischen Pattern (= gängige Software Strickmuster/Vorgehensweisen) für so etwas zu studieren. Man muss ja nicht das Rad zum X-ten Mal erfinden.

Damals war mein erstes Projekt etwas aufwändiger, aber ohne Display. Danach waren die Sachen eigentlich überschaubar. Und außerdem habe ich bisher immer das Ziel verfolgt, dass meine Hard- und Software möglichst ohne Aktionen und unauffällig ihre Arbeit verrichtet. Grundsätzlich bin ich immer dafür, dass alles einfach funktioniert und dass der Anwender höchstens was merkt, wenn diese Elektronik ausfällt. Eigentlich bin ich komplett dagegen jeden Mist anzuzeigen. Wenn ich hier solche Beiträge lese, dass die ihre Heizungs- und Sonnenkollektorendaten sogar auf ihr Handy bekommen, das finde ich albern.

Da spricht der Service-Techniker :-) Den interessiert hauptsächlich, dass das Maschinchen läuft.

Den Entwickler interessieren auch die anderen Daten, denn er will ja die Maschine verbessern/ausreizen.

Ist also m.M.n. alles eine Sache der Zielgruppe, die man niemals aus dem Auge verlieren sollte. Für Deine Zielgruppe finde ich Deinen Ansatz genau richtig.

Meine Elektronik soll das Beste aus allem rausholen und das Beste aus jeder Situation machen, ohne das ich das merke. Vielleicht kennst du dieses Nest Thermostat? Das ist so etwas. Es lernt an deinen Einstellungen. Irgendwann musst du vielleicht gar nichts mehr einstellen. Als (blödes) Beispiel: Eine Frau, wenn sie ihre Regel bekommt, braucht sie es immer 2 Grad wärmer im Haus. Irgendwann kann das Teil selbstständig die richtige Temperatur einstellen und ihr ist dann nicht mehr kalt. Hier wollte ich auch unbedingt einmal etwas mit OLED machen. Es ist ja nicht nur ein Testgerät, sondern auch ein Lernprojekt.

Okay, verstanden. In Deinem Fall hätten es also eigentlich auch ein paar leuchtende LEDs getan.

Ich dachte, Du verwendest nur diese 0,96'' OLEDs mit SSD1306?

Bin noch etwas unschlüssig. Das 1.3" (SSD1309) Display ist von der Größe optimal. Aber die sind nicht so hell.

Yep und man liest häufig, dass deren Helligkeit schon nach wenigen Jahren deutlich nachlassen.

Was ich nun auch rein bauen werde, diese WS2812 (SH6812). Da bin ich aber noch nicht schlüssig, ob es ein Streifen mit 8 Leds sein wird oder nur vier im Quadrat. Aber ich denke die vier im Quadrat werden es werden. Da kann ich die im Kreis drehen lassen, wenn ein Test läuft (gelb) und wenn abgeschlossen und ok, dann alle grün anzeigen lassen. Bei Fehler blinken alle rot. So in der Art.

Yep - so etwas kann man als Benutzer in der Tat viel schneller erfassen als die Anzeigen auf einem Display.

Für die 12V Spannung, zur Überwachung, brauche ich kein Programm, da habe ich so schöne Anzeigen gefunden: 0.28 Zoll Mini Digital Voltmeter Display 7-Segment Spannungsmesser 2.5V-30V Ebay-Artikel: 144028183376. Sind nicht super genau, aber um zu wissen, ob da überhaupt Spannung ist und die halbwegs ausreichend ist, dafür sind die mehr als gut.

Wenn's den Zweck erfüllt - so what ...

Viele Grüße

Igel1

OP #7678190
Lesenswert?

Andreas S. schrieb:

Ah so - wenn die Interaktionen aufwändiger werden, so muss man da natürlich strukturierter rangehen, als ich das in meinem Programm getan habe.

Genau! Ich werde jetzt erstmal eine Menge Funktionen schreiben. Nach Möglichkeit soll das Hauptprogramm gar nicht so sehr viel machen, das soll alles in den Funktionen geschehen. Aber du weißt ja, man wächst an den Aufgaben.

Andreas S. schrieb:

und den Überstrom über einen separaten Komparator am Shunt detektieren.

Das ist wohl der übliche Weg, wie ich jetzt zwischenzeitlich gelesen habe. Den werde ich auch gehen. Ich muss den Alarmausgang auf dem ADC1115 noch testen. Den kann man als "Conversion Ready Pin" oder als Alarm für einen hohen Wert, einen niedrigen Wert oder als Fensterkomparator benutzen. Ebenso kann man den als Low oder High konfigurieren. Und das beste daran, dass er "einrasten" kann. Also wird dann auch nicht wieder der Strom eingeschaltet.

Andreas S. schrieb:

Den interessiert hauptsächlich, dass das Maschinchen läuft.

Nur darum geht es immer in meinem Beruf.

Andreas S. schrieb:

In Deinem Fall hätten es also eigentlich auch ein paar leuchtende LEDs getan.

Habe ich doch schon zu Anfang gesagt. Und nun kommen die auch noch dazu. Ich wette, dass die meisten gar nicht auf das Display schauen und nur die Leds beachten. :-).

Andreas S. schrieb:

Yep und man liest häufig, dass deren Helligkeit schon nach wenigen Jahren deutlich nachlassen.

Mal davon abgesehen, dass diese Dinger nicht die Welt kosten und man das dann schnell ersetzen kann. Wenn das Gerät zum Einsatz kommt, dann ist der ganze Spuk in 5 Minuten (wenn sich einer schwer tut, in 15 Minuten) zu Ende. Vielleicht wird das Gerät einmal im Jahr gebraucht. Bis das Display defekt ist, wegen Alterung, bin ich längst unter der Erde und die Fahrzeuge gibt es nicht mehr auf dem Markt. Wenn ich mir viele kommerzielle Elektrogeräte ansehe und Elektroniken, wie lange halten die den so? Das muss nicht so lange halten wie die Pyramiden.

Andreas S. schrieb:

Wenn's den Zweck erfüllt - so what ...

Ist dann besser als eine einfach Led, die man üblicherweise nehmen würde.

OP #7680968
Lesenswert?

Eine kurze "Wasserstandsmeldung". Die Bayern mögen mir den Ausdruck verzeihen. Auch wenn ich eigentlich mehr schaffen wollte (haut mich immer wieder raus und wenn das nicht, arbeite ich wieder zu viel), aber dennoch konnte ich den Speicherbedarf weiter reduzieren.

1
Sketch uses 8062 bytes (26%) of program storage space. Maximum is 30720 bytes.
2
Global variables use 660 bytes (32%) of dynamic memory, leaving 1388 bytes for local variables. Maximum is 2048 bytes.

Nun habe ich den Sensor und die Anzeige dessen in eine Funktion (und in Arduino in einem Tab ausgelagert). Es wird nun übersichtlicher und ich weiß vor allem wieder wie man das machen muss. Für mich ist das sicher ein größerer Schritt. Die meisten hier, vor allem solche Leute wie Peter D., für die ist das natürlich nichts. Aber dennoch freue ich mich, dass ich das so hinbekommen habe. Denn jetzt weiß ich auch wie ich alle anderen Sachen so hinbekomme, wie ich muss und möchte. Speicher habe ich nun auch genug zur Verfügung. Ein Gehäuse, für den Test, habe ich von meinem Kunden bekommen. Das ist erstmal nur um zu schauen, wie ich das dann alles einbauen werde.

OP #7906484
Lesenswert?

Da ich das hier so offen gelassen habe, wollte ich abschließend noch dazu schreiben. Das Projekt war noch etwas fortgeschritten, aber im August 2024 ist ein neuer Tumor, unter der Chemotherapie, gewachsen. Seit August letzten Jahres arbeite ich nicht mehr und wenn man nach dem üblichen Verlauf geht, ist es ein weiteres Wunder, dass ich immer noch da bin.

Also mit kurzen Worten: Das Projekt ist unvollendet beendet worden.

Für mich hätte ich das eh nicht mehr gebraucht, weil ich durch die Arbeit an dem Projekt diese Bremse mittlerweile so gut kenne, dass ich das nicht mehr gebraucht hätte. Andere Kollegen sicher, wie ich kürzlich noch erfahren haben.

Da ich aber richtig Leistung für die Magneten brauche und das mit der Staplerbatterie testen müsste, fällt das aus.

Wenn ich nicht in Kürze zwangsweise verrentet werde, reiche ich diese Anfang nächsten Jahres ein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren