ニクロム線に電流を流したり流さなかったりするライブラリです.
Dependents: Hybrid_main_FirstEdtion HYBRYD2018_IZU_ROCKET
nicrom.hpp@2:17450e1cc2e8, 2017-02-20 (annotated)
- Committer:
- Gaku0606
- Date:
- Mon Feb 20 15:13:12 2017 +0000
- Revision:
- 2:17450e1cc2e8
- Parent:
- 1:c39bb138b40c
?
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Gaku0606 | 0:55796b0c5005 | 1 | #ifndef _NICROM_HPP_ |
Gaku0606 | 0:55796b0c5005 | 2 | #define _NICROM_HPP_ |
Gaku0606 | 0:55796b0c5005 | 3 | |
Gaku0606 | 0:55796b0c5005 | 4 | /** |
Gaku0606 | 0:55796b0c5005 | 5 | @author Gaku MATSUMOTO |
Gaku0606 | 0:55796b0c5005 | 6 | @bref ニクロム線に電流を流したり流さなかったりするライブラリです. |
Gaku0606 | 0:55796b0c5005 | 7 | @note オブジェクト指向の真似事としてクラスにしてみました. |
Gaku0606 | 0:55796b0c5005 | 8 | */ |
Gaku0606 | 0:55796b0c5005 | 9 | class Nicrom{ |
Gaku0606 | 0:55796b0c5005 | 10 | public: |
Gaku0606 | 2:17450e1cc2e8 | 11 | /** |
Gaku0606 | 2:17450e1cc2e8 | 12 | * @bref ニクロム線クラスのインスタンス |
Gaku0606 | 2:17450e1cc2e8 | 13 | * @param _pin ニクロム線に電流を流すトリガーとなるピン番号 |
Gaku0606 | 2:17450e1cc2e8 | 14 | */ |
Gaku0606 | 0:55796b0c5005 | 15 | Nicrom(PinName _pin); |
Gaku0606 | 0:55796b0c5005 | 16 | private: |
Gaku0606 | 0:55796b0c5005 | 17 | Timeout stopTimer; |
Gaku0606 | 0:55796b0c5005 | 18 | Nicrom* _nic; |
Gaku0606 | 0:55796b0c5005 | 19 | DigitalOut _nicrom; |
Gaku0606 | 0:55796b0c5005 | 20 | PinName pinBango; |
Gaku0606 | 0:55796b0c5005 | 21 | public: |
Gaku0606 | 0:55796b0c5005 | 22 | int status; |
Gaku0606 | 0:55796b0c5005 | 23 | void fire(); |
Gaku0606 | 0:55796b0c5005 | 24 | void stop(); |
Gaku0606 | 0:55796b0c5005 | 25 | void autoStop(float t); |
Gaku0606 | 0:55796b0c5005 | 26 | }; |
Gaku0606 | 0:55796b0c5005 | 27 | |
Gaku0606 | 0:55796b0c5005 | 28 | Nicrom::Nicrom(PinName _pin) : _nicrom(_pin){ |
Gaku0606 | 0:55796b0c5005 | 29 | _nic = this; |
Gaku0606 | 0:55796b0c5005 | 30 | pinBango = _pin; |
Gaku0606 | 0:55796b0c5005 | 31 | _nicrom = 0; |
Gaku0606 | 0:55796b0c5005 | 32 | status = 0; |
Gaku0606 | 0:55796b0c5005 | 33 | } |
Gaku0606 | 0:55796b0c5005 | 34 | |
Gaku0606 | 0:55796b0c5005 | 35 | /** |
Gaku0606 | 0:55796b0c5005 | 36 | @bref ニクロム線を通電します. |
Gaku0606 | 0:55796b0c5005 | 37 | @note 当然ですが,あくまでトリガーとして利用してください. |
Gaku0606 | 0:55796b0c5005 | 38 | */ |
Gaku0606 | 0:55796b0c5005 | 39 | void Nicrom::fire(){ |
Gaku0606 | 0:55796b0c5005 | 40 | _nicrom = 1; |
Gaku0606 | 0:55796b0c5005 | 41 | status = 1; |
Gaku0606 | 0:55796b0c5005 | 42 | printf("fire\r\n"); |
Gaku0606 | 0:55796b0c5005 | 43 | } |
Gaku0606 | 0:55796b0c5005 | 44 | |
Gaku0606 | 0:55796b0c5005 | 45 | /** |
Gaku0606 | 0:55796b0c5005 | 46 | @bref ニクロム線の電流を止めます. |
Gaku0606 | 0:55796b0c5005 | 47 | @note MOSFETの種類によっては漏れ電流などで少し流れる場合があります. |
Gaku0606 | 0:55796b0c5005 | 48 | */ |
Gaku0606 | 0:55796b0c5005 | 49 | void Nicrom::stop(){ |
Gaku0606 | 0:55796b0c5005 | 50 | _nicrom = 0; |
Gaku0606 | 0:55796b0c5005 | 51 | status = 0; |
Gaku0606 | 0:55796b0c5005 | 52 | printf("stop\r\n"); |
Gaku0606 | 0:55796b0c5005 | 53 | } |
Gaku0606 | 0:55796b0c5005 | 54 | |
Gaku0606 | 0:55796b0c5005 | 55 | /** |
Gaku0606 | 0:55796b0c5005 | 56 | @bref 指定した時間だけ,電流を流し,時間が来たら止めます. |
Gaku0606 | 0:55796b0c5005 | 57 | @note 連続で何度も実行しないようにお願いします. |
Gaku0606 | 0:55796b0c5005 | 58 | */ |
Gaku0606 | 0:55796b0c5005 | 59 | void Nicrom::autoStop(float t){ |
Gaku0606 | 0:55796b0c5005 | 60 | fire(); |
Gaku0606 | 0:55796b0c5005 | 61 | stopTimer.attach(_nic, &Nicrom::stop, t); |
Gaku0606 | 0:55796b0c5005 | 62 | } |
Gaku0606 | 0:55796b0c5005 | 63 | #endif |