ayuda con codigo

Hola, tengo un teclado matricial de 4x3 y quiero añadirle que cuando pulse las teclas pite un buzzer en el pin 9, y que para confirmar la clave tengas que pulsar #. muchas gracias.

#include <Keypad.h>

char* secretCode = "1234";
int position = 0;

const byte rows = 4;
const byte cols = 3;
char keys[rows][cols] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
}; 
byte rowPins[rows] = {8, 7, 6, 5};
byte colPins[cols] = {4, 3, 2};
 
Keypad keypad = Keypad(makeKeymap(keys),rowPins, colPins,rows, cols);


int salida = 10;
 
void setup()
{
  pinMode(salida, OUTPUT);
  setLocked(true);
}
 
void loop()
{
  char key = keypad.getKey();
  if (key == secretCode[position]){ 
  position++;
  } 
  if (position == 6) {
    setLocked(false);
  }
  delay(50);
} 
void setLocked(int locked)
{
  if (locked) {
    digitalWrite(salida, LOW);
  }
  else
    digitalWrite(salida, HIGH);
    delay (3000);
    digitalWrite(salida, LOW);
    position = 0;
  }

Hola, nadie me puede ayudar? :frowning: :frowning: :frowning: :frowning: :frowning:

buenas!

deberias declarar el buzzer, por ejemplo

int buzzer=9;

y aqui haria esta modificacion:

if (key == secretCode[position]){ 
  digitalWrite (buzzer,HIGH);
  delay (500);//o el tiempo que quieras que pite
  digitalWrite (buuzer, LOW);// repite las tres ultimas frases para que pite mas de una vez
  position++;
  }

y por ultimo:

if (position == 6) { // supongo que esto se activa cuando terminas de escribir el codigo, no?
  while (key !='#'){
    key=keypad.getKey(); //esperar hasta recibir un '#' 
} 
    setLocked(false);
  }

Hola. Echa un vistazo al playground de la propia librería. En este ejemplo sólo tendrías que cambiar la función keypadevent, poniendo buzzer a high en el case pressed y buzzer a low en el case released. Con eso tendrías solucionado lo del pitido. Respecto de la otra parte, echa un vistazo a este hilo, en el cual creo que solucionamos algo parecido, a ver si te sirve de inspiración. Saludos.

Hola, muchas gracias, pero hay un fallo si esta el código del buzzer no funciona correctamente pero si lo quito funciona bien con lo de la tecla # pero lógicamente el buzzer no hace nada.

Hola. Ahora es cuando deberías poner tu código actual, para ver qué modificaciones podemos hacer. :roll_eyes: Saludos.

Noter: Perdona que me meta en la conversación, pero he visto algo que me llamo mucho la atención.

Eltecnico: Podrías hacerme un faborcillo, se trata de variar el secretCode y cargar el codigo, y yo creo que desde aqui puedo adivinarlo y abrir la puerta $)

Entiendo que te refieres al código que puso Eletnico en el primer post, ¿no? ]:D

Ho, no matopella...

Me has descubierto el truco, esta claro que en la magia no tengo futuro :P