Forum: Mikrocontroller und Digitale Elektronik Pulse auswerten und Kontakt schließen


von Tobias (Gast)


Lesenswert?

Hallo, ich bin recht neu in der Materie und habe in der
Forensuche nicht wirklich etwas passendes gefunden.

Kann mir jemand helfen ich möchte gerne einen Pulse auswerten/zählen
und wenn eine Bestimmte Zahl erreicht ist soll ein Kontakt kurz 
geschlossen
werden. Ist sowas mit Microcontroller möglich? Oder brauche ich dafür 
ein Raspberry?

Es geht um einen Münzzähler der ein Gerät starten soll.
Das gerät erwartet das ein Potentialfreier kontakt verbunden wird als
Zeichen, dass die Zahlung erfolgt ist.

Der Münzprüfer kann einstellbar zwischen 1 und 20 Pulse ausgeben
je nachdem welche Münze durchläuft.

Beispiel:
0,05 € = 1 Puls
0,10 € = 2 Pulse
0,20 € = 4 Pulse
0,50 € = 10 Pulse
1,00 € = 20 Pulse

Die Pulse können in einstellbar im Zeitraum von 20ms  50ms  100ms
ausgegeben werden.
Der Kontakt soll geschlossen werden wenn 1 € (20 Punkte)
erreicht sind. Egal in welcher Konstellation sie eingeworfen werden
Er soll bis zur Summe 20 rechnen und dann den potentialfreien kontakt 
kurz schließen eine Sekunde.

Gibt es jemanden (vielleicht sogar aus Berlin) der mir da mit einer 
Schaltung weiterhelfen kann oder einem Code für Adruino?
Ich würde auch eine kleine Aufwandsentschädigung springen lassen.

MfG
Tobias

von Sebastian R. (sebastian_r569)


Lesenswert?

Dafür wäre selbst ein Arduino schon fast zu viel.

Aber, falls es dich prinzipiell interessiert, ist das eine 
Aufgabenstellung die nett als Einsteiger und Anfänger ist.

Vom Taster und der LED hin zum Pulszähler. Vielleicht noch mit 
DIP-Schalter zum Einstellen der Soll-Pulsanzahl.

von MaWin (Gast)


Lesenswert?

Tobias schrieb:
> Ist sowas mit Microcontroller möglich?

Natürlich.
Schon der kleinste, einfachste, ATtiny12 könnte das.

Arduino wäre wohl am einfachsten zu programmieren.

> Oder brauche ich dafür ein
> Raspberry?

Wenn zusätzlich noch ein WebServer, Videodienst, graphischer Desktop 
drauf laufen soll...

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ein TTL- oder CMOS-Zähler auf 20 muss mindestens fünf Flipflops 
enthalten.
Schau dir mal den 74HC40103 an, der zählt ab einer bis 255 einstellbaren 
Zahl auf Null herunter und gibt dann einen Impuls aus.
https://assets.nexperia.com/documents/data-sheet/74HC40103.pdf

von Ach Du grüne Neune (Gast)


Lesenswert?

Ein 4518 wird auf eine Teilung durch 20 eingestellt und am Ausgang ein 
Optokoppler geschaltet. Über einen Tiefpass wird resetet und 
gleichzeitig eine Zeitverzögerung von 1 Sekunde erzeugt.

von Joachim B. (jar)


Lesenswert?

Tobias schrieb:
> Ist sowas mit Microcontroller möglich? Oder brauche ich dafür
> ein Raspberry?

mit einem µC wahrscheinlicher und sicherer zum Erfolg als mit dem PI, 
aber PI geht evtl. auch, ich kenne kein Echtzeitsystem und Zeitmessung 
per GPIO ist halt stark von der Auslastung abhängig.

> Das gerät erwartet das ein Potentialfreier kontakt verbunden wird als
> Zeichen, dass die Zahlung erfolgt ist.

> Gibt es jemanden (vielleicht sogar aus Berlin) der mir da mit einer
> Schaltung weiterhelfen kann oder einem Code für Adruino?

Code für Atmel aka Arduino nano o.ä. gibt es doch im Forum

Tastenentprellung von Dannegger
https://www.mikrocontroller.net/articles/Entprellung

ich habe leider genug zu tun, aber so schwer ist das doch nicht, ist an 
einem Tag locker aufgebaut und programmieret, der Code ist ja schon da:
https://www.mikrocontroller.net/articles/Entprellung#Komfortroutine_.28C_f.C3.BCr_AVR.29

deine Pulse kommen angenommen alle 100ms nach 40ms ist der Puls 
entprellt und gezählt. Soll es schneller gehen, Timer runtersetzen.

von Tobias (Gast)


Lesenswert?

Ach Du grüne Neune schrieb:
> Ein 4518 wird auf eine Teilung durch 20 eingestellt und am Ausgang
> ein
> Optokoppler geschaltet. Über einen Tiefpass wird resetet und
> gleichzeitig eine Zeitverzögerung von 1 Sekunde erzeugt.

Kannst du mich dabei etwas unterstützen ? Wie stelle ich den ein und was 
für ein Optokoppler brauche ich ?
Gibt es zu dem Einstellen Dokumentationen ?
Solch eine "Einchip"-Lösung wäre natürlich ideal, da es eine winzige 
Platine wird und nicht absturzgefährdet ist wie PI oder Adruino

LG
Tobias

von Philipp G. (geiserp01)


Lesenswert?

Christoph db1uq K. schrieb:
> enthalten.
> Schau dir mal den 74HC40103 an, der zählt ab einer bis 255 einstellbaren
> Zahl auf Null herunter und gibt dann einen Impuls aus.

Sag mal, lest ihr auch manchmal mit? Er schreibt explizit, dass die 
Materie für ihn neu ist.

Kommt mir manchmal so vor, wie ein el. Ing. Elektroniker ins Spital 
rennt HILFE MEIN HERZ SCHMERZT.

Arzt: Ja, und jetzt? Oben in der Kardiologie Abteilung ist ja alles da, 
CT ist gleich in der Ecke und die Bücher daneben, mach halt erst mal ein 
EKG und schau' dir die Kammern der Corona an.

@TO: Bestell Dir einen Arduino Nano und ein Relais dazu. Findest du als 
'Relay Shield' alles in ebay. Dann können wir das hier zusammen machen. 
Du musst nur noch sagen, wie Du dir die Stromversorgung vorstellst.

: Bearbeitet durch User
von Harald W. (wilhelms)


Lesenswert?

Tobias schrieb:

> ich möchte gerne einen Pulse auswerten/zählen und wenn eine
> Bestimmte Zahl erreicht ist soll ein Kontakt kurz geschlossen
> werden. Ist sowas mit Microcontroller möglich?

Ja, ein einfacher Zähler kann das aber auch. Je nachdem, ob Du
programmieren willst, oder nicht.

> Oder brauche ich dafür ein Raspberry?

Du kannst natürlich auch einen Mehrkerngigahertzprozessor
oder ein ganzes Rechenzentrum mit dieser Aufgabe betrauen,
jenachdem wieviel Geld Du hast.

von Ach Du grüne Neune (Gast)


Angehängte Dateien:

Lesenswert?

Mir ist nur noch keine einfache Lösung eingefallen, wie nach dem 
Entladen von C2 der Reseteingang betätigt werden soll, ohne dass ein 
weiterer Transistor dafür nötig ist. Es soll ja schließlich einfach 
sein, sonst könnte man ja gleich einen µC einsetzen.

Ich gebe aber zu, der µC hat den Vorteil, dass man damit auch mal 
einfach die Preise ändern könnte.

von Schlumpf (Gast)


Lesenswert?

Ich würde es auf jeden Fall mit einem uC lösen.
Dann dann lassen sich problemlos weitere Funktionen realisieren.
Ich denke da an:

Preise anpassen

Zähler zurücksetzen, wenn Geldeinwurf abgebrochen wurde.

Credit speichern, falls mehr eingeworfen wurde.

Evtl Anzeige, wieviel eingeworfen wurde.

Etc..

von Manfred (Gast)


Lesenswert?

Tobias schrieb:
> und nicht absturzgefährdet ist wie PI oder Adruino

Ein Arduino ist eine "Einchip-Lösung", aber im Gegensatz zum blanken µC 
so nett, die Umgebungsbeschaltung (Quarz, LED) mitzubringen.

Abstürzende Arduinos habe ich nicht.

Philipp G. schrieb:
> Arzt: Ja, und jetzt? ... und die Bücher daneben

> @TO: Bestell Dir einen Arduino Nano und ein Relais dazu.

Wo ist jetzt der Unterschied zum Arzt?
Den Ansatz per Arduino finde ich sinnvoll, aber Tobias wird erstmal 
einige Stunden Grundlagen durcharbeiten müssen. Wenn er dazu bereit ist, 
wird das viel Freude bereiten und viele neue Ideen geben.

> Dann können wir das hier zusammen machen.

Hoffenlich fällst Du nicht raus, so weit aus dem fenster gelehnt.

> Du musst nur noch sagen, wie Du dir die Stromversorgung vorstellst.

Wichtiges Thema, da fangen sich viele Bastler Ärger ein.

Ach Du grüne Neune schrieb:
> Mir ist nur noch keine einfache Lösung eingefallen, wie nach dem
> Entladen von C2 der Reseteingang betätigt werden soll,

Ein Grund mehr, das nicht in klassischer Hardwarelogik zu machen.

von Thomas S. (selli69)


Lesenswert?

Joachim B. schrieb:
> ich kenne kein Echtzeitsystem und Zeitmessung
> per GPIO

Dann kennst Du pigpio nicht.

http://abyz.me.uk/rpi/pigpio/

Trotzdem ist der RPi natürlich absoluter Overkill für die vom TO 
beschriebene Aufgabenstellung.

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Der asynchrone Reset am 4518 gefällt mit nicht, der 40103 hätte einen 
synchronen Reset, da kann weniger passieren. Und er startet direkt 
wieder bei 20, wenn man ihn dafür eingestellt hat.
Hier die Applikationsschaltung aus dem Datenblatt.
Optokoppler und eventuelle Impulsaufbereitung fehlen noch, aber die sind 
für jede Lösung nötig.

Ich sehe gerade, ich muss natürlich auf 19 einstellen, da steht 
fout=fin/(N+1) also 16+2+1 = 00010011

: Bearbeitet durch User
von STK500-Besitzer (Gast)


Lesenswert?

Scheint ne Hausaufgabe zu sein.
Siehe Beitrag "Impulszähler Starterkennung"

von Ach Du grüne Neune (Gast)


Lesenswert?

Die Idee mit dem 40103 gefällt mir. Damit kann man dann auch ohne 
Softwareänderung mit einem 8-fach DIP-Schalter die Preise ggf. ändern.

von Ach Du grüne Neune (Gast)


Lesenswert?

Vielleicht reicht es auch schon, für die Preiserhöhung in 5 
Cent-Schritten, einen 6-fach DIP-Schalter einzusetzen? Das 
Salamibrötchen aus dem Automaten wird sicherlich keine 10 Euro kosten. 
Aber man weiß ja nie...

von Jörg R. (solar77)


Lesenswert?

Gehören die Threads irgendwie zusammen, unter 2 verschiedenen 
Gast-Usern?

Beitrag "Impulszähler Starterkennung"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.