New | Profile | Travel | PC | Photos | Experiment |
パルスモータ駆動のために必要な部分だけ取り出して、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多段階露光を行うという仕掛けを作ることになります。 |