#include <Adafruit_NeoPixel.h>
#include <Wire.h>
#define LED_PIN 2 // Pin pro LED strip
#define NUM_LEDS 52 // Počet LED
#define BUTTON_1 3 // tlačítko 1
#define BUTTON_2 4 // tlačítko 2
#define BUTTON_3 5 // tlačítko 3
#define BUTTON_4 6 // tlačítko 4
#define BUTTON_5 7 // tlačítko 5
#define BUTTON_6 8 // tlačítko 6
#define BUTTON_7 9 // tlačítko 7
#define BUTTON_8 10 // tlačítko 8
#define BUTTON_9 11 // tlačítko OK
#define DELAY_TIME 200 // Pauza mezi jednotlivými LED (v milisekundách)
#define BUZZER_PIN 12 // Pin, na kterém je připojen piezo bzučák
Adafruit_NeoPixel leds(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
// Proměnné
int delay_baterie = 3000; // Doba zobrazení stavu baterie
double baterie_min = 3.2; // Minimální hodnota baterie = 0 %
double baterie_max = 4.1; // Maximální hodnota baterie = 100 %
double procenta_baterie = 0.0; // Procenta baterie
float napeti_baterie = 0.0; // Napětí baterie
int melody[] = { // Definice tónů (v Hertzích) - Melodie Óda na radost
330, 330, 349, 392, 392, 349, 330, 294,
262, 262, 294, 330, 330, 294, 294,
330, 330, 349, 392, 392, 349, 330, 294,
262, 262, 294, 330, 294, 262, 262
};
int noteDurations[] = { // Délka jednotlivých not (v poměru k celkové délce noty)
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 2,
4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 2
};
int delay_stisk = 300; // Doba čekání po stisknutí tlačítka (debounce)
int delay_zobrazeni = 2000; // Doba zobrazení stavu (OSLAVA)
int cerveny_hrac = 0; // označí zda hraje červený hráč (1=ano 0=ne)
int bily_hrac = 0; // označí zda hraje bílý hráč (1=ano 0=ne)
int zluty_hrac = 0; // označí zda hraje žlutý hráč (1=ano 0=ne)
int modry_hrac = 0; // označí zda hraje modrý hráč (1=ano 0=ne)
int cerveny_body = 0; // kolik má červený hráč bodů (0-13)
int bily_body = 0; // kolik má čbílý hráč bodů (0-13)
int zluty_body = 0; // kolik má žlutý hráč bodů (0-13)
int modry_body = 0; // kolik má modrý hráč bodů (0-13)
int hra_body = 0; // na kolik bodů se bude hrát (1-13)
int gameState = 1; // Stav hry (1 = první část "měření baterie", 2 = druhá část "jaké barvy hrajou", 3 = třetí část "na kolik bodů se hraje", 4 = čtvrtá část "přičítání bodů", 5 = pátá část "oslava")
void setup() {
// Nastavení pinů pro tlačítka jako INPUT_PULLUP
pinMode(BUTTON_1, INPUT_PULLUP);
pinMode(BUTTON_2, INPUT_PULLUP);
pinMode(BUTTON_3, INPUT_PULLUP);
pinMode(BUTTON_4, INPUT_PULLUP);
pinMode(BUTTON_5, INPUT_PULLUP);
pinMode(BUTTON_6, INPUT_PULLUP);
pinMode(BUTTON_7, INPUT_PULLUP);
pinMode(BUTTON_8, INPUT_PULLUP);
pinMode(BUTTON_9, INPUT_PULLUP);
pinMode(BUZZER_PIN, OUTPUT); // Nastavení pinu pro bzučák jako výstup
// Inicializace LED stripu
leds.begin();
leds.show(); // Ujistíme se, že všechny LED jsou zhasnuté na začátku
}
void loop() {
if (gameState == 1) {
PRVNI_CAST(); // První část hry - Měření baterie
} else if (gameState == 2) {
DRUHA_CAST(); // Druhá část hry - výběr hráčů
} else if (gameState == 3) {
TRETI_CAST(); // Třetí část hry - na kolik bodů se hraje
} else if (gameState == 4) {
CTVRTA_CAST(); // Čtvrtá část hry - přičítání bodů
} else if (gameState == 5) {
PATA_CAST(); // Pátá část hry - finále / oslava
}
// Čtení napětí na pinu A0
int baterie_mereni = analogRead(A0);
// Převod na napětí (ve voltech)
napeti_baterie = (baterie_mereni / 1023.0) * 5.0;
// Výpočet procent baterie
procenta_baterie = ((napeti_baterie - baterie_min) / (baterie_max - baterie_min)) * 100.0;
}
// Funkce pro nastavení barvy LED stripu
void setColor(int start, int end, byte r, byte g, byte b) {
for (int i = start; i <= end; i++) {
leds.setPixelColor(i, leds.Color(r, g, b)); // Nastavení barvy pro danou LED
}
leds.show(); // Aktualizace stripu s novými barvami
}
void PRVNI_CAST() {
// Čtení napětí na pinu A0
int baterie_mereni = analogRead(A0);
// Převod na napětí (ve voltech)
napeti_baterie = (baterie_mereni / 1023.0) * 5.0;
// Výpočet procent baterie
procenta_baterie = ((napeti_baterie - baterie_min) / (baterie_max - baterie_min)) * 100.0;
// Ošetření rozsahu hodnot
if (procenta_baterie < 0) procenta_baterie = 0;
if (procenta_baterie > 100) procenta_baterie = 100;
// Nastavení barvy LED podle procent baterie
if (procenta_baterie > 90.01 && procenta_baterie < 110 ) { // baterie mezi 90-100%, 10 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 9, 0, 255, 0); //zelená
setColor(0+13, 9+13, 0, 255, 0); //zelená
setColor(0+26, 9+26, 0, 255, 0); //zelená
setColor(0+39, 9+39, 0, 255, 0); //zelená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 80.01 && procenta_baterie < 90 ) { // baterie mezi 80-90%, 9 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 8, 0, 255, 0); //zelená
setColor(0+13, 8+13, 0, 255, 0); //zelená
setColor(0+26, 8+26, 0, 255, 0); //zelená
setColor(0+39, 8+39, 0, 255, 0); //zelená
setColor(0+9, 0+9, 255, 0, 0); //červená
setColor(0+9+13, 0+9+13, 255, 0, 0); //červená
setColor(0+9+26, 0+9+26, 255, 0, 0); //červená
setColor(0+9+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 70.01 && procenta_baterie < 80 ) { // baterie mezi 70-80%, 8 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 7, 0, 255, 0); //zelená
setColor(0+13, 7+13, 0, 255, 0); //zelená
setColor(0+26, 7+26, 0, 255, 0); //zelená
setColor(0+39, 7+39, 0, 255, 0); //zelená
setColor(0+8, 0+9, 255, 0, 0); //červená
setColor(0+8+13, 0+9+13, 255, 0, 0); //červená
setColor(0+8+26, 0+9+26, 255, 0, 0); //červená
setColor(0+8+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 60.01 && procenta_baterie < 70 ) { // baterie mezi 60-70% 7 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 6, 0, 255, 0); //zelená
setColor(0+13, 6+13, 0, 255, 0); //zelená
setColor(0+26, 6+26, 0, 255, 0); //zelená
setColor(0+39, 6+39, 0, 255, 0); //zelená
setColor(0+7, 0+9, 255, 0, 0); //červená
setColor(0+7+13, 0+9+13, 255, 0, 0); //červená
setColor(0+7+26, 0+9+26, 255, 0, 0); //červená
setColor(0+7+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 50.01 && procenta_baterie < 60 ) { // baterie mezi 50-60% 6 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 5, 0, 255, 0); //zelená
setColor(0+13, 5+13, 0, 255, 0); //zelená
setColor(0+26, 5+26, 0, 255, 0); //zelená
setColor(0+39, 5+39, 0, 255, 0); //zelená
setColor(0+6, 0+9, 255, 0, 0); //červená
setColor(0+6+13, 0+9+13, 255, 0, 0); //červená
setColor(0+6+26, 0+9+26, 255, 0, 0); //červená
setColor(0+6+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 40.01 && procenta_baterie < 50 ) { // baterie mezi 40-50% 5 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 4, 0, 255, 0); //zelená
setColor(0+13, 4+13, 0, 255, 0); //zelená
setColor(0+26, 4+26, 0, 255, 0); //zelená
setColor(0+39, 4+39, 0, 255, 0); //zelená
setColor(0+5, 0+9, 255, 0, 0); //červená
setColor(0+5+13, 0+9+13, 255, 0, 0); //červená
setColor(0+5+26, 0+9+26, 255, 0, 0); //červená
setColor(0+5+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 30.01 && procenta_baterie < 40 ) { // baterie mezi 30-40% 4 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 3, 0, 255, 0); //zelená
setColor(0+13, 3+13, 0, 255, 0); //zelená
setColor(0+26, 3+26, 0, 255, 0); //zelená
setColor(0+39, 3+39, 0, 255, 0); //zelená
setColor(0+4, 0+9, 255, 0, 0); //červená
setColor(0+4+13, 0+9+13, 255, 0, 0); //červená
setColor(0+4+26, 0+9+26, 255, 0, 0); //červená
setColor(0+4+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 20.01 && procenta_baterie < 30 ) { // baterie mezi 20-30% 3 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 2, 0, 255, 0); //zelená
setColor(0+13, 2+13, 0, 255, 0); //zelená
setColor(0+26, 2+26, 0, 255, 0); //zelená
setColor(0+39, 2+39, 0, 255, 0); //zelená
setColor(0+3, 0+9, 255, 0, 0); //červená
setColor(0+3+13, 0+9+13, 255, 0, 0); //červená
setColor(0+3+26, 0+9+26, 255, 0, 0); //červená
setColor(0+3+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > 10.01 && procenta_baterie < 20 ) { // baterie mezi 10-20% 2 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 1, 0, 255, 0); //zelená
setColor(0+13, 1+13, 0, 255, 0); //zelená
setColor(0+26, 1+26, 0, 255, 0); //zelená
setColor(0+39, 1+39, 0, 255, 0); //zelená
setColor(0+2, 0+9, 255, 0, 0); //červená
setColor(0+2+13, 0+9+13, 255, 0, 0); //červená
setColor(0+2+26, 0+9+26, 255, 0, 0); //červená
setColor(0+2+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
if (procenta_baterie > -50 && procenta_baterie < 10 ) { // baterie mezi 0-10% 1 LED
setColor(10, 12, 255, 255, 255); //bílá
setColor(10, 25, 255, 255, 255); //bílá
setColor(10, 38, 255, 255, 255); //bílá
setColor(10, 51, 255, 255, 255); //bílá
setColor(0, 0, 0, 255, 0); //zelená
setColor(0+13, 0+13, 0, 255, 0); //zelená
setColor(0+26, 0+26, 0, 255, 0); //zelená
setColor(0+39, 0+39, 0, 255, 0); //zelená
setColor(0+1, 0+9, 255, 0, 0); //červená
setColor(0+1+13, 0+9+13, 255, 0, 0); //červená
setColor(0+1+26, 0+9+26, 255, 0, 0); //červená
setColor(0+1+39, 0+9+39, 255, 0, 0); //červená
delay(delay_baterie);
setColor(0, 51, 0, 0, 0); // všechny LED zhasnou
gameState = 2; // druhá část hry
}
delay(500); // Zpoždění pro stabilitu zobrazení
}
// Druhá část hry
void DRUHA_CAST() {
if (digitalRead(BUTTON_1) == LOW ) { // Pokud je stisknuto tlačítko 1, rozsvítí LED 1-13 na červenou
setColor(0, 12, 255, 0, 0); // Červená
cerveny_hrac = 1;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_2) == LOW ) { // Pokud je stisknuto tlačítko 2, rozsvítí LED 14-26 na bílou
setColor(13, 25, 255, 255, 255); // Bílá
bily_hrac = 1;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_3) == LOW ) { // Pokud je stisknuto tlačítko 3, rozsvítí LED 27-39 na žlutou
setColor(26, 38, 255, 255, 0); // Žlutá
zluty_hrac = 1;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_4) == LOW ) { // Pokud je stisknuto tlačítko 4, rozsvítí LED 40-52 na modrou
setColor(39, 51, 0, 0, 255); // Modrá
modry_hrac = 1;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_5) == LOW ) { // pokud je stisknuto tlačítko 5, zhasne LED 1-13
setColor(0, 12, 0, 0, 0); // Červená
cerveny_hrac = 0;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_6) == LOW ) { // pokud je stisknuto tlačítko 5, zhasne LED 14-26
setColor(13, 25, 0, 0, 0); // Bílá
bily_hrac = 0;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_7) == LOW ) { // pokud je stisknuto tlačítko 5, zhasne LED 27-39
setColor(26, 38, 0, 0, 0); // Žlutá
zluty_hrac = 0;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_8) == LOW ) { // pokud je stisknuto tlačítko 5, zhasne LED 40-52
setColor(39, 51, 0, 0, 0); // Modrá
modry_hrac = 0;
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
// tlačítko 9 a přechod do druhé části
if (digitalRead(BUTTON_9) == LOW ) {
setColor(0, 51, 255, 165, 0); // Oranžová
delay(100); // pauza
setColor(0, 51, 0, 0, 0); // zhasnuto
delay(100); // pauza
setColor(0, 51, 255, 165, 0); // Oranžová
delay(100); // pauza
setColor(0, 51, 0, 0, 0); // zhasnuto
delay(100); // pauza
setColor(0, 51, 255, 165, 0); // Oranžová
delay(100); // pauza
setColor(0, 51, 0, 0, 0); // zhasnuto
delay(100); // pauza
gameState = 3; // druhá část hry
}
}
// Třetí část hry
void TRETI_CAST() {
if (digitalRead(BUTTON_1) == LOW ) {
hra_body = hra_body+1;
hra_body = constrain(hra_body, 0, 13); // omezí kolik bodů je maximálně, tj. 13
if (cerveny_hrac == 1){ // ověří, zda červený hráč hraje
setColor(hra_body-1, hra_body-1, 0, 255, 0); // Zelena
}
if (bily_hrac == 1){ // ověří, zda bílý hráč hraje
setColor(hra_body+12, hra_body+12, 0, 255, 0); // Zelena
}
if (zluty_hrac == 1){ // ověří, zda žlutý hráč hraje
setColor(hra_body+25, hra_body+25, 0, 255, 0); // Zelena
}
if (modry_hrac == 1){ // ověří, zda modrý hráč hraje
setColor(hra_body+38, hra_body+38, 0, 255, 0); // Zelena
}
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_5) == LOW ) {
hra_body = hra_body-1;
hra_body = constrain(hra_body, 0, 13); // omezí kolik bodů je maximálně, tj. 12
setColor(hra_body, hra_body, 0, 0, 0); // zhasne
setColor(hra_body+13, hra_body+13, 0, 0, 0); // zhasne
setColor(hra_body+26, hra_body+26, 0, 0, 0); // zhasne
setColor(hra_body+39, hra_body+39, 0, 0, 0); // zhasne
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
// tlačítko 9 a přechod do čtvrté části
if (digitalRead(BUTTON_9) == LOW ) {
setColor(0, 51, 255, 165, 0); // Oranžová
delay(100); // pauza
setColor(0, 51, 0, 0, 0); // zhasnuto
delay(100); // pauza
setColor(0, 51, 255, 165, 0); // Oranžová
delay(100); // pauza
setColor(0, 51, 0, 0, 0); // zhasnuto
delay(100); // pauza
setColor(0, 51, 255, 165, 0); // Oranžová
delay(100); // pauza
setColor(0, 51, 0, 0, 0); // zhasnuto
delay(100); // pauza
gameState = 4; // čtvrtá část hry
}
}
void CTVRTA_CAST() {
if (digitalRead(BUTTON_1) == LOW ) {
if (cerveny_hrac == 1) { // ověří, zda červený hráč hraje
cerveny_body = cerveny_body+1;
setColor(cerveny_body-1, cerveny_body-1, 255, 0, 0);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (cerveny_body == hra_body) {
gameState = 5;
}
}
if (digitalRead(BUTTON_2) == LOW ) {
if (bily_hrac == 1) { // ověří, zda bílý hráč hraje
bily_body = bily_body+1;
setColor(bily_body+12, bily_body+12, 255, 255, 255);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (bily_body == hra_body) {
gameState = 5;
}
}
if (digitalRead(BUTTON_3) == LOW ) {
if (zluty_hrac == 1) { // ověří, zda žlutý hráč hraje
zluty_body = zluty_body+1;
setColor(zluty_body+25, zluty_body+25, 255, 255, 0);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (zluty_body == hra_body) {
gameState = 5;
}
}
if (digitalRead(BUTTON_4) == LOW ) {
if (modry_hrac == 1) { // ověří, zda modrý hráč hraje
modry_body = modry_body+1;
setColor(modry_body+38, modry_body+38, 0, 0, 255);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (modry_body == hra_body) {
gameState = 5;
}
}
if (digitalRead(BUTTON_5) == LOW ) {
cerveny_body = cerveny_body-1;
setColor(cerveny_body, cerveny_body, 0, 0, 0);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_6) == LOW ) {
bily_body = bily_body-1;
setColor(bily_body+13, bily_body+13, 0, 0, 0);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_7) == LOW ) {
zluty_body = zluty_body-1;
setColor(zluty_body+26, zluty_body+26, 0, 0, 0);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_8) == LOW ) {
modry_body = modry_body-1;
setColor(modry_body+39, modry_body+39, 0, 0, 0);
delay(delay_stisk); // Zajištění, aby tlačítko bylo stisknuto pouze jednou
}
if (digitalRead(BUTTON_9) == LOW ) {
if (hra_body == 12){
setColor(12, 12, 255, 165, 0);
setColor(25, 25, 255, 165, 0);
setColor(38, 38, 255, 165, 0);
setColor(51, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(12, 12, 0, 0, 0);
setColor(25, 25, 0, 0, 0);
setColor(38, 38, 0, 0, 0);
setColor(51, 51, 0, 0, 0);
}
if (hra_body == 11){
setColor(11, 12, 255, 165, 0);
setColor(24, 25, 255, 165, 0);
setColor(37, 38, 255, 165, 0);
setColor(50, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(11, 12, 0, 0, 0);
setColor(24, 25, 0, 0, 0);
setColor(37, 38, 0, 0, 0);
setColor(50, 51, 0, 0, 0);
}
if (hra_body == 10){
setColor(10, 12, 255, 165, 0);
setColor(23, 25, 255, 165, 0);
setColor(36, 38, 255, 165, 0);
setColor(49, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(10, 12, 0, 0, 0);
setColor(23, 25, 0, 0, 0);
setColor(36, 38, 0, 0, 0);
setColor(49, 51, 0, 0, 0);
}
if (hra_body == 9){
setColor(9, 12, 255, 165, 0);
setColor(22, 25, 255, 165, 0);
setColor(35, 38, 255, 165, 0);
setColor(48, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(9, 12, 0, 0, 0);
setColor(22, 25, 0, 0, 0);
setColor(35, 38, 0, 0, 0);
setColor(48, 51, 0, 0, 0);
}
if (hra_body == 8){
setColor(8, 12, 255, 165, 0);
setColor(21, 25, 255, 165, 0);
setColor(34, 38, 255, 165, 0);
setColor(47, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(8, 12, 0, 0, 0);
setColor(21, 25, 0, 0, 0);
setColor(34, 38, 0, 0, 0);
setColor(47, 51, 0, 0, 0);
}
if (hra_body == 7){
setColor(7, 12, 255, 165, 0);
setColor(20, 25, 255, 165, 0);
setColor(33, 38, 255, 165, 0);
setColor(46, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(7, 12, 0, 0, 0);
setColor(20, 25, 0, 0, 0);
setColor(33, 38, 0, 0, 0);
setColor(46, 51, 0, 0, 0);
}
if (hra_body == 6){
setColor(6, 12, 255, 165, 0);
setColor(19, 25, 255, 165, 0);
setColor(32, 38, 255, 165, 0);
setColor(45, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(6, 12, 0, 0, 0);
setColor(19, 25, 0, 0, 0);
setColor(32, 38, 0, 0, 0);
setColor(45, 51, 0, 0, 0);
}
if (hra_body == 5){
setColor(5, 12, 255, 165, 0);
setColor(18, 25, 255, 165, 0);
setColor(31, 38, 255, 165, 0);
setColor(44, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(5, 12, 0, 0, 0);
setColor(18, 25, 0, 0, 0);
setColor(31, 38, 0, 0, 0);
setColor(44, 51, 0, 0, 0);
}
if (hra_body == 4){
setColor(4, 12, 255, 165, 0);
setColor(17, 25, 255, 165, 0);
setColor(30, 38, 255, 165, 0);
setColor(43, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(4, 12, 0, 0, 0);
setColor(17, 25, 0, 0, 0);
setColor(30, 38, 0, 0, 0);
setColor(43, 51, 0, 0, 0);
}
if (hra_body == 3){
setColor(3, 12, 255, 165, 0);
setColor(16, 25, 255, 165, 0);
setColor(29, 38, 255, 165, 0);
setColor(42, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(3, 12, 0, 0, 0);
setColor(16, 25, 0, 0, 0);
setColor(29, 38, 0, 0, 0);
setColor(42, 51, 0, 0, 0);
}
if (hra_body == 2){
setColor(2, 12, 255, 165, 0);
setColor(15, 25, 255, 165, 0);
setColor(28, 38, 255, 165, 0);
setColor(41, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(2, 12, 0, 0, 0);
setColor(15, 25, 0, 0, 0);
setColor(28, 38, 0, 0, 0);
setColor(41, 51, 0, 0, 0);
}
if (hra_body == 1){
setColor(1, 12, 255, 165, 0);
setColor(14, 25, 255, 165, 0);
setColor(27, 38, 255, 165, 0);
setColor(40, 51, 255, 165, 0);
delay(delay_zobrazeni);
setColor(1, 12, 0, 0, 0);
setColor(14, 25, 0, 0, 0);
setColor(27, 38, 0, 0, 0);
setColor(40, 51, 0, 0, 0);
}
}
}
void PATA_CAST() { // OSLAVA
for (int i = 0; i < sizeof(melody) / sizeof(melody[0]); i++) {
int noteDuration = 1000 / noteDurations[i]; // Délka noty v milisekundách
tone(BUZZER_PIN, melody[i], noteDuration); // Hraje tón
int pauseBetweenNotes = noteDuration * 1.25; // Pauza mezi tóny
delay(pauseBetweenNotes); // Čekání mezi notami
}
if (cerveny_body == hra_body) {
setColor(0, 51, 0, 0, 0);
for (int i = 0; i < 13; i++) {
leds.setPixelColor(i, leds.Color(255, 0, 0)); // Nastavení barvy (červená)
leds.show(); // Aktualizace LED pásku
delay(DELAY_TIME); // Pauza mezi rozsvícením jednotlivých LED
}
delay(50); // Pauza po rozsvícení všech LED
}
if (bily_body == hra_body) {
setColor(0, 51, 0, 0, 0);
for (int i = 13; i < 26; i++) {
leds.setPixelColor(i, leds.Color(255, 255, 255)); // Nastavení barvy (bila)
leds.show(); // Aktualizace LED pásku
delay(DELAY_TIME); // Pauza mezi rozsvícením jednotlivých LED
}
delay(50); // Pauza po rozsvícení všech LED
}
if (zluty_body == hra_body) {
setColor(0, 51, 0, 0, 0);
for (int i = 26; i < 39; i++) {
leds.setPixelColor(i, leds.Color(255, 255, 0)); // Nastavení barvy (žlutá)
leds.show(); // Aktualizace LED pásku
delay(DELAY_TIME); // Pauza mezi rozsvícením jednotlivých LED
}
delay(50); // Pauza po rozsvícení všech LED
}
if (modry_body == hra_body) {
setColor(0, 51, 0, 0, 0);
for (int i = 39; i < 52; i++) {
leds.setPixelColor(i, leds.Color(0, 0, 255)); // Nastavení barvy (modrá)
leds.show(); // Aktualizace LED pásku
delay(DELAY_TIME); // Pauza mezi rozsvícením jednotlivých LED
}
delay(50); // Pauza po rozsvícení všech LED
}
}
připojená baterie (3.2-4.1V)
+ pól na analogový vstup A0
- pól na GND
Pozor rozmezí připojené baterie musí být 0-5V