Im having a problem creating a menu for the code below.
My code works but if I want to change any variables I have to connect the arduino nano to the computer and then upload an updated sketch.
Ive tried many menu sites but either dont know where to put my code, how to structure it, or how the code works at all
Any help would be great.
#include <Wire.h>
#include <Chronodot.h>
#include <TimeAlarms.h>
#include <Time.h>
#define motor 3
#define feedTimes 3 //Feeding Times Per Day
#define bHour 6 //Breakfast Hour
#define bMin 30 //Breakfast Min
#define lHour 12 //Lunch Hour
#define lMin 00 //Lunch Min
#define dHour 18 //Dinner Hour
#define dMin 30 //Dinner Min
#define bfastDelay 1000 //Breakfast Motor Run Time
#define lunchDelay 1000 //Lunch Motor Run Time
#define dinDelay 1000 //Dinner Motor Run Time
Chronodot RTC;
void setup() {
Serial.begin(9600);
digitalWrite(motor, LOW);
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");}
DateTime now = RTC.now();
setTime(hour(), minute(), second(), day(), month(), year());
setTime(now.hour(),now.minute(),now.second(),now.day(),now.month(),now.year()); // set time & date
// Alarms
Alarm.alarmRepeat(bHour,bMin,0, Breakfast); // 06:30am every day
Alarm.alarmRepeat(lHour,lMin,0, Lunch); // 12:00am every day
Alarm.alarmRepeat(dHour,dMin,0, Dinner); // 06:30pm every day
Alarm.alarmRepeat(01,00,0, CorrectTime); // Corrects the Time
}
void loop() {
digitalClockDisplay();
Alarm.delay(1000);} // wait one second between clock display
void digitalClockDisplay() {
//digital clock display of the time
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.println();}
void printDigits(int digits) {
//utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);}
void Breakfast() {
if (feedTimes >= 2) BreakfastTrue;
else BreakfastFalse;}
void Lunch() {
if (feedTimes == 1 || feedTimes == 3) LunchTrue;
else LunchFalse;}
void Dinner() {
if (feedTimes >= 2) DinnerTrue;
else DinnerFalse;}
void BreakfastTrue() {
digitalWrite(motor, HIGH);
Alarm.delay(bfastDelay);
digitalWrite(motor, LOW);}
void BreakfastFalse() {
Serial.print(" Breakfast Skipped");}
void LunchTrue() {
digitalWrite(motor, HIGH);
Alarm.delay(lunchDelay);
digitalWrite(motor, LOW);}
void LunchFalse(){
Serial.print("Lunch Skipped");}
void DinnerTrue(){
digitalWrite(motor, HIGH);
Alarm.delay(dinDelay);
digitalWrite(motor, LOW);}
void DinnerFalse(){
Serial.print("Dinner Skipped");}
void CorrectTime(){
DateTime now = RTC.now();
setTime(hour(), minute(), second(), day(), month(), year());
setTime(now.hour(),now.minute(),now.second(),now.day(),now.month(),now.year());} // set time & date