ssss

Committer:
irsanjul
Date:
Tue Aug 18 14:57:00 2020 +0000
Revision:
1:f9ed5024854e
Parent:
0:e9c48701a273
ssss

Who changed what in which revision?

UserRevisionLine numberNew contents of line
irsanjul 0:e9c48701a273 1 /*
irsanjul 0:e9c48701a273 2 \\ library ini merupakan play audio menggunakan PWM dan buzzer
irsanjul 0:e9c48701a273 3 \\ terinspirasi dari https://developer.mbed.org/users/4180_1/notebook/using-a-speaker-for-audio-output/
irsanjul 0:e9c48701a273 4 */
irsanjul 0:e9c48701a273 5
irsanjul 0:e9c48701a273 6 #ifndef AUDIO_H
irsanjul 0:e9c48701a273 7 #define AUDIO_H
irsanjul 0:e9c48701a273 8
irsanjul 0:e9c48701a273 9 #include "mbed.h"
irsanjul 0:e9c48701a273 10
irsanjul 0:e9c48701a273 11 class Audio
irsanjul 0:e9c48701a273 12 {
irsanjul 0:e9c48701a273 13 public:
irsanjul 0:e9c48701a273 14 Audio(PinName buzzer);
irsanjul 0:e9c48701a273 15
irsanjul 0:e9c48701a273 16 /*
irsanjul 0:e9c48701a273 17 \\ Set Volume digunakan untuk menentukan Volume dari buzzer
irsanjul 0:e9c48701a273 18 \\ Parameter volume bernilai 0.0 - 2.0
irsanjul 0:e9c48701a273 19 \\ 0.0 untuk mute dan 2.0 untuk full
irsanjul 0:e9c48701a273 20 */
irsanjul 0:e9c48701a273 21 void SetVolume(double volume=0.5f);
irsanjul 0:e9c48701a273 22
irsanjul 0:e9c48701a273 23 /*
irsanjul 0:e9c48701a273 24 \\ SetDuration digunakan untuk menentukan lamanya buzzer bunyi dalam satu siklus
irsanjul 0:e9c48701a273 25 \\ Parameter menggunakan tipe bilangan bulat dalam orde mili sekon
irsanjul 0:e9c48701a273 26 */
irsanjul 0:e9c48701a273 27 void SetDuration(unsigned int milisec=1000);
irsanjul 0:e9c48701a273 28
irsanjul 0:e9c48701a273 29 /*
irsanjul 0:e9c48701a273 30 \\ PlayNote digunakan untuk membunyikan buzzer sesuai dengan nada,
irsanjul 0:e9c48701a273 31 \\ Nada yang digunakan merupakan nada dasar do sampai si dengan c=do
irsanjul 0:e9c48701a273 32 \\ parameter angka merupakan perwujudan nada 0=diam, 1=do, 2=re, 3=mi, dst
irsanjul 0:e9c48701a273 33 */
irsanjul 0:e9c48701a273 34 void PlayNote(unsigned int angka);
irsanjul 0:e9c48701a273 35
irsanjul 0:e9c48701a273 36 /*
irsanjul 0:e9c48701a273 37 \\ PlayNote digunakan untuk membunyikan buzzer sesuai dengan nada,
irsanjul 0:e9c48701a273 38 \\ dimainkan dalam not huruf
irsanjul 0:e9c48701a273 39 \\ parameter huruf berupa const char * karena dapat
irsanjul 0:e9c48701a273 40 */
irsanjul 0:e9c48701a273 41 // void PlayNote(const char * huruf);
irsanjul 0:e9c48701a273 42
irsanjul 0:e9c48701a273 43 void PlayNote(double frequency, double duration, double volume);
irsanjul 0:e9c48701a273 44
irsanjul 0:e9c48701a273 45 void mute();
irsanjul 0:e9c48701a273 46 private:
irsanjul 0:e9c48701a273 47 // PwmOut out;
irsanjul 0:e9c48701a273 48 PinName _out;
irsanjul 0:e9c48701a273 49 double vol;
irsanjul 0:e9c48701a273 50 int ms;
irsanjul 0:e9c48701a273 51 };
irsanjul 0:e9c48701a273 52
irsanjul 0:e9c48701a273 53 // -----------------------------------------------------------------------------
irsanjul 0:e9c48701a273 54 class MyAudio : public Audio
irsanjul 0:e9c48701a273 55 {
irsanjul 0:e9c48701a273 56 public:
irsanjul 0:e9c48701a273 57 MyAudio(PinName buzz);
irsanjul 0:e9c48701a273 58 void play(const int &code);
irsanjul 1:f9ed5024854e 59 void playing(unsigned int note);
irsanjul 0:e9c48701a273 60
irsanjul 0:e9c48701a273 61 private:
irsanjul 0:e9c48701a273 62 void set(double dur=500, double vol=0.1);
irsanjul 0:e9c48701a273 63 void mute();
irsanjul 0:e9c48701a273 64 };
irsanjul 0:e9c48701a273 65
irsanjul 0:e9c48701a273 66 #endif // AUDIO_H