programacion de teclado y lcd, con motores

Me podrian decir si el codigo esta correcto y si no cuales son mis errores, gracias. :slight_smile:
PD: si compila pero no tengo los pulsadores para probarlo completo aun.

const int led10 = 10;
const int led9 = 9;
const int led8 = 8;
const int led7 = 聽7;
const int manual= 1;
const 聽int autom=13;
int encender =0;
int anterior =0;
int estado = 0;
#include <LiquidCrystal.h>
#include <Wire.h>
#include <Keypad.h>
/* Funcion de configuracion de pines del modulo LCD/I2C 
聽 聽(Direccion,en,rw,rs,d4,d5,d6,d7,backlight,polaridad)*/
LiquidCrystal lcd(12,11,5,4,3,2);

const byte Filas = 4; 聽//Cuatro filas
const byte Cols = 4; 聽 //Cuatro columnas
byte Pins_Filas[] = {A0, A1, A2, A3};//Pines Arduino a las filasbyte 
byte Pins_Cols[] = {A4, A5, 6}; // Pines Arduino a las columnas.
//no utilizar los pines 1 y 0 para no interferir en Rx y Tx

char Teclas [ Filas ][ Cols ] =
{
聽 聽{'1','2','3'},
聽 聽{'4','5','6'},
聽 聽{'7','8','9'},
聽 聽{'*','0','#'}
};

char codigoSecreto[4] = {'2','2','5','5'}; // Aqui va el codigo secreto
// Para cambiar el tama帽o de la clave, solo hay que cambiar el tama帽o del array

int posicion=0; 聽 聽// necesaria para la clave
int cursor=5; 聽 聽 聽// posicion inicial de la clave en el LCD
int clave=0; 聽 聽 聽 // para el LCD
int luz=0; 聽 聽 聽 聽 // para el LCD
int tiempo=0; 聽 聽 聽// para el LCD


Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols, Filas, Cols);

void setup()
聽 {
聽 聽 聽Serial.begin(9600) ;
聽 聽 聽lcd.begin(16,2); 聽 聽 聽 // inicializamos el LCD.

聽 聽 聽pinMode (led10,OUTPUT);
聽 聽 聽pinMode (led9, OUTPUT);
聽 聽 聽 pinMode (led8, OUTPUT);
聽 聽 聽 聽 pinMode (led7, OUTPUT);
聽 聽 聽 聽 聽pinMode (manual, INPUT);
聽 聽 聽 聽 聽 pinMode (autom, INPUT);
聽 聽 聽 聽 聽
聽 聽 
聽 聽 聽lcd.setCursor(0,0); 聽 聽 // situamos el cursor el la posici贸n 2 de la linea 0.
聽 聽 聽lcd.print("Introduzca clave"); // escribimos en LCD
聽 聽 聽lcd.setCursor(cursor,1); // cursor en la posicion de la variable, linea 1
聽 聽}

void loop()
聽 {
聽 聽 聽char pulsacion = Teclado1.getKey() ; // leemos pulsacion
聽 聽 聽if (pulsacion != 0) //Si el valor es 0 es que no se ha pulsado ninguna tecla
聽 聽 聽 聽{ // descartamos almohadilla y asterisco
聽 聽 聽 聽 聽if (pulsacion != '#' && pulsacion != '*' && clave==0)
聽 聽 聽 聽 聽 { lcd.print(pulsacion); // imprimimos pulsacion
聽 聽 聽 聽 聽 聽 cursor++; 聽 聽 聽 聽 聽 聽 // incrementamos el cursor

聽 聽 聽 聽 聽 聽 delay(200);
聽 聽 聽 聽 聽

聽 聽 聽//--- Condicionales para comprobar la clave introducida -----------
聽 聽 聽// comparamos entrada con cada uno de los digitos, uno a uno
聽 聽 聽if (pulsacion == codigoSecreto[posicion])
聽 聽 聽 聽 聽posicion ++; // aumentamos posicion si es correcto el digito

聽 聽 聽if (posicion == 4)
聽 聽 聽 { // comprobamos que se han introducido los 4 correctamente
聽 聽 聽 聽 digitalWrite (13,HIGH); 聽// encendemos LED
聽 聽 聽 聽 lcd.setCursor(0,0); 聽 聽 聽// situamos el cursor el la pos 0 de la linea 0.
聽 聽 聽 聽 lcd.print("Clave correcta 聽 聽 "); 聽 
聽 聽 聽 聽 聽lcd.setCursor(0,1);
聽 聽 聽 聽 聽lcd.print("Clave correcta 聽 聽 "); 
聽 聽 聽 聽 聽// escribimos en LCD
聽 聽 聽 聽 聽 聽 聽 聽 聽 // tono de clave correcta

聽 聽 聽 聽 delay(100000);
聽 聽 聽 聽 estado = digitalRead(autom);
if (estado && anterior == 0) 聽 聽 
聽 聽encender = 1 - encender; 聽 聽 聽 // Asignamos el estado contrario
聽 聽delay(30); 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // Anti-rebote
聽
聽anterior = estado; 
聽 聽 聽 聽 automa();
聽 聽 聽 聽 
聽 聽 聽 聽 estado = digitalRead(manual);
if (estado && anterior == 0) 聽 聽 
聽 聽encender = 1 - encender; 聽 聽 聽 // Asignamos el estado contrario
聽 聽delay(30); 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // Anti-rebote
聽
聽anterior = estado; 
聽manua();
聽 聽 聽 聽 lcd.setCursor(5,1); // cursor en la posicion 5, linea 1
聽 聽 聽 聽 clave=1; // indicamos que se ha introducido la clave
聽 聽 聽 聽 
聽 聽 聽 聽 
聽 聽 }
聽 聽 
聽 聽 //--- En el caso de que este incompleta o no hayamos acertado ----------
聽 聽 if(cursor>8) 聽 聽 聽 聽// comprobamos que no pase de la cuarta posicion
聽 聽 聽 { 聽 cursor=5; 聽 聽 // lo volvemos a colocar al inicio
聽 聽 聽 聽 聽 posicion=0; 聽 聽 聽 
聽 聽 聽 lcd.setCursor(0,1);
聽 lcd.print("clave erronea");
聽 delay(900);
聽 // borramos clave introducida
聽 聽 聽 聽 聽 lcd.setCursor(0,1);
聽 聽 聽 聽 聽 lcd.print(" 聽 聽 聽 聽 聽 聽 聽 聽"); 聽 聽 聽 // borramos la clave de la pantalla
聽 聽 聽 聽 聽 lcd.setCursor(5,1);
聽 聽 聽 聽 聽 if(clave==0) 聽 聽 聽 { 聽// comprobamos que no hemos acertado

聽 聽 聽 聽 聽 聽 聽 聽delay(250); // tono de error
聽 聽 聽 聽 聽
聽 聽 聽 聽 聽 聽 聽}
聽 聽 聽 聽}
聽 聽 }
聽 } 

//--- Condicionales para encender o apagar el LCD --------------
if (pulsacion == '#' && luz==0)
聽 聽 { // comprobamos tecla y encendemos si esta apagado

聽 聽 聽 luz=1; // indicamos que esta encendida
聽 聽 聽 pulsacion =0; // borramos el valor para poder leer el siguiente condicional
聽 聽 }

if (pulsacion == '#' && luz==1)
聽 聽 { // comprobamos tecla y estado

聽 聽 聽 luz=0; // indicamos que esta apagada
聽 聽 }

//--- Condicionales para resetear clave introducida -------------
if (pulsacion == '*')
聽 聽 { // asterisco para resetear el contador
聽 聽 聽 posicion = 0;
聽 聽 聽 cursor = 5;
聽 聽 聽 clave=0;
聽 聽 聽 posicion=0;
聽 聽 聽 lcd.setCursor(0,0); // situamos el cursor el la posici贸n 2 de la linea 0.
聽 聽 聽 lcd.print("Introduzca clave"); // escribimos en LCD
聽 聽 聽 lcd.setCursor(5,1);
聽 聽 聽 lcd.print(" "); // borramos de la pantalla los numeros
聽 聽 聽 lcd.setCursor(5,1);
聽 聽

聽 聽
聽 聽}
}

void automa(){
estado = digitalRead(autom);
if (estado && anterior == 0) 聽 聽 
聽 聽encender = 1 - encender; 聽 聽 聽 // Asignamos el estado contrario
聽 聽delay(30); 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // Anti-rebote
聽
聽anterior = estado; 
if(encender){
聽lcd.setCursor(0,1);
聽lcd.print("automatico");
digitalWrite(led10,HIGH);
digitalWrite(led8,HIGH);
}
else
{
digitalWrite(led10,LOW);
digitalWrite(led8,LOW);
delay (3000);

digitalWrite(led9,HIGH);
digitalWrite(led7,HIGH);

聽 聽 聽}
return;



}
void manua(){
聽 estado = digitalRead(manual);
聽 if(estado&& anterior == 0){
encender = 1 - encender; 聽 聽 聽 // Asignamos el estado contrario
聽 聽delay(30); 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // Anti-rebote
聽
聽anterior = estado; 
聽if(encender){
聽 聽lcd.setCursor(0,1);
聽lcd.print("automatico");
聽digitalWrite(led8,HIGH);
聽}
聽else {
聽 聽digitalWrite(led8,LOW);
聽delay(7000);
聽digitalWrite(led7,HIGH);
聽}
}
}

**Acabo de editar tu post porque no has le铆do las normas del foro para postear un c贸digo. **
Advertido. Te recomiendo leer las normas.

Respecto de tu c贸digo, dinos que no funciona o crees que tenemos todo el tiempo para ver y descubrir que problema tiene.
De nuevo lee las normas y presenta adecuadamente tu consulta.