![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Resit Target Localisation Ciaran Kane 18689005
Dependencies: mbed
Piezo_Buzzer/piezo_bz.h@7:acf82069b794, 23 months ago (annotated)
- Committer:
- ciarankane123
- Date:
- Thu Aug 25 13:50:39 2022 +0000
- Revision:
- 7:acf82069b794
Final Code;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ciarankane123 | 7:acf82069b794 | 1 | /* |
ciarankane123 | 7:acf82069b794 | 2 | * Mbed library program |
ciarankane123 | 7:acf82069b794 | 3 | * Control Piezo Transducer |
ciarankane123 | 7:acf82069b794 | 4 | * |
ciarankane123 | 7:acf82069b794 | 5 | * Copyright (c) 2018 Kenji Arai / JH1PJL |
ciarankane123 | 7:acf82069b794 | 6 | * http://www.page.sannet.ne.jp/kenjia/index.html |
ciarankane123 | 7:acf82069b794 | 7 | * http://mbed.org/users/kenjiArai/ |
ciarankane123 | 7:acf82069b794 | 8 | * Created: Feburary 28th, 2018 |
ciarankane123 | 7:acf82069b794 | 9 | * Revised: March 3rd, 2018 |
ciarankane123 | 7:acf82069b794 | 10 | */ |
ciarankane123 | 7:acf82069b794 | 11 | |
ciarankane123 | 7:acf82069b794 | 12 | // Tested: Nucleo-F446RE with Akizuki PT08-Z185R |
ciarankane123 | 7:acf82069b794 | 13 | // http://akizukidenshi.com/catalog/g/gP-01251/ |
ciarankane123 | 7:acf82069b794 | 14 | |
ciarankane123 | 7:acf82069b794 | 15 | /* |
ciarankane123 | 7:acf82069b794 | 16 | Refrence: |
ciarankane123 | 7:acf82069b794 | 17 | https://os.mbed.com/users/MikamiUitOpen/code/UIT_Sounder_OnOff/ |
ciarankane123 | 7:acf82069b794 | 18 | by 不韋 呂 さん(Mikami-san) |
ciarankane123 | 7:acf82069b794 | 19 | */ |
ciarankane123 | 7:acf82069b794 | 20 | |
ciarankane123 | 7:acf82069b794 | 21 | #ifndef MBED_PIEZOBZ_H |
ciarankane123 | 7:acf82069b794 | 22 | #define MBED_PIEZOBZ_H |
ciarankane123 | 7:acf82069b794 | 23 | |
ciarankane123 | 7:acf82069b794 | 24 | #include "mbed.h" |
ciarankane123 | 7:acf82069b794 | 25 | |
ciarankane123 | 7:acf82069b794 | 26 | /** Interface for Piezo Buzzer |
ciarankane123 | 7:acf82069b794 | 27 | * |
ciarankane123 | 7:acf82069b794 | 28 | * @code |
ciarankane123 | 7:acf82069b794 | 29 | * #include "mbed.h" |
ciarankane123 | 7:acf82069b794 | 30 | * #include "piezo_bz.h" |
ciarankane123 | 7:acf82069b794 | 31 | * |
ciarankane123 | 7:acf82069b794 | 32 | * PIEZO_BZ bz(D8, 3000U, 500U); // 3kHz 0.5 sec duty |
ciarankane123 | 7:acf82069b794 | 33 | * |
ciarankane123 | 7:acf82069b794 | 34 | * int main() { |
ciarankane123 | 7:acf82069b794 | 35 | * while(1) { |
ciarankane123 | 7:acf82069b794 | 36 | * bz.start(); |
ciarankane123 | 7:acf82069b794 | 37 | * wait(5.0f); |
ciarankane123 | 7:acf82069b794 | 38 | * bz.stop(); |
ciarankane123 | 7:acf82069b794 | 39 | * wait(1.0f); |
ciarankane123 | 7:acf82069b794 | 40 | * } |
ciarankane123 | 7:acf82069b794 | 41 | * } |
ciarankane123 | 7:acf82069b794 | 42 | * |
ciarankane123 | 7:acf82069b794 | 43 | * @endcode |
ciarankane123 | 7:acf82069b794 | 44 | */ |
ciarankane123 | 7:acf82069b794 | 45 | |
ciarankane123 | 7:acf82069b794 | 46 | #define CONTINUOUS_MODE 0U |
ciarankane123 | 7:acf82069b794 | 47 | |
ciarankane123 | 7:acf82069b794 | 48 | /** Piezo Buzzer class |
ciarankane123 | 7:acf82069b794 | 49 | */ |
ciarankane123 | 7:acf82069b794 | 50 | class PIEZO_BZ |
ciarankane123 | 7:acf82069b794 | 51 | { |
ciarankane123 | 7:acf82069b794 | 52 | public: |
ciarankane123 | 7:acf82069b794 | 53 | |
ciarankane123 | 7:acf82069b794 | 54 | /** Create a Piezo Buzzer instance |
ciarankane123 | 7:acf82069b794 | 55 | * |
ciarankane123 | 7:acf82069b794 | 56 | * @param pin for Piezo Buzzer (another pin connect GND) |
ciarankane123 | 7:acf82069b794 | 57 | * @param Buzzer frequency [Hz] |
ciarankane123 | 7:acf82069b794 | 58 | * @param Duration for ringing time and rest time (duty 50%) [mS] |
ciarankane123 | 7:acf82069b794 | 59 | * on_off_time = 0 -> Continuous mode |
ciarankane123 | 7:acf82069b794 | 60 | */ |
ciarankane123 | 7:acf82069b794 | 61 | PIEZO_BZ(PinName pin, uint32_t freq, uint32_t on_off_time); |
ciarankane123 | 7:acf82069b794 | 62 | |
ciarankane123 | 7:acf82069b794 | 63 | /** Destructor of Piezo Buzzer |
ciarankane123 | 7:acf82069b794 | 64 | */ |
ciarankane123 | 7:acf82069b794 | 65 | virtual ~PIEZO_BZ(); |
ciarankane123 | 7:acf82069b794 | 66 | |
ciarankane123 | 7:acf82069b794 | 67 | /** Start Buzzer |
ciarankane123 | 7:acf82069b794 | 68 | */ |
ciarankane123 | 7:acf82069b794 | 69 | void start(void); |
ciarankane123 | 7:acf82069b794 | 70 | |
ciarankane123 | 7:acf82069b794 | 71 | /** Stop Buzzer |
ciarankane123 | 7:acf82069b794 | 72 | */ |
ciarankane123 | 7:acf82069b794 | 73 | void stop(void); |
ciarankane123 | 7:acf82069b794 | 74 | |
ciarankane123 | 7:acf82069b794 | 75 | /** Change buzzer frequency |
ciarankane123 | 7:acf82069b794 | 76 | * @param Buzzer frequency [Hz] |
ciarankane123 | 7:acf82069b794 | 77 | */ |
ciarankane123 | 7:acf82069b794 | 78 | void change_frequency(uint32_t freq); |
ciarankane123 | 7:acf82069b794 | 79 | |
ciarankane123 | 7:acf82069b794 | 80 | /** Change On-Off duration |
ciarankane123 | 7:acf82069b794 | 81 | * @param Duration for ringing time and rest time (duty 50%) [mS] |
ciarankane123 | 7:acf82069b794 | 82 | */ |
ciarankane123 | 7:acf82069b794 | 83 | void change_on_off(uint32_t on_off_time); |
ciarankane123 | 7:acf82069b794 | 84 | |
ciarankane123 | 7:acf82069b794 | 85 | private: |
ciarankane123 | 7:acf82069b794 | 86 | void create_freq_irq(void); |
ciarankane123 | 7:acf82069b794 | 87 | void create_onoff_irq(void); |
ciarankane123 | 7:acf82069b794 | 88 | |
ciarankane123 | 7:acf82069b794 | 89 | DigitalOut _pin; |
ciarankane123 | 7:acf82069b794 | 90 | Ticker _t0; |
ciarankane123 | 7:acf82069b794 | 91 | Ticker _t1; |
ciarankane123 | 7:acf82069b794 | 92 | uint32_t freq; |
ciarankane123 | 7:acf82069b794 | 93 | uint32_t t_onoff; |
ciarankane123 | 7:acf82069b794 | 94 | bool out; |
ciarankane123 | 7:acf82069b794 | 95 | bool flag_onoff; |
ciarankane123 | 7:acf82069b794 | 96 | bool flag_run; |
ciarankane123 | 7:acf82069b794 | 97 | bool flag_continuous; |
ciarankane123 | 7:acf82069b794 | 98 | }; |
ciarankane123 | 7:acf82069b794 | 99 | |
ciarankane123 | 7:acf82069b794 | 100 | #endif // MBED_PIEZOBZ_H |