#include #define SERVO_PIN 12 #define SERVO_ENABLE_PIN 9 #define BTN_LOCK_PIN 3 #define BTN_UNLOCK_PIN 4 #define LED_LOCK_PIN 5 #define LED_UNLOCK_PIN 6 // Last saved LED value byte currentLEDValue; unsigned long int rfid = 0; int heartbeat = 0; unsigned long current_timestamp = 0; unsigned long heartbeat_timestamp = 0; ServoController servo(SERVO_PIN); // set up channel ZUNO_SETUP_CHANNELS( ZUNO_SENSOR_MULTILEVEL(ZUNO_SENSOR_MULTILEVEL_TYPE_GENERAL_PURPOSE_VALUE, SENSOR_MULTILEVEL_SCALE_PERCENTAGE_VALUE, SENSOR_MULTILEVEL_SIZE_FOUR_BYTES, SENSOR_MULTILEVEL_PRECISION_ZERO_DECIMALS, rfid_getter) ); // the setup routine runs once when you press reset: void setup() { pinMode(LED_UNLOCK_PIN, OUTPUT); // setup pin as output digitalWrite(LED_UNLOCK_PIN, LOW); pinMode(LED_LOCK_PIN, OUTPUT); // setup pin as output digitalWrite(LED_LOCK_PIN, LOW); pinMode(SERVO_ENABLE_PIN, OUTPUT); // setup pin as output digitalWrite(SERVO_ENABLE_PIN, HIGH); servo.begin(); } // the loop routine runs over and over again forever: void loop() { current_timestamp = millis(); // Heartbeat if (current_timestamp >= heartbeat_timestamp) { if (heartbeat == 1) { heartbeat = 0; servo.setValue(60); digitalWrite(LED_UNLOCK_PIN, HIGH); digitalWrite(LED_LOCK_PIN, HIGH); } else { heartbeat = 1; servo.setValue(120); digitalWrite(LED_UNLOCK_PIN, LOW); digitalWrite(LED_LOCK_PIN, LOW); } heartbeat_timestamp = current_timestamp + 2000; } } unsigned long int rfid_getter(){ return rfid; }