ssss
Audio.h@1:f9ed5024854e, 2020-08-18 (annotated)
- Committer:
- irsanjul
- Date:
- Tue Aug 18 14:57:00 2020 +0000
- Revision:
- 1:f9ed5024854e
- Parent:
- 0:e9c48701a273
ssss
Who changed what in which revision?
User | Revision | Line number | New 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 |