proyecto

Buenos días
Me llamo Jorge rodríguez
Quisiera hacer un proyecto con arduino pero no sé cómo empezarlo soy nuevo en este ambiente de la programación
El proyecto consiste en
1.- un botón de inicio
2.- con un motor pap programar las vueltas que quisiera y si pudiera regular la velocidad
3.- conectar 6 electroválvulas con diferentes tiempos
4.- Un display (para visualizar lo programado)
5.- un teclado (para programar los tiempos de los elementos)
Con el botón de inicio se empezaría un ciclo tanto de las vueltas como los tiempos de las electroválvulas una vez terminado el ciclo se quede en reposo para iniciar otra vez al pulsar el botón, a grandes rasgos esto aria el proyecto
De antemano gracias

Empieza definiendo bien tu proyecto.
Por ejemplo: voy a usar estas válvulas y pones datos de las mismas.
Son 24VDC X Amper son 220VAC X amper son 24VAC X amper
Display usa el shield LCD para arduino
Teclado una matriz 4x4
Con teclado no necesitas boton de inicio, o hablas de boton de power?
Motor Pap, mas datos.

Es temerario (y frustrante) comenzar algo así de golpe siendo novato.
Empieza con el Arduino y el teclado, cuando domines eso, añade el motor pap hasta controlarlo al 100%, luego el display y así.
Cuando por separado controles las cosas, la pregunta que haces se te contestará sola.
Mientras, es imposible contestarte algo que te sea realmente útil.

Es dificil x lo que poco q se estoy yo realizandfo algo parecido
yo utilizo un lcd de 2x 12 un lector de memoria Sd, una electrovalvula un rtc reloj para un sistema de riego mi problema es al momento de repetir el riego solo lo puedo activar una vez y apagar creo necesito un for pero en si no c en q lugar lo podria implementar mi pequeño codigo es este.

#include <SPI.h>
#include <SD.h>
#include <LiquidCrystal.h>
#include <Time.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int EVpin = 9; //Puerto de salida de encendido Bomba
int EVpinn = 8; //Puerto de salida de Sd
int momentoInicio;
char variableminutosI;
char variablesegundos;
char variablesegundoss;
const int chipSelect = 10;
int I = 0;
int F = 3;
byte horaInicio = 8, minutoInicio = I;
byte horaFin = 8, minutoFin = F;
int variableSd =0;
String dataString="";
void setup() 

{
 pinMode (EVpin, OUTPUT);
 pinMode (EVpinn, OUTPUT); //salida Sd
 Serial.begin(9600);
 setTime(7,59,00,03,06,2015); //hora y fecha
 lcd.begin(16,2);
 lcd.print("Sistema de Riego");
 lcd.setCursor(0,1);
 lcd.print("Inicializando.");
 delay(1000);
 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Inicializando..");
 delay(1000);
 lcd.clear();
 lcd.setCursor(0,1);
 lcd.print("Inicializando...");
 delay(3000);
 lcd.clear();
 {
  Serial.println(" Comprobando Sd");
 pinMode(chipSelect,OUTPUT);  
 lcd.print(" Comprobando SD");
 delay(3000);
 lcd.clear();
 if(!SD.begin(chipSelect))
{
Serial.println("Fallo de inicializando Sd Card ... ");// verificando la Sd Card
lcd.print("Fallo Sd Card ... ");
delay(2000);
lcd.clear();
return;
 }
Serial.println("Inicializando Sd Card correcta ... "); // verificando la Sd Card
lcd.print("Sd Card correcta ... ");
delay(2000);
lcd.clear();
 }
}
void loop() 
{
 //condicion de encendido de bomba
 lcd.setCursor(0,0);
 Serial.print("Son las:");
 lcd.print("Son Las");
 lcd.setCursor(9,0);
 Serial.println(String(hour()) + ":" + String(minute()) + ":" + String(second()));
 lcd.print(String(hour()) + ":" + String(minute()) + ":" + String(second()));
 if(esHoraRiego())
 {
   lcd.setCursor(0,1); //posicion lcd Es Hora de Riego
   Serial.println("Es hora de Riego");
   lcd.println("Es hora de Riego");
   digitalWrite (EVpin, HIGH);//Encienda Bomba  
   }
   else
   {
     lcd.setCursor(0,1); //posicion lcd NO es Hora de Riego
     Serial.println("No es hora de Riego");
     lcd.print("Riego en descanso");
     digitalWrite (EVpin, LOW); //Apague Bomba
     }
     delay(1000);
     sdcard();
     }
      void sdcard()
      
             {               
               variableSd = digitalRead(9);
               if (variableSd == 1)
               
               {

   // for (int I=0; I<60; I+3) 
//     for (F=3; F<60; F++)
           
    {
       variableminutosI = minute(),variablesegundoss = second();
       if ((variableminutosI == I) && (variablesegundoss == 1))

       {              
dataString += String("Inicio riego Sd Card");
dataString +=",";
dataString += String(String(hour()) + ":" + String(minute()) + ":" + String(second()));
dataString +=",";

 File dafile = SD.open("datalog.txt",FILE_WRITE);
 dafile.print(",");
 dafile.println (dataString);
 dafile.close();
 Serial.println(dataString);
 }
}
   variablesegundos = minute();
   if (variablesegundos == F)
  { 
dataString += String("Fin d riego Sd Card");
dataString +=",";
dataString += String(String(hour()) + ":" + String(minute()) + ":" + String(second()));
dataString +=",";

 File dafile = SD.open("datalog.txt",FILE_WRITE);
 dafile.print(",");
 dafile.println (dataString);
 dafile.close();
 Serial.println(dataString);

   }   
        } }
      boolean esHoraRiego() 
     {
     momentoInicio = (horaInicio * 60)+ minutoInicio;
     int momentoFin = (horaFin * 60)+ minutoFin; 
    int momentoAhora = (hour() * 60)+ minute();
     
     if((momentoInicio <= momentoAhora) && (momentoAhora < momentoFin))
    {
     return true;     
    }    
   else
  {
   return false;
  }
 }

moderator: added [code]...[/code] tags

gracias por contestar mis preguntas
voy e describir el proyecto completo
gracias de antemano

Hola che, te paso un codigo de programa que algo tiene que ver con lo que vas a hacer. Ojala te sirva.

enlace_teclado_y_lcd.ino (7.3 KB)