目次

Relay emulate

 マイコンのファームウエアで、リレーをMAKEかBREAKする  信号を出すことになりました。  実際のリレーがないとして、ファームウエアを書かない  わけにいかないので、LEDを使ってエミュレートする基板  を半田付けしました。  MAKE、BREAKの信号は、正論理で'1'と'0'にし  NPNトランジスタ2SC1815で、LEDを点灯する  回路は以下。  個別トランジスタの手持ちが、少なかったので  ゲートICを使って12個のリレーを制御する回路  にしてみました。  ArduinoMega2560で動かすときの関数は、次のようにして  動作確認しました。 #define ENTRY_RELAY 34 #define ENTRY_RELAY_EXIT 46 void init_relay() { byte ii ; /* scan */ for ( ii = ENTRY_RELAY ; ii < ENTRY_RELAY_EXIT ; ii++ ) { digitalWrite( ii , LOW ); pinMode( ii , OUTPUT ); } } void put_relay(word rx) { byte ii ; byte jj ; word tmp ; word rr ; boolean btmp ; /* copy */ rr = rx ; /* scan */ for ( ii = 0 ; ii < RELAY_MAX_SIZE ; ii++ ) { /* address */ jj = ENTRY_RELAY + ii ; /* get bit value and impress */ tmp = (1 << ii) ; /* judge */ btmp = LOW ; if ( tmp & rr ) { btmp = HIGH ; } /* impress */ digitalWrite(jj,btmp); } }  12ビットなので0から4095を与えると、対応するLEDが  点灯することにしてみました。  ArduinoMega2560を使った基板では、次のように接続。

目次

inserted by FC2 system