Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : CAD Timer Programmierung mit einem Arduino



Fredd
03.08.2025, 22:17
Hallo Ihr lieben,

ich bin neue hier und fühle mich jetzt schon wohl, danke auch an Frank für den Netten Empfangstext ;)

Ich bin Frederik 32 Jahre als, von Beruf Schweißer, Tüftler und in meiner Freizeit auch hobby Maschinenbauer. Freue mich auf tolle "Begegnungen"

Im Grunde suche ich lediglich jemanden der mir beim erstellen von Schaltungen und dem selektieren von Elektronischen Komponenten sowie dem Programmieren des Arduino's hilft.

Mein Projekt, ich möchte bei meiner Kaffeemaschine, DeLonghi Dedica, die Bezugszeit (wie lange die Pumpe läuft) abgreifen und auf einem LCD Display anzeigen lassen. Die Pumpe ist eine "Ulka Ep5 Modell E" mit 230v und 48W. Die Pumpe läuft von sek 1 bis 3 und macht dann 3 sek pause bis sek 6. Ab sek 7 fängt sie wieder an und dann sollte das Signal zum stoppen des Timer erst abgenommen werden. Die Ersten 6 Sekunden ist ein fester Zyklus! In der Regel bezieht man einen Kaffee vom 20 bis 45 Sekunden. Diese Range sollte vorhanden sein.

Ich bin für alle Technischen Vorschläge zu haben und freue mich auf eure Unterstützung!

Liebe Grüße
Fredd

Moppi
04.08.2025, 07:49
Guten Morgen Fredd!

Um zu vermeiden, dass Du an 230V herumspielen musst, könntest Du einen A3144 Hall-Sensor verwenden, um das Magnetfeld der Pumpe zu nutzen. Der Sensor reagiert wahrscheinlich nur auf eine Polarität des Magnetfeldes. Hier müsste etwa experimentiert werden, um die optimale Position an der Pumpe zu finden (auch indem der Sensor um 180° gedreht wird). Der Rest wäre eine sichere und einfache Sache, zusammen mit einem Arduino. Der VCC wird mit dem 5V-Pin des Arduino verbunden, der GND-Pin mit GND am Arduino, der Ausgangspin mit einem Digital-Pin des Arduino. Der Rest ist Software, wie zum Beispiel:



const int hallSensorPin = 2; // Pin, an den der Sensor angeschlossen ist

void setup() { // Aktiviert den internen Pull-up-Widerstand an Pin 2
pinMode(hallSensorPin, INPUT_PULLUP);
}

void loop() {
// Rest der Programmlogik, wie Zählen und anderes
}


Der interne Pullup sorgt dafür, dass der Eingangs-Pin ein eindeutiges Signal liefert (HIGH / 1).
Der HALL Sensor sollte LOW-Aktiv sein in diesem Fall. Das Heißt, wenn er schaltet, schaltet er sozusagen GND an den Eingangs-Pin des Arduino.
Wenn die Pumpe läuft, sollte der Arduino-Pin also auf den Zustand LOW (0) wechseln.

Freundliche Grüße
Moppi

Fredd
04.08.2025, 23:24
Sei mir nicht böse aber ich checke die ganze Programmiersprache gar nicht!

Ich fang Mal an zu erzählen was ich verstanden habe, Also der Hallsensor wird von dem Arduino mit 5 V versorgt, + auf VCC des Sensors und GND einfach auf GND des Arduino's. Der Ausgang des Sensors A0 oder D0, wäre ja digital oder Analog, ist das egal welchen ich nehme? Dieser müsste auf Einen Digi Pin IN am Arduino A2 z.b. verbunden sein.......denke Mal das ich bis jetzt richtig liege.

Hat der Hallsensor einen Internen Pull up wiederstand? Wie ich verstehe wird dieser durch deinen Obigen Befehl einfach nur Aktiviert......

- - - Aktualisiert - - -

36081

Im prinzip wie hier, nur das der A0 EIN Digitaler Eingang wird und der Wiederstand durch den Internen des Sensors Ersetzt wird?!

Moppi
06.08.2025, 08:39
Du solltest einen Widerstand gegen +5V am Eingang eines Digitalen Pin des Arduino haben, damit der ein definiertes Potential hat. Dafür hat der Arduino bereits intern Widerstände, die man dazu schalten kann. Man benötigt dann keine externen Widerstände. Der Sensor ist wie ein Schalter der auf ein Magnetfeld reagiert. Die Pumpe erzeugt voraussichtlich ein Magnetfeld das stark genug ist, wenn man es direkt am Pumpengehäuse misst. Wenn der Sensor also das Magnetfeld erkennt, schaltet er den Ausgang auf 0V (GND). Das bedeutet der Sensor schaltet nur, wenn die Pumpe läuft. Eine Alternative wäre auch ein Reed-Schalter. Die haben aber eine Angabe die beschreibt, wie empfindlich sie auf ein Magnetfeld reagieren. Sind sie nicht empfindlich genug, schalten die trotz Magnetfeld nicht. Man kann aber beides ausprobieren. der Reed-Schalter würde dann an dem Pumpengehäuse befestigt, wie der Hall-Sensor, nur dass der Reed-Schalter dann mit 0V (GND) der Spannungsversorgung des Arduino verbunden wird und das andere Ende mit dem Eingang (Digital Pin) am Arduino.

Fredd
06.08.2025, 16:47
Servus Moppi,

Glaube jetzt es verstanden zu haben, der Interne (pull_up) Wiederstand des Arduinos zieht die 5v auf den Digitalen Eingang, das heißt hier liegen tatsächlich ungefähr 5v an? Wenn der Sensor das magnetfeld Erkennt, schließt er und es liegen 0V an. Von der Programmierlogik her, dürfte er erst anfangen den Timer laufen zu lassen wenn die Pumpe läuft und die 0V am Digitalen eingang anliegen, ist das Richtig soweit??

36086

wie programmiere ich, das das "stop" signal der Pumpe (wenn sie Stoppt) =erst ab 7 Sekunden abgegriffen wird? mit Delay?oder mit der Bedingung "wenn"??
Ich möchte den Timer in Echtzeit mitzählen lassen und stoppen, anzeigen lassen für 5 Sekunden und dann soll er wieder auf 0 Springen.

Moppi
07.08.2025, 06:57
Hallo!

Für Deine Zwecke ist das unkritisch mit den 7 Sekunden. Ich würde da auch einfach delay(7000) benutzen, nachdem der Eingangspin den Zustand gewechselt hat.

Das verstehe ich allerdings nicht "Ich möchte den Timer in Echtzeit mitzählen lassen und stoppen, anzeigen lassen für 5 Sekunden und dann soll er wieder auf 0 Springen.".

wkrug
12.08.2025, 07:02
Eine andere Methode wäre, das Zuführungskabel zur Pumpe mehrmals durch einen Ringkern zu führen.
Auf diesem Ringkern ist dann eine zweite Wicklung die dann bei Betrieb der Pumpe eine Wechselspannung ausgibt.
Die kann man gleichrichten und bekommt somit eine pulsierende Gleichspannung die man auswerten kann.

Die Methode mit dem Hall Sensor finde Ich auch gut, allerdings muss man dann an der Pumpe auch einen Punkt finden, wo das Magnetfeld stark genug ist um den Sensor anzusteuern.
Ausserdem wird auch hier vermutlich ein wechseldes Magnetfeld ( Mempranpumpe ? ) enstehen, was zu Impulsen am Ausgang des Hall Sensors führt, also kein "reines" Start Stopp Signal - Das müsste man halt testen.