3. OPアンプを付加した回路図と部品配置図、改正ファームウェア

 引き続きD600の制御に使うタブレットPCから定刻にビープ音を出し、これを拾って開始コマンドとしてD7100のシーケンス制御を行うモノです。
 2.でトランジスタ2SC1815をスイッチ動作させることにしましたが、これでは増幅率が全く不足しており、PICに入れたシーケンサがスタートしませんでした。これに対処するにはオペアンプを使うしかない、という事らしいので、関係のHPなどを探り、その使い方を知りました。で、100倍まで行ける(本当は1000倍までしたかったけど、部品が大きくなるため断念)回路を作って、作成した2.の回路に強引に載せてみると、動作不安定ながらWin Tabletの音出力でPICのシーケンサを駆動することが出来ました。その回路図が下の図になります。
 現在は空中に配線を回したりするアクロバチックな配線ではちょっと怖いため、その下のように部品を配置した回路を作ることにしました。やはりトライ&エラーは必要なようで・・・

 他、PICのファームウェアも前回の設定では1/2secまで行ってしまったので、1/8secまで、2EV間隔で1/8000secまで撮像するようにするとともに、何らかの事情で速度が1/8000secまで行かなかったときのフェイルセーフを減速撮像して増速撮像した後に加えました。
 さて、これで不安定さが消えて、うまく動いてくれるといいのですが・・・
回路図
 
部品配置図と裏面の配線図
Index Next

E:\shin\MPLABXProjects\D7100Sequencer_V1.X\Sequence.c
  1     /*
  2      * File:   D7100_Ctrl.c
  3      * Author: M_shi
  4      *
  5      */
  6 
  7     #include <stdio.h>
  8     #include <stdlib.h>
  9     #include <xc.h>
 10     #define _XTAL_FREQ 1000000;
 11 
 12     /*****Configuration********/
 13     #pragma config FOSC=INTOSCIO, WDTE=OFF, PWRTE=ON, BOREN=ON, MCLRE=OFF, CP=OFF, IESO=OFF//, FCMEN=OFF;
 14 
 15     int i,j,k;
 16 
 17     int main(void){
 18 
 19         ANSEL=0x00;     //all digital
 20         CMCON0=0x07;    //Comperlator off
 21         WPU=0x14;       //set pull up bit on
 22         nGPPU=0;        //pull up activate
 23         TRISIO0=0;  //GP0 output
 24         TRISIO1=0;  //GP1 output
 25         TRISIO2=0;  //GP2 output
 26         TRISIO3=1;  //GP3 input
 27         TRISIO4=0;  //GP4 output
 28         TRISIO5=0;  //GP5 output
 29 
 30             GP0 = 1;    //Speed down
 31             GP1 = 1;    //Shutter
 32             GP2 = 1;    //Speed up
 33             GP4 = 1;    //Focus
 34             GP3 = 1;    //Start Swich
 35 
 36     while(1){
 37         if(GP3 == 0){
 38             goto Start;
 39         }
 40         else
 41         {
 42             GP0 = 1;
 43             GP1 = 1;
 44             GP2 = 1;
 45             GP4 = 1;
 46             GP3 = 1;
 47         }
 48     }
 49         Start:
 50         //Diamond ring before C2 set SS=1/2000, CL=2 shot per sec.  
 51                 _delay(25000);      //wait 25ms
 52             GP4 = 0;                //Focus on
 53                 _delay(25000);       //wait 25ms
 54             GP1 = 0;                //Shutter release
 55                 _delay(13000000);   //wait 12sec
 56             GP1 = 1;                //Shutter off
 57                 _delay(25000);      //wait 25ms
 58             GP4 = 1;                 //Focus off
 59                 _delay(25000);       //wait 25ms
 60 
 61         GP2 = 0;            //Preconfig
 62         _delay(25000);      //wait 25ms
 63         for(j=1;j<=6;j++){  //Speed up from 1/2000 to 1/8000+alpha
 64                 GP0 = 0;
 65                 _delay(25000);
 66                 GP0 = 1;
 67                 _delay(25000);
 68             }
 69         GP2 = 1;
 70         _delay(25000);
 71 
 72         while(1){
 73             for(i=1; i<=6; i++){        //1/8000-1/30sec
 74                 Shutter();              // Shutter Release
 75                     _delay(480000);     // wait 480ms
 76                 GP0 = 0;                //Preconfig.
 77                     _delay(25000);      //wait 250ms
 78                 for(j=1; j<=4; j++){    //Speed Down 2EV
 79                     GP2 = 0;
 80                     _delay(25000);
 81                     GP2 = 1;
 82                     _delay(25000);
 83                 }
 84                 GP0 = 1;
 85                     _delay(25000);      //Speed down quit
 86             }
 87             
 88             Shutter();
 89                     _delay(480000);     //waite 480ms
 90             for(i=1; i<=6; i++){        //SS up from 1/8 to 1/8000sec
 91                 GP2 = 0;                //Preconfig
 92                     _delay(25000);
 93                 for(j=1; j<=4; j++){    //SS speed up
 94                     GP0 = 0;
 95                     _delay(25000);
 96                     GP0 = 1;
 97                     _delay(25000);
 98                 }
 99                 GP2 = 1;
100                     _delay(25000);
101                 Shutter();
102                     _delay(480000);     //waite 480ms
103             }
104                 //Simply shutter speed up
105                 GP2 = 0;                //Preconfig
106                     _delay(15000);
107                 for(j=1; j<=4; j++){    //SS speed up 2EV
108                     GP0 = 0;
109                     _delay(15000);
110                     GP0 = 1;
111                     _delay(15000);
112                 }
113                 GP2 = 1;
114                     _delay(15000);
115                 //Counter
116                 k++ ;
117                 if (k >= 12)            
118                 {
119                     goto Multi ;    //After shoot 24 set, goto Caputure C3 Diamond ring
120                 }
121         }
122     Multi:
123     GP0 = 0;                    //Preconfig.
124         _delay(25000);          //wait 25ms
125     for(j=1; j<=4; j++){        //Speed down to 1/2000
126         GP2 = 0;
127         _delay(25000);
128         GP2 = 1;
129         _delay(25000);
130     }
131     GP0 = 1;                    //Capture C3 Diamond ring
132         _delay(25000);          //wait 25ms
133         GP4 = 0;                //Focus on
134             _delay(25000);      //wait 25ms
135         GP1 = 0;                //Shutter release
136             _delay(13000000);   //wait 15sec
137         GP1 = 1;                //Shutter off
138             _delay(25000);      //wait 25ms
139         GP4 = 1;                //Focus off
140             _delay(25000);      //wait 25ms
141     }
142 
143 int Shutter(void){
144         GP4 = 0;            //Focus on
145             _delay(25000);     //wait 25ms
146         GP1 = 0;            //Shutter release
147             _delay(25000);     //wait 25ms
148         GP1 = 1;            //Shutter off
149             _delay(25000);     //wait 25ms
150         GP4 = 1;            //Focus off
151             _delay(25000);     //wait 25ms
152     return 0;
153 }
154 
155 
156 
inserted by FC2 system