Náš čtenář Petr S. nám ke svému projektu zaslal schéma a Arduino kód. K úspěšnému přeložení je ještě nutné stáhnout tento soubor s uloženými melodiemi a poté cestu k němu změnit v kódu, viz komentář.
/* Název: Tlacítko, bzucák a melodie Autor: Petr Soudek E-mail: spetr2050@gmail.com */ // nutné vyměnit za vlastní umístění #include <D:\Arduino\examples\PETR_SOUDEK\sound\pitches\src\pitches.h> #define TIME 200 int noteDuration = 1000 / 4; // delka noty const int buttonPin = 2; // pin ke kterému je pripojeno tlacítko int buttonState = 0; // soucasný stav tlacítka int lastButtonState = 0; // predchozí stav tlacítka void setup() { // inicializujte pin tlacítka jako vstup: pinMode(buttonPin, INPUT); // inicializujte sériovou komunikaci: Serial.begin(9600); } void loop() { // prectete vstupní pin tlacítka: buttonState = digitalRead(buttonPin); // porovnejte buttonState (stav tlacítka) s predchozím stavem if (buttonState != lastButtonState) { // jestliže se stav zmenil, pust melodii if (buttonState == HIGH) { // jestliže je soucasný stav HIGH, tlacítko prešlo //z off na on: ovcaci(); Serial.println("on"); } } // uložte soucasný stav jako „poslední stav“, //abyste ho mohli v príští smycce použít lastButtonState = buttonState; } void ovcaci() { Serial.println("ovcaci"); for (int i=0; i <= 1; i++){ tone(10, NOTE_C4, noteDuration*2); delay(noteDuration*2); tone(10, NOTE_E4, noteDuration*2); delay(noteDuration*2); tone(10, NOTE_G4, noteDuration*4); delay(noteDuration*4); } for (int i=0; i <= 1; i++){ tone(10, NOTE_E4, noteDuration); delay(noteDuration); tone(10, NOTE_E4, noteDuration); delay(noteDuration); tone(10, NOTE_D4, noteDuration); delay(noteDuration); tone(10, NOTE_E4, noteDuration); delay(noteDuration); tone(10, NOTE_F4, noteDuration*2); delay(noteDuration*2); tone(10, NOTE_D4, noteDuration*2); delay(noteDuration*2); } tone(10, NOTE_E4, noteDuration*2); delay(noteDuration*2); tone(10, NOTE_D4, noteDuration*2); delay(noteDuration*2); tone(10, NOTE_C4, noteDuration*4); delay(noteDuration*4); } // Autor: Petr Soudek