Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
Composants et fournitures
| Arduino Nano R3 | × | 1 |
| Accepteur de pièces (Coin Acceptor) | × | 1 |
| Afficheur LED 4 digits TM1637 | × | 1 |
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Le but de ce projet est d'écrire le code pour contrôler un accepteur de pièces avec Arduino, afin de l'intégrer dans d'autres projets. Mon objectif initial était de construire une tirelire consciente du solde pour ma fille.
Code
Contrôle de l'accepteur de pièces avec Arduino
// Mario's Ideas
// Contrôle accepteur de pièces avec Arduino
#include <Arduino.h>
#include <TM1637Display.h>
#include <EEPROM.h>
// Broches du module (broches numériques)
#define CLK 3
#define DIO 4
TM1637Display display(CLK, DIO);
// Variable pour mesurer les intervalles entre impulsions
int i = 0;
// Nombre d'impulsions détectées
int impulsCount = 0;
// Somme de toutes les pièces insérées
float total_amount = 0;
void setup() {
Serial.begin(9600);
display.setBrightness(0x0f);
// Interruption sur broche D2 (interruption 0) sur front descendant
attachInterrupt(0, incomingImpuls, FALLING);
EEPROM.get(0, total_amount);
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);
// Après 30 boucles sans nouvelle impulsion, on considère la pièce validée
if (i >= 30 && impulsCount == 1) {
total_amount += 2.0; // 2€
impulsCount = 0;
EEPROM.put(0, total_amount);
}
if (i >= 30 && impulsCount == 2) {
total_amount += 1.0; // 1€
impulsCount = 0;
EEPROM.put(0, total_amount);
}
if (i >= 30 && impulsCount == 3) {
total_amount += 0.5; // 0,50€
impulsCount = 0;
EEPROM.put(0, total_amount);
}
if (i >= 30 && impulsCount == 4) {
total_amount += 0.2; // 0,20€
impulsCount = 0;
EEPROM.put(0, total_amount);
}
if (i >= 30 && impulsCount == 5) {
total_amount += 0.1; // 0,10€
impulsCount = 0;
EEPROM.put(0, total_amount);
}
// Affichage sur 4 digits avec virgule
if (total_amount < 10)
display.showNumberDecEx(total_amount * 10, 0b10000000, true, 2, 2);
else
display.showNumberDecEx(total_amount * 10, 0b00100000, false, 4, 0);
}
Schémas
Schéma de câblage disponible dans le projet original.
Processus de fabrication
- Centre de contrôle d'alimentation Arduino : N-FET, P-FET, Relais et RTC
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Contrôleur d'humidificateur DIY avec Arduino et relais – Installation haute tension sécurisée
- Contrôler 2 moteurs pas-à-pas avec Arduino Nano et joystick – Tutoriel Visuino
- ThimbleKrox : Contrôle Souris au Doigt avec Arduino Micro et MPU-6050
- Mesure précise du rayonnement solaire avec Arduino UNO et shield Ethernet
- Système de contrôle de cafard DIY avec Arduino – Construisez-le pour moins de 30 €
- Contrôle à distance d'une voiture avec Arduino Uno et Bluetooth : Guide pas à pas
- Contrôle de ventilateur PWM 4 broches 25 kHz avec Arduino Uno – Construction, code et test