Comedero automático para mascotas

Hola Comunidad de arduino este es mi primer trabajo de programación para el cual decidí usar arduino, compartiré mis avances a la comunidad, mientras solicito su ayuda de ser posible a corregir errores. el programa consta de: 3 pulsadores, 6 leds, y un servomotor el modelo de arduino que utilizare es arduino mega 2560 ya que fue la me pudieron facilitar bueno sin mas preambulos.

Empece con el hola mundo Pulsador 1 con led 1

Pase a repetir el programa de la siguiente manera para que a cada pulsador le correspondiera un led pulsador 1 con led 1 pulsador 2 con led 2 pulsador 3 con led 4

[[[[y actualmente quiero realizar el siguiente avance]]]]

pulsador 1 con led 1 (on/off) pulsador 2 con led 2 o 3 (semaforo tipo peaton por ejemplo) pulsador 3 con led 4 o 5 o 6 (tipo semaforo por ejemplo)

una vez logrado esto el siguiente paso seria

pulsador 1 enciende el programa pulsador 2 selecciona tiempo cada 8 horas(led 2) o cada 12(led 3) esto deseo realizarlo con delay segun imagino haciendo que el servo motor se accione cada 8 o 12 horas pulsador 3 selecciona porcion 200 gr(led 4) o 400 gr(led 5) o 600 gr (led 6) tambien lo quiero realizar con delay haciendo que el servomotor se accione durante por ejemplo 5, 10 o 15 segundos.

en fin seria lo siguiente pulsador 1 enciende equipo, pulsador 2 acciona servo motor cada 8 o 12 horas pulsador 3 acciona servomotor durante 5, 10 o 15 segundos

dejo lo que llevo hasta el momento cualquier pequeña o gran ayuda se agradece

//Declaracion de variables

const int boton1 = 2; //on-off
const int boton2 = 3; //tiempos
const int boton3 = 4; //porciones
const int on = 5; //on-off LED1
const int t1 = 6; //tiempo 1 LED 2
const int t2 = 7; //tiempo 2 LED 3
const int p1 = 8; //porcion 1 LED 4
const int p2 = 9; //porcion 2 LED 5
const int p3 = 10; //porcion 3 LED 6
const int m1 = 11; //servomotor

// lector de estado del boton

int estboton1 = 0; // lee estado boton 1
int estboton2 = 0; // lee estado boton 2
int estboton3 = 0;  // lee estado boton 3

void setup(){
 // botones declarados como entrada
 pinMode(boton1, INPUT); // declaro boton 1 como entrada
 pinMode(boton2, INPUT); // declaro boton 2 como entrada
 pinMode(boton3, INPUT); // declaro boton 3 como entrada
 
 //Procesos(LED´S) declarados como salidas
 pinMode(on, OUTPUT);  //declaro led 1 como salida
 pinMode(t1, OUTPUT);  //declaro led 2 como salida
 pinMode(t2, OUTPUT);  //declaro led 3 como salida
 pinMode(p1, OUTPUT);  //declaro led 4 como salida
 pinMode(p2, OUTPUT);  //declaro led 5 como salida
 pinMode(p3, OUTPUT);  //declaro led 6 como salida
 pinMode(m1, OUTPUT);  //declaro led 7 como salida
}

void loop(){
 //leer estado de los botones
 estboton1 = digitalRead(boton1); //lee estado boton 1
 estboton2 = digitalRead(boton2); //lee estado boton 2
 estboton3 = digitalRead(boton3); //lee estado boton 3
 //si el boton es precionado el estado es alto
if (estboton1 == HIGH){       
 //enciende el led
 digitalWrite(on, HIGH);
}
else {
 //apaga el led
 digitalWrite(on, LOW);
}
 //si el boton es precionado el estado es alto
 if (estboton2 == HIGH){
 //enciende el led
 digitalWrite(t1, HIGH);
}
else {
 //apaga el led
 digitalWrite(t1, LOW);
}
 //si el boton es precionado el estado es alto
if (estboton3 == HIGH){
 //enciende el led
 digitalWrite(p1, HIGH);
}
else {
 //apaga el led
 digitalWrite(p1, LOW);
}
}

pues a seguir pensando.

creo deberias plantearte usar un reloj y programar las horas en las que se dispensa la comida bien a partir del momento en que pulses o bien con horarios ya programados,por ejemplo si se selecciona 8 horas accionar servo cuando sean las 8am,2pm,10pm,8am otra vez....(o el intervalo que prefieras) si 12 pues cuando sean las 12am y 12pm etc.

const int boton1 = 2; //on-off
const int boton2 = 3; //tiempos
const int boton3 = 4; //porciones
const int on = 5; //on-off LED1
const int t1 = 6; //tiempo 1 LED 2
const int t2 = 7; //tiempo 2 LED 3
const int p1 = 8; //porcion 1 LED 4
const int p2 = 9; //porcion 2 LED 5
const int p3 = 10; //porcion 3 LED 6
const int m1 = 11; //servomotor

// lector de estado del boton

int estboton1 = 0; // lee estado boton 1
int estboton2 = 0; // lee estado boton 2
int estboton3 = 0;  // lee estado boton 3

void setup(){
 // botones declarados como entrada
 pinMode(boton1, INPUT); // declaro boton 1 como entrada
 pinMode(boton2, INPUT); // declaro boton 2 como entrada
 pinMode(boton3, INPUT); // declaro boton 3 como entrada
 
 //Procesos(LED´S) declarados como salidas
 pinMode(on, OUTPUT);  //declaro led 1 como salida
 pinMode(t1, OUTPUT);  //declaro led 2 como salida
 pinMode(t2, OUTPUT);  //declaro led 3 como salida
 pinMode(p1, OUTPUT);  //declaro led 4 como salida
 pinMode(p2, OUTPUT);  //declaro led 5 como salida
 pinMode(p3, OUTPUT);  //declaro led 6 como salida
 pinMode(m1, OUTPUT);  //declaro led 7 como salida
}

void loop(){
 //leer estado de los botones
 estboton1 = digitalRead(boton1); //lee estado boton 1
 estboton2 = digitalRead(boton2); //lee estado boton 2
 estboton3 = digitalRead(boton3); //lee estado boton 3
 //si el boton es precionado el estado es alto
if (estboton1 == HIGH){       
 //enciende el led
 digitalWrite(on, HIGH);
}
else {
 //apaga el led
 digitalWrite(on, LOW);
}
 //si el boton es precionado el estado es alto
 if (estboton2 == HIGH){
 //enciende el led
 digitalWrite(t1, HIGH);
}
else {
 //apaga el led
 digitalWrite(t1, LOW);
}
 //si el boton es precionado el estado es alto
if (estboton3 == HIGH){
 //enciende el led
 digitalWrite(p1, HIGH);
}
else {
 //apaga el led
 digitalWrite(p1, LOW);
}
}

pues a seguir pensando.

Hilo cerrado. No se deben revivir hilos viejos (2014) para hacer consultas nuevas. Se crea un hilo nuevo, se hace de acuerdo a las normas (usando etiquetas porque lo que has hecho esta mal posteado). Asi que lee las normas del foro. 1er hilo de cada sección Y por último, no se pregunta en la Sección Proyectos. Se hace en Software o Hardware según corresponda.