Pritiskom na gumb pokreće se Božićna melodija sa LED efektom, Prilikom ponovnog pritiska gumba pokreće se drugačija Božićna melodija sa drugačijim LED efektom.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:e04c382aef70
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Sep 11 15:01:13 2020 +0000 @@ -0,0 +1,77 @@ +#include "mbed.h" +InterruptIn button(p18); +PwmOut buzzer(p21); +DigitalOut A(LED1); +DigitalOut B(LED2); +Timer debounce; // Debounce timer +int counter = 0; +void Melodija1(void); +void Melodija2(void); + +int main() { +while(1) { + +if(button.read()==1) + { + } +if(button.read()==0) + { + counter++; +if( counter % 2 == 0 ){ + debounce.start(); + Melodija2(); + debounce.reset(); +} +if(counter%2==1){ + debounce.start(); + Melodija1(); + debounce.reset(); +} +} +} +} + + +void Melodija1() { +if (debounce.read_ms()>100){ + +float frequency[]={329,329,329,329,329,329,329,392,261,293,329,0,349,349,349,329,329,329,329,293,293,329,293,392,0, 329,329,329,329,329,329,329,392,261,293,329,0, 349,349,349,329,329,329,392,392,349,293,261,0,196,329,293,261,196,0, 196,329,293,261,220,0,220,349,329,293,392,0,440,392,349,293,329,0,196,329,293,261,196,0,196,329,293,261,220,0,220,349,329,293,392,0,440,392,349,293,261}; //trajanje nota +float beat[]={1,1,2,1,1,2,1,1,1,1,2,1,1,1,2,1,1,2,1,1,1,1,2,1,1,1,1,2,1,1,2,1,1,1,1,2,1,1,1,2,1,1,2,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,2,1}; + +for (int i=0;i<=97;i++) { + buzzer.period(1/(frequency[i])); //PWM perioda + buzzer=0.3; // Duty cycle + wait(0.3*beat[i]); + if(i%2==0){ //LED-ice + A=1; + B=0; + } + else{ + A=0; + B=1; + } +} +buzzer=0; +} } + + +void Melodija2(){ +if (debounce.read_ms()>100){ + +float frequency[]={392,330,349,392,392,392,440,494,523,523,523,330,349,392,392,392,440,392,349,349,330,392,262,330,294,349,247,262}; +float beat[]={8,8,8,4,4,4,8,8,4,4,4,8,8,4,4,4,8,8,4,2,4,4,4,4,4,2,4,1}; + +for (int i=0;i<=28;i++) { + buzzer.period(1/(frequency[i])); //PWM perioda + buzzer=0.2; // Duty cycle + wait(0.2*beat[i]); + if(i%2==0){ //LED-ice + A=1; + B=0;} + else{ + A=0; + B=1;} +} +buzzer=0; +} } +