ニクロム線に電流を流したり流さなかったりするライブラリです.
Dependents: Hybrid_main_FirstEdtion HYBRYD2018_IZU_ROCKET
nicrom.hpp@1:c39bb138b40c, 2017-02-20 (annotated)
- Committer:
- Gaku0606
- Date:
- Mon Feb 20 08:09:23 2017 +0000
- Revision:
- 1:c39bb138b40c
- Parent:
- 0:55796b0c5005
- Child:
- 2:17450e1cc2e8
?
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 | 0:55796b0c5005 | 11 | Nicrom(PinName _pin); |
Gaku0606 | 0:55796b0c5005 | 12 | private: |
Gaku0606 | 0:55796b0c5005 | 13 | Timeout stopTimer; |
Gaku0606 | 0:55796b0c5005 | 14 | Nicrom* _nic; |
Gaku0606 | 0:55796b0c5005 | 15 | DigitalOut _nicrom; |
Gaku0606 | 0:55796b0c5005 | 16 | PinName pinBango; |
Gaku0606 | 0:55796b0c5005 | 17 | public: |
Gaku0606 | 0:55796b0c5005 | 18 | int status; |
Gaku0606 | 0:55796b0c5005 | 19 | void fire(); |
Gaku0606 | 0:55796b0c5005 | 20 | void stop(); |
Gaku0606 | 0:55796b0c5005 | 21 | void autoStop(float t); |
Gaku0606 | 0:55796b0c5005 | 22 | }; |
Gaku0606 | 0:55796b0c5005 | 23 | |
Gaku0606 | 0:55796b0c5005 | 24 | Nicrom::Nicrom(PinName _pin) : _nicrom(_pin){ |
Gaku0606 | 0:55796b0c5005 | 25 | _nic = this; |
Gaku0606 | 0:55796b0c5005 | 26 | pinBango = _pin; |
Gaku0606 | 0:55796b0c5005 | 27 | _nicrom = 0; |
Gaku0606 | 0:55796b0c5005 | 28 | status = 0; |
Gaku0606 | 0:55796b0c5005 | 29 | } |
Gaku0606 | 0:55796b0c5005 | 30 | |
Gaku0606 | 0:55796b0c5005 | 31 | /** |
Gaku0606 | 0:55796b0c5005 | 32 | @bref ニクロム線を通電します. |
Gaku0606 | 0:55796b0c5005 | 33 | @note 当然ですが,あくまでトリガーとして利用してください. |
Gaku0606 | 0:55796b0c5005 | 34 | */ |
Gaku0606 | 0:55796b0c5005 | 35 | void Nicrom::fire(){ |
Gaku0606 | 0:55796b0c5005 | 36 | _nicrom = 1; |
Gaku0606 | 0:55796b0c5005 | 37 | status = 1; |
Gaku0606 | 0:55796b0c5005 | 38 | printf("fire\r\n"); |
Gaku0606 | 0:55796b0c5005 | 39 | } |
Gaku0606 | 0:55796b0c5005 | 40 | |
Gaku0606 | 0:55796b0c5005 | 41 | /** |
Gaku0606 | 0:55796b0c5005 | 42 | @bref ニクロム線の電流を止めます. |
Gaku0606 | 0:55796b0c5005 | 43 | @note MOSFETの種類によっては漏れ電流などで少し流れる場合があります. |
Gaku0606 | 0:55796b0c5005 | 44 | */ |
Gaku0606 | 0:55796b0c5005 | 45 | void Nicrom::stop(){ |
Gaku0606 | 0:55796b0c5005 | 46 | _nicrom = 0; |
Gaku0606 | 0:55796b0c5005 | 47 | status = 0; |
Gaku0606 | 0:55796b0c5005 | 48 | printf("stop\r\n"); |
Gaku0606 | 0:55796b0c5005 | 49 | } |
Gaku0606 | 0:55796b0c5005 | 50 | |
Gaku0606 | 0:55796b0c5005 | 51 | /** |
Gaku0606 | 0:55796b0c5005 | 52 | @bref 指定した時間だけ,電流を流し,時間が来たら止めます. |
Gaku0606 | 0:55796b0c5005 | 53 | @note 連続で何度も実行しないようにお願いします. |
Gaku0606 | 0:55796b0c5005 | 54 | */ |
Gaku0606 | 0:55796b0c5005 | 55 | void Nicrom::autoStop(float t){ |
Gaku0606 | 0:55796b0c5005 | 56 | fire(); |
Gaku0606 | 0:55796b0c5005 | 57 | stopTimer.attach(_nic, &Nicrom::stop, t); |
Gaku0606 | 0:55796b0c5005 | 58 | } |
Gaku0606 | 0:55796b0c5005 | 59 | #endif |