Helau Freunde der Elektronik.
Ich habe hier einen gegrillten Wasserstandssensor (ST-545) der auf einem
74HC4060 basiert. Um die restliche Funktion der Waschmaschinenplatine zu
prüfen müsste ich diesen Sensor irgendwie simulieren. Ich werde aus dem
74HC4060 Datenblatt nicht wirklich schlau - allerdings hat meine
Recherche ergeben, dass der Sensor wohl eine PWM ausgibt und bei
Änderung des Wasserstands die Frequenz von 35Hz auf 45Hz erhöht.
Jetzt war meine Idee, das ganze mit dem Arduino UNO oder Mega2560 den
ich hier habe, zu simulieren.
Der Sensor hat 5V input, Ground und Output.
Mein Plan war jetzt einfach die 5V+GND die von der WaMa-Platine kommen
an den MEGA zu klemmen und dann mit analogWrite die PWM zu simulieren,
in etwa so?:
1
const int outputPin = 9; // Digital pin to output PWM signal
2
3
void setup() {
4
pinMode(outputPin, OUTPUT);
5
}
6
7
void loop() {
8
simulateSensor(); // Simulate the sensor output
9
delay(1000); // Wait for a while before changing the frequency
10
}
11
12
void simulateSensor() {
13
int initialFrequency = 35; // Initial frequency of the sensor (in Hz)
14
int targetFrequency = 45; // Target frequency of the sensor (in Hz)
15
int frequencyStep = 1; // Frequency change step (increase by 1 Hz)
analogWrite(outputPin, 128); // Generate PWM signal (adjust duty cycle as needed)
19
delay(1000 / freq); // Delay to control frequency
20
analogWrite(outputPin, 0); // Turn off PWM
21
delay(1000 / freq); // Delay for the off period
22
}
23
}
Welche Werte (change step, duty cycle und delay) sollte ich da anpeilen?
Bin über jegliche Lösungsvorschläge dankbar und wünsche noch einen
schönen Sonntagabend
Manfred schrieb:> Ich werde aus dem> 74HC4060 Datenblatt nicht wirklich schlau - allerdings hat meine> Recherche ergeben, dass der Sensor wohl eine PWM ausgibt und bei> Änderung des Wasserstands die Frequenz von 35Hz auf 45Hz erhöht.
Der CD4060 ist ja auch keine "Sensor", sondern eine recht einfacher
Oszillator mit nachgeschaltetem binärem Zähler. Mit
Puls-Weiten-Modulation (PWM) hat das ganze auch nicht viel zu tun. Durch
den Teiler ist das Impuls-Pausen-Verhältnis immer gleichmäßig.
-
https://www.elektormagazine.de/news/circuit-shorts-the-curious-case-of-cd4060-de
Der Trick an dem ganzen dürfte sein, eine der Frequenzbestimmungen
Komponenten des Oszillator (meiste die Kapazität) durch äußere Einflüsse
zu verändern. Z.B.: zwei parallele Leiterbahnen haben in trockener
Umgebung eine andere Kapazität als im nassen Zustand. Hierdurch ändert
dann die erzeugte Freq. in einem gewissen Bereich. Das
Puls-Pausenverhältnis bleibt dabei aber immer gleich bei 50%/50%. Zum
auswerten langt es also einfach die Freq. zu messen und man muss nicht
zwingend die genau Länge des Impulses bestimmen.
Zum Simulieren brauchst du also einen einfachen einstellbaren
Funktionsgenerator für Rechteck. Gibt es beim Chinesen auch in Primitiv
oder alt bewährt selber bauen mit einem NE555 mit einem Poti.
- https://de.wikipedia.org/wiki/Funktionsgenerator
- https://de.wikipedia.org/wiki/NE555#Astabile_Kippstufe
Lieben Dank für eure Antworten!
Irgend W. schrieb:> Der Trick an dem ganzen dürfte sein, eine der Frequenzbestimmungen> Komponenten des Oszillator (meiste die Kapazität) durch äußere Einflüsse> zu verändern. Z.B.: zwei parallele Leiterbahnen haben in trockener> Umgebung eine andere Kapazität als im nassen Zustand.
Gilt das auch für Wasserstandsensoren/Hydrostate? Die haben ja mehr
Zustände als nur feucht-trocken. Mein Sensor funktioniert wie ein
Druckwächter: durch ein Röhrchen in dem das Wasser steigt/sinkt drückt
der Luftdruck darüber auf eine Membran, welche sich in eine
außenliegende Spule hineindrückt/absenkt.
Anbei habe ich mal die Schaltskizze des Sensors angehangen.
Da fällt mir auf ich habe einen Verbindungspunkt vergessen von der
Leiterbahn zwischen den Kondensatoren rechts und der GND Leitung,
schuligom
Einen NE555 und ein Poti habe ich garantiert irgendwo rumfliegen, ich
durchwühle morgen mal die Werkstatt ♥
Mario M. schrieb:> Also laut BigClive macht der Sensor ca. 8-12Hz bei 50%> Tastverhältnis.> https://www.youtube.com/watch?v=O-0KGbd91_I
Das ist exakt der selbe Sensor!
Er sagt im Video dass die WaMa zwei Möglichkeiten hat den Wasserstand zu
checken, ein mal wie lange er braucht um von low nach high zu wechseln
und ein mal kann Sie die Anzahl der Pulse messen...
Manfred schrieb:> Gilt das auch für Wasserstandsensoren/Hydrostate? Die haben ja mehr> Zustände als nur feucht-trocken.
Kapazitive Sensoren erfassen nicht feucht-trocken. Deren Kapazität hängt
von der Dielektrizitätskonstante des Stoffes ab, den das Feld zwischen
den beiden Kondensator-"Platten" durchdringt. Zwischen Luft und Wasser
unterscheidet die sich um einen Faktor 80. Falls das Feld nun nur zur
Hälfte durch Wasser verläuft, ist die eigentlich zu messende Kapazität
dann nur ungefähr halb so groß, wie wenn das ganze Messvolumen mit
Wasser gefüllt ist.
Rainer W. schrieb:> Manfred schrieb:>> Gilt das auch für Wasserstandsensoren/Hydrostate? Die haben ja mehr>> Zustände als nur feucht-trocken.>> Kapazitive Sensoren erfassen nicht feucht-trocken. Deren Kapazität hängt> von der Dielektrizitätskonstante des Stoffes ab, den das Feld zwischen> den beiden Kondensator-"Platten" durchdringt. Zwischen Luft und Wasser> unterscheidet die sich um einen Faktor 80. Falls das Feld nun nur zur> Hälfte durch Wasser verläuft, ist die eigentlich zu messende Kapazität> dann nur ungefähr halb so groß, wie wenn das ganze Messvolumen mit> Wasser gefüllt ist.
ist mein Sensor denn ein kapazitativer sensor?
durch die membran+ferrit der sich in der spule bewegt müsste es doch ein
induktiver sensor sein oder bin ich hier auf dem holzweg?
Die Beschreibung laut https://de.wikipedia.org/wiki/Kapazitiver_Sensor
trifft aufjedenfall nicht auf meinen Sensor zu....
Manfred schrieb:> ist mein Sensor denn ein kapazitativer sensor?> durch die membran+ferrit der sich in der spule bewegt müsste es doch ein> induktiver sensor sein oder bin ich hier auf dem holzweg?
Es ist ein induktiver.
Wenn man sich das Video ansieht, stellt man fest, dass durch den der
Wasserstand etwas bewegt wird, das die Induktivität der Spulen ändert.
Um induktive (oder auch kapazitive) Geschichten auswerten zu können,
braucht man einen Oszillator, dessen Frequenz in Abhängikeit zu
irgendwas (meisten der Weg oder die abgedeckte Fläche) ändert.
Sofern man keine quantitative Auswertung machen will, könnte man auch
einfach einen Reedkontakt mit einem Magneten auslösen.
Welches Signal dein Sensor liefert, kann man aus deinem "Schaltplan" nur
erraten. Gehäusebelegungen beschreiben leider nicht das Innenleben des
ICs.
Rahul D. schrieb:> Es ist ein induktiver.> Wenn man sich das Video ansieht, stellt man fest, dass durch den der> Wasserstand etwas bewegt wird, das die Induktivität der Spulen ändert.> Um induktive (oder auch kapazitive) Geschichten auswerten zu können,> braucht man einen Oszillator, dessen Frequenz in Abhängikeit zu> irgendwas (meisten der Weg oder die abgedeckte Fläche) ändert.
Danke!
Rahul D. schrieb:> Welches Signal dein Sensor liefert, kann man aus deinem "Schaltplan" nur> erraten. Gehäusebelegungen beschreiben leider nicht das Innenleben des> ICs.
Hmm, auch nicht anhand des Datenblatts
https://www.ti.com/lit/ds/symlink/sn74hc4060.pdf ?
Das enthält zumindest ein logisches Schema - leider bin ich nicht tief
genug in der Thematik um das vollständig zu verstehen, bitte seht es mir
nach^^
In dem von 'thelonging' verlinkten Video zeigt der Herr ja ungefähr
welche Frequenz der Sensor ausgibt... War mein Ansatz mit der PWM vom
Arduino also doch nicht ganz verkehrt? Oder reicht mir trotzdem ein 555
Signalgenerator wie 'irgendwer' schrieb?
Manfred schrieb:> Hmm, auch nicht anhand des Datenblatts> https://www.ti.com/lit/ds/symlink/sn74hc4060.pdf ?
Dann sollen sich also die anderen (die dir helfen wollen) die Arbeit
machen, den Schaltplan zu erstellen?
> leider bin ich nicht tief> genug in der Thematik um das vollständig zu verstehen, bitte seht es mir> nach^^
Ausrede...
Manfred schrieb:> In dem von 'thelonging' verlinkten Video zeigt der Herr ja ungefähr> welche Frequenz der Sensor ausgibt... War mein Ansatz mit der PWM vom> Arduino also doch nicht ganz verkehrt? Oder reicht mir trotzdem ein 555> Signalgenerator wie 'irgendwer' schrieb?
So genau habe ich mir das Video nicht angesehen.
Der 4060 wird genommen, um einen Sensor mit niedriger Ausgangsfrequenz
zu erhalten.
Die 32Bit-Boliden (Raspi, ESP) tun sich ja schwer damit, hohe Frequenzen
genau zu messen.
Rahul D. schrieb:> Manfred schrieb:>> Hmm, auch nicht anhand des Datenblatts>> https://www.ti.com/lit/ds/symlink/sn74hc4060.pdf ?>> Dann sollen sich also die anderen (die dir helfen wollen) die Arbeit> machen, den Schaltplan zu erstellen?
nein nein, das kann ich natürlich versuchen, und nachher hier hochladen.
Heiner B. schrieb:> Ist kein PWM! Es ist eine variable Frequenz.
Ahh, PWM bestimmt den duty-cycle einer festgelegten Frequenz.
Ich dachte aber dass ich mit
1
int initialFrequency = 35; // Initial frequency of the sensor (in Hz)
2
int targetFrequency = 45; // Target frequency of the sensor (in Hz)
3
int frequencyStep = 1; // Frequency change step (increase by 1 Hz)
die PWM Frequenz ändern kann.
Peter D. schrieb:> Die 32Bit-Boliden (Raspi, ESP) tun sich ja schwer damit, hohe Frequenzen> genau zu messen.
Ich möchte auch nicht messen, sondern das Signal simulieren. Ohne den
Sensor schaltet die Waschmaschine nämlich nach 2 Sekunden ab.
die Befragung der heiligen KI sagt,
ich kann die TimerOne library in Verbindung mit einem Potentiometer
nutzen um eine variable Frequenz zu erzeugen.
der ungefähre code wäre
1
#include <TimerOne.h>
2
3
const int outputPin = 9; // Digital pin to output waveform
4
const int potentiometerPin = A0; // Analog pin for potentiometer
5
6
unsigned long interval = 1000; // Initial interval in milliseconds (1 second)
7
int minFrequency = 35; // Minimum frequency in Hz
8
int maxFrequency = 45; // Maximum frequency in Hz
9
int currentFrequency = minFrequency;
10
11
void setup() {
12
pinMode(outputPin, OUTPUT);
13
Timer1.initialize(interval * 1000); // Initialize Timer1 with interval in microseconds
14
Timer1.attachInterrupt(updateFrequency); // Attach the interrupt to updateFrequency
15
}
16
17
void loop() {
18
// Read the potentiometer value and map it to the frequency range
Manfred schrieb:> Ich dachte aber dass ich mit int initialFrequency = 35; // Initial> frequency of the sensor (in Hz)> int targetFrequency = 45; // Target frequency of the sensor (in Hz)> int frequencyStep = 1; // Frequency change step (increase by 1> Hz)> die PWM Frequenz ändern kann.
Damit änderst du erstmal gar nichts ;-)
Das sind Variablen, die mit einem Wert initialisiert werden.
Mit Gruss
Sind die C- Werte vom
'CMOS LC Oszilator, evtl. auch der von L gegeben (, ermittelbar)?
Auf welche Referenz gehen 35Hz und 45 Hz zurück?
Berechnung wäre nach Colpitts.
Dirk St
Rainer W. schrieb:> Damit änderst du erstmal gar nichts ;-)> Das sind Variablen, die mit einem Wert initialisiert werden.
ah ok, ich glaube ich verstehe :D
Dirk S. schrieb:> Sind die C- Werte vom> 'CMOS LC Oszilator, evtl. auch der von L gegeben (, ermittelbar)?
Denke nicht, oder zumindest wüsste ich nicht wie ich die ermitteln kann,
da der 4060 durch ist und nur heiß wird sobald ich ihn anschliesse.
Dirk S. schrieb:> Auf welche Referenz gehen 35Hz und 45 Hz zurück?
die 35Hz und 45Hz hatte ich aus einem polnischen Forum, allerdings gibt
es mehrere Versionen des Sensors. In dem oben verlinkten Video sind die
werte deutlich niedriger (8-12Hz), er hat aber auch die Version
ST545-AA-003 und ich habe den ST545-AA-008.
Das ist doch zum Mäuse melken....