#include <TM1637Display.h>
#define BTN_ONE_EURO 15
#define BTN_FIFTY_CENT 4
#define KOEK_PIN 5
#define CLK 18
#define DIO 19
TM1637Display display(CLK, DIO);
volatile int bedrag = 0;
volatile int knop = 0;
void setup() {
pinMode(BTN_ONE_EURO, INPUT_PULLUP); // Pinnen instellen
pinMode(BTN_FIFTY_CENT, INPUT_PULLUP);
pinMode(KOEK_PIN, OUTPUT);
digitalWrite(KOEK_PIN, LOW); // Koek-uitgifte pin laag
display.setBrightness(0x0f); //helderheid instellen
display.showNumberDec(0, true); // beginnen op een bedrag van nul
Serial.begin(115200);
attachInterrupt(digitalPinToInterrupt(BTN_ONE_EURO), [] { knop = 1; }, FALLING);
attachInterrupt(digitalPinToInterrupt(BTN_FIFTY_CENT), [] { knop = 2; }, FALLING);
}
void loop() {
switch (knop) {
case 1:
bedrag += 100; // 1 euro ingeworpen
Serial.println("1 Euro ingeworpen");
break;
case 2:
bedrag += 50; // 50 cent ingeworpen
Serial.println("50 cent ingeworpen");
break;
}
knop = 0;
display.showNumberDec(bedrag, true);
if (bedrag >= 150) geefKoek();
}
void geefKoek() {
Serial.println("Gevulde koek uitgegeven!");
digitalWrite(KOEK_PIN, HIGH);
delay(1000);
digitalWrite(KOEK_PIN, LOW);
bedrag = 0; // Reset bedrag na uitgifte
}