OPA!! consegui =), peguei uma library de password =) Arduino Playground - HomePage
/*
|| Simple Password Entry Using Matrix Keypad
|| 4/5/2012 Updates Nathan Sobieck: Nathan@Sobisource.com
||
*/
//* is to validate password
//# is to reset password attempt
/////////////////////////////////////////////////////////////////
#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip
#include <LiquidCrystal.h>
#include <Servo.h>
Servo motor;
Password password = Password( "1234" ); // Password de Acesso
const byte ROWS = 4; // 4 linhas no teclado
const byte COLS = 3; // 3 colunas no teclado
// Define o resultado ao clicar em cada um dos botões
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; //pinos das linhas do teclado
byte colPins[COLS] = {10, 13, 0,}; //pinos das colunas dos teclados
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // numero das portas do lcd
// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
lcd.begin(16,2); // tamanho do lcd
keypad.addEventListener(keypadEvent); //add an event listener for this keypad
motor.attach(1); // pino onde está o servo
}
void loop(){
keypad.getKey(); // mapear tecla apertada
}
//take care of some special events
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
lcd.println(eKey);
switch (eKey){
case '*': checkPassword(); break;
case '#': password.reset(); break;
default: password.append(eKey);
}
}
}
void checkPassword(){ // evento de checar o password
if (password.evaluate()){
lcd.clear();
lcd.println("Success");
motor.write(79);
//Código caso funcione
}else{
lcd.clear();
lcd.println("Wrong");
password.reset();
delay (1800);
motor.write(0);
lcd.clear();
// Código caso falhe
}
}
o servo tá movendo certinho =), problema que no proteus liguei ele direto na entrada 1 sem nada a mais...,
e também nossa motor + lcd + keypad = todas as 14 portas digitais foram ocupadas =(, queria por outro motor agora ferro...
... achei esse material aqui : Arduino Playground - LearningShiftOut
ele utiliza um chip 74HC595 de deslocamento... alguém utiliza ele?