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ář.

Schéma zapojení projektu

/*
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
FB gp tw

Další podobné články