Tlačítko, bzučák a melodie

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

Další podobné články

Saimon říká:

Hra „Simon říká“ realizovaná pomocí Arduina je skvělým projektem, jehož cílem je spojit zábavu s učením a rozvojem technických dovedností. Hráč se snaží zapamatovat a správně zopakovat sekvenci světelných nebo zvukových signálů, čímž si trénuje paměť, koncentraci a rychlé reakce.

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.