#include "main.h" #include #include "epaperdisplay.h" #include "button.h" #include "coinacceptor.h" #include "state.h" //#include "lnurlutil.h" #include "config.h" EpaperDisplay epDisp(DSPLY_PIN_CS, DSPLY_PIN_DC, DSPLY_PIN_RST, DSPLY_PIN_BUSY); AtmButton ok_button(OK_BUTTON_PIN, OK_LED_BUTTON_PIN); AtmButton cancel_button(OK_BUTTON_PIN, OK_LED_BUTTON_PIN); CoinAcceptor cacc(COIN_PIN, MOSFET_PIN, COINS, COINS_COUNT, COIN_PULSE_WIDTH_MS, MAX_ALLOWED_EUROCENT_VALUE); void setup() { Serial.begin(115200); epDisp.init(); // Init eInk display epDisp.initScreen(); cacc.begin(); // Init Coin acceptor cacc.disable(); // Disable coin detection ok_button.begin(); // Init OK button ok_button.reset(); // Reset Ok button - if already pressed cancel_button.begin(); // Init Cancel button cancel_button.reset(); // Reset cancel button - if already pressed cancel_button.ledOff(); /* activate both buttons and wait until at least one is pressed */ while( true == ok_button.iswaitingUntilPressed(/* maxTimeToWaitMs0= */ 0, /* blinkPeriodMs= */ 1000) && true == cancel_button.iswaitingUntilPressed(/* maxTimeToWaitMs0= */ 0, /* blinkPeriodMs= */ 1000) ) {} cancel_button.softPress(); // just do a 'soft press' to both buttons to stop waiting and blink for the unpressed as well ok_button.softPress(); // just do a 'soft press' to both buttons to stop waiting and blink for the unpressed as well atm::reset(); // reset the ATM state machine and go to init state! } void loop() { /* now start the ATM state machine in the endless loop*/ atm::stateMachine(); }