From 87db35cfa0a5b8ce2c8d91d9a9d7b9a544dca392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Z=C3=A1le=C5=A1=C3=A1k?= Date: Fri, 13 Jun 2025 03:05:26 +0200 Subject: [PATCH] Pridani produkcni verze resolve #1 --- SW/score/score.ino | 115 ------------- .../scoreboard/scoreboard.ino | 151 ++++++++++++------ 2 files changed, 102 insertions(+), 164 deletions(-) delete mode 100644 SW/score/score.ino rename SW/minuty/minuty.ino => software/scoreboard/scoreboard.ino (53%) diff --git a/SW/score/score.ino b/SW/score/score.ino deleted file mode 100644 index 8b85936..0000000 --- a/SW/score/score.ino +++ /dev/null @@ -1,115 +0,0 @@ -#include - -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; - } -} diff --git a/SW/minuty/minuty.ino b/software/scoreboard/scoreboard.ino similarity index 53% rename from SW/minuty/minuty.ino rename to software/scoreboard/scoreboard.ino index 2daece9..08207e7 100644 --- a/SW/minuty/minuty.ino +++ b/software/scoreboard/scoreboard.ino @@ -1,13 +1,13 @@ /* -Současné ovladače -5587904 5587760 -5587952 5587724 -5587916 5587772 + Současné ovladače + 5587904 5587760 + 5587952 5587724 + 5587916 5587772 -1377728 1377584 -1377776 1377548 -1377740 1377596 -1377788 1377539 + 1377728 1377584 + 1377776 1377548 + 1377740 1377596 + 1377788 1377539 */ #include @@ -17,6 +17,9 @@ int stav = 0; // 1=nastaveni, 2=readytostart, 3=polocas1, 4=pauza, 5=polocas2, 6 int minuta, delka = 45, vynulovani; boolean debug = 0, i; +int domaci; +int hoste; + Tasker tasker; RCSwitch mySwitch = RCSwitch(); @@ -29,19 +32,19 @@ void change() { tasker.cancel(polocas); tasker.cancel(blinking, 0); tasker.cancel(blinking, delka); - tasker.cancel(blinking, 2*delka); + tasker.cancel(blinking, 2 * delka); minuta = 0; } } else { if (delka == 45) { delka = 35; - display(delka); + displayminutes(delka); } else if (delka == 35) { delka = 30; - display(delka); + displayminutes(delka); } else if (delka == 30) { delka = 45; - display(delka); + displayminutes(delka); } delay(500); } @@ -56,40 +59,40 @@ void enter() { } else if (stav == 2) { tasker.cancel(blinking, 0); stav = 3; // Poločas 1 - display(0); + displayminutes(0); tasker.setInterval(polocas, 60000); } else if (stav == 4) { tasker.cancel(blinking, minuta); stav = 5; //Poločas 2 - display(minuta); + displayminutes(minuta); tasker.setInterval(polocas, 60000); } } -void minutym(){ - if((stav == 3 && minuta > 0) || (stav == 5 && minuta > delka)){ +void minutym() { + if ((stav == 3 && minuta > 0) || (stav == 5 && minuta > delka)) { minuta--; - display(minuta); + displayminutes(minuta); delay(500); } } -void minutyp(){ - if((stav == 3 && minuta < delka) || (stav == 5 && minuta < 2*delka)){ +void minutyp() { + if ((stav == 3 && minuta < delka) || (stav == 5 && minuta < 2 * delka)) { minuta++; - display(minuta); + displayminutes(minuta); delay(500); } } void polocas() { minuta++; - display(minuta); + displayminutes(minuta); if (minuta == delka && stav == 3) { stav = 4; tasker.cancel(polocas); tasker.setInterval(blinking, 500, minuta); - }else if(minuta == 2*delka && stav == 5){ + } else if (minuta == 2 * delka && stav == 5) { stav = 6; tasker.cancel(polocas); tasker.setInterval(blinking, 500, minuta); @@ -97,8 +100,17 @@ void polocas() { } void setup() { - if(debug){ Serial.begin(9600); } + if (debug) { + Serial.begin(9600); + } 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(10, OUTPUT); pinMode(11, OUTPUT); @@ -107,14 +119,23 @@ void setup() { pinMode(A0, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT); + pinMode(A3, OUTPUT); + pinMode(A4, OUTPUT); + pinMode(A5, OUTPUT); //Test zobrazení - display(88); - if(!debug){ delay(60000); } //88 na začátku + domaci = 18; + 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; - display(delka); } void loop() { @@ -131,6 +152,18 @@ void loop() { minutym(); } else if (value == 5587724 || value == 1377548) { 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(); @@ -138,38 +171,58 @@ void loop() { } void blinking(int dig) { - if(!i){ - digitalWrite(12, 1); - digitalWrite(10, 1); - digitalWrite(9, 1); - digitalWrite(11, 1); - - digitalWrite(A1, 1); - digitalWrite(13, 1); + if (!i) { + digitalWrite(6, 1); digitalWrite(A0, 1); + digitalWrite(13, 1); + digitalWrite(A1, 1); + + digitalWrite(A5, 1); + digitalWrite(A3, 1); digitalWrite(A2, 1); - if(debug){ Serial.println("blank"); } - i=1; - }else{ - display(dig); - i=0; + digitalWrite(A4, 1); + if (debug) { + Serial.println("blank"); + } + i = 1; + } else { + displayminutes(dig); + 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]; int_to_bin_digit(dig / 10, minuta1); 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(13, minuta2[1]); + digitalWrite(A5, minuta1[3]); + digitalWrite(A3, minuta1[2]); + digitalWrite(A2, minuta1[1]); + digitalWrite(A4, minuta1[0]); + + digitalWrite(6, minuta2[3]); digitalWrite(A0, minuta2[2]); - digitalWrite(A2, minuta2[3]); - if(debug){ Serial.println(dig); } + digitalWrite(13, minuta2[1]); + digitalWrite(A1, minuta2[0]); } void int_to_bin_digit(unsigned int in, boolean* out)