/* Sweep
https://www.arduino.cc/en/Tutorial/LibraryExamples/Sweep
*/
#include <Servo.h>
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
//const int BTN_Feed_IN = 2;
//const int BTN_Feed_IN2 = 4;
#define BTN_Feed_IN 3
#define LED_Feedback_OUT 13
// IOs
bool BTN_Feed = false;
// Variables that will change, over time:
bool firstscan = true;
bool FeedReady = false;
bool FeedStarted = false;
bool FeedInProgress = false;
//
int pos_home = 0; // variable to store the servo position
int pos_food = 270;
// #############
// # SETUP #
// #############
void setup() {
// * SETUP: Start serial communication *
//Serial.begin(9600);
// * SETUP: Set pin modes *
pinMode(BTN_Feed_IN, INPUT);
// pinMode(BTN_Feed_IN2, INPUT_PULLUP);
pinMode(LED_Feedback_OUT, OUTPUT);
// * SETUP: peripherals INPUT *
// * SETUP: peripherals OUTPUT *
//myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
// #############
// # LOOP #
// #############
void loop() {
// READ INPUT STATES:
BTN_Feed = (digitalRead(BTN_Feed_IN) == LOW);
digitalWrite(LED_Feedback_OUT, BTN_Feed);
}
/*
if (firstscan == true) {
myservo.write(pos_home);
digitalWrite(LED_Feedback_OUT, HIGH);
delay(2000);
digitalWrite(LED_Feedback_OUT, LOW);
delay(20);
digitalWrite(LED_Feedback_OUT, HIGH);
delay(20);
digitalWrite(LED_Feedback_OUT, LOW);
delay(20);
Serial.println("HOMEING DONE");
firstscan = false;
}
if ((firstscan == false) && (FeedStarted == false) && (BTN_Feed == false)) {
myservo.write(pos_home);
if (FeedReady == false) {
Serial.println("FEEDING READY");
FeedReady = true;
}
digitalWrite(LED_Feedback_OUT, HIGH);
delay(250);
digitalWrite(LED_Feedback_OUT, LOW);
delay(250);
}
if ((FeedReady == true) && (BTN_Feed == true)) {
//
Serial.println("FEEDING START");
FeedReady = false;
FeedStarted = true;
digitalWrite(LED_Feedback_OUT, HIGH);
delay(500);
//
Serial.println("FEEDING IN PROGRESS");
FeedInProgress = true;
myservo.write(pos_food);
delay(500);
//
Serial.println("FEEDING DONE");
FeedStarted = false;
FeedInProgress = false;
myservo.write(pos_home);
digitalWrite(LED_Feedback_OUT, LOW);
delay(5000);
//
}
}
*/