2011/10/30

2011/10/22

Nikon D40 リモコン インターバルタイマー 回路図

Nikon D40 リモコン インターバルタイマー 回路図


説明
PIC12F629を利用して、一定期間を設定して、NikonD40のシャッター
信号を送ります。設定できる期間はプログラムによって変わりますが、
前回紹介したプログラムを少し変更して、1分間から8分間から設定
しています。 また、プログラムによって秒単位で設定できます。


タイマーの設定はDIPスイッチで設定します。
タイマー  DIP1(1) DIP2(2) DIP3(4)
1分間   OFF    OFF    OFF
2分間   ON     OFF    OFF
3分間   OFF    ON     OFF
4分間   ON     ON     OFF
5分間   OFF    OFF    ON
6分間   ON     OFF    ON
7分間   OFF    ON     ON
8分間   ON     ON     ON
*誤差があります。こちらで確認する限り、約2分ことに1秒遅れます。


ボタンスイッチを押すと割り込みでシャッターが押されます。
テストや手動でシャッターをしたい時に利用します。






2011/10/21

Nikon D40 リモコン インターバルタイマー 実験

Nikon D40 リモコン インターバルタイマー 実験

1分間間隔で写真を撮影しています。
利用するカメラはNikonD40、秒針が逆回転している原因はタイマーは約2分ことに1秒遅れています。

下記の動画は撮った写真は117枚、1秒間隔で再生しています。


2011/09/18

PIC でタイマーの作成

スタックにより、タイマーの作成。
サブルーチンのネストは8回までに制限されています。

まず、時間に必要なサイクル数を計算。













;//////////////////////////////////////////
;タイマー
;4Mhz 1クロック=0.00000025S = 0.25μS
;4Mhz 1サイクル=1μS
; 1S=1000mS
; 1S=1000000μS
;1秒  =1000000サイクル
;10秒 =10000000サイクル
;30秒 =30000000サイクル
;1分  =60000000サイクル
;30分 =180000000サイクル

;//////////////////////////////////////////
S6TIME
MOVLW D'1' ;1X4+4+40=48
MOVWF SCONT6
S6LOP
CALL S5TIME
DECFSZ SCONT6
GOTO S6LOP
RETURN
S5TIME
MOVLW D'1' ;1X4+4+32=40
MOVWF SCONT5
S5LOP
CALL S4TIME
DECFSZ SCONT5
GOTO S5LOP
RETURN
S4TIME
MOVLW D'1' ;1X4+4+24=32
MOVWF SCONT4
S4LOP
CALL S3TIME
DECFSZ SCONT4
GOTO S4LOP
RETURN
S3TIME
MOVLW D'1' ;1X4+4+16=24
MOVWF SCONT3
S3LOP
CALL S2TIME
DECFSZ SCONT3
GOTO S3LOP
RETURN

S2TIME
MOVLW D'1' ;1X4+4+8=16
MOVWF SCONT2
S2LOP
CALL S1TIME
DECFSZ SCONT2
GOTO S2LOP
RETURN

S1TIME ;1000μS、1mS
MOVLW D'1' ;1 1X4+4=8
MOVWF SCONT1 ;1
S1LOP
NOP ;1
DECFSZ SCONT1 ;1
GOTO S1LOP ;2
RETURN ;2



;---------------------
;4MHz の場合
;1秒  =1000000サイクル
;10秒 =10000000サイクル
;30秒 =30000000サイクル
;1分  =60000000サイクル
;30分 =180000000サイクル

約1分間の例
60.000961サイクル、計算より961サイクルが多い。






2011/09/12

赤外線リモコン送信 キャリア波(38kHzか40kHz)の作成

赤外線リモコン送信 キャリア波(38kHzか40kHz)の作成
1秒間4万回点滅させる方法

1. PIC12F629
2. ロック 4MHz
      4Mhz 1クロック=0.00000025S = 0.25μS
      4Mhz 1サイクル=1μS
3.  40kHz 1秒/40000回=0.000025S=0.025mS=25μS
       38kHz 1秒/38000回=0.000026S=0.026mS=26μS
4. 40kHz 方形波=12.5μS ON + 12.5μS OFF
       38kHz 方形波=13  μS  ON  +   13  μS  OFF
5.    600μs事にHiかLowを出力します。
       600μS/25=24回
       600μS/26=23回

少し進んだ


少し進んだ
下記のコマンドで 38.05-38.06kHz が発生できます。



MAIN
CALL T600
GOTO END

T600
MOVLW 15H
MOVWF CONT1
PIN BSF GPIO,0
NOP ;1
NOP ;2
NOP ;3
NOP ;4
NOP ;5
NOP ;6
NOP ;7
NOP ;8
NOP ;9
NOP ;10
NOP ;11
NOP ;12
NOP ;13
NOP ;14
BCF GPIO,0
NOP ;1
NOP ;2
NOP ;3
NOP ;4
NOP ;5
NOP ;6
NOP ;7
NOP ;8
NOP ;9
NOP ;10
DECFSZ CONT1,F ;11
GOTO PIN ;13
RETURN ;14




実際の確認結果、正しいかはわからないが、38kHzに一番違い
値になります。 38kHz 方形波=15μS ON  +   14μS  OFF





少し進んだ
PICKIT3(Power)で接続した場合と他の電源(電池)測定した結果、ずれが発生します。
電池(1.5×4) → 40.00-40.03kHz
5Vの電源アダプタ → 40.33-40.42kHz













http://kaihatsu.shizuoka-c.ed.jp/H20kaihatsu/kougyou/hikari_1/4shou/4_2kankei.pdf
参考資料

2011/08/16

4Mhz タイマー


;//////////////////////////////////////////
;タイマー
;4Mhz 1クロック=0.00000025S = 0.25μS
;4Mhz 1サイクル=1μS
; 1S=1000mS
; 1S=1000000μS
;//////////////////////////////////////////
TIMER1 ;100μS,100コマンド、24
MOVLW D'24' ;1 24x4+4=100
MOVWF TCON1 ;1
T1LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T1LOP ;2
RETURN ;2

;--------------------
TIMER2 ;200μS,200コマンド、49
MOVLW D'49' ;1  49x4+4=200
MOVWF TCON1 ;1
T2LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T2LOP ;2
RETURN ;2


;--------------------
TIMER5 ;500μS,500コマンド、124
MOVLW D'124' ;1
MOVWF TCON1 ;1
T5LOP
NOP
DECFSZ TCON1 ;1
GOTO T5LOP ;2
RETURN ;2


;--------------------
TIMER10 ;1000μS,1000コマンド、249
MOVLW D'249' ;1 249x4+4=1000
MOVWF TCON1 ;1
T10LOP
NOP ;1
DECFSZ TCON1 ;1
GOTO T10LOP ;2
RETURN ;2