#include <EEPROM.h>
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
int An, An0, X=0, Y=0, Y1, Pr = 0, Cont0 = 0, SL = 0;
//define los caracteres de la matriz
char teclas [4] [4] = {{'1', '2', '3','A'},
{'4', '5', '6','B'},
{'7', '8', '9','C'},
{'*','0', '#', 'D'}};
char letras [4] = {'E', 'F', 'G', 'H'};
int cont, cont1;
//define los pines
int filas [ ] = {2,3,4,5};
int columnas [ ] = {6,7,8,9};
int botones [ ] = {10,11};
char valor; //variable que guarda el valor
int direccion = 5; //variable que indicara la posición de las celdas
int celda; //variable que se utiliza en el caso de que se utiliza el boton de LEER
void setup(){
Serial.begin(9600);
//Define el estado de los pines
EEPROM.Put(0,direccion);
for (cont=0 ; cont<=3 ; cont++){
pinMode(filas[cont ],OUTPUT);}
for (cont=0 ; cont<=3 ; cont++){
pinMode(columnas[ cont ],INPUT_PULLUP);}
for(cont=0; cont<=3; cont++){
pinMode(botones[cont], INPUT_PULLUP);}
}
//Arreglo que lee las teclas
void lectura () {
for (cont=0; cont<4; cont++){
digitalWrite (filas [cont], LOW);
for (cont1=0; cont1<4; cont1++){
if (digitalRead (columnas[cont1])== LOW){
delay(50);
if (digitalRead (columnas[cont1])== LOW){
Serial.println(teclas[cont][cont1]); //muestra el caracter correspondiente
valor = teclas ([cont][cont1]); //guardamos el valor en la variable value
EEPROM.Write(direccion,valor);
direccion = direccion + 1; // Incrementa la direccion una unidad
while(digitalRead (columnas[cont1]) == LOW){}
}}
}
digitalWrite (filas[cont], HIGH);
}
}
//Areglo que lee los botones (reset y volver a mostrar)
void lectura2 (){
for (cont = 0; cont<2; cont++){
if (digitalRead (botones[cont]) == LOW){
delay(50); //evitamos el rebote
if (digitalRead (botones[cont]) == LOW){ //en el caso de que se cumpla.
if (cont == 0){ direccion = 5; Serial.println ("La dirección volvio a ser 0");}
else {
for (celda = 0 ; celda < direccion; celda ++){
Serial.println (EEPROM.Read(celda);}
}
while(digitalRead (botones[cont]) == LOW) {} //evitar rebote
}
}
}
void loop (){
lectura();
lectura2 ();
}
Moderador:
Hola @pedrorosito. El código bien subido, el título es correcto pero no dices que hay que hacer o que no funciona.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.