Hi my name is francisco and im working on a chronometer that will count backwards.
im force to use 7 segments display because the chronometer its going to be huge so the numbers will be really big.
Now im working with the arduino uno but im going to buy the arduino mega so i can handle the 35 OUTPUT
becouse they are 5 display.
Also im using a matrix keyboard 1-9 and *,# (7 pin keyboard) ...
the idea is print the an X time in the display Ex: 1.00.00 h and then press * and run backwards until 0.00.00
so far my code only read the number in the keyboard and print it in one display (remember that im using arduino uno with 14 outs // 7 for the keyboard and 7 for 1 display
with one display ill be happy selecting a 9 then press * or # and count til 0...
I upload a pic with my circuit.
any sugestions?
thanks.
#include <Keypad.h>
//inicia codigo necesario
const byte filas = 4; //cuatro filas
const byte columnas = 3; //tres columnas
byte pinsFilas[filas] = {8, 7, 6, 5}; // en orden F1. F2. F3 F4
byte pinsColumnas[columnas] = {4, 3, 2}; //en orden C1. C2. C3
char teclas[filas][columnas] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
Keypad teclado = Keypad( makeKeymap(teclas), pinsFilas, pinsColumnas, filas, columnas );
//termina codigo necesario
char tecla;
int numero;
int cero = 0;
int uno = 1;
int dos = 2;
int tres = 3;
int cuatro = 4;
int cinco = 5;
int seis = 6;
int siete = 7;
int ocho = 8;
int nueve = 9;
const int a = 11;
const int b = 10;
const int c = 0;
const int d = 1;
const int e = 9;
const int f = 12;
const int g = 13;
boolean start = (true);
void setup() {
start = -13;
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void loop () {
tecla = teclado.getKey();
numero = tecla - 48; //convertimos el caracter a valor numerico //turn char into int so we can use numbers
if(numero == cero){ // si se presiona 0
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
}
if(numero == uno){ // si se presiona 1
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
if(numero == dos){ // si se presiona 2
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
if(numero == tres){ // si se presiona 3
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
if(numero == cuatro){ // si se presiona 4
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(numero == cinco){ // si se presiona 5
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(numero == seis){ // si se presiona 6
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(numero == siete){ // si se presiona 7
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
if(numero == ocho){ // si se presiona 8
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
if(numero == nueve){ // si se presiona 9
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
}