www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Münzzähler ansteuern


Autor: Uwe Wachter (derhornist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin neu hier und habe gleich eine "mächtige" Aufgabe.
Ich habe einen Münzzähler bekommen. Dieser arbeitet noch nach D-Mark. 
Nun habe ich ihn mechanisch so eingestellt, dass er Euro sortieren kann. 
Das mit dem Zählen klappt nicht, da ja bei Euro und D-Mark erstens die 
Werte anders sind und zweitens wir nun 20 Cent haben. Soweit, so gut.
Leider funktionieren Münzzähler nicht nach dem Prinzip "Zähle und 
addiere die Münzen, die in einen Schacht fallen" sondern etwas anders. 
Die Münzen laufen über eine Schiene. VOR dem jeweiligen Schacht sitzt 
nun einen Lichtschranke. Wir haben 8 verschieden Euro- Münzen. Kommt nun 
eine 2 Euromünze über die Schiene gerollt, so müsste bei Lichtschranke 
Nr. 1 "1" dazuaddiert. LS 2 "+1". LS3 "+8". LS4 "-5". LS5 "+15". LS6 
"+80". LS7 "-50". LS8 (2 Euro) "+150". Damit wären wir bei 200 Cent. Die 
Maschine addiert bzw. subrahiert pro Lichtschranke also Werte.
Ist eine solche Aufgabe mit einem ATmega zu bewältigen? Ist das extrem 
kompliziert?
µC kenne ich aus meine Ausbildung (1988). Damals programmierten wir 8080 
bis zum Abwinken.

Danke schon mal.

Autor: Chris K. (chrisk86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber sicher ist das damit zu bewältigen...

Ich bin mir ziemlich sicher, dass 90% der Mikrocontroller am Markt dafür 
geeignet sind. Du musst dir nur einen aussuchen, der genügend Eingänge 
hat um die Lichtschranken auszulesen...

Autor: ich_eben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
möchtest du nur münzen zählen und die werte im uC lassen, oder soll noch 
etwas angesteuert werden (LCD, Dosenausgane, whatever), du musst also 
schauen, dass du noch genügend pins frei hast.
evtl gleich einen atmega32 nehmen

Autor: oszi40 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein ordentlicher Münzzähler prüft nicht nur die Größe, sondern auch die 
Laufzeit. Sonst würde ja jeder "Bierdeckel" als Münze erkannt.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ein ordentlicher Münzzähler prüft nicht nur die Größe, sondern auch die
> Laufzeit.
Ein richtig ordentlicher Münzprüfer wertet auf magnetischem Weg mit 
verschiedenen Frequenzen auch die Materialien aus. Siehe z.B. 
http://www.nri.de/de_18037_1.html

Wegen der vielen unterschiedlichen Münzprägeanstalten und 
Materiallieferanten in Europa müssen die Dinger recht genau arbeiten :-/
(oder tolerant eingestellt werden wegen der unerwünschten 
Echtgeldabweisung)

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh ja. Ich habe bei NRI gelernt und kann das nur bestätigen.

Teilweise ist es sogar so problematisch, dass Fremdmünzen noch viel 
"echter" als die echten Münzen sind, da diese teilweise viel enger 
tolleriert sind. Man muß gar ziemlich krumme Tricks anwenden, dass nicht 
noch irgendwelche Aluscheiben als echt erkannt werden.
Das Problem gab es damals mit Zloty-Stücken und der D-Mark. Letztere 
hatte so große Tolleranzen, dass es nahezu unmöglich war, diese von den 
engtollerierten Zloty zu unterscheiden (bzw nur dann, wenn auch die 
D-Mark zu mehr als 50% als falsch erkannt wurde).

Zusätzlich zu der HF-Dämpfung wird auch noch Magetisierbarkeit, Gewicht, 
Größe, Farbe, Ränderlung, Härte und noch vieles mehr ausgewertet.

Eine Lichtschranke kann nur zur Größendifferenzierung herangezogen 
werden. Da funktionieren dann aber auch Bierdeckel.

Autor: Christian Aurich (cau) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eine Lichtschranke kann nur zur Größendifferenzierung herangezogen
> werden. Da funktionieren dann aber auch Bierdeckel.

nicht ganz - denn über mehrere Lichtschranken an einer "schiefen Ebene" 
lässt sich ggf. auch die Beschleunigung ermitteln - und die ist abhängig 
vom Massenträgheitsmoment. Ob das allerdings genau genug gemessen werden 
kann, bin ich mir nicht sicher.

Autor: Chris K. (chrisk86)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, wir haben da was falsch verstanden...

Ich verstehe den Text mittlerweile so, dass die Lichtschranken da 
sitzen, wo die Münzen zum Schluss bereits sortiert durchfallen, also 
nach der Prüfung/Aussortierung.

Hab ich das so richtig verstanden?

Lg,
Chris

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hier mehrfach addiert wird, verstehe ich das anders herum.
Die Münzen laufen über eine schiefe Ebene und fallen ggf in passende 
Schächte oder rollen weiter (warum sie dann nicht in den zu kleinen 
Schächten hängen bleiben, verstehe ich noch nicht). Der größte Schacht 
ist am weitesten entfernt. Kurz hinter den Schächten ist jeweils eine 
Lichstschranke die lediglich den Durchlauf irgendeiner Münze 
detektieren.
Also eine Art Sieb, bei denen die Gitter immer kleiner werden.

Christian Aurich schrieb:
> nicht ganz - denn über mehrere Lichtschranken an einer "schiefen Ebene"
> lässt sich ggf. auch die Beschleunigung ermitteln - und die ist abhängig
> vom Massenträgheitsmoment. Ob das allerdings genau genug gemessen werden
> kann, bin ich mir nicht sicher.
Ok, ja natürlich. Das wird sogar gemacht. Vielleicht nicht unbedingt 
über Lichtschranken, sondern direkt über die Schwingkreise.

Autor: Uwe Wachter (derhornist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
zunächst mal DANKE für die Antworten.
Zur letzten Antwort: Die schiefe Ebene ist leicht nach hinten gekippt, 
so dass die Münzen in einer Art Schiene laufen. Als U vorzustellen. Die 
Hinter Schiene ist allerdings nicht aus einem Stück, sondern aus 
einzelnen Platte, die in der Höhe verstellt werden können. D.h. die 
erste Platte ist am weitesten unten, um nur 1 Cent Stücke in den Schacht 
fallen zu lassen usw. Und die Lichtschranken sitzen VOR den Schächten. 
Läuft also ein 2 Cent- Stück durch, wir bei LS1 "+1" und bei LS2 "+1" 
addiert. Dann fällt es in den Schacht und kommt nicht an der 10 Cent LS 
vorbei, die dann "+8" addieren würde.
Das Ergebnis würde ich gerne auf einem Display ausgeben. Vielleicht 
sogar auf Abruf das Ergebnis der einzelnen Schächte. Das müsste aber 
nicht sein.
Ob diese Maschine jemals auf fehlerhafte oder falsche Münzen "geachtet" 
hat, kann ich nicht sagen. Auf jeden Fall hat die Maschine eine 
"Gerümmpel"- Schublade.
Es handelt sich übrigens um eine MONNETTE 600 eines Herstellers aus 
Wien. Die Firma besteht allerdings nicht mehr. Zur Zeit sitzt in der 
Maschine ein EPROM mit dem Aufdruck "Version 2.2 D".
Vor 2 Wochen hatte ich mir übrigens eine Maschine ausgeliehen. Diese 
liegt neu so bei 3000 Euro. Und selbst diese Maschine hat ein 10 
Bath-Stück aus Thailand als 2 Euro durchgehen lassen.Erstaunlich.

Gruß

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal so ganz naiv gesehen.

Du hast 8 Münzen, also auch 8 Lichtschranken und damit 8 digitale 
Ausgangsimpulse. Jeder Ausgang wird an einen Input-Pin eines MC mit 
PinChange-Interrupt geführt. Diese werden so programmiert, dass sie auf 
eine Flanke des Impulses reagieren. Jedem dieser Pulse ist eine 
INT-Routine zugeordnet.

Jede dieser Routinen addiert bei Aufruf einen definierten Wert zu einer 
Variable.

Der Inhalt der Variable kann in der Hauptschleife des Programms auf 
einem Display ausgegeben werden.

Wird das Display mittels Schieberegister angeschlossen, brauchst Du 
dafür nur zwei IO-Pins.

Bei einem ATtiny24/44/84 hättest Du also noch zwei für Tasten zur 
Verfügung.
Oder nur eine Taste und einen RS232-Ausgang.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Jeder Ausgang wird an einen Input-Pin eines MC mit
>PinChange-Interrupt geführt. Diese werden so programmiert, dass sie auf
>eine Flanke des Impulses reagieren. Jedem dieser Pulse ist eine
>INT-Routine zugeordnet.

Warum auch immer Interrupts benutzen?
Wenn der Controller eh nichts besseres zu tun hat, als auf die Eingänge 
zu warten, kann er auch die Lichtschrankenpollen.

Die Eingänge kann man dann in einem Timer-Intervall abfragen und hat 
dann nach einer gewissen Zeit ein Timeout, womit man dann weiß, welche 
Münze zuletzt eingeworfen wurde.
Innerhalb einer bestimmten Zeit (durch Ausprobieren mit 2Euro-Münzen) 
nach Passieren der ersten Lichtschranke wird der Wert der zuletzt 
betätigten Lichtschranke hinzuaddiert.
Das geht natürlich nur, wenn nicht mehr als eine Münze zur Zeit 
ausgewertet werden muss.
Das Einlesen der Lichtschranken kann man in diesem Fall natürlich auch 
per PinChange-Interrupt erledigen...

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STK500-Besitzer schrieb:
>>Jeder Ausgang wird an einen Input-Pin eines MC mit
>>PinChange-Interrupt geführt. Diese werden so programmiert, dass sie auf
>>eine Flanke des Impulses reagieren. Jedem dieser Pulse ist eine
>>INT-Routine zugeordnet.
>
> Warum auch immer Interrupts benutzen?
> Wenn der Controller eh nichts besseres zu tun hat, als auf die Eingänge
> zu warten, kann er auch die Lichtschrankenpollen.

Warum nicht benutzen, wenn man sie hat?
Macht meist das Programm viel übersichtlicher als ein Polling.

> Innerhalb einer bestimmten Zeit (durch Ausprobieren mit 2Euro-Münzen)
> nach Passieren der ersten Lichtschranke wird der Wert der zuletzt
> betätigten Lichtschranke hinzuaddiert.
Das wäre bei einer Münze zur Zeit auch eine Möglichkeit.

> Das geht natürlich nur, wenn nicht mehr als eine Münze zur Zeit
> ausgewertet werden muss.
Ich hatte gleich an größere Münzzählwerke für mehrere Münzen (Spardose 
leeren) gedacht.

> Das Einlesen der Lichtschranken kann man in diesem Fall natürlich auch
> per PinChange-Interrupt erledigen...
Also doch Interrupt?

Autor: Uwe Wachter (derhornist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK. Das hört sich schon mal gut an.
Da ist den µC nun nicht kenne, wie gehe ich vor? Wo finde ich (möglichst 
kostenlos) gute Anleitungen um mich mit dem Thema zu beschäftigen?
Schaltung,Programmierung usw.

Danke und Gruß

Autor: Christian H. (netzwanze) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal auf dieser Webseite, links oben im Menüpunkt AVR nach und zieh 
Dir die Turotials rein.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Das Einlesen der Lichtschranken kann man in diesem Fall natürlich auch
>> per PinChange-Interrupt erledigen...
>Also doch Interrupt?

Kann, muss aber nicht. Wenn der µC nichts "besseres" zu tun hat, ist 
Polling (für einen Anfänger) leichter zu realisieren.
Ob man nun die Lichtschranken-Abfrage oder die Zeit als 
Hintergrundaktivität realisiert, ist nicht ganz so wichtig, oder?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.