Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
Komponenten und Materialien
| Arduino Nano R3 | × | 1 |
| Münzprüfer (Coin Acceptor) | × | 1 |
| 4-stelliges TM1637 LED-Display | × | 1 |
Apps und Online-Dienste
- Arduino IDE
Über dieses Projekt
Ziel: Code schreiben, um einen Münzprüfer mit Arduino zu steuern – wiederverwendbar für andere Projekte. Konkreter Anwendungsfall: ein kontostandsbewusstes Sparschwein für meine Tochter.
Code
Münzprüfer-Steuerung mit Arduino
// Mario's Ideas
// Controlling coin acceptor with Arduino
#include <Arduino.h>
#include <TM1637Display.h>
#include <EEPROM.h>
// Modul-Anschlüsse (Digital Pins)
#define CLK 3
#define DIO 4
TM1637Display display(CLK, DIO);
// Variablen für Impulsauswertung
int i = 0; // Intervall-Zähler zwischen Impulsen
int impulsCount = 0; // Anzahl erkannter Impulse
float total_amount = 0; // Summe aller eingeworfenen Münzen
void setup() {
Serial.begin(9600);
display.setBrightness(0x0f);
// Interrupt an Pin D2 (Interrupt 0) bei fallender Flanke
attachInterrupt(0, incomingImpuls, FALLING);
EEPROM.get(0, total_amount); // Gespeicherten Stand laden
display.clear();
}
void incomingImpuls() {
impulsCount++;
i = 0;
}
void loop() {
i++;
Serial.print("i="); Serial.print(i);
Serial.print(" Impulses:"); Serial.print(impulsCount);
Serial.print(" Total:"); Serial.println(total_amount);
// Nach 30 Zyklen ohne weiteren Impuls: Münzwert zuordnen
if (i >= 30 && impulsCount == 1) { total_amount += 2; impulsCount = 0; EEPROM.put(0, total_amount); }
if (i >= 30 && impulsCount == 2) { total_amount += 1; impulsCount = 0; EEPROM.put(0, total_amount); }
if (i >= 30 && impulsCount == 3) { total_amount += 0.5; impulsCount = 0; EEPROM.put(0, total_amount); }
if (i >= 30 && impulsCount == 4) { total_amount += 0.2; impulsCount = 0; EEPROM.put(0, total_amount); }
if (i >= 30 && impulsCount == 5) { total_amount += 0.1; impulsCount = 0; EEPROM.put(0, total_amount); }
// Anzeige: Betrag in Eurocent (×10 für eine Dezimalstelle)
if (total_amount < 10)
display.showNumberDecEx(total_amount * 10, 0b10000000, true, 2, 2); // führende Nullen, Dezimalpunkt
else
display.showNumberDecEx(total_amount * 10, 0b00100000, false, 4, 0);
}
Schaltplan

Hinweis: Der Münzprüfer sendet Impulse proportional zum Münzwert (z.B. 1 Impuls = 2€, 2 Impulse = 1€, 3 = 50ct, 4 = 20ct, 5 = 10ct). Der Code zählt Impulse innerhalb eines Zeitfensters (30 Loop-Zyklen) und addiert den entsprechenden Wert. Der Gesamtbetrag wird im EEPROM persistent gespeichert.
Herstellungsprozess
- Arduino Power Control Center: N-FET, P-FET, Relais & RTC Kit
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
- Zwei Schrittmotoren mit Arduino Nano & Joystick steuern – Einfaches Tutorial
- ThimbleKrox: Fingermontierte Maussteuerung mit Arduino Micro & MPU-6050
- Präzise Solareinstrahlungsmessung mit Arduino UNO & Ethernet Shield
- DIY Arduino Kakerlaken-Steuerung – Bauen für unter 30 €
- Arduino Uno & Bluetooth: Fernsteuerung eines Autos – Schritt-für-Schritt-Anleitung
- Arduino Roboterarm per Android-App & Bluetooth steuern
- 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno – Bau, Code & Test