Lab. of Voynich Code
2020年アルゼンチン皆既日食のたくらみ
偏光撮像装置の製作と実験ステッピングモーターの台形制御用ファーム製作&回路の製作 その2
2019.09.16 Open / 2019.09.23 Bug fix Ver.

1.ステッピングモータ制御用ファームウェアと出力波形

 こんな波形の出力になります。
 前回からの変更点は、ループの回数と遅延時間の改変だけです。ファームウェアは一番下にあります。良く解らないけど、こんな感じで組むと1/4回転するようです。が、再度チェックして最適化していかなければです。ソースコードは下のDown Loadにあります。どいう言う訳か、下記のコードで上手く1/4回転筒回ってくれます…有難いけど仕掛けが判らないのがどうも納得ゆきません。
   
Down Load

2.ステッピングモーターを駆動するための回路

 16分割して制御しようとしましたが、どうも上手くないのでこの機能は使わないことにしました。なのでM51~M53ピンはGNDに落とします。
 HR4989のモーターへの出力とモーター側のコードの接続を間違えていたので書き改めました。これでいい筈


回路を組んでの実験。ロジックアナライザに繋いで稼働実験しているところの画像
モーターはDC-DCでモバイルバッテリの5Vを昇圧し9Vで駆動している。
モバイルバッテリからは1.2Aの電流が流れ、2A対応のDC-DCとモーターは結構暑くなる
 1 /*
 2  * File:   main.c
 3  * Author: M_shi@Lab of Voynich Code
 4  * 
 5  * Createdon 2019/08/24, Modified 2019/09/22
 6  */
 7 
 8 #include <pic.h>
 9 #include <xc.h>
10 #include <stdlib.h>
11 #include <stdio.h>
12 
13 #pragma config WDTE = OFF
14 #pragma config PWRTE = ON
15 #pragma config MCLRE = OFF
16 #pragma config CP = OFF
17 #pragma config CPD = OFF
18 #pragma config BOREN = OFF
19 #pragma config IESO = OFF
20 #pragma config FCMEN = OFF
21 #pragma config FOSC = INTOSCIO
22 #define _XTAL_FREQ 4000000
23 
24 void main(void) {
25     
26      staticint i, j, k;
27     
28     TRISIO = 0b00001000;
29     ANSEL  = 0b01100000;
30     WPU    = 0b00001100;
31     CMCON0 = 0x07;
32     
33     for(i = 13; i>= 1; i-=1)
34     {
35         for(k = 1; k <= 2; k++)
36         {
37             GP2 = 1;
38             for(j=0; j<i; j++){
39                 __delay_us(750);
40             }
41             __delay_ms(5);
42             GP2 = 0;
43             for(j=0; j<i; j++){
44                 __delay_us(750);
45             }
46             __delay_ms(5);
47         }
48     }
49     
50     for(i = 12; i>= 1; i-=1)
51     {
52         for(k=1; k<=2;k++)
53         {
54             GP2 = 1;
55             for(j=0; j<13-i; j++){
56                 __delay_us(750);
57             }
58             __delay_ms(5);
59             GP2 = 0;
60             for(j=0; j<13-i; j++){
61                 __delay_us(750);
62             }
63             __delay_ms(5);
64         }
65     } 
66     __delay_ms(500);
67     
68     return; 
69 }

inserted by FC2 system