basquet

Reloj De Posesion Basquet 14 24 60 Segundos con Arduino Mini Pro

Código Fuente

display7segmentodoble_catodo

#define A 2
#define B 3
#define C 4
#define D 5
#define E 6
#define F1 7
#define G 8
#define BTN1 14
#define BTN2 15
#define BTN3 16
#define BTN4 17
#define led 13
// Pines comunes de cada display de anodo comun
#define CA1 9
#define CA2 10
int bandera=1;
int ban=0;
int banderab=1;
int banb=0;
void(* Resetea) (void) = 0;
// Pines para A B C D E F G, en secuencia
const int segs[7] = { 2, 3, 4, 5, 6, 7, 8 };

// Segmentos que componen cada número
// const byte numbers[10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000}; // ánodo común
const byte numbers[10] = { 0b0111111, 0b0000110, 0b1011011, 0b1001111, 0b1100110, 0b1101101, 0b1111101, 0b0000111, 0b1111111, 0b1101111};//cátodo común

int digit1 = 0;
int digit2 = 0;
void setup()
{
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F1, OUTPUT);
pinMode(G, OUTPUT);
pinMode(BTN1, INPUT);
pinMode(BTN2, INPUT);
pinMode(BTN3, INPUT);
digitalWrite(BTN1, HIGH); // activa RPA
digitalWrite(BTN2, HIGH); // activa RPA
digitalWrite(BTN3, HIGH); // activa RPA
pinMode(CA1, OUTPUT);
pinMode(CA2, OUTPUT);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
// pinMode(led12, OUTPUT);
}

void loop()
{
//////////Boton2//////////////////////////////////
int val2 = digitalRead(BTN2);
if ((val2 == HIGH) )
{
reset24();
boton2();
reset24();
tiempo();
reset24();

}
////////////boton3//////////
int val3 = digitalRead(BTN3);
if ((val3 == HIGH) )
{
reset14();
boton3();
reset14();
tiempo();
tiempo();//duplicado
reset14();
}
////////////boton4//////////
int val4 = digitalRead(BTN4);
if ((val4 == HIGH))
{
boton4();
reset14();
reset24();
int val4 = digitalRead(BTN4);
if ((val4 == HIGH))

{
Resetea();
}

}
////////////////////////////
reset14();
tiempo2();
reset14();
//Serial.print(digit1);
}
///////////////////////////////////////
int tiempo(){
unsigned long startTime = millis();

for (unsigned long elapsed=0; elapsed < 250; elapsed = millis() – startTime)
{

lightDigit1(numbers[digit1]);
delay(5);
lightDigit2(numbers[digit2]);
delay(5);
////////////////////////

////////////////////////

}
}
/////////////////////////////////////
void lightDigit1(byte number)
{
//ánodo común
// digitalWrite(CA1, HIGH);
// digitalWrite(CA2, LOW);
//cátodo común
digitalWrite(CA1, LOW);
digitalWrite(CA2, HIGH);
lightSegments(number);
///////////////////////

}
//////////////////////////////////////
void lightDigit2(byte number)
{
//ánodo común
// digitalWrite(CA1, LOW);
// digitalWrite(CA2, HIGH);
//cátodo común
digitalWrite(CA1, HIGH);
digitalWrite(CA2, LOW);
lightSegments(number);
}
//////////////////////////////////////
void lightSegments(byte number)
{
for (int i = 0; i < 7; i++)
{
int bit = bitRead(number, i);
digitalWrite(segs[i], bit);
}
}
///////////Bocina//////////////////////////
int bocina(){
digitalWrite(led, HIGH);
reset14();
reset24();
reset60();
tiempo();
reset14();
reset24();
reset60();
tiempo();
reset14();
reset24();
reset60();
tiempo();
reset14();
reset24();
reset60();
tiempo();
reset14();
reset24();
reset60();
tiempo();
reset14();
reset24();
reset60();
tiempo();
reset14();
reset24();
reset60();
digitalWrite(led, LOW);
}

//tiempo2///////////////////////////
int tiempo2(){
unsigned long startTime = millis();
for (unsigned long elapsed=0; elapsed < 1; elapsed = millis() – startTime)
{

lightDigit1(numbers[digit1]);
delay(5);
lightDigit2(numbers[digit2]);
delay(5);
}
}
/////////////reset a 14////////////
int reset14(){
//********reseteo a 14***************
//digitalWrite(led, LOW);
int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
//digitalWrite(led, LOW);
Resetea();
}
//**************************************
}
/////////////reseteo a 24////////////

int reset24(){
//********reseteo a 14***************
//
int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
//digitalWrite(led, LOW);
Resetea();
}
}
//**************************************
/////////////reseteo a 60////////////
int reset60(){
//digitalWrite(led, LOW);
int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
//digitalWrite(led, LOW);
Resetea();
}
}
//////////////////////////////////////////
////////////boton4 60 segundos/////////////////////////////////////////////////////////////////////////////////////////////////////////////
int boton4(){
int valor=0;
digit1=0;
digit2=6;
reset14();
reset24();
tiempo();
reset14();
reset24();
tiempo();

reset14();
reset24();

tiempo();

reset14();
reset24();

tiempo();
reset14();
reset24();

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset14();
while(val1 == HIGH)
{

reset14();
ban=1;
reset14();
val1 = digitalRead(BTN1);
reset14();
tiempo();
reset14();
tiempo();//duplicado
reset14();

int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}

int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}

int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}
val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}
val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}

}
///////////////////////////

while(digit2!=0 || digit1!=0){

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset14();
while(val1 == HIGH)
{
reset14();
ban=1;
reset14();
val1 = digitalRead(BTN1);
reset14();
tiempo();
reset14();
tiempo();//duplicado
reset14();

int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}
int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}
int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}
}
///////////////////////////

while(digit1!=0){

int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset14();
while(val1 == HIGH)
{
reset14();
ban=1;
reset14();
val1 = digitalRead(BTN1);
reset14();
tiempo();
reset14();
tiempo();//duplicado
reset14();

int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}
int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}
int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}
}
///////////////////////////
–digit1;
if(digit2==0 && digit1==0){
bocina();
}

tiempo();
reset14();
reset24();

tiempo();
reset14();
reset24();

tiempo();
reset14();
reset24();

tiempo();
reset14();
reset24();

}

reset14();
reset24();
if(digit2==0){
digit1=0;
digit2=0;
valor=1;
}
reset14();
reset24();

if(digit1==0 && valor==0){

–digit2;

digit1=9;

reset14();
reset24();
tiempo();
reset14();
reset24();

tiempo();
reset14();
reset24();
tiempo();
reset14();
reset24();

tiempo();
reset14();
reset24();

}
reset14();
reset24();

}
reset14();
reset24();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////boton4 24 segundos///////////////////////////
int boton3(){
int valor=0;
digit1=4;
digit2=2;
reset14();
reset60();
tiempo();
reset14();
reset60();
tiempo();

reset14();
reset60();

tiempo();

reset14();
reset60();

tiempo();
reset14();
reset60();

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset14();
while(val1 == HIGH)
{

reset14();
ban=1;
reset14();
val1 = digitalRead(BTN1);
reset14();
tiempo();
reset14();
tiempo();//duplicado
reset14();

int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}

val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}

int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}
int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}

}
///////////////////////////

while(digit2!=0 || digit1!=0){

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset14();
while(val1 == HIGH)
{
reset14();
ban=1;
reset14();
val1 = digitalRead(BTN1);
reset14();
tiempo();
reset14();
tiempo();//duplicado
reset14();

int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}
int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}
val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}
}
///////////////////////////

while(digit1!=0){

int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset14();
while(val1 == HIGH)
{
reset14();
ban=1;
reset14();
val1 = digitalRead(BTN1);
reset14();
tiempo();
reset14();
tiempo();//duplicado
reset14();

int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}
int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}
val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}
}
///////////////////////////
–digit1;
if(digit2==0 && digit1==0){
bocina();
}

tiempo();
reset14();
reset60();

tiempo();
reset14();
reset60();

tiempo();
reset14();
reset60();

tiempo();
reset14();
reset60();

}

reset14();
reset60();
if(digit2==0){
digit1=0;
digit2=0;
valor=1;
}
reset14();
reset60();

if(digit1==0 && valor==0){

–digit2;

digit1=9;

reset14();
reset60();
tiempo();
reset14();
reset60();

tiempo();
reset14();
reset60();
tiempo();
reset14();
reset60();

tiempo();
reset14();
reset60();

}
reset14();
reset60();

}
reset14();
reset60();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////boton4 14 segundos///////////////////////////
int boton2(){
int valor=0;
digit1=4;
digit2=1;
reset24();
reset60();
tiempo();
reset24();
reset60();
tiempo();

reset24();
reset60();

tiempo();

reset24();
reset60();

tiempo();
reset24();
reset60();

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset24();
while(val1 == HIGH)
{

reset24();
ban=1;
reset24();
val1 = digitalRead(BTN1);
reset24();
tiempo();
reset24();
tiempo();//duplicado
reset24();

int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}

int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}

val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}
int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}

}
///////////////////////////

while(digit2!=0 || digit1!=0){

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset24();
while(val1 == HIGH)
{
reset24();
ban=1;
reset24();
val1 = digitalRead(BTN1);
reset24();
tiempo();
reset24();
tiempo();//duplicado
reset24();

int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}

}
///////////////////////////

while(digit1!=0){

int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}

///////////stop-start///////
int val1 = digitalRead(BTN1);
reset24();
while(val1 == HIGH)
{
reset24();
ban=1;
reset24();
val1 = digitalRead(BTN1);
reset24();
tiempo();
reset24();
tiempo();//duplicado
reset24();

int val2 = digitalRead(BTN2);
if (val2 == HIGH)
{
Resetea();
}
int val4 = digitalRead(BTN4);
if (val4 == HIGH)
{
Resetea();
}
int val3 = digitalRead(BTN3);
if (val3 == HIGH)
{
Resetea();
}
}
///////////////////////////
–digit1;
if(digit2==0 && digit1==0){
bocina();
}

tiempo();
reset24();
reset60();

tiempo();
reset24();
reset60();

tiempo();
reset24();
reset60();

tiempo();
reset24();
reset60();

}

reset24();
reset60();
if(digit2==0){
digit1=0;
digit2=0;
valor=1;
}
reset24();
reset60();

if(digit1==0 && valor==0){

–digit2;

digit1=9;

reset24();
reset60();
tiempo();
reset24();
reset60();

tiempo();
reset24();
reset60();
tiempo();
reset24();
reset60();

tiempo();
reset24();
reset60();

}
reset24();
reset60();

}
reset24();
reset60();
}

5 comentarios en “Reloj De Posesion Basquet 14 24 60 Segundos con Arduino Mini Pro

  1. Funcionamiento de un contador de posesión real:
    4 botones, stop, start, 14 y 24
    start inicia o continúa la cuenta
    stop para y mantiene la cuenta (si quedaban 15 segundos, al pulsar start de nuevo, seguirán quedando 15 segundos)
    14 reinicia el tiempo a 14 segundos
    24 reinicia el tiempo a 24 segundos
    Ni 14 ni 24 paran el reloj, ejemplo: si queda 1 segundo y se pulsa 14, seguirá sin tener que pulsar start
    Pueden actualizar el proyecto a esta configuración?

Deja un comentario