Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
/*
Programa V 7b.2.13 by Fons
Programa de teclado matricial 4x4 para una entrada
analogica
//=================================================
/*Declaracion de librerias*/
#include <stdlib.h>
//=================================================
/*Declaracion de las constantes a usar
-Pines de entrada
-Pines de salida
-Teclado
*/
//___________________________________________Entrada
const int TecladoM=A0;
//___________________________________________Salida
const int PW= 9;
//___________________________________________Teclado
//Valores para la lectura analogica
const int Vmin=150;
//Valores para cada tecla
const int Vd=166, Vc=296, Vb=408, Va=563;
const int Vgato=178, V9=336, V6=488, V3=728;
const int V0=182, V8=348, V5=514, V2=788;
const int Vaste=188, V7=371, V4=566, V1=915;
//==================================================
/*Variavbles
char
inicio caracter para hacer valido el inicio
pass[] para comparar con la entrada
letra almaecna tecla de letra presionada
numero almacena tecla de numero presioanda
int
valor para el valor si se mete puros numeros
bandera2 para decir que se ingreso letra
entradateclado para almacenar el valor del adc
i para el for
bandera1 para la toma de tecla
superior para umbral superior
inferior para umbral inferior
cosa bandera para machs de comapracion */
char codigo[4],inicio,pass[4]={'B','A','D','#'},letra,numero;
int entradateclado, i=0, bandera1=0, superior,inferior,cosa=0,bandera2=0,valor=0;
//========================================================
/*Void setup de condiguracion
-Serial.begin para la comunicacion de entrada y salida
*/
void setup() {
Serial.begin(9600);
analogWrite(PW,0);
}
//============================================================
/*Void loop*/
void loop() {
if(inicio=='C'){
Serial.print("rnVamos a testear las teclas hasta que presiones brn";);
delay(1000);
while(inicio!='B'){
inicio=Serial.read();
entradateclado = analogRead(TecladoM);
Serial.print("rEl valor de la tecla presionada: ";);
Serial.println(entradateclado);
delay(300);
}//fin while testeo
}//fin para el teseteo
delay(1500);
if(letra!='x'){
Serial.print(letra);
codigo[i]=letra;
bandera2=1;}
if(numero!='y'){
Serial.print(numero);
codigo[i]=numero;}
if(codigo[i]==pass[i])cosa=cosa+1;
delay(350);
}//fin for de llenado
delay(600);
Serial.print("rn==================rnMatches en pass: ";);
Serial.println(cosa);
delay(2000);
//===================================================================
/*Funciones
void lectora(){
bandera1=0;
while(bandera1==0){
entradateclado=0;
while(entradateclado<Vmin){
entradateclado = analogRead(TecladoM);
delay(100);
entradateclado = analogRead(TecladoM);
delay(30);
}//fin while de presionar teclado
entradateclado = analogRead(TecladoM);
superior=entradateclado+1;
inferior=entradateclado-1;
letra='x';
numero='y';