ニクロム線に電流を流したり流さなかったりするライブラリです.

Dependents:   Hybrid_main_FirstEdtion HYBRYD2018_IZU_ROCKET

nicrom.hpp

Committer:
Gaku0606
Date:
2017-02-20
Revision:
2:17450e1cc2e8
Parent:
1:c39bb138b40c

File content as of revision 2:17450e1cc2e8:

#ifndef _NICROM_HPP_
#define _NICROM_HPP_

/**
    @author Gaku MATSUMOTO
    @bref   ニクロム線に電流を流したり流さなかったりするライブラリです.
    @note   オブジェクト指向の真似事としてクラスにしてみました.
*/
class Nicrom{
    public:
        /**
        *  @bref  ニクロム線クラスのインスタンス
        *  @param  _pin  ニクロム線に電流を流すトリガーとなるピン番号
        */
        Nicrom(PinName _pin);
    private:
        Timeout stopTimer;
        Nicrom* _nic;
        DigitalOut _nicrom;  
        PinName pinBango;
    public:
        int status;
        void fire();
        void stop();
        void autoStop(float t);
};

Nicrom::Nicrom(PinName _pin) : _nicrom(_pin){
    _nic = this;
    pinBango = _pin;
    _nicrom = 0;
    status = 0;
}

/**
    @bref   ニクロム線を通電します.
    @note   当然ですが,あくまでトリガーとして利用してください.
*/
void Nicrom::fire(){
    _nicrom = 1;
    status = 1;   
    printf("fire\r\n");
}

/**
    @bref   ニクロム線の電流を止めます.
    @note   MOSFETの種類によっては漏れ電流などで少し流れる場合があります.
*/
void Nicrom::stop(){
    _nicrom = 0;
    status = 0;   
    printf("stop\r\n");
}
 
/**
    @bref   指定した時間だけ,電流を流し,時間が来たら止めます.
    @note   連続で何度も実行しないようにお願いします.
*/
void Nicrom::autoStop(float t){
    fire();
    stopTimer.attach(_nic, &Nicrom::stop, t);     
}
#endif