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

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;
+} }
+