M氏の幸福実験室
New Profile Travel PC Photos Experiment Mail

日食撮像自動化プロジェクト 2017年バージョン

 パルスモータ駆動のために必要な部分だけ取り出して、Lチカ(LEDの点滅)できちんとピンのOn/Offをしてるかどうかを明らかにすることを目的として作ったファームウェアです。PIC 16F88のRB4~RB7ピンとLEDの回路をブレッドボード上に組み立ててみました。DelayはLEDを見やすくするために1秒に設定していますが、実際に回転させるときはもっとDelayを短くする必要があります。
   1:  /*************************************************
   2:   *  PIC16F88 ステッピングモータ駆動の実験用Lチカ
   3:   *  2017/05/05
   4:   * made by M氏・M氏の幸福実験室
   5:  *************************************************/
   6:   
   7:  #pragma config FOSC = INTOSCCLK//HS//
   8:  #pragma config WDTE = OFF
   9:  #pragma config PWRTE = ON
  10:  #pragma config MCLRE = ON
  11:  #pragma config BOREN = ON
  12:  #pragma config LVP = OFF
  13:  #pragma config CPD = OFF
  14:  #pragma config WRT = OFF
  15:  #pragma config CCPMX = RB3
  16:  #pragma config CP = OFF
  17:   
  18:  // CONFIG2
  19:  #pragma config FCMEN = OFF
  20:  #pragma config IESO = OFF
  21:  #include <pic16f88.h>
  22:  #include <stdio.h>
  23:  #include <stdlib.h>
  24:  #include <xc.h>
  25:  #define _XTAL_FREQ 8000000
  26:   
  27:  void main(void)
  28:  {   
  29:      //OSCCON = 0b01110000;    // 内蔵クロックの周波数を8MHzに設定
  30:      ANSEL = 0; 
  31:      TRISB = 0b00001001;
  32:      TRISA = 0b00000000;
  33:      PORTB = 0b00000000;
  34:      PORTA = 0b00000000;
  35:      
  36:  //ステッピングモータの代わりにLED駆動
  37:      while(1)
  38:      { 
  39:          PORTBbits.RB7 = 0;
  40:          PORTBbits.RB6 = 1;
  41:          PORTBbits.RB5 = 0;
  42:          PORTBbits.RB4 = 1;
  43:                  __delay_ms(1000);   
  44:          PORTBbits.RB7 = 0;
  45:          PORTBbits.RB6 = 1;
  46:          PORTBbits.RB5 = 1;
  47:          PORTBbits.RB4 = 0;
  48:                  __delay_ms(1000);
  49:          PORTBbits.RB7 = 1;
  50:          PORTBbits.RB6 = 0;
  51:          PORTBbits.RB5 = 1;
  52:          PORTBbits.RB4 = 0;
  53:                  __delay_ms(1000);
  54:          PORTBbits.RB7 = 1;
  55:          PORTBbits.RB6 = 0;
  56:          PORTBbits.RB5 = 0;
  57:          PORTBbits.RB4 = 1;
  58:                  __delay_ms(1000);
  59:      }
  60:  }
 実験上は半周期ずれつつ順次2つのLEDが点灯しては消える、という事を確認しました。実際の回路に組んで、実験を進めようと考えてます。これが基礎となり、音信号で起動し、パルスモータを90度回転してはOlympus E-PL5のHDR多段階露光を行うという仕掛けを作ることになります。
inserted by FC2 system