Píseň z pohádky Tři oříšky pro popelku

  • Tento projekt má velmi jednoduché zapojení:
  • Pokud máte lepší arduino (než uno) je v kódu připravena část s textem (Bohužel arduino uno nemá tak velkou kapacitu paměti aby text zobrazilo)
  • Hned po nahrání kódu piezo připojené k arduinu začne hrát píseň.

Kód pro arduino:

int C = 262;
int D = 294;
int E = 330;
int F = 349;
int G = 392;
int A = 440;
int H = 494;
int C2 = 523;
int D2 = 587;
int E2 = 659;
const int melody[] = {
  G, G, G, G, G, G, G, F, F, F, F, E, E, G, E, E, D, D,
  G, G, G, G, G, G, G, F, F, F, F, E, E, G, E, E, D, D,
  F, F, G, F, E, D, G, G, A, G, F, E, D,
  G, G, G, G, G, G, G, F, F, F, F, E, E, G, E, E, D, D,
  G, G, G, G, G, G, G, F, F, F, F, E, E, G, E, E, D, D,
  F, F, G, F, E, D, 
  G, G, A, G, F, E, E, F, G, C2, H, A, H, C2, D2,
  C2, H, A, G, F, H, A, G, A, H, C2, H, A, G, F, E,
  G, F, F, E, E, D, D, E, F, A, G, G, F, F, E, E, F, G, 
  C2, H, A, H, C2, D2, 
  C2, H, A, G, F, H, A, G, A, H, C2, H, A, G, F, E,
  G, F, F, E, 
  E, D, D, G, F, F, E, E, D, D, G, G, G, G, G, G, 
  G, F, F, F, F, E, E, G, E, E, D, D, 
  G, G, G, G, G, G, 
  G, F, F, F, F, E, E, G, E, E, D, D,       F, F, G, F, E, 
  D, G, G, A, G, F, E, E, F, G, 
  C2, H, A, H, C2, D2, 
  C2, H, A, G, F, H, A, G, A, H, C2, H, A, G, F, E, 
  G, F, F, E, E, D, D, E, F, A, G, G, F, F, E, E, F, G, 
  C2, H, A, H, C2, D2, 
  C2, H, A, G, F, H, A, G, A, H, C2, H, A, G, F, E, 
  G, F, F, E, E, D, D, E, F, A, G, G, F, F, E, E, F, G,   
  C2, H, A, H, C2, D2, 
  C2, H, A, G, F, H, A, G, A, H, C2, H, A, G, F, E, 
  G, F, F, E, E, D, D, E, F, A, G, G, F, F, E, E, F, G,  
  E, D, D, G, F, F, E, E, D, D, 0, 0,
};

// Délka tónů (v milisekundách)
const int noteDurations[] = {
  4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 
  4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2,
  4, 4, 4, 2, 4, 1, 4, 4, 4, 2, 4, 2, 2, 
  4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 
  4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2,
  4, 4, 4, 2, 4, 1,
  4, 4, 4, 4, 2, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
  4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 
  4, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 4, 
  4, 4, 4, 4, 4, 4, 
  4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 
  4, 2, 4, 2,
  4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 4, 4, 4, 4, 4, 4, 
  4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2, 
  4, 4, 4, 4, 4, 4, 
  4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 2, 2,      4, 4, 4, 2, 4, 
  1, 4, 4, 4, 2, 4, 2, 4, 4, 4, 
  4, 4, 4, 4, 4, 4, 
  4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 
  4, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 4, 
  4, 4, 4, 4, 4, 4, 
  4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 
  4, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 4, 
  4, 4, 4, 4, 4, 4, 
  4, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 
  4, 2, 4, 2, 4, 2, 4, 4, 4, 4, 2, 4, 2, 4, 2, 4, 4, 4,
  4, 2, 2, 4, 2, 4, 2, 4, 2, 2, 1, 1,
};

void setup() {
  // Nastavení pinu 3 jako výstupní
  pinMode(3, OUTPUT);
 // Serial.begin (9600);
 // Serial.println (" ");
 // Serial.println ("Marně se vlastního osudu ptáš, co dnes a zítra schystá");
 // Serial.println ("představ si, že v kapse oříšek máš a ten ti dá moc vyzrát");
 // Serial.println ("na ty kdo cílem zlým chtějí tvou dráhu zkřížit");
 // Serial.println ("šetři si oříšky pro chvíli zlou, kdy sám si náhle přiznáš");
 // Serial.println ("život je pohádkou nedopsanou, vše stát se smí je třikrát");
 // Serial.println ("snad ti to může znít, dnes jako bláznovství.");
 // Serial.println (" ");
 // Serial.println ("Věř mi, že to je ta na světě nejlepší zpráva");
 // Serial.println ("pro ty kdo uvěří stane se zázrak");
 // Serial.println ("možná, možná, možná kdo jen to pozná, pozná, pozná.");
 // Serial.println ("Věř mi, že to je ta na světě nejlepší zpráva");
 // Serial.println ("kouzle tří oříšků křídla ti dává, vyhrát, vyhrát, vyhrát");
 // Serial.println ("jednou, dvakrát, třikrát...");
 // Serial.println (" ");
 // Serial.println ("Na, na, na...");
 // Serial.println ("Na, na, na...");
 // Serial.println ("snad ti to může znít, dnes jako bláznovsví.");
 // Serial.println (" ");
 // Serial.println ("Věř mi, že to je ta na světě nejlepší zpráva");
 // Serial.println ("pro ty kdo uvěří stane se zázrak");
 // Serial.println ("možná, možná, možná kdo jen to pozná, pozná, pozná.");
 // Serial.println ("Věř mi, že to je ta na světě nejlepší zpráva");
 // Serial.println ("kouzle tří oříšků křídla ti dává, vyhrát, vyhrát, vyhrát");
 // Serial.println ("jednou, dvakrát, třikrát...");
 // Serial.println (" ");
 // Serial.println ("Věř mi, že království padne, když schází v něm láska");
 // Serial.println ("chraň své tři oříšky třeba tě zázrak potká, potká, potká");
 // Serial.println ("možná taky stokrát.");
}

void loop() {
  // Přehrávání písně
  for (int i = 0; i < sizeof(melody) / sizeof(int); i++) {
    int noteDuration = 1000 / noteDurations[i];
    tone(3, melody[i], noteDuration);
    delay(noteDuration * 1.3); // Pauza mezi tóny
    noTone(3); // Vypnutí tónu
  }
}


Další podobné články

ROBOTICKÉ RAMENO

Stavebnice obsahuje všechny potřebné díly na sestavení robotnického ramene včetně spojovacího materiálu, pouze je nutné dokoupit čtyři kusy MIKRO SERV SG90. Dále je nutné dokoupit řídící jednotku já jsem použil domácí zásoby ARDUINO NANO a pro něho pak modul ARDUINO NANO IO SHIELD pro jednoduchost zapojení. Díly pro sestavení ramene jdou dobře tzv. vylamovat „vypadávají skoro sami. K servům pokud použijete nové tak doporučuji je před montáží odzkoušet zda jsou funkční v plném rozsahu tj. od 0° do 180°, po namontování a zjištění že servo nefunguje to pak opravdu dost zahýbá s nervy. 

Electronic TiltMaze

Cílem tohoto projektu je vytvoření jednoduchého ovládacího systému, který umožňuje naklápění dvou servomotorů pomocí analogového joysticku. Platforma řízená servomotory může simulovat pohyb například v ose X a Y — tedy naklánění doleva/doprava a dopředu/dozadu. Tento systém může sloužit jako základ pro různé aplikace:

- Manuální ovládání kamery nebo senzoru (např. na pohyblivé konstrukci nebo robotovi)
- Interaktivní ovládací panel pro školní projekty nebo herní ovladač