@@ -1,115 +0,0 @@
|
|||||||
#include <RCSwitch.h>
|
|
||||||
|
|
||||||
RCSwitch mySwitch = RCSwitch();
|
|
||||||
// V konečné verzi zruším čísla pinů jako proměnné, a debug.
|
|
||||||
int D1 = 3;
|
|
||||||
int D2 = 5;
|
|
||||||
int D4 = 6;
|
|
||||||
int D8 = 4;
|
|
||||||
int Dj = 7;
|
|
||||||
|
|
||||||
int H1 = 8;
|
|
||||||
int H2 = 10;
|
|
||||||
int H4 = 11;
|
|
||||||
int H8 = 9;
|
|
||||||
int Hj = 12;
|
|
||||||
|
|
||||||
boolean debug = 0;
|
|
||||||
|
|
||||||
int domaci;
|
|
||||||
int hoste;
|
|
||||||
|
|
||||||
void setup() {
|
|
||||||
if(debug){ Serial.begin(9600); }
|
|
||||||
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
|
|
||||||
|
|
||||||
pinMode(D1, OUTPUT);
|
|
||||||
pinMode(D2, OUTPUT);
|
|
||||||
pinMode(D4, OUTPUT);
|
|
||||||
pinMode(D8, OUTPUT);
|
|
||||||
pinMode(Dj, OUTPUT);
|
|
||||||
|
|
||||||
pinMode(H1, OUTPUT);
|
|
||||||
pinMode(H2, OUTPUT);
|
|
||||||
pinMode(H4, OUTPUT);
|
|
||||||
pinMode(H8, OUTPUT);
|
|
||||||
pinMode(Hj, OUTPUT);
|
|
||||||
|
|
||||||
//Test zobrazení
|
|
||||||
domaci = 18;
|
|
||||||
hoste = 18;
|
|
||||||
display();
|
|
||||||
if(!debug){ delay(60000); }
|
|
||||||
domaci = 0;
|
|
||||||
hoste = 0;
|
|
||||||
display();
|
|
||||||
}
|
|
||||||
|
|
||||||
void loop() {
|
|
||||||
if (mySwitch.available()) {
|
|
||||||
|
|
||||||
long value = mySwitch.getReceivedValue();
|
|
||||||
|
|
||||||
if(value == 5587904 || value == 1377728){
|
|
||||||
domaci += 1;
|
|
||||||
if (domaci == 10) {
|
|
||||||
domaci = 0;
|
|
||||||
}
|
|
||||||
display(); delay(1000);
|
|
||||||
}else if(value == 5587760 || value==1377584){
|
|
||||||
hoste += 1;
|
|
||||||
if (hoste == 10) {
|
|
||||||
hoste = 0;
|
|
||||||
}
|
|
||||||
display(); delay(1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
mySwitch.resetAvailable();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void display() {
|
|
||||||
boolean domaci_b[4], hoste_b[4];
|
|
||||||
int_to_bin_digit(domaci % 10, domaci_b);
|
|
||||||
int_to_bin_digit(hoste % 10, hoste_b);
|
|
||||||
|
|
||||||
digitalWrite(D1, domaci_b[3]);
|
|
||||||
digitalWrite(D2, domaci_b[2]);
|
|
||||||
digitalWrite(D4, domaci_b[1]);
|
|
||||||
digitalWrite(D8, domaci_b[0]);
|
|
||||||
digitalWrite(Dj, domaci/10);
|
|
||||||
|
|
||||||
digitalWrite(H1, hoste_b[3]);
|
|
||||||
digitalWrite(H2, hoste_b[2]);
|
|
||||||
digitalWrite(H4, hoste_b[1]);
|
|
||||||
digitalWrite(H8, hoste_b[0]);
|
|
||||||
digitalWrite(Hj, hoste/10);
|
|
||||||
|
|
||||||
if(debug){
|
|
||||||
Serial.print(domaci); Serial.print("\t:\t"); Serial.println(hoste);
|
|
||||||
Serial.print(domaci/10);
|
|
||||||
Serial.print(" ");
|
|
||||||
Serial.print(domaci_b[0]);
|
|
||||||
Serial.print(domaci_b[1]);
|
|
||||||
Serial.print(domaci_b[2]);
|
|
||||||
Serial.print(domaci_b[3]);
|
|
||||||
Serial.print("\t:\t");
|
|
||||||
Serial.print(hoste/10);
|
|
||||||
Serial.print(" ");
|
|
||||||
Serial.print(hoste_b[0]);
|
|
||||||
Serial.print(hoste_b[1]);
|
|
||||||
Serial.print(hoste_b[2]);
|
|
||||||
Serial.println(hoste_b[3]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void int_to_bin_digit(unsigned int in, boolean* out)
|
|
||||||
{
|
|
||||||
/* assert: count <= sizeof(int)*CHAR_BIT */
|
|
||||||
unsigned int mask = 1U << 3;
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < 4; i++) {
|
|
||||||
out[i] = (in & mask) ? 1 : 0;
|
|
||||||
in <<= 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -17,6 +17,9 @@ int stav = 0; // 1=nastaveni, 2=readytostart, 3=polocas1, 4=pauza, 5=polocas2, 6
|
|||||||
int minuta, delka = 45, vynulovani;
|
int minuta, delka = 45, vynulovani;
|
||||||
boolean debug = 0, i;
|
boolean debug = 0, i;
|
||||||
|
|
||||||
|
int domaci;
|
||||||
|
int hoste;
|
||||||
|
|
||||||
Tasker tasker;
|
Tasker tasker;
|
||||||
RCSwitch mySwitch = RCSwitch();
|
RCSwitch mySwitch = RCSwitch();
|
||||||
|
|
||||||
@@ -35,13 +38,13 @@ void change() {
|
|||||||
} else {
|
} else {
|
||||||
if (delka == 45) {
|
if (delka == 45) {
|
||||||
delka = 35;
|
delka = 35;
|
||||||
display(delka);
|
displayminutes(delka);
|
||||||
} else if (delka == 35) {
|
} else if (delka == 35) {
|
||||||
delka = 30;
|
delka = 30;
|
||||||
display(delka);
|
displayminutes(delka);
|
||||||
} else if (delka == 30) {
|
} else if (delka == 30) {
|
||||||
delka = 45;
|
delka = 45;
|
||||||
display(delka);
|
displayminutes(delka);
|
||||||
}
|
}
|
||||||
delay(500);
|
delay(500);
|
||||||
}
|
}
|
||||||
@@ -56,12 +59,12 @@ void enter() {
|
|||||||
} else if (stav == 2) {
|
} else if (stav == 2) {
|
||||||
tasker.cancel(blinking, 0);
|
tasker.cancel(blinking, 0);
|
||||||
stav = 3; // Poločas 1
|
stav = 3; // Poločas 1
|
||||||
display(0);
|
displayminutes(0);
|
||||||
tasker.setInterval(polocas, 60000);
|
tasker.setInterval(polocas, 60000);
|
||||||
} else if (stav == 4) {
|
} else if (stav == 4) {
|
||||||
tasker.cancel(blinking, minuta);
|
tasker.cancel(blinking, minuta);
|
||||||
stav = 5; //Poločas 2
|
stav = 5; //Poločas 2
|
||||||
display(minuta);
|
displayminutes(minuta);
|
||||||
tasker.setInterval(polocas, 60000);
|
tasker.setInterval(polocas, 60000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,7 +72,7 @@ void enter() {
|
|||||||
void minutym() {
|
void minutym() {
|
||||||
if ((stav == 3 && minuta > 0) || (stav == 5 && minuta > delka)) {
|
if ((stav == 3 && minuta > 0) || (stav == 5 && minuta > delka)) {
|
||||||
minuta--;
|
minuta--;
|
||||||
display(minuta);
|
displayminutes(minuta);
|
||||||
delay(500);
|
delay(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -77,14 +80,14 @@ void minutym(){
|
|||||||
void minutyp() {
|
void minutyp() {
|
||||||
if ((stav == 3 && minuta < delka) || (stav == 5 && minuta < 2 * delka)) {
|
if ((stav == 3 && minuta < delka) || (stav == 5 && minuta < 2 * delka)) {
|
||||||
minuta++;
|
minuta++;
|
||||||
display(minuta);
|
displayminutes(minuta);
|
||||||
delay(500);
|
delay(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void polocas() {
|
void polocas() {
|
||||||
minuta++;
|
minuta++;
|
||||||
display(minuta);
|
displayminutes(minuta);
|
||||||
if (minuta == delka && stav == 3) {
|
if (minuta == delka && stav == 3) {
|
||||||
stav = 4;
|
stav = 4;
|
||||||
tasker.cancel(polocas);
|
tasker.cancel(polocas);
|
||||||
@@ -97,8 +100,17 @@ void polocas() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
if(debug){ Serial.begin(9600); }
|
if (debug) {
|
||||||
|
Serial.begin(9600);
|
||||||
|
}
|
||||||
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
|
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
|
||||||
|
pinMode(1, OUTPUT);
|
||||||
|
pinMode(3, OUTPUT);
|
||||||
|
pinMode(4, OUTPUT);
|
||||||
|
pinMode(5, OUTPUT);
|
||||||
|
pinMode(6, OUTPUT);
|
||||||
|
pinMode(7, OUTPUT);
|
||||||
|
pinMode(8, OUTPUT);
|
||||||
pinMode(9, OUTPUT);
|
pinMode(9, OUTPUT);
|
||||||
pinMode(10, OUTPUT);
|
pinMode(10, OUTPUT);
|
||||||
pinMode(11, OUTPUT);
|
pinMode(11, OUTPUT);
|
||||||
@@ -107,14 +119,23 @@ void setup() {
|
|||||||
pinMode(A0, OUTPUT);
|
pinMode(A0, OUTPUT);
|
||||||
pinMode(A1, OUTPUT);
|
pinMode(A1, OUTPUT);
|
||||||
pinMode(A2, OUTPUT);
|
pinMode(A2, OUTPUT);
|
||||||
|
pinMode(A3, OUTPUT);
|
||||||
|
pinMode(A4, OUTPUT);
|
||||||
|
pinMode(A5, OUTPUT);
|
||||||
|
|
||||||
//Test zobrazení
|
//Test zobrazení
|
||||||
display(88);
|
domaci = 18;
|
||||||
if(!debug){ delay(60000); } //88 na začátku
|
hoste = 18;
|
||||||
|
displayscore();
|
||||||
|
displayminutes(88);
|
||||||
|
delay(60000); //88 na začátku
|
||||||
|
|
||||||
//tasker.setInterval(display, 500);
|
//tasker.setInterval(displayminutes, 500);
|
||||||
|
domaci = 0;
|
||||||
|
hoste = 0;
|
||||||
|
displayscore();
|
||||||
|
displayminutes(delka);
|
||||||
stav = 1;
|
stav = 1;
|
||||||
display(delka);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
@@ -131,6 +152,18 @@ void loop() {
|
|||||||
minutym();
|
minutym();
|
||||||
} else if (value == 5587724 || value == 1377548) {
|
} else if (value == 5587724 || value == 1377548) {
|
||||||
minutyp();
|
minutyp();
|
||||||
|
} else if (value == 5587904 || value == 1377728) {
|
||||||
|
domaci += 1;
|
||||||
|
if (domaci == 20) {
|
||||||
|
domaci = 0;
|
||||||
|
}
|
||||||
|
displayscore(); delay(1000);
|
||||||
|
} else if (value == 5587760 || value == 1377584) {
|
||||||
|
hoste += 1;
|
||||||
|
if (hoste == 20) {
|
||||||
|
hoste = 0;
|
||||||
|
}
|
||||||
|
displayscore(); delay(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
mySwitch.resetAvailable();
|
mySwitch.resetAvailable();
|
||||||
@@ -139,37 +172,57 @@ void loop() {
|
|||||||
|
|
||||||
void blinking(int dig) {
|
void blinking(int dig) {
|
||||||
if (!i) {
|
if (!i) {
|
||||||
digitalWrite(12, 1);
|
digitalWrite(6, 1);
|
||||||
digitalWrite(10, 1);
|
|
||||||
digitalWrite(9, 1);
|
|
||||||
digitalWrite(11, 1);
|
|
||||||
|
|
||||||
digitalWrite(A1, 1);
|
|
||||||
digitalWrite(13, 1);
|
|
||||||
digitalWrite(A0, 1);
|
digitalWrite(A0, 1);
|
||||||
|
digitalWrite(13, 1);
|
||||||
|
digitalWrite(A1, 1);
|
||||||
|
|
||||||
|
digitalWrite(A5, 1);
|
||||||
|
digitalWrite(A3, 1);
|
||||||
digitalWrite(A2, 1);
|
digitalWrite(A2, 1);
|
||||||
if(debug){ Serial.println("blank"); }
|
digitalWrite(A4, 1);
|
||||||
|
if (debug) {
|
||||||
|
Serial.println("blank");
|
||||||
|
}
|
||||||
i = 1;
|
i = 1;
|
||||||
} else {
|
} else {
|
||||||
display(dig);
|
displayminutes(dig);
|
||||||
i = 0;
|
i = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void display(int dig) {
|
void displayscore() {
|
||||||
|
boolean domaci_b[4], hoste_b[4];
|
||||||
|
int_to_bin_digit(domaci % 10, domaci_b);
|
||||||
|
int_to_bin_digit(hoste % 10, hoste_b);
|
||||||
|
|
||||||
|
digitalWrite(5, domaci_b[3]);
|
||||||
|
digitalWrite(3, domaci_b[2]);
|
||||||
|
digitalWrite(1, domaci_b[1]);
|
||||||
|
digitalWrite(4, domaci_b[0]);
|
||||||
|
digitalWrite(7, domaci / 10);
|
||||||
|
|
||||||
|
digitalWrite(12, hoste_b[3]);
|
||||||
|
digitalWrite(10, hoste_b[2]);
|
||||||
|
digitalWrite(9, hoste_b[1]);
|
||||||
|
digitalWrite(11, hoste_b[0]);
|
||||||
|
digitalWrite(8, hoste / 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
void displayminutes(int dig) {
|
||||||
boolean minuta1[4], minuta2[4];
|
boolean minuta1[4], minuta2[4];
|
||||||
int_to_bin_digit(dig / 10, minuta1);
|
int_to_bin_digit(dig / 10, minuta1);
|
||||||
int_to_bin_digit(dig % 10, minuta2);
|
int_to_bin_digit(dig % 10, minuta2);
|
||||||
digitalWrite(12, minuta1[3]);
|
|
||||||
digitalWrite(10, minuta1[2]);
|
|
||||||
digitalWrite(9, minuta1[1]);
|
|
||||||
digitalWrite(11, minuta1[0]);
|
|
||||||
|
|
||||||
digitalWrite(A1, minuta2[0]);
|
digitalWrite(A5, minuta1[3]);
|
||||||
digitalWrite(13, minuta2[1]);
|
digitalWrite(A3, minuta1[2]);
|
||||||
|
digitalWrite(A2, minuta1[1]);
|
||||||
|
digitalWrite(A4, minuta1[0]);
|
||||||
|
|
||||||
|
digitalWrite(6, minuta2[3]);
|
||||||
digitalWrite(A0, minuta2[2]);
|
digitalWrite(A0, minuta2[2]);
|
||||||
digitalWrite(A2, minuta2[3]);
|
digitalWrite(13, minuta2[1]);
|
||||||
if(debug){ Serial.println(dig); }
|
digitalWrite(A1, minuta2[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void int_to_bin_digit(unsigned int in, boolean* out)
|
void int_to_bin_digit(unsigned int in, boolean* out)
|
||||||
Reference in New Issue
Block a user