Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| nsm:mint [2021/10/02 18:49] – [Pinmapping] gerald | nsm:mint [2024/10/31 22:44] (aktuell) – [Walzenbilder mint] gerald | ||
|---|---|---|---|
| Zeile 24: | Zeile 24: | ||
| ===== SteckerPlatte Spielwalzen ===== | ===== SteckerPlatte Spielwalzen ===== | ||
| + | |||
| + | https:// | ||
| Die kleine, gesteckte Platine über den Spielwalzen | Die kleine, gesteckte Platine über den Spielwalzen | ||
| Zeile 166: | Zeile 168: | ||
| - 1 **I** Spannungs-Ist-Wert (12,3V ? direkt nach Gleichrichter) | - 1 **I** Spannungs-Ist-Wert (12,3V ? direkt nach Gleichrichter) | ||
| - 2 **O** 1. Walzenlaufrelais (1WL) LILA MITTE 6C PIN36 | - 2 **O** 1. Walzenlaufrelais (1WL) LILA MITTE 6C PIN36 | ||
| - | - 3 **OL** LED 101 | + | - 3 **O** LED 101 LILA MITTE 7C PIN37 1KOhm an Pin! (dieser Pin hat noch einen Widerstand 2.3kOhm an 5V! Warum? Hab ich so übernommen) |
| - 4 **O** Reserve | - 4 **O** Reserve | ||
| - 5 **O** Münzrelais (MS) (2 grüne Lampen) LILA MITTE 5C PIN35 | - 5 **O** Münzrelais (MS) (2 grüne Lampen) LILA MITTE 5C PIN35 | ||
| Zeile 173: | Zeile 175: | ||
| - 8 **O** 3. Matrixrelais (3MX) LILA MITTE 2C PIN32 | - 8 **O** 3. Matrixrelais (3MX) LILA MITTE 2C PIN32 | ||
| - 9 **O** 1. Impulsrelais (1IM) LILA MITTE 1C PIN31 | - 9 **O** 1. Impulsrelais (1IM) LILA MITTE 1C PIN31 | ||
| - | - 10 **O** 4. Impulsrelais (4IM) LILA MITTE 8C PIN38 (7C=PIN36) | + | - 10 **O** 4. Impulsrelais (4IM) LILA MITTE 8C PIN38 |
| - 11 **O** 3. Impulsrelais (3IM) LILA LINKS 8C PIN30 | - 11 **O** 3. Impulsrelais (3IM) LILA LINKS 8C PIN30 | ||
| - 12 **O** 2. Impulsrelais (2IM) LILA LINKS 7C PIN29 | - 12 **O** 2. Impulsrelais (2IM) LILA LINKS 7C PIN29 | ||
| Zeile 254: | Zeile 256: | ||
| links (direkt neben mitte): PIN51 | links (direkt neben mitte): PIN51 | ||
| - | RELAIS-Pins: | + | ==== Pinmapping Codeumsetzung ==== |
| + | |||
| + | RELAIS | ||
| < | < | ||
| Zeile 260: | Zeile 264: | ||
| #define RELAIS_1STS 23 // 1. StartStopp | #define RELAIS_1STS 23 // 1. StartStopp | ||
| #define RELAIS_2STS 25 // 2. StartStopp | #define RELAIS_2STS 25 // 2. StartStopp | ||
| - | #define RELAIS_1WL | + | #define RELAIS_1WL |
| #define RELAIS_2WL 26 // 2. Walze | #define RELAIS_2WL 26 // 2. Walze | ||
| #define RELAIS_3WL 27 // 3. Walze | #define RELAIS_3WL 27 // 3. Walze | ||
| - | #define RELAIS_1MX | + | #define RELAIS_1MX |
| #define RELAIS_2MX 28 // 2. Matrixrelais | #define RELAIS_2MX 28 // 2. Matrixrelais | ||
| #define RELAIS_3MX 32 // 3. Matrixrelais | #define RELAIS_3MX 32 // 3. Matrixrelais | ||
| Zeile 269: | Zeile 273: | ||
| #define RELAIS_2IM 29 // 2. Impulsrelais | #define RELAIS_2IM 29 // 2. Impulsrelais | ||
| #define RELAIS_3IM 30 // 3. Impulsrelais | #define RELAIS_3IM 30 // 3. Impulsrelais | ||
| + | #define RELAIS_4IM 38 // 4. Impulsrelais | ||
| #define RELAIS_STO 34 // Stossrelais | #define RELAIS_STO 34 // Stossrelais | ||
| #define RELAIS_MS 35 // Muenzsperrrelais | #define RELAIS_MS 35 // Muenzsperrrelais | ||
| - | # | + | |
| - | # | + | # |
| + | #define MUX_06 45 // 12 V fuer Abtastung ein; Walze II (mitte) PIN45 MOSFET-MITTE | ||
| + | #define MUX_07 46 // 12 V fuer Abtastung ein; Walze III (rechts) PIN46 MOSFET-RECHTS | ||
| + | |||
| + | #define IRQ_PIN_COIN 19 // (IRQ 3) Interrupt for Muenz-Einwurf & -Rueckgabe (direct, not on the gpio-expander) | ||
| + | #define BARRIER_CHANGE_PIN 3 // ext1,B haengt an diesem Pin. Damit kann man die Frequenz der Aenderungen messen. | ||
| + | #define BUTTON_STARTSTOP 18 // IRQ2 | ||
| + | |||
| + | // Test-Taster: | ||
| + | #define BUTTON_TEST_MODE 51 | ||
| + | #define BUTTON_TEST_LEFT 52 | ||
| + | #define BUTTON_TEST_RIGHT 53 | ||
| + | |||
| + | # define LED_AUTOSTART 6 // LED for showing autostart active PWM | ||
| + | # define SOUND_OUT | ||
| + | |||
| + | // Bytes: B 00 (00 = Expander 0x20; 01 = Expander 0x21) 0 (0: A; 1:B) 000 (000: Pin 0... 111: Pin 7) | ||
| + | // Ext 1 (0x20) | ||
| + | // A: | ||
| + | # | ||
| + | #define INPUT_KLAVIER1 B000001 | ||
| + | #define INPUT_KLAVIER2 B000010 | ||
| + | #define INPUT_KLAVIER3 B000011 | ||
| + | #define INPUT_KLAVIER4 B000100 | ||
| + | #define INPUT_KLAVIER5 B000101 | ||
| + | #define INPUT_KLAVIER6 B000110 | ||
| + | #define INPUT_KLAVIER7 B000111 | ||
| + | // B: INT | ||
| + | #define INPUT_MONEY_RETURN B001000 // 0 - Rückgabe | ||
| + | #define INPUT_MONEY_INPUT_50 B001001 // 1 - Münzeingabe 50Pf | ||
| + | #define INPUT_MONEY_INPUT_10 B001010 // 2 - Münzeingabe 10Pf | ||
| + | #define INPUT_MONEY_INPUT_100 B001011 // 3 - Münzeingabe 1DM | ||
| + | #define INPUT_CREDIT_OVERFLOW B001100 | ||
| + | #define INPUT_GAMESTOP B001101 // 5 - Spielunterbrechung | ||
| + | #define INPUT_MONEY_INPUT_500 B001110 // 6 - Münzeingabe 5DM | ||
| + | #define INPUT_MONEY_INPUT_200 B001111 // 7 - Münzeingabe 2DM | ||
| + | // Ext 2 (0x21) | ||
| + | // A: | ||
| + | #define INPUT_LEVEL_100 B010000 // 0 - Pegelschalter 1DM | ||
| + | #define INPUT_LEVEL_200 B010001 // 1 - Pegelschalter 2DM | ||
| + | #define INPUT_LEVEL_500 B010010 // 2 - Pegelschalter 5DM | ||
| + | #define INPUT_LEVEL_10 B010011 // 3 - Pegelschalter 10Pf | ||
| + | #define INPUT_CREDIT_1000 B010100 // 4 - Kreditwerk (10 GZ1) | ||
| + | #define INPUT_CREDIT_100 B010101 // 5 - Kreditwerk (1 GZ) | ||
| + | #define INPUT_CREDIT_10 B010110 // 6 - Kreditwerk (01 GZ2) | ||
| + | #define INPUT_CREDIT_30 B010111 // 7 - Kreditwerk (01 GZ1 (> | ||
| + | // B: INT | ||
| + | #define INPUT_LIGHT_BARRIER_0 B011000 // 0 - Fotoabtastung 0 | ||
| + | #define INPUT_LIGHT_BARRIER_1 B011001 // 1 - Fotoabtastung 1 | ||
| + | #define INPUT_LIGHT_BARRIER_2 B011010 // 2 - Fotoabtastung 2 | ||
| + | #define INPUT_LIGHT_BARRIER_3 B011011 // 3 - Fotoabtastung 3 | ||
| + | #define INPUT_LIGHT_BARRIER_4 B011100 // 4 - Fotoabtastung 4 | ||
| + | #define INPUT_SONDERSPIEL_1 B011101 // 5 - Sonderspielzähler (1SZ) | ||
| + | #define INPUT_SONDERSPIEL_10 B011110 // 6 - Sonderspielzähler (10SZ) | ||
| + | #define INPUT_RESERVE B011111 // 7 // NICHT BELEGT- | ||
| + | |||
| + | #define TIME_STROKE 70 // Time in ms to hold a stroke | ||
| + | #define TIME_STROKE_BETWEEN 170 // Time in ms wait between strokes | ||
| + | |||
| </ | </ | ||
| Zeile 309: | Zeile 372: | ||
| ==== Walzenbilder mint ==== | ==== Walzenbilder mint ==== | ||
| - | ab Naht nach oben gedreht. | + | ab Naht nach unten gedreht. |
| Kirsche, Melone, Zitrone, Orange, Stern, Pflaume, Glocke, 7 | Kirsche, Melone, Zitrone, Orange, Stern, Pflaume, Glocke, 7 | ||
| - | (Die Codes der Lichtschranken sind einfach nacheinander durchnummeriert von 1 bis 20. Die Reihenfolge sind aber genau andersherum wie ich dachte, also Walzen nach unten gedreht). | + | (Die Codes der Lichtschranken sind einfach nacheinander durchnummeriert von 1 bis 20.). |
| Die 5 Lichtschranken (im Schaltplan ' | Die 5 Lichtschranken (im Schaltplan ' | ||
| - | === Walze 1 === | + | ^ # ^ BIN ^ W1 ^ W2 ^ W3 | |
| - | | + | ^ 1 | 00001 | 7 | K | 7 | |
| - | | + | ^ 2 | 00010 | K | M | K | |
| - | - Z | + | ^ 3 | 00011 | P | K | O | |
| - | - K | + | ^ 4 | 00100 | M | M | M | |
| - | - O | + | ^ 5 | 00101 | K | K | G | |
| - | - M | + | ^ 6 | 00110 | G | G | K | |
| - | - P | + | ^ 7 | 00111 | K | K | Z | |
| - | - K | + | ^ 8 | 01000 | Z | Z | K | |
| - | | + | ^ 9 | 01001 | M | K | S | |
| - | - S | + | ^ 10 | 01010 | K | S | M | |
| - | - K | + | ^ 11 | 01011 | S | M | K | |
| - | - M | + | ^ 12 | 01100 | M | P | M | |
| - | - Z | + | ^ 13 | 01101 | K | K | P | |
| - | - K | + | ^ 14 | 01110 | P | 7 | K | |
| - | | + | ^ 15 | 01111 | M | M | O | |
| - | - K | + | ^ 16 | 10000 | O | O | M | |
| - | - M | + | ^ 17 | 10001 | K | K | Z | |
| - | - P | + | ^ 18 | 10010 | Z | Z | K | |
| - | - K | + | ^ 19 | 10011 | M | M | M | |
| - | - 7 #1 | + | ^ 20 | 10100 | K | P | K | |
| - | + | ||
| - | === Walze 2 === | + | |
| - | + | ||
| - | - P (0) #20 | + | |
| - | - M (1) | + | |
| - | - Z | + | |
| - | - K | + | |
| - | - O | + | |
| - | - M | + | |
| - | - 7 | + | |
| - | - K | + | |
| - | - P | + | |
| - | - M | + | |
| - | | + | |
| - | - K | + | |
| - | - Z | + | |
| - | - K | + | |
| - | - G | + | |
| - | - K | + | |
| - | - M | + | |
| - | - K (1) | + | |
| - | - M (0) | + | |
| - | | + | |
| - | + | ||
| - | + | ||
| - | === Walze3 === | + | |
| - | + | ||
| - | + | ||
| - | - K #20 | + | |
| - | - M | + | |
| - | - K | + | |
| - | - Z | + | |
| - | - M | + | |
| - | | + | |
| - | - K | + | |
| - | - P | + | |
| - | - M | + | |
| - | | + | |
| - | - M #10 | + | |
| - | - S | + | |
| - | - K | + | |
| - | | + | |
| - | - K | + | |
| - | - G | + | |
| - | - M | + | |
| - | - O | + | |
| - | - K | + | |
| - | - 7 #1 | + | |
| C-Code Arduino: | C-Code Arduino: | ||
| Zeile 436: | Zeile 451: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | 4_walzen.ino : | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | uint8_t read_barrier(){ | ||
| + | |||
| + | digitalWrite(LED_BUILTIN, | ||
| + | // 0, wenn Licht durchfällt, | ||
| + | // B11111 = kann nichts lesen: Licht aus oder kaputt | ||
| + | // B00000 sollte nicht vorkommen | ||
| + | // B10100 hoechster Wert (20) | ||
| + | uint8_t licht = gpio_ext2.readPort(MCP23017Port:: | ||
| + | // | ||
| + | // | ||
| + | |||
| + | licht = licht & B11111; | ||
| + | uint8_t licht2 = licht | B10000000; | ||
| + | Serial.print(" | ||
| + | Serial.print(licht2, | ||
| + | Serial.println(); | ||
| + | digitalWrite(LED_BUILTIN, | ||
| + | return (unsigned int)licht; | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| ==== Einstellungen Mäuseklavier ==== | ==== Einstellungen Mäuseklavier ==== | ||
| < | < | ||
| - | 1-3-2 | + | Röhren- |
| - | Autostart | + | |
| + | DM Aus Aus An | ||
| | | | | | | | | | | | | | | | | | | ||
| 1 2 3 4 5 6 7 8 | 1 2 3 4 5 6 7 8 | ||
| | | | | | | | | | | | | | | | | | | ||
| - | | + | € |
| - | 1-2-3 | + | 1-3-2 |
| </ | </ | ||
| + | __Beschreibung Einstellungen__ | ||
| + | |||
| + | * DM/Euro: Im DM-Modus verhält sich der Münzeinwurf exakt wie beim Original. Im Euro-Modus lässt sich der Münzwert jeder der 5 Münzsschalter einzeln über das Software-Menü einstellen (oder deaktivieren). Die Reihenfolge der Werte spielt keine Rolle (der 5DM-Einwurf kann z.B. mit 50 Cent belegt werden und der 1DM-Einwurf mit 2EU). Beim Auszahlen werden diese Werte berücksichtigt. | ||
| + | * Speedtest: Während des Spiels wird überprüft, | ||
| + | * Röhrenschalter: | ||
| + | * Synchronisation: | ||
| + | * Freispiel: Wird bei Geldzählerstand Null die Geldrückgabe-Taste gedrückt, dann zählt der Automat ein Spiel auf und beginnt sofort dieses Spiel (man spart sich den Einwurf von 30 Geldeinheiten). | ||
| + | * Startautomatik: | ||
| + | * Klassik/ | ||
| + | * Gurkenmodus: | ||
| + | |||
| + | Mit alles Mini-Schaltern nach unten verhält sich der Automat genau wie mit der Original-Elektronik ohne eingebaute Verzögerungsschaltung. | ||
| + | |||
| + | |||
| + | ==== Features ==== | ||
| + | |||
| + | === Standardfeatures === | ||
| + | |||
| + | |||
| + | * Steuereinheit kann alle eingebauten Aktoren wie Relais ansprechen | ||
| + | * Alle Schalter und Zählwerke können ausgelesen werden. | ||
| + | * Starten, Stoppen und Auslesen der 3 Walzen | ||
| + | * Überwachung der 12V-Stromversorung (wie Original) | ||
| + | * Überwachung der Walzengeschwindigkeit | ||
| + | * Geldauszahlung abhängig von Münzstandschaltern | ||
| + | * Spielablauf wie originale Steuerung | ||
| + | * Münzannahme in jeder Spielsituation | ||
| + | * Spielunterbrecherschalter wie Original (Stoppt vor Walzenauslesung) und zusätzliche Stopp zwischen den Spielen | ||
| + | * Verzögerung bei Betätigung der Stopptasten ausschaltbar (' | ||
| + | * Vollwertiger Ersatz des Originalcontrollers von 1977 ohne dass Nutzer das von außen merkt | ||
| + | |||
| + | === Zusätzliche Features === | ||
| + | |||
| + | * 4-zeiliges Display | ||
| + | * Bei Fehlermodus genaue Anzeige im Display, was fehlerhaft ist | ||
| + | * Optokoppler zum Schutz des Controllers | ||
| + | * Münzniveauschalter ausschaltbar (deine Papierstreifen o.ä. mehr nötig) | ||
| + | * Fehlermodus bei zu langsam drehenden Walzen abschaltbar | ||
| + | * Alternativer Spielmodus (z.B. anderes Timing, anderer Walzenstopp, | ||
| + | * Interne Buchhaltung mit Anzeige des Betrages (wie auf analogen Zählern, wenn Synchronisation eingeschaltet ist), Summe der Einsätze und Gewinne | ||
| + | * Permanente Anzeige der Gewinnquote | ||
| + | * Spieler kann Startautomatik einschalten (deaktivierbar). LED-Licht bei eingeschalteter Startautomatik. Startautomatik schaltet sich nach 3 Minuten ohne Spiel automatisch aus. | ||
| + | * Freispiel einstellbar | ||
| + | * Jeder der 5 Münzschalter (und 4 Münzröhren) ist auf den Betrag frei programmierbar (im Euro-Modus; erleichtert die Umstellung auf Euro). Diese Beträge werden auch bei der Auszahlung berücksichtigt | ||
| + | * Internes Test- und Einstellungsmenü (via 3 Taster auf dem Board und Start/ | ||
| + | * Kleiner Piezo-Lautsprecher für dezente Hinweise | ||
| + | * Im Fehlermodus in den Einstellungsmodus gehen und dann wieder in den Spielmodus. DAs resettet den Fehlermodus; | ||
| + | |||
| + | Fehlt noch/Bugs: | ||
| + | |||
| + | * LED auf dem Relaisboard (LED 101) wird noch nicht korrekt angesprochen | ||
| + | * Das Schreiben aller Walzenstellungen jedes Spiels auf SD-Karte zur späteren statistischen Auswertung wäre nett. | ||
| + | * Timing sehr ähnlich dem Original, aber noch nicht 100%ig | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ==== Spannungsmessung ==== | ||
| + | |||
| + | [[https:// | ||